Create tokenizer for float type

This commit is contained in:
Bartłomiej Pluta
2019-07-25 12:51:48 +02:00
parent 3feec0839b
commit 0657214aa3
3 changed files with 28 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
from smnp.token.model import Token
from smnp.token.tools import regexPatternTokenizer, keywordTokenizer
from smnp.token.type import TokenType
def floatTokenizer(input, current, line):
consumedChars = 0
value = ""
consumed, token = regexPatternTokenizer(TokenType.INTEGER, r'\d')(input, current, line)
if consumed > 0:
consumedChars += consumed
value += token.value
consumed, token = keywordTokenizer(TokenType.DOT, ".")(input, current+consumedChars, line)
if consumed > 0:
consumedChars += consumed
value += token.value
consumed, token = regexPatternTokenizer(TokenType.INTEGER, r'\d')(input, current+consumedChars, line)
if consumed > 0:
consumedChars += consumed
value += token.value
print(value)
return (consumedChars, Token(TokenType.FLOAT, float(value), (current, line), value))
return (0, None)