diff options
author | 2021-06-15 23:18:29 -0700 | |
---|---|---|
committer | 2021-06-15 23:18:29 -0700 | |
commit | 62bd0f83dc909547a69abb8b0aed40cf098b4c95 (patch) | |
tree | 59e653002c31810961058bbfe1592df438d51b20 /src/com/craftinginterpreters/lox/Parser.java | |
parent | 1dd608294a378cbf56ca845794ed03bf2604e1c5 (diff) | |
download | crafting-interpreters-62bd0f83dc909547a69abb8b0aed40cf098b4c95.tar.gz crafting-interpreters-62bd0f83dc909547a69abb8b0aed40cf098b4c95.zip |
13.3 Calling Superclass Methods
Diffstat (limited to 'src/com/craftinginterpreters/lox/Parser.java')
-rw-r--r-- | src/com/craftinginterpreters/lox/Parser.java | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/com/craftinginterpreters/lox/Parser.java b/src/com/craftinginterpreters/lox/Parser.java index 3150035..ab4baaa 100644 --- a/src/com/craftinginterpreters/lox/Parser.java +++ b/src/com/craftinginterpreters/lox/Parser.java @@ -362,6 +362,13 @@ class Parser { return new Expr.Literal(previous().literal); } + if (match(SUPER)) { + Token keyword = previous(); + consume(DOT, "Expect '.' after 'super'."); + Token method = consume(IDENTIFIER, "Expect superclass method name."); + return new Expr.Super(keyword, method); + } + if (match(THIS)) return new Expr.This(previous()); |