diff options
author | Sunil Shetye | 2018-07-03 17:07:25 +0530 |
---|---|---|
committer | Sunil Shetye | 2018-07-03 20:58:04 +0530 |
commit | c870c0a9fcbe03cf7e34be1bfa886f5fff3569ab (patch) | |
tree | 56a2b627620b76a8782fe16bd0b17b1abefa7887 /sci2jslex.py | |
parent | 6cd012d0974046a664c0603fd39abd7610d06156 (diff) | |
download | sci2js-c870c0a9fcbe03cf7e34be1bfa886f5fff3569ab.tar.gz sci2js-c870c0a9fcbe03cf7e34be1bfa886f5fff3569ab.tar.bz2 sci2js-c870c0a9fcbe03cf7e34be1bfa886f5fff3569ab.zip |
prepare to split function names
Diffstat (limited to 'sci2jslex.py')
-rwxr-xr-x | sci2jslex.py | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/sci2jslex.py b/sci2jslex.py index 16f60e4d..9dd6a73b 100755 --- a/sci2jslex.py +++ b/sci2jslex.py @@ -227,6 +227,27 @@ FUNCTION_NAMES = { 'zeros', } +BOOLEAN_FUNCTION_NAMES = { +} + +DOUBLE_FUNCTION_NAMES = { +} + +MATRIX_DOUBLE_FUNCTION_NAMES = { +} + +NULL_FUNCTION_NAMES = { +} + +OBJECT_FUNCTION_NAMES = { +} + +STRING_FUNCTION_NAMES = { +} + +VECTOR_DOUBLE_FUNCTION_NAMES = { +} + OBJECTS = { # 'PREVAR_scicos_context': 'PREVAR_SCICOS_CONTEXT', # 'arg1': 'ARG1', @@ -246,6 +267,7 @@ JOBTYPES = { tokens = [ 'ADDITION', 'ASSIGNMENT', + 'BOOLEAN_FUNCTIONNAME', 'CLOSEBRACKET', 'CLOSEOPENBRACKET', 'CLOSESQBRACKET', @@ -253,22 +275,28 @@ tokens = [ 'COMMA', 'COMPARISON', 'DOT', + 'DOUBLE_FUNCTIONNAME', 'DQSTRING', 'EOL', 'FUNCTIONNAME', 'LASTINDEX', 'LOGICAL', + 'MATRIX_DOUBLE_FUNCTIONNAME', 'MULTIPLICATION', 'NOT', + 'NULL_FUNCTIONNAME', 'NUMBER', + 'OBJECT_FUNCTIONNAME', 'OPENBRACKET', 'OPENSQBRACKET', 'PREVAR', 'QSTRING', 'SEMICOLON', 'SPACE', + 'STRING_FUNCTIONNAME', 'TRANSPOSE', 'VAR', + 'VECTOR_DOUBLE_FUNCTIONNAME', ] + list(SYNTAX_TOKENS.values()) + list(set(PREDEFINED_VARIABLES.values())) + list(OBJECTS.values()) + list(JOBTYPES.values()) states = ( @@ -344,8 +372,25 @@ def t_VAR(t): if vartype is None: vartype = OBJECTS.get(t.value) if vartype is None: - vartype = 'FUNCTIONNAME' if t.value in FUNCTION_NAMES else 'VAR' - t.lexer.afterarray = vartype != 'FUNCTIONNAME' + if t.value in BOOLEAN_FUNCTION_NAMES: + vartype = 'BOOLEAN_FUNCTIONNAME' + elif t.value in DOUBLE_FUNCTION_NAMES: + vartype = 'DOUBLE_FUNCTIONNAME' + elif t.value in MATRIX_DOUBLE_FUNCTION_NAMES: + vartype = 'MATRIX_DOUBLE_FUNCTIONNAME' + elif t.value in NULL_FUNCTION_NAMES: + vartype = 'NULL_FUNCTIONNAME' + elif t.value in OBJECT_FUNCTION_NAMES: + vartype = 'OBJECT_FUNCTIONNAME' + elif t.value in STRING_FUNCTION_NAMES: + vartype = 'STRING_FUNCTIONNAME' + elif t.value in VECTOR_DOUBLE_FUNCTION_NAMES: + vartype = 'VECTOR_DOUBLE_FUNCTIONNAME' + elif t.value in FUNCTION_NAMES: + vartype = 'FUNCTIONNAME' + else: + vartype = 'VAR' + t.lexer.afterarray = vartype == 'VAR' t.lexer.aftercase = vartype == 'CASE' t.type = vartype return t |