source can be found under /TI/elm/turtle/MainParseThenDraw.elm

LR0-Parsing step by step for the Turtle grammar

"repeat 6 [\n\tmove 100; \n\tturn 30;\n\trepeat 15 [\n\t\tpen red; \n\t\tmove 100; \n\t\tturn 43; \n\t\tpen blue;\n\t\trepeat 20 [\n\t\t\tmove 25; \n\t\t\tturn 13;\n            pen yellow; move 16; pen blue; turn 5;\n\t\t]\n\tpen red;\n\tmove 100;]\n]"

lex tokens:

[CommandName "repeat",Parameter "6",OpenBracket,CommandName "move",Parameter "100",Semicolon,CommandName "turn",Parameter "30",Semicolon,CommandName "repeat",Parameter "15",OpenBracket,CommandName "pen",Parameter "red",Semicolon,CommandName "move",Parameter "100",Semicolon,CommandName "turn",Parameter "43",Semicolon,CommandName "pen",Parameter "blue",Semicolon,CommandName "repeat",Parameter "20",OpenBracket,CommandName "move",Parameter "25",Semicolon,CommandName "turn",Parameter "13",Semicolon,CommandName "pen",Parameter "yellow",Semicolon,CommandName "move",Parameter "16",Semicolon,CommandName "pen",Parameter "blue",Semicolon,CommandName "turn",Parameter "5",Semicolon,CloseBracket,CommandName "pen",Parameter "red",Semicolon,CommandName "move",Parameter "100",Semicolon,CloseBracket,CloseBracket]

CBAanother dummy leafdummy childdummy treedummy root

parser stack

bottom of stack

parsed turtle programs