Skip to content

Commit abbcddd

Browse files
committed
fix PExpr types
1 parent 8c45e82 commit abbcddd

4 files changed

Lines changed: 60 additions & 20 deletions

File tree

packages/compiler/scripts/modparse.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ const WASM_NUMTYPES = [0x7c, 0x7d, 0x7e, 0x7f];
1313
const WASM_VECTYPE = 0x7b;
1414
const WASM_REFTYPES = [0x6f, 0x70];
1515

16-
function checkNotNull<T>(x): NonNullable<T> {
16+
function checkNotNull<T>(x: T): NonNullable<T> {
1717
assert(x !== null, 'unexpected null value');
18-
return x;
18+
return x as NonNullable<T>;
1919
}
2020

2121
function skipPreamble(bytes: Uint8Array): void {

packages/compiler/tsconfig.json

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,12 @@
1818
},
1919
"include": [
2020
"src/**/*",
21+
"test/**/*.ts",
22+
"scripts/**/*.ts",
2123
"build/ohmRuntime.wasm_sections.ts",
2224
"build/ohm-grammar-wasm.ts",
23-
"index.ts"
24-
]
25+
"index.ts",
26+
"tsdown.config.ts"
27+
],
28+
"exclude": ["test/_stage-1-cst.spec.ts"]
2529
}

packages/ohm-js/index.d.ts

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,16 @@ export class PExpr {
105105
toString(): string;
106106
toDisplayString(): string;
107107
}
108-
export class Terminal extends PExpr {}
109-
export class Range extends PExpr {}
110-
export class Param extends PExpr {}
108+
export class Terminal extends PExpr {
109+
obj: string;
110+
}
111+
export class Range extends PExpr {
112+
from: string;
113+
to: string;
114+
}
115+
export class Param extends PExpr {
116+
index: number;
117+
}
111118
export class Alt extends PExpr {
112119
terms: PExpr[];
113120
}
@@ -116,14 +123,25 @@ export class Splice extends Alt {}
116123
export class Seq extends PExpr {
117124
factors: PExpr[];
118125
}
119-
export class Iter extends PExpr {}
126+
export class Iter extends PExpr {
127+
expr: PExpr;
128+
}
120129
export class Star extends Iter {}
121130
export class Plus extends Iter {}
122131
export class Opt extends Iter {}
123-
export class Not extends PExpr {}
124-
export class Lookahead extends PExpr {}
125-
export class Lex extends PExpr {}
126-
export class Apply extends PExpr {}
132+
export class Not extends PExpr {
133+
expr: PExpr;
134+
}
135+
export class Lookahead extends PExpr {
136+
expr: PExpr;
137+
}
138+
export class Lex extends PExpr {
139+
expr: PExpr;
140+
}
141+
export class Apply extends PExpr {
142+
ruleName: string;
143+
args: PExpr[];
144+
}
127145
export class UnicodeChar extends PExpr {}
128146
export class CaseInsensitiveTerminal extends PExpr {}
129147

packages/ohm-js/scripts/data/index.d.ts.template

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -104,9 +104,16 @@ export class PExpr {
104104
toString(): string;
105105
toDisplayString(): string;
106106
}
107-
export class Terminal extends PExpr {}
108-
export class Range extends PExpr {}
109-
export class Param extends PExpr {}
107+
export class Terminal extends PExpr {
108+
obj: string;
109+
}
110+
export class Range extends PExpr {
111+
from: string;
112+
to: string;
113+
}
114+
export class Param extends PExpr {
115+
index: number;
116+
}
110117
export class Alt extends PExpr {
111118
terms: PExpr[];
112119
}
@@ -115,14 +122,25 @@ export class Splice extends Alt {}
115122
export class Seq extends PExpr {
116123
factors: PExpr[];
117124
}
118-
export class Iter extends PExpr {}
125+
export class Iter extends PExpr {
126+
expr: PExpr;
127+
}
119128
export class Star extends Iter {}
120129
export class Plus extends Iter {}
121130
export class Opt extends Iter {}
122-
export class Not extends PExpr {}
123-
export class Lookahead extends PExpr {}
124-
export class Lex extends PExpr {}
125-
export class Apply extends PExpr {}
131+
export class Not extends PExpr {
132+
expr: PExpr;
133+
}
134+
export class Lookahead extends PExpr {
135+
expr: PExpr;
136+
}
137+
export class Lex extends PExpr {
138+
expr: PExpr;
139+
}
140+
export class Apply extends PExpr {
141+
ruleName: string;
142+
args: PExpr[];
143+
}
126144
export class UnicodeChar extends PExpr {}
127145
export class CaseInsensitiveTerminal extends PExpr {}
128146

0 commit comments

Comments
 (0)