diff options
author | Sunil Shetye | 2018-06-08 01:28:31 +0530 |
---|---|---|
committer | Sunil Shetye | 2018-06-08 01:28:31 +0530 |
commit | d164381d718fe6fcdd75faf1aa97194cb1545254 (patch) | |
tree | 091dd10a861e022b9a7de4241a7f1709fc179da8 /sci2jslex.py | |
parent | 85981a8df1e45b9516aa6e8c90088a8aadd73d22 (diff) | |
download | sci2js-d164381d718fe6fcdd75faf1aa97194cb1545254.tar.gz sci2js-d164381d718fe6fcdd75faf1aa97194cb1545254.tar.bz2 sci2js-d164381d718fe6fcdd75faf1aa97194cb1545254.zip |
add predefined variable support
Diffstat (limited to 'sci2jslex.py')
-rwxr-xr-x | sci2jslex.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/sci2jslex.py b/sci2jslex.py index bd211b0b..859d6495 100755 --- a/sci2jslex.py +++ b/sci2jslex.py @@ -10,7 +10,14 @@ brackets = 0 qstring = '' dqstring = '' -tokens = ( +predefinedvariables = { + 't': 'PREVAR_BOOLEAN', + 'f': 'PREVAR_BOOLEAN', + 'i': 'PREVAR_COMPLEX', + 'pi': 'PREVAR_FLOAT', +} + +tokens = [ 'EOL', 'NUMBER', 'LASTINDEX', @@ -24,15 +31,14 @@ tokens = ( 'OPENBRACKET', 'CLOSEBRACKET', 'SEMICOLON', - 'TRUE', - 'FALSE', 'NOT', 'LOGICAL', 'ASSIGNMENT', 'COLON', 'QSTRING', 'DQSTRING', -) + 'PREVAR', +] + list(set(predefinedvariables.values())) def t_COMMENT(t): r'\.\.+[ \t]*(//.*)?(\n|$)|//.*' @@ -86,9 +92,12 @@ def t_CLOSEBRACKET(t): t.value = t.lexer.lexmatch.group() return t +def t_PREVAR(t): + r'%[a-zA-Z0-9_]+' + t.type = predefinedvariables.get(t.value[1:], 'PREVAR') + return t + t_SEMICOLON = r';' -t_TRUE = r'%t' -t_FALSE = r'%f' t_NOT = r'~' t_LOGICAL = r'[&|]' t_ASSIGNMENT = r'=' |