summaryrefslogtreecommitdiff
path: root/sci2jslex.py
diff options
context:
space:
mode:
authorSunil Shetye2018-06-08 01:28:31 +0530
committerSunil Shetye2018-06-08 01:28:31 +0530
commitd164381d718fe6fcdd75faf1aa97194cb1545254 (patch)
tree091dd10a861e022b9a7de4241a7f1709fc179da8 /sci2jslex.py
parent85981a8df1e45b9516aa6e8c90088a8aadd73d22 (diff)
downloadsci2js-d164381d718fe6fcdd75faf1aa97194cb1545254.tar.gz
sci2js-d164381d718fe6fcdd75faf1aa97194cb1545254.tar.bz2
sci2js-d164381d718fe6fcdd75faf1aa97194cb1545254.zip
add predefined variable support
Diffstat (limited to 'sci2jslex.py')
-rwxr-xr-xsci2jslex.py21
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'='