diff options
author | Liam Miller-Cushon <cushon@google.com> | 2021-07-20 12:30:51 -0700 |
---|---|---|
committer | Javac Team <javac-team+copybara@google.com> | 2021-07-20 12:31:28 -0700 |
commit | 08d22a6682829f7a4da2bfca7775fdd8b5ff000b (patch) | |
tree | b1b00c291c7e07a9eb2dbed00cbb3ec9dde717f1 /java | |
parent | 5b53d38e73c8412a9591cd9ced29b8f1978025fb (diff) | |
download | turbine-08d22a6682829f7a4da2bfca7775fdd8b5ff000b.tar.gz |
Pass position into `ConstExpressionParser`
PiperOrigin-RevId: 385846241
Diffstat (limited to 'java')
-rw-r--r-- | java/com/google/turbine/parse/ConstExpressionParser.java | 4 | ||||
-rw-r--r-- | java/com/google/turbine/parse/Parser.java | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/java/com/google/turbine/parse/ConstExpressionParser.java b/java/com/google/turbine/parse/ConstExpressionParser.java index ba51814..f0ce692 100644 --- a/java/com/google/turbine/parse/ConstExpressionParser.java +++ b/java/com/google/turbine/parse/ConstExpressionParser.java @@ -40,10 +40,10 @@ public class ConstExpressionParser { private int position; private final Lexer lexer; - public ConstExpressionParser(Lexer lexer, Token token) { + public ConstExpressionParser(Lexer lexer, Token token, int position) { this.lexer = lexer; this.token = token; - this.position = lexer.position(); + this.position = position; } private static TurbineOperatorKind operator(Token token) { diff --git a/java/com/google/turbine/parse/Parser.java b/java/com/google/turbine/parse/Parser.java index af1eabf..40c9cab 100644 --- a/java/com/google/turbine/parse/Parser.java +++ b/java/com/google/turbine/parse/Parser.java @@ -850,7 +850,8 @@ public class Parser { Type ty = baseTy; ty = parser.extraDims(ty); // TODO(cushon): skip more fields that are definitely non-const - ConstExpressionParser constExpressionParser = new ConstExpressionParser(lexer, lexer.next()); + ConstExpressionParser constExpressionParser = + new ConstExpressionParser(lexer, lexer.next(), lexer.position()); expressionStart = lexer.position(); Expression init = constExpressionParser.expression(); if (init != null && init.kind() == Tree.Kind.ARRAY_INIT) { @@ -895,7 +896,8 @@ public class Parser { break; case DEFAULT: { - ConstExpressionParser cparser = new ConstExpressionParser(lexer, lexer.next()); + ConstExpressionParser cparser = + new ConstExpressionParser(lexer, lexer.next(), lexer.position()); Tree expr = cparser.expression(); token = cparser.token; if (expr == null && token == Token.AT) { @@ -1369,7 +1371,7 @@ public class Parser { if (token == Token.LPAREN) { eat(LPAREN); while (token != RPAREN) { - ConstExpressionParser cparser = new ConstExpressionParser(lexer, token); + ConstExpressionParser cparser = new ConstExpressionParser(lexer, token, position); Expression arg = cparser.expression(); if (arg == null) { throw error(ErrorKind.INVALID_ANNOTATION_ARGUMENT); |