summaryrefslogtreecommitdiff
path: root/chapter10
diff options
context:
space:
mode:
authorThalia Archibald <thalia@archibald.dev>2024-07-01 08:42:23 -0700
committerGitHub <noreply@github.com>2024-07-01 08:42:23 -0700
commitd6442ce5d00b9bea52d366ff4d6ae8c03b84aabb (patch)
treef74a567beac80bbe4c7dfb8cecac853d7ba6ec80 /chapter10
parent383a1b7c38d444ea8a1b8643b0be2608a6f8e84d (diff)
downloadSimple-d6442ce5d00b9bea52d366ff4d6ae8c03b84aabb.tar.gz
Simple-d6442ce5d00b9bea52d366ff4d6ae8c03b84aabb.zip
Fix grammar and forward-port minor changes (#91)
* Backport test exception handling to chapter 1 * Add unary ! to chapter 10 and 11 grammars * Lex { } ! as punctuation * Forward-port format whitespace * Forward-port test organization * Forward-port replace build-graphs.sh with Makefile * Add chapter title to chapter 11
Diffstat (limited to 'chapter10')
-rw-r--r--chapter10/docs/10-grammar.md1
-rw-r--r--chapter10/src/main/java/com/seaofnodes/simple/Parser.java3
-rw-r--r--chapter10/src/test/java/com/seaofnodes/simple/Chapter08Test.java1
3 files changed, 2 insertions, 3 deletions
diff --git a/chapter10/docs/10-grammar.md b/chapter10/docs/10-grammar.md
index 01863e7f..29ca7762 100644
--- a/chapter10/docs/10-grammar.md
+++ b/chapter10/docs/10-grammar.md
@@ -92,6 +92,7 @@ multiplicativeExpression
unaryExpression
: ('-') unaryExpression
+ | '!' unaryExpression
| primaryExpression
;
diff --git a/chapter10/src/main/java/com/seaofnodes/simple/Parser.java b/chapter10/src/main/java/com/seaofnodes/simple/Parser.java
index 9a1b4465..dbb2d172 100644
--- a/chapter10/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter10/src/main/java/com/seaofnodes/simple/Parser.java
@@ -821,9 +821,8 @@ public class Parser {
return new String(_input, start, --_position - start);
}
- //
private boolean isPunctuation(char ch) {
- return "=;[]<>()+-/*".indexOf(ch) != -1;
+ return "=;[]<>(){}+-/*!".indexOf(ch) != -1;
}
private String parsePunctuation() {
diff --git a/chapter10/src/test/java/com/seaofnodes/simple/Chapter08Test.java b/chapter10/src/test/java/com/seaofnodes/simple/Chapter08Test.java
index adcb6b59..6e8d218f 100644
--- a/chapter10/src/test/java/com/seaofnodes/simple/Chapter08Test.java
+++ b/chapter10/src/test/java/com/seaofnodes/simple/Chapter08Test.java
@@ -5,7 +5,6 @@ import com.seaofnodes.simple.node.*;
import com.seaofnodes.simple.type.TypeInteger;
import org.junit.Assert;
import org.junit.Test;
-import org.junit.Ignore;
import static org.junit.Assert.*;