summaryrefslogtreecommitdiff
path: root/sci2jsyacc.py
diff options
context:
space:
mode:
authorSunil Shetye2018-06-19 15:56:48 +0530
committerSunil Shetye2018-06-19 15:56:48 +0530
commit09dcb67c99c52386ec43581871db5a7a78eeaccd (patch)
tree2fe972fa8e2c2fbd6e57eccb6f0d1ed1492facbc /sci2jsyacc.py
parente52c0df736cfe020cb54e265b93119107497fbf5 (diff)
downloadsci2js-09dcb67c99c52386ec43581871db5a7a78eeaccd.tar.gz
sci2js-09dcb67c99c52386ec43581871db5a7a78eeaccd.tar.bz2
sci2js-09dcb67c99c52386ec43581871db5a7a78eeaccd.zip
support variable(index)(slice)
Diffstat (limited to 'sci2jsyacc.py')
-rwxr-xr-xsci2jsyacc.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/sci2jsyacc.py b/sci2jsyacc.py
index 420af69a..a3b3f5d8 100755
--- a/sci2jsyacc.py
+++ b/sci2jsyacc.py
@@ -558,6 +558,16 @@ def p_term_termfunc_parameter_parameter(p):
else:
p[0] = '%s(%s)' % (base, p[5])
+# B($-2)(:)
+def p_term_termfunc_parameter_slice(p):
+ 'term : termvar OPENBRACKET expression CLOSEOPENBRACKET COLON CLOSEBRACKET'
+ if isarray(p[1]):
+ base = '%s[%s-1]' % (p[1], p[3])
+ else:
+ base = '%s(%s)' % (p[1], p[3])
+ addtoarray(base)
+ p[0] = '%s.slice()' % (base)
+
# B($-2)('function parameter')(3)
def p_term_termfunc_parameter_parameter_parameter(p):
'term : termvar OPENBRACKET expression CLOSEOPENBRACKET expression CLOSEOPENBRACKET expression CLOSEBRACKET'