aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/Literal.java39
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java14
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java4
5 files changed, 28 insertions, 47 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java
index 14827fe2a7..b940f50dc2 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java
@@ -18,15 +18,25 @@ import java.io.IOException;
/**
* Syntax node for an integer literal.
*/
-public final class IntegerLiteral extends Literal<Integer> {
+public final class IntegerLiteral extends Expression {
+ private final int value;
public IntegerLiteral(Integer value) {
- super(value);
+ this.value = value;
+ }
+
+ public int getValue() {
+ return value;
+ }
+
+ @Override
+ Object doEval(Environment env) {
+ return value;
}
@Override
public void prettyPrint(Appendable buffer) throws IOException {
- buffer.append(value.toString());
+ buffer.append(String.valueOf(value));
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Literal.java b/src/main/java/com/google/devtools/build/lib/syntax/Literal.java
deleted file mode 100644
index 12eec77e35..0000000000
--- a/src/main/java/com/google/devtools/build/lib/syntax/Literal.java
+++ /dev/null
@@ -1,39 +0,0 @@
-// Copyright 2014 The Bazel Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package com.google.devtools.build.lib.syntax;
-
-/**
- * Generic base class for primitive literals.
- */
-public abstract class Literal<T> extends Expression {
-
- protected final T value;
-
- protected Literal(T value) {
- this.value = value;
- }
-
- /**
- * Returns the value of this literal.
- */
- public T getValue() {
- return value;
- }
-
- @Override
- Object doEval(Environment env) {
- return value;
- }
-}
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java
index 44ac91620b..520dcbd954 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java
@@ -55,7 +55,7 @@ public final class SliceExpression extends Expression {
boolean endIsDefault =
(end instanceof Identifier) && ((Identifier) end).getName().equals("None");
boolean stepIsDefault =
- (step instanceof IntegerLiteral) && ((IntegerLiteral) step).getValue().equals(1);
+ (step instanceof IntegerLiteral) && ((IntegerLiteral) step).getValue() == 1;
object.prettyPrint(buffer);
buffer.append('[');
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
index df559fe7fa..19d00b9b8d 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java
@@ -18,10 +18,20 @@ import java.io.IOException;
/**
* Syntax node for a string literal.
*/
-public final class StringLiteral extends Literal<String> {
+public final class StringLiteral extends Expression {
+ String value;
+
+ public String getValue() {
+ return value;
+ }
+
+ @Override
+ Object doEval(Environment env) {
+ return value;
+ }
public StringLiteral(String value) {
- super(value);
+ this.value = value;
}
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
index a9a9e4cc7b..784b0a7926 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java
@@ -290,7 +290,7 @@ public class ParserTest extends EvaluationTestCase {
@Test
public void testSubstring() throws Exception {
SliceExpression s = (SliceExpression) parseExpression("'FOO.CC'[:].lower()[1:]");
- assertThat(((IntegerLiteral) s.getStart()).value).isEqualTo(1);
+ assertThat(((IntegerLiteral) s.getStart()).getValue()).isEqualTo(1);
FuncallExpression e = (FuncallExpression) parseExpression(
"'FOO.CC'.lower()[1:].startswith('oo')");
@@ -299,7 +299,7 @@ public class ParserTest extends EvaluationTestCase {
assertThat(e.getArguments()).hasSize(1);
s = (SliceExpression) parseExpression("'FOO.CC'[1:][:2]");
- assertThat(((IntegerLiteral) s.getEnd()).value).isEqualTo(2);
+ assertThat(((IntegerLiteral) s.getEnd()).getValue()).isEqualTo(2);
}
@Test