-
Notifications
You must be signed in to change notification settings - Fork 1
/
lexicalRuleset.ts
39 lines (35 loc) · 1008 Bytes
/
lexicalRuleset.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
// ##################################################################### //
// ########################### LexicalRuleset ########################## //
// ##################################################################### //
// IMPORT THIS INTERFACE FROM the file /ts/TinyComp.ts
export default interface LexicalRuleset {
[name: string]: {
regex: RegExp;
};
}
// ====================================================== //
// ======================= Example ====================== //
// ====================================================== //
const exampleLexicalRuleset: LexicalRuleset = {
// the name of the token
whitespace: {
regex: /([\s\r\n])/, // the regex that matches the token
},
printFunctionName: {
regex: /print/,
},
parameterStart: {
regex: /\(/,
},
parameterEnd: {
regex: /\)/,
},
parameter: {
regex: /"[\w\d ]+"/,
},
parameterSeperator: {
regex: /,/,
},
// ... more lexical rules go here
};
export { exampleLexicalRuleset };