summaryrefslogtreecommitdiff
path: root/sci2jsyacc.py
diff options
context:
space:
mode:
Diffstat (limited to 'sci2jsyacc.py')
-rwxr-xr-xsci2jsyacc.py38
1 files changed, 21 insertions, 17 deletions
diff --git a/sci2jsyacc.py b/sci2jsyacc.py
index a1b59c66..b47c7254 100755
--- a/sci2jsyacc.py
+++ b/sci2jsyacc.py
@@ -35,16 +35,17 @@ JOB_BLOCKS = {}
def p_functionblock_function_statementblock_endfunction(p):
'functionblock : EOL FUNCTION lterm ASSIGNMENT VAR OPENBRACKET JOB COMMA VAR COMMA VAR CLOSEBRACKET EOL statementblock ENDFUNCTION EOL'
fname = str(p[5])
+ indent = ' '
p[0] = ('function %s() {\n' +
- '%s.prototype.define = function %s() {\n%s}\n' +
- '%s.prototype.details = function %s() {\n%s}\n' +
- '%s.prototype.get = function %s() {\n%s}\n' +
- '%s.prototype.set = function %s() {\n%s}\n' +
+ '%s%s.prototype.define = function %s() {\n%s%s}\n' +
+ '%s%s.prototype.details = function %s() {\n%s%s}\n' +
+ '%s%s.prototype.get = function %s() {\n%s%s}\n' +
+ '%s%s.prototype.set = function %s() {\n%s%s}\n' +
'}') % (fname,
- fname, fname, (JOB_BLOCKS['"define"'] if '"define"' in JOB_BLOCKS else ''),
- fname, fname, (JOB_BLOCKS['"details"'] if '"details"' in JOB_BLOCKS else ''),
- fname, fname, (JOB_BLOCKS['"get"'] if '"get"' in JOB_BLOCKS else ''),
- fname, fname, (JOB_BLOCKS['"set"'] if '"set"' in JOB_BLOCKS else ''),
+ indent, fname, fname, (JOB_BLOCKS['"define"'] if '"define"' in JOB_BLOCKS else ''), indent,
+ indent, fname, fname, (JOB_BLOCKS['"details"'] if '"details"' in JOB_BLOCKS else ''), indent,
+ indent, fname, fname, (JOB_BLOCKS['"get"'] if '"get"' in JOB_BLOCKS else ''), indent,
+ indent, fname, fname, (JOB_BLOCKS['"set"'] if '"set"' in JOB_BLOCKS else ''), indent,
)
# end define functionblock
@@ -639,9 +640,10 @@ def p_term_lastindex(p):
'term : LASTINDEX'
p[0] = '%s' % (p[1])
-# %f
+# %xyz
def p_term_prevar(p):
- 'term : PREVAR'
+ '''term : PREVAR
+ | PREVAR_SUBSTITUTE'''
p[0] = '%s' % (p[1])
# %f
@@ -739,13 +741,8 @@ FUNCTION_LIST = set()
def isfunction(name):
return name in FUNCTION_LIST
-if __name__ == '__main__':
- if len(sys.argv) <= 1:
- print('Usage:', sys.argv[0], 'filename')
- sys.exit(1)
-
- filename = sys.argv[1]
-
+def processfile(filename):
+ '''convert a sci file to a js file'''
data = ''
with open(filename, 'r') as infile:
for line in infile:
@@ -758,3 +755,10 @@ if __name__ == '__main__':
print('/* autogenerated from "', filename, '" */', sep='')
print(result)
+
+if __name__ == '__main__':
+ if len(sys.argv) <= 1:
+ print('Usage:', sys.argv[0], 'filename')
+ sys.exit(1)
+
+ processfile(sys.argv[1])