Skip to content

Commit 715a433

Browse files
authored
Merge pull request #15 from hildjj/semi
Capture semicolons and top-level brackets.
2 parents d2a728a + 34a6a36 commit 715a433

File tree

10 files changed

+3841
-3755
lines changed

10 files changed

+3841
-3755
lines changed

.mocharc.js

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
"use strict";
2+
3+
module.exports = {
4+
diff: true,
5+
"full-trace": true,
6+
recursive: true,
7+
reporter: "progress",
8+
require: "source-map-support/register",
9+
};

.npmignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,5 @@ src/
1414
test
1515
tsconfig.json
1616
.peggy.js
17+
.mocharc.js
18+
tools/

lib/ast.d.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,9 @@ interface Bracketed {
4848
open: Punctuation;
4949
close: Punctuation;
5050
}
51+
interface Terminated {
52+
semi?: Punctuation;
53+
}
5154
interface Op {
5255
operator: Punctuation;
5356
}
@@ -65,9 +68,9 @@ export interface Grammar extends BaseNode<"grammar"> {
6568
initializer?: Initializer;
6669
rules: Rule[];
6770
}
68-
export declare type TopLevelInitializer = BaseNode<"top_level_initializer"> & Coded;
69-
export declare type Initializer = BaseNode<"initializer"> & Coded;
70-
export interface Rule extends BaseNode<"rule"> {
71+
export declare type TopLevelInitializer = BaseNode<"top_level_initializer"> & Bracketed & Coded & Terminated;
72+
export declare type Initializer = BaseNode<"initializer"> & Coded & Terminated;
73+
export interface Rule extends BaseNode<"rule">, Terminated {
7174
name: Name;
7275
equals: Punctuation;
7376
expression: Expression;

lib/ast.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ exports.visitorKeys = void 0;
77
exports.visitorKeys = {
88
Program: ["body", "comments"],
99
grammar: ["topLevelInitializer", "initializer", "rules"],
10-
top_level_initializer: ["code"],
11-
initializer: ["code"],
12-
rule: ["name", "equals", "expression"],
10+
top_level_initializer: ["open", "code", "close", "semi"],
11+
initializer: ["code", "semi"],
12+
rule: ["name", "equals", "expression", "semi"],
1313
named: ["name", "expression"],
1414
choice: ["alternatives", "slashes"],
1515
action: ["expression", "code"],

0 commit comments

Comments
 (0)