aboutsummaryrefslogtreecommitdiffstats
path: root/src/com/craftinginterpreters/lox/Parser.java
diff options
context:
space:
mode:
authorGravatar Tom Willemse2021-06-15 23:18:29 -0700
committerGravatar Tom Willemse2021-06-15 23:18:29 -0700
commit62bd0f83dc909547a69abb8b0aed40cf098b4c95 (patch)
tree59e653002c31810961058bbfe1592df438d51b20 /src/com/craftinginterpreters/lox/Parser.java
parent1dd608294a378cbf56ca845794ed03bf2604e1c5 (diff)
downloadcrafting-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.java7
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());