diff --git a/doc/tokens.txt b/doc/tokens.txt index 5726375..5ea64a8 100644 --- a/doc/tokens.txt +++ b/doc/tokens.txt @@ -38,7 +38,7 @@ Hexadecimal Description Feature BitcodeLexer TextLexer 48 x Yes Yes Yes 49 y Yes Yes Yes 4A Pré-Rép - - - -4C θ Yes - - +4C θ Yes Yes Yes 60 ( Yes Yes Yes 68 Abs( Yes Yes - 69 Rnd( Yes Yes - diff --git a/fx92/lexer.py b/fx92/lexer.py index 0ccac25..409f7d6 100644 --- a/fx92/lexer.py +++ b/fx92/lexer.py @@ -232,6 +232,8 @@ class BitcodeLexer(LexerBase): return Token(T.VAR, "x") if code == 0x49: return Token(T.VAR, "y") + if code == 0x4C: + return Token(T.VAR, "theta") # Functions fun = { @@ -423,6 +425,11 @@ class TextLexer(LexerBase): self.code = c[1:] self.pending_param = True return Token(T.VAR, c[0]) + m = re.match(r"theta\b", c) + if m is not None: + self.code = c[len(m[0]):] + self.pending_param = True + return Token(T.VAR, "theta") # Comments if c[0] == "#": diff --git a/tests/autovars.out b/tests/autovars.out new file mode 100644 index 0000000..2aefd82 --- /dev/null +++ b/tests/autovars.out @@ -0,0 +1,4 @@ +10.0 +0.0 +90.0 +160.0 diff --git a/tests/autovars.txt b/tests/autovars.txt new file mode 100644 index 0000000..6a48f37 --- /dev/null +++ b/tests/autovars.txt @@ -0,0 +1,9 @@ +forward 10 +print x +print y + +orient 90 +print theta + +rotate 70 +print theta