mirror of
https://github.com/irmen/prog8.git
synced 2024-12-22 18:30:01 +00:00
fix ast printing of & array-element
This commit is contained in:
parent
3cc858db12
commit
9d6d98930b
@ -15,7 +15,12 @@ fun printAst(root: PtNode, skipLibraries: Boolean, output: (text: String) -> Uni
|
|||||||
is PtAugmentedAssign -> "<inplace-assign> ${node.operator}"
|
is PtAugmentedAssign -> "<inplace-assign> ${node.operator}"
|
||||||
is PtBreakpoint -> "%breakpoint"
|
is PtBreakpoint -> "%breakpoint"
|
||||||
is PtConditionalBranch -> "if_${node.condition.name.lowercase()}"
|
is PtConditionalBranch -> "if_${node.condition.name.lowercase()}"
|
||||||
is PtAddressOf -> "&"
|
is PtAddressOf -> {
|
||||||
|
if(node.isFromArrayElement)
|
||||||
|
"& array-element"
|
||||||
|
else
|
||||||
|
"&"
|
||||||
|
}
|
||||||
is PtArray -> "array len=${node.children.size} ${type(node.type)}"
|
is PtArray -> "array len=${node.children.size} ${type(node.type)}"
|
||||||
is PtArrayIndexer -> "<arrayindexer> ${type(node.type)} ${if(node.splitWords) "[splitwords]" else ""}"
|
is PtArrayIndexer -> "<arrayindexer> ${type(node.type)} ${if(node.splitWords) "[splitwords]" else ""}"
|
||||||
is PtBinaryExpression -> "<expr> ${node.operator} ${type(node.type)}"
|
is PtBinaryExpression -> "<expr> ${node.operator} ${type(node.type)}"
|
||||||
|
@ -2,7 +2,6 @@ TODO
|
|||||||
====
|
====
|
||||||
|
|
||||||
&pointervar[x] isn't the correct value
|
&pointervar[x] isn't the correct value
|
||||||
&pointervar[x] AST doesn't print correctly
|
|
||||||
@(s) where s is a str parameter, doesn't work
|
@(s) where s is a str parameter, doesn't work
|
||||||
|
|
||||||
(after merge in boolean): move all "OperatorXinplace" from expressionGen to AssignmentGen, see if we can get rid of the Result return type.
|
(after merge in boolean): move all "OperatorXinplace" from expressionGen to AssignmentGen, see if we can get rid of the Result return type.
|
||||||
|
@ -6,38 +6,7 @@
|
|||||||
|
|
||||||
main {
|
main {
|
||||||
sub start() {
|
sub start() {
|
||||||
str name1 = ""
|
foo("zzz")
|
||||||
str name2 = "hello"
|
|
||||||
str name3 = " \n\rhello"
|
|
||||||
str name4 = " \x02\x02\x02\n\r\xa0\xa0\xff\xffhello"
|
|
||||||
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.ltrimmed(name1))
|
|
||||||
txt.print("]\n")
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.ltrimmed(name2))
|
|
||||||
txt.print("]\n")
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.ltrimmed(name3))
|
|
||||||
txt.print("]\n")
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.ltrimmed(name4))
|
|
||||||
txt.print("]\n\n")
|
|
||||||
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.lstripped(name1))
|
|
||||||
txt.print("]\n")
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.lstripped(name2))
|
|
||||||
txt.print("]\n")
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.lstripped(name3))
|
|
||||||
txt.print("]\n")
|
|
||||||
txt.chrout('[')
|
|
||||||
txt.print(string.lstripped(name4))
|
|
||||||
txt.print("]\n")
|
|
||||||
|
|
||||||
; foo(name2)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub foo (str s2) {
|
sub foo (str s2) {
|
||||||
@ -46,7 +15,7 @@ main {
|
|||||||
txt.nl()
|
txt.nl()
|
||||||
txt.print_uwhex(&s, true)
|
txt.print_uwhex(&s, true)
|
||||||
txt.nl()
|
txt.nl()
|
||||||
txt.print_uwhex(&s[2], true) ; TODO doesn't print correctly in the AST!
|
txt.print_uwhex(&s[2], true)
|
||||||
txt.nl()
|
txt.nl()
|
||||||
txt.nl()
|
txt.nl()
|
||||||
txt.print_uwhex(s2, true)
|
txt.print_uwhex(s2, true)
|
||||||
@ -55,7 +24,7 @@ main {
|
|||||||
txt.nl()
|
txt.nl()
|
||||||
txt.print_uwhex(s2+2, true)
|
txt.print_uwhex(s2+2, true)
|
||||||
txt.nl()
|
txt.nl()
|
||||||
txt.print_uwhex(&s2[2], true) ; TODO should be the same as the previous one! TODO doesn't print correctly in the AST!
|
txt.print_uwhex(&s2[2], true) ; TODO should be the same as the previous one!
|
||||||
txt.nl()
|
txt.nl()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user