Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
OpenGEODE
Commits
c320d306
Commit
c320d306
authored
Oct 30, 2014
by
Maxime Perrotin
Browse files
Fix Append in Write statements (allow write(a//b))
parent
852f2908
Changes
1
Show whitespace changes
Inline
Side-by-side
LlvmGenerator.py
View file @
c320d306
...
...
@@ -670,8 +670,18 @@ def _proc_call(proc_call, ctx):
args
=
output
.
get
(
'params'
,
[])
if
name
==
'write'
or
name
==
'writeln'
:
arg_vals
=
[
expression
(
a
,
ctx
)
for
a
in
args
]
arg_asn1tys
=
[
a
.
exprType
for
a
in
args
]
def
flatten_append
(
arg
):
''' transform "write(a//b)" to "write(a,b)" '''
if
isinstance
(
arg
,
ogAST
.
ExprAppend
):
res
=
flatten_append
(
arg
.
left
)
res
.
extend
(
flatten_append
(
arg
.
right
))
return
res
return
[
arg
]
flat_args
=
[]
for
each
in
args
:
flat_args
.
extend
(
flatten_append
(
each
))
arg_vals
=
[
expression
(
a
,
ctx
)
for
a
in
flat_args
]
arg_asn1tys
=
[
a
.
exprType
for
a
in
flat_args
]
sdl_write
(
arg_vals
,
arg_asn1tys
,
ctx
,
name
==
'writeln'
)
return
elif
name
==
'reset_timer'
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment