Skip to content

Commit 608c3a7

Browse files
committed
Adding experimental online parser
1 parent fe27912 commit 608c3a7

File tree

10 files changed

+1942
-1
lines changed

10 files changed

+1942
-1
lines changed

resources/build-npm.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ if (require.main === module) {
2626

2727
const mjs = babelBuild(srcPath, { envName: 'mjs' });
2828
fs.writeFileSync(destPath.replace(/\.js$/, '.mjs'), mjs);
29-
} else if (filepath.endsWith('.d.ts')) {
29+
} else if (filepath.endsWith('.d.ts') || filepath.endsWith('.json')) {
3030
fs.copyFileSync(srcPath, destPath);
3131
}
3232
}

src/language/online-parser/index.d.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { Parser } from './parser';
2+
export * from './types';

src/language/online-parser/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { Parser } from './parser';
2+
export * from './types';
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
import { LanguageType } from './types';
2+
3+
declare const Language: LanguageType;
4+
export default Language;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { default } from './rules';
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
import { Lexer } from '../lexer';
2+
3+
import {
4+
Token,
5+
Styles,
6+
ParserState,
7+
ParserConfig,
8+
ParserConfigOption,
9+
Rule,
10+
} from './types';
11+
12+
export declare class Parser {
13+
state: ParserState;
14+
lexer: Lexer;
15+
styles: Styles;
16+
config: ParserConfig;
17+
constructor({
18+
state,
19+
styles,
20+
config,
21+
source,
22+
}: {
23+
state?: ParserState;
24+
styles?: Styles;
25+
config?: ParserConfigOption;
26+
source: string;
27+
});
28+
static startState(): ParserState;
29+
static copyState(state: ParserState): ParserState;
30+
sol(): boolean;
31+
parseToken(): Token;
32+
indentation(): number;
33+
private readonly parseTokenConstraint;
34+
private readonly parseListOfTypeConstraint;
35+
private readonly parseOfTypeConstraint;
36+
private readonly parsePeekConstraint;
37+
private readonly parseConstraintsSetRule;
38+
private readonly matchToken;
39+
private readonly butNot;
40+
private readonly transformLexerToken;
41+
private readonly getNextRule;
42+
private readonly popMatchedRule;
43+
private readonly rollbackRule;
44+
pushRule(
45+
rule: Rule,
46+
depth: number,
47+
name?: string,
48+
step?: number,
49+
state?: string,
50+
): void;
51+
private readonly getRuleKind;
52+
private readonly advanceToken;
53+
private readonly lookAhead;
54+
}

0 commit comments

Comments
 (0)