allang-compiler-base 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/index.ts +2 -1
  2. package/package.json +2 -2
  3. package/src/core/parser/grammar.ts +30 -10
  4. package/dist/base/log.d.ts +0 -7
  5. package/dist/base/log.d.ts.map +0 -1
  6. package/dist/base/log.js +0 -2
  7. package/dist/base/log.js.map +0 -1
  8. package/dist/base/model.d.ts +0 -7
  9. package/dist/base/model.d.ts.map +0 -1
  10. package/dist/base/model.js +0 -8
  11. package/dist/base/model.js.map +0 -1
  12. package/dist/core/parser/grammar.d.ts +0 -29
  13. package/dist/core/parser/grammar.d.ts.map +0 -1
  14. package/dist/core/parser/grammar.js +0 -36
  15. package/dist/core/parser/grammar.js.map +0 -1
  16. package/dist/core/pre/index.d.ts +0 -13
  17. package/dist/core/pre/index.d.ts.map +0 -1
  18. package/dist/core/pre/index.js +0 -12
  19. package/dist/core/pre/index.js.map +0 -1
  20. package/dist/core/pre/match.d.ts +0 -12
  21. package/dist/core/pre/match.d.ts.map +0 -1
  22. package/dist/core/pre/match.js +0 -162
  23. package/dist/core/pre/match.js.map +0 -1
  24. package/dist/core/pre/model.d.ts +0 -25
  25. package/dist/core/pre/model.d.ts.map +0 -1
  26. package/dist/core/pre/model.js +0 -29
  27. package/dist/core/pre/model.js.map +0 -1
  28. package/dist/core/pre/segment.d.ts +0 -22
  29. package/dist/core/pre/segment.d.ts.map +0 -1
  30. package/dist/core/pre/segment.js +0 -141
  31. package/dist/core/pre/segment.js.map +0 -1
  32. package/dist/core/test.d.ts +0 -2
  33. package/dist/core/test.d.ts.map +0 -1
  34. package/dist/core/test.js +0 -11
  35. package/dist/core/test.js.map +0 -1
  36. package/dist/index.d.ts +0 -5
  37. package/dist/index.d.ts.map +0 -1
  38. package/dist/index.js +0 -4
  39. package/dist/index.js.map +0 -1
  40. package/index.js +0 -16
package/index.ts CHANGED
@@ -1,4 +1,4 @@
1
- import {list_match,create_match,root_match, tools, Tree} from './src/core/parser/grammar'
1
+ import {list_match,create_match,root_match,while_match, tools, Tree} from './src/core/parser/grammar'
2
2
  import {segment, token, token_type, word} from './src/core/pre'
3
3
  import {log} from './src/base/log'
4
4
 
@@ -7,6 +7,7 @@ export {
7
7
  list_match,
8
8
  create_match,
9
9
  root_match,
10
+ while_match,
10
11
  tools,
11
12
  token,
12
13
  token_type,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "allang-compiler-base",
3
- "version": "0.0.4",
3
+ "version": "0.0.6",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -12,4 +12,4 @@
12
12
  "keywords": [],
13
13
  "author": "",
14
14
  "license": "MIT"
15
- }
15
+ }
@@ -12,8 +12,9 @@ interface tools{
12
12
  remove():void
13
13
  get():token[]
14
14
  }
15
- function create_match(func:(tool:tools)=>boolean,error:(log:log)=>void,to:()=>Tree):{func:(tool:tools)=>boolean,
16
- error:(log:log,tool:tools)=>void,to:()=>Tree}{
15
+ function create_match(func:(tool:tools)=>boolean,error:(log:log,tool:tools)=>void
16
+ ,to:(tool:tools)=>Tree):{func:(tool:tools)=>boolean,
17
+ error:(log:log,tool:tools)=>void,to:(tool:tools)=>Tree}{
17
18
  return {
18
19
  func:func,
19
20
  to:to,
@@ -21,31 +22,50 @@ function create_match(func:(tool:tools)=>boolean,error:(log:log)=>void,to:()=>Tr
21
22
  }
22
23
  }
23
24
  function root_match(tool:tools,log:log,parser:(child:Tree[])=>Tree,...match:{func:((tool:tools)=>boolean)
24
- ,error:(log:log,tool:tools)=>void,to:()=>Tree}[]):Tree{
25
+ ,error:(log:log,tool:tools)=>void,to:(tool:tools)=>Tree}[]):Tree{
25
26
  let matches:Tree[]=[]
26
27
  for(let i=0;i<match.length;i++){
27
28
  if(!match[i].func(tool))match[i].error(log,tool)
28
29
  else{
29
- matches.push(match[i].to())
30
+ matches.push(match[i].to(tool))
30
31
  tool.flush()
31
32
  }
32
33
  }
33
34
  return parser(matches)
34
35
  }
35
- function list_match(tool:tools,log:log,parser:(token:token[][])=>Tree,v?:(log:log,token:token[])=>void,
36
- ...match:{func:((tool:tools)=>boolean),error:(log:log,tool:tools)=>void}[]):Tree{
37
- let matches:(token[])[]=[]
36
+ function list_match(tool:tools,log:log,parser:(child:Tree[])=>Tree,
37
+ ...match:{func:((tool:tools)=>boolean),error:(log:log,tool:tools)=>void,
38
+ to:(tool:tools)=>Tree}[]):Tree{
39
+ let matches:Tree[]=[]
38
40
  for(let i=0;i<match.length;i++){
39
41
  if(!match[i].func(tool))match[i].error(log,tool)
40
42
  else{
41
- matches.push(tool.get())
43
+ matches.push(match[i].to(tool))
42
44
  tool.flush()
43
45
  }
44
46
  }
45
- if(v)v(log,tool.get())
47
+ return parser(matches)
48
+ }
49
+ function while_match(tool:tools,log:log,parser:(child:Tree[])=>Tree,
50
+ start:{func:((tool:tools)=>boolean),error:(log:log,tool:tools)=>void,
51
+ to:(tool:tools)=>Tree},end:{func:((tool:tools)=>boolean),error:(log:log,tool:tools)=>void,
52
+ to:(tool:tools)=>Tree},data:{func:((tool:tools)=>boolean),error:(log:log,tool:tools)=>void,
53
+ to:(tool:tools)=>Tree}){
54
+ let matches:Tree[]=[]
55
+ if(!start.func(tool))start.error(log,tool)
56
+ matches.push(start.to(tool))
57
+ while(true){
58
+ if(end.func(tool)){
59
+ matches.push(end.to(tool))
60
+ break
61
+ }
62
+ if(!data.func(tool))data.error(log,tool)
63
+ matches.push(data.to(tool))
64
+ tool.flush()
65
+ }
46
66
  return parser(matches)
47
67
  }
48
68
  class Tree{
49
69
  type:number
50
70
  }
51
- export {tools,Tree,list_match,root_match,create_match}
71
+ export {tools,Tree,list_match,root_match,create_match,while_match}
@@ -1,7 +0,0 @@
1
- interface log {
2
- error(text: string, line: number): void;
3
- warn(text: string, line: number): void;
4
- info(text: string, line: number): void;
5
- }
6
- export { log };
7
- //# sourceMappingURL=log.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../src/base/log.ts"],"names":[],"mappings":"AAAA,UAAU,GAAG;IACT,KAAK,CAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,GAAE,IAAI,CAAA;IACnC,IAAI,CAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,GAAE,IAAI,CAAA;IAClC,IAAI,CAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,MAAM,GAAE,IAAI,CAAA;CACrC;AACD,OAAO,EAAC,GAAG,EAAC,CAAA"}
package/dist/base/log.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=log.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log.js","sourceRoot":"","sources":["../../src/base/log.ts"],"names":[],"mappings":""}
@@ -1,7 +0,0 @@
1
- declare class KV<K, V> {
2
- key: K;
3
- value: V;
4
- constructor(key: K, value: V);
5
- }
6
- export { KV };
7
- //# sourceMappingURL=model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/base/model.ts"],"names":[],"mappings":"AAAA,cAAM,EAAE,CAAC,CAAC,EAAC,CAAC;IACD,GAAG,EAAC,CAAC,CAAA;IACL,KAAK,EAAC,CAAC,CAAA;gBACF,GAAG,EAAC,CAAC,EAAC,KAAK,EAAC,CAAC;CAI5B;AACD,OAAO,EAAC,EAAE,EAAC,CAAA"}
@@ -1,8 +0,0 @@
1
- class KV {
2
- constructor(key, value) {
3
- this.key = key;
4
- this.value = value;
5
- }
6
- }
7
- export { KV };
8
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/base/model.ts"],"names":[],"mappings":"AAAA,MAAM,EAAE;IAGJ,YAAY,GAAK,EAAC,KAAO;QACrB,IAAI,CAAC,GAAG,GAAC,GAAG,CAAA;QACZ,IAAI,CAAC,KAAK,GAAC,KAAK,CAAA;IACpB,CAAC;CACJ;AACD,OAAO,EAAC,EAAE,EAAC,CAAA"}
@@ -1,29 +0,0 @@
1
- import { token } from '../pre';
2
- import { log } from '../../base/log';
3
- interface tools {
4
- peek(): token;
5
- now(): token;
6
- next(): token;
7
- backup(): void;
8
- restore(): void;
9
- flush(): void;
10
- add(token: token): void;
11
- remove(): void;
12
- get(): token[];
13
- }
14
- declare function create_match(func: (tool: tools) => boolean, error: (log: log) => void): {
15
- func: (tool: tools) => boolean;
16
- error: (log: log) => void;
17
- };
18
- declare function root_match(tool: tools, log: log, parser: (token: token[][]) => Tree, ...match: {
19
- func: ((tool: tools) => boolean);
20
- error: (log: log) => void;
21
- }[]): Tree;
22
- declare function list_match(tool: tools, log: log, parser: (token: token[][]) => Tree, v?: (log: log, token: token[]) => void, ...match: {
23
- func: ((tool: tools) => boolean);
24
- error: (log: log) => void;
25
- }[]): Tree;
26
- declare class Tree {
27
- }
28
- export { tools, Tree, list_match, root_match, create_match };
29
- //# sourceMappingURL=grammar.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar.d.ts","sourceRoot":"","sources":["../../../src/core/parser/grammar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,QAAQ,CAAA;AAC5B,OAAO,EAAC,GAAG,EAAC,MAAM,gBAAgB,CAAA;AAElC,UAAU,KAAK;IACX,IAAI,IAAG,KAAK,CAAA;IACZ,GAAG,IAAG,KAAK,CAAA;IACX,IAAI,IAAG,KAAK,CAAA;IACZ,MAAM,IAAG,IAAI,CAAA;IACb,OAAO,IAAG,IAAI,CAAA;IACd,KAAK,IAAG,IAAI,CAAA;IACZ,GAAG,CAAC,KAAK,EAAC,KAAK,GAAE,IAAI,CAAA;IACrB,MAAM,IAAG,IAAI,CAAA;IACb,GAAG,IAAG,KAAK,EAAE,CAAA;CAChB;AACD,iBAAS,YAAY,CAAC,IAAI,EAAC,CAAC,IAAI,EAAC,KAAK,KAAG,OAAO,EAAC,KAAK,EAAC,CAAC,GAAG,EAAC,GAAG,KAAG,IAAI,GAAE;IAAC,IAAI,EAAC,CAAC,IAAI,EAAC,KAAK,KAAG,OAAO,CAAC;IAChG,KAAK,EAAC,CAAC,GAAG,EAAC,GAAG,KAAG,IAAI,CAAA;CAAC,CAKzB;AACD,iBAAS,UAAU,CAAC,IAAI,EAAC,KAAK,EAAC,GAAG,EAAC,GAAG,EAAC,MAAM,EAAC,CAAC,KAAK,EAAC,KAAK,EAAE,EAAE,KAAG,IAAI,EAAC,GAAG,KAAK,EAAC;IAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,KAAK,KAAG,OAAO,CAAC,CACvG;IAAA,KAAK,EAAC,CAAC,GAAG,EAAC,GAAG,KAAG,IAAI,CAAA;CAAC,EAAE,GAAE,IAAI,CAUlC;AACD,iBAAS,UAAU,CAAC,IAAI,EAAC,KAAK,EAAC,GAAG,EAAC,GAAG,EAAC,MAAM,EAAC,CAAC,KAAK,EAAC,KAAK,EAAE,EAAE,KAAG,IAAI,EAAC,CAAC,CAAC,EAAC,CAAC,GAAG,EAAC,GAAG,EAAC,KAAK,EAAC,KAAK,EAAE,KAAG,IAAI,EAClF,GAAG,KAAK,EAAC;IAAC,IAAI,EAAC,CAAC,CAAC,IAAI,EAAC,KAAK,KAAG,OAAO,CAAC,CAAC;IAAA,KAAK,EAAC,CAAC,GAAG,EAAC,GAAG,KAAG,IAAI,CAAA;CAAC,EAAE,GAAE,IAAI,CAWxF;AACD,cAAM,IAAI;CACT;AACD,OAAO,EAAC,KAAK,EAAC,IAAI,EAAC,UAAU,EAAC,UAAU,EAAC,YAAY,EAAC,CAAA"}
@@ -1,36 +0,0 @@
1
- function create_match(func, error) {
2
- return {
3
- func: func,
4
- error: error
5
- };
6
- }
7
- function root_match(tool, log, parser, ...match) {
8
- let matches = [];
9
- for (let i = 0; i < match.length; i++) {
10
- if (!match[i].func(tool))
11
- match[i].error(log);
12
- else {
13
- matches.push(tool.get());
14
- tool.flush();
15
- }
16
- }
17
- return parser(matches);
18
- }
19
- function list_match(tool, log, parser, v, ...match) {
20
- let matches = [];
21
- for (let i = 0; i < match.length; i++) {
22
- if (!match[i].func(tool))
23
- match[i].error(log);
24
- else {
25
- matches.push(tool.get());
26
- tool.flush();
27
- }
28
- }
29
- if (v)
30
- v(log, tool.get());
31
- return parser(matches);
32
- }
33
- class Tree {
34
- }
35
- export { Tree, list_match, root_match, create_match };
36
- //# sourceMappingURL=grammar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grammar.js","sourceRoot":"","sources":["../../../src/core/parser/grammar.ts"],"names":[],"mappings":"AAcA,SAAS,YAAY,CAAC,IAA0B,EAAC,KAAqB;IAElE,OAAO;QACH,IAAI,EAAC,IAAI;QACT,KAAK,EAAC,KAAK;KACd,CAAA;AACL,CAAC;AACD,SAAS,UAAU,CAAC,IAAU,EAAC,GAAO,EAAC,MAA8B,EAAC,GAAG,KAC5C;IACzB,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC5B,IAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACvC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC;AACD,SAAS,UAAU,CAAC,IAAU,EAAC,GAAO,EAAC,MAA8B,EAAC,CAAgC,EAClF,GAAG,KAA4D;IAC/E,IAAI,OAAO,GAAa,EAAE,CAAA;IAC1B,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;QAC5B,IAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;YAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;aACvC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;YACxB,IAAI,CAAC,KAAK,EAAE,CAAA;QAChB,CAAC;IACL,CAAC;IACD,IAAG,CAAC;QAAC,CAAC,CAAC,GAAG,EAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAA;IACtB,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AAC1B,CAAC;AACD,MAAM,IAAI;CACT;AACD,OAAO,EAAO,IAAI,EAAC,UAAU,EAAC,UAAU,EAAC,YAAY,EAAC,CAAA"}
@@ -1,13 +0,0 @@
1
- import { match_type, token, token_type, word } from './model';
2
- import { match } from './match';
3
- import segment from './segment';
4
- declare const _default: {
5
- segment: typeof segment;
6
- token: typeof token;
7
- token_type: typeof token_type;
8
- word: typeof word;
9
- match_type: typeof match_type;
10
- };
11
- export default _default;
12
- export { segment, token, token_type, word, match_type, match };
13
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/pre/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAC7B,OAAO,OAAO,MAAM,WAAW,CAAA;;;;;;;;AAE/B,wBAMC;AACD,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,CAAA"}
@@ -1,12 +0,0 @@
1
- import { match_type, token, token_type, word } from './model';
2
- import { match } from './match';
3
- import segment from './segment';
4
- export default {
5
- segment: segment,
6
- token: token,
7
- token_type: token_type,
8
- word: word,
9
- match_type: match_type
10
- };
11
- export { segment, token, token_type, word, match_type, match };
12
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/pre/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAC,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAC7B,OAAO,OAAO,MAAM,WAAW,CAAA;AAE/B,eAAe;IACX,OAAO,EAAC,OAAO;IACf,KAAK,EAAC,KAAK;IACX,UAAU,EAAC,UAAU;IACrB,IAAI,EAAC,IAAI;IACT,UAAU,EAAC,UAAU;CACxB,CAAA;AACD,OAAO,EAAC,OAAO,EAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAE,KAAK,EAAC,CAAA"}
@@ -1,12 +0,0 @@
1
- /**
2
- * 用于匹配string,identifier,number
3
- * 作者:白子煦
4
- * 最新修改:2026.4.4
5
- */
6
- import { match_type } from './model';
7
- export declare function match(code: string[], i: number, type: match_type): {
8
- i: number;
9
- v: string;
10
- o: boolean;
11
- };
12
- //# sourceMappingURL=match.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../src/core/pre/match.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,UAAU,EAAC,MAAM,SAAS,CAAA;AA0IlC,wBAAgB,KAAK,CAAC,IAAI,EAAC,MAAM,EAAE,EAAE,CAAC,EAAC,MAAM,EAAE,IAAI,EAAC,UAAU,GAAE;IAAC,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,OAAO,CAAA;CAAC,CAS5F"}
@@ -1,162 +0,0 @@
1
- /**
2
- * 用于匹配string,identifier,number
3
- * 作者:白子煦
4
- * 最新修改:2026.4.4
5
- */
6
- import { match_type } from './model';
7
- //索引,进制,是否成功
8
- //可以作为开头的
9
- const identifier_start = new Set([
10
- 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
11
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
12
- '_'
13
- ]);
14
- //可以作为内容的
15
- const identifier_content = new Set([
16
- 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
17
- 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
18
- '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
19
- '_', '$'
20
- ]);
21
- //字符串起始
22
- const str = new Set([
23
- '"', '\'', '`'
24
- ]);
25
- function match_string(code, start) {
26
- let i = start;
27
- let v = '';
28
- let o = false;
29
- let _s;
30
- if (str.has(code[i])) {
31
- _s = code[i];
32
- o = true;
33
- while (i < code.length) {
34
- if (code[i] == '\n') {
35
- i++;
36
- continue;
37
- }
38
- if (code[i] == '\\') {
39
- v += code[i];
40
- i++;
41
- if (i >= code.length)
42
- break;
43
- }
44
- v += code[i];
45
- if (code[i] == _s && i != start) {
46
- break;
47
- }
48
- i++;
49
- }
50
- i++;
51
- }
52
- return { i, v, o };
53
- }
54
- function match_identifier(code, start) {
55
- let i = start;
56
- let v = '';
57
- let o = false;
58
- if (identifier_start.has(code[i])) {
59
- o = true;
60
- v += code[i];
61
- i++;
62
- while (i < code.length) {
63
- if (code[i] == '\n')
64
- break;
65
- if (code[i] == ' ')
66
- break;
67
- if (!identifier_content.has(code[i]))
68
- break;
69
- v += code[i];
70
- i++;
71
- }
72
- i++;
73
- }
74
- return { i, v, o };
75
- }
76
- function match_number(code, start) {
77
- let i = start;
78
- let o = false;
79
- let v = '';
80
- if (code[i] == '0') {
81
- o = true;
82
- v += '0';
83
- var point = false;
84
- if (code[i + 1] == 'x' || code[i + 1] == 'X') {
85
- v += 'x';
86
- i += 2;
87
- while (i < code.length) {
88
- if (code[i] == ' ') {
89
- break;
90
- }
91
- if (!(code[i] >= '0' && code[i] <= '9' || code[i] >= 'a' && code[i] <= 'f' || code[i] >= 'A' && code[i] <= 'F'))
92
- break;
93
- v += code[i];
94
- i++;
95
- }
96
- }
97
- else if (code[i + 1] == 'b' || code[i + 1] == 'B') {
98
- v += 'b';
99
- i += 2;
100
- while (i < code.length) {
101
- if (code[i] == ' ') {
102
- break;
103
- }
104
- if (!(code[i] >= '0' && code[i] <= '1'))
105
- break;
106
- v += code[i];
107
- i++;
108
- }
109
- }
110
- else if (code[i + 1] == 'o' || code[i + 1] == 'O') {
111
- v += 'o';
112
- i += 2;
113
- while (i < code.length) {
114
- if (code[i] == ' ') {
115
- break;
116
- }
117
- if (!(code[i] >= '0' && code[i] <= '7'))
118
- break;
119
- v += code[i];
120
- i++;
121
- }
122
- }
123
- else {
124
- o = true;
125
- i++;
126
- v = '0';
127
- }
128
- }
129
- else if (code[i] >= '1' && code[i] <= '9') {
130
- o = true;
131
- while (i < code.length) {
132
- if (code[i] == ' ')
133
- break;
134
- if (!(code[i] >= '0' && code[i] <= '9' || code[i] == '.')) {
135
- if (v[v.length - 1] == '.') {
136
- v = v.substring(0, v.length - 1);
137
- i--;
138
- }
139
- break;
140
- }
141
- if (code[i] == '.') {
142
- if (point)
143
- break;
144
- point = true;
145
- }
146
- v += code[i];
147
- i++;
148
- }
149
- }
150
- return { i, v, o };
151
- }
152
- export function match(code, i, type) {
153
- switch (type) {
154
- case match_type.string:
155
- return match_string(code, i);
156
- case match_type.identifier:
157
- return match_identifier(code, i);
158
- case match_type.number:
159
- return match_number(code, i);
160
- }
161
- }
162
- //# sourceMappingURL=match.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match.js","sourceRoot":"","sources":["../../../src/core/pre/match.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- declare enum token_type {
2
- identifier = 0,
3
- keyword = 1,
4
- space = 2,
5
- number = 3,
6
- string = 4,
7
- unknow = 5
8
- }
9
- declare enum match_type {
10
- number = 0,
11
- string = 1,
12
- identifier = 2
13
- }
14
- declare class word {
15
- name: string;
16
- constructor(name: string);
17
- }
18
- declare class token {
19
- name: string;
20
- type: token_type;
21
- line: string;
22
- constructor(name: string, type: token_type, line: string);
23
- }
24
- export { token, token_type, word, match_type };
25
- //# sourceMappingURL=model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../src/core/pre/model.ts"],"names":[],"mappings":"AAAA,aAAK,UAAU;IACX,UAAU,IAAA;IACV,OAAO,IAAA;IACP,KAAK,IAAA;IACL,MAAM,IAAA;IACN,MAAM,IAAA;IACN,MAAM,IAAA;CACT;AACD,aAAK,UAAU;IACX,MAAM,IAAA;IACN,MAAM,IAAA;IACN,UAAU,IAAA;CACb;AACD,cAAM,IAAI;IACC,IAAI,EAAC,MAAM,CAAA;gBACN,IAAI,EAAC,MAAM;CAG1B;AACD,cAAM,KAAK;IACA,IAAI,EAAC,MAAM,CAAA;IACX,IAAI,EAAC,UAAU,CAAA;IACf,IAAI,EAAC,MAAM,CAAA;gBACN,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,UAAU,EAAC,IAAI,EAAC,MAAM;CAKtD;AACD,OAAO,EAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,CAAA"}
@@ -1,29 +0,0 @@
1
- var token_type;
2
- (function (token_type) {
3
- token_type[token_type["identifier"] = 0] = "identifier";
4
- token_type[token_type["keyword"] = 1] = "keyword";
5
- token_type[token_type["space"] = 2] = "space";
6
- token_type[token_type["number"] = 3] = "number";
7
- token_type[token_type["string"] = 4] = "string";
8
- token_type[token_type["unknow"] = 5] = "unknow";
9
- })(token_type || (token_type = {}));
10
- var match_type;
11
- (function (match_type) {
12
- match_type[match_type["number"] = 0] = "number";
13
- match_type[match_type["string"] = 1] = "string";
14
- match_type[match_type["identifier"] = 2] = "identifier";
15
- })(match_type || (match_type = {}));
16
- class word {
17
- constructor(name) {
18
- this.name = name;
19
- }
20
- }
21
- class token {
22
- constructor(name, type, line) {
23
- this.name = name;
24
- this.type = type;
25
- this.line = line;
26
- }
27
- }
28
- export { token, token_type, word, match_type };
29
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../../src/core/pre/model.ts"],"names":[],"mappings":"AAAA,IAAK,UAOJ;AAPD,WAAK,UAAU;IACX,uDAAU,CAAA;IACV,iDAAO,CAAA;IACP,6CAAK,CAAA;IACL,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,+CAAM,CAAA;AACV,CAAC,EAPI,UAAU,KAAV,UAAU,QAOd;AACD,IAAK,UAIJ;AAJD,WAAK,UAAU;IACX,+CAAM,CAAA;IACN,+CAAM,CAAA;IACN,uDAAU,CAAA;AACd,CAAC,EAJI,UAAU,KAAV,UAAU,QAId;AACD,MAAM,IAAI;IAEN,YAAY,IAAW;QACnB,IAAI,CAAC,IAAI,GAAC,IAAI,CAAA;IAClB,CAAC;CACJ;AACD,MAAM,KAAK;IAIP,YAAY,IAAW,EAAC,IAAe,EAAC,IAAW;QAC/C,IAAI,CAAC,IAAI,GAAC,IAAI,CAAA;QACd,IAAI,CAAC,IAAI,GAAC,IAAI,CAAA;QACd,IAAI,CAAC,IAAI,GAAC,IAAI,CAAA;IAClB,CAAC;CACJ;AACD,OAAO,EAAC,KAAK,EAAC,UAAU,EAAC,IAAI,EAAC,UAAU,EAAC,CAAA"}
@@ -1,22 +0,0 @@
1
- /**
2
- * 进行预分词
3
- * 之后会被进一步加工成可用token
4
- */
5
- import { token, word } from './model';
6
- declare class segment {
7
- code: string[];
8
- words: word[];
9
- index: number;
10
- line: number;
11
- ret: token[];
12
- private line_code;
13
- constructor(code: string, words: word[]);
14
- lines(): string;
15
- segment(): token[];
16
- is(i: number): boolean;
17
- match_comment(): boolean;
18
- match_other(): boolean;
19
- match(w: word): boolean;
20
- }
21
- export default segment;
22
- //# sourceMappingURL=segment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/core/pre/segment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAa,KAAK,EAAc,IAAI,EAAC,MAAM,SAAS,CAAA;AAG3D,cAAM,OAAO;IACF,IAAI,EAAC,MAAM,EAAE,CAAA;IACb,KAAK,EAAC,IAAI,EAAE,CAAA;IACZ,KAAK,EAAC,MAAM,CAAA;IACZ,IAAI,EAAC,MAAM,CAAA;IACX,GAAG,EAAC,KAAK,EAAE,CAAA;IAClB,OAAO,CAAC,SAAS,CAAS;gBACd,IAAI,EAAC,MAAM,EAAC,KAAK,EAAC,IAAI,EAAE;IAWpC,KAAK,IAAG,MAAM;IAGd,OAAO,IAAG,KAAK,EAAE;IAyDjB,EAAE,CAAC,CAAC,EAAC,MAAM;IAGX,aAAa,IAAG,OAAO;IA2BvB,WAAW,IAAG,OAAO;IAcrB,KAAK,CAAC,CAAC,EAAC,IAAI,GAAE,OAAO;CASxB;AACD,eAAe,OAAO,CAAA"}
@@ -1,141 +0,0 @@
1
- /**
2
- * 进行预分词
3
- * 之后会被进一步加工成可用token
4
- */
5
- import { match_type, token, token_type } from './model';
6
- import { match } from './match';
7
- class segment {
8
- constructor(code, words) {
9
- code = code.replace(/\r\n/g, '\n');
10
- //将words降序排序
11
- words.sort((a, b) => {
12
- return b.name.length - a.name.length;
13
- });
14
- this.code = [...code];
15
- this.words = words;
16
- this.line = 1;
17
- this.line_code = code.replace(/\r\n/g, '\n').split('\n');
18
- }
19
- lines() {
20
- return this.line_code[this.line - 1] + ': line ' + (this.line - 1);
21
- }
22
- segment() {
23
- this.ret = [];
24
- this.index = 0;
25
- this.line = 1;
26
- while (this.is(this.index)) {
27
- if (this.code[this.index] == '\n') {
28
- this.index++;
29
- this.line++;
30
- continue;
31
- }
32
- if (this.code[this.index] == ' ' || this.code[this.index] == '\t') {
33
- this.ret.push(new token(' ', token_type.space, this.lines()));
34
- while (this.is(this.index)) {
35
- if (this.code[this.index] == '\n') {
36
- this.index++;
37
- this.line++;
38
- continue;
39
- }
40
- if (!((this.code[this.index] == ' ' || this.code[this.index] == '\t')))
41
- break;
42
- this.index++;
43
- }
44
- continue;
45
- }
46
- //注释
47
- if (this.match_comment())
48
- continue;
49
- //数字字符串
50
- if (this.match_other())
51
- continue;
52
- var word_match = false;
53
- for (let i = 0; i < this.words.length; i++) {
54
- if (!this.match(this.words[i]))
55
- continue;
56
- var a = match(this.code, this.index, match_type.identifier);
57
- if (a.o && a.v != this.words[i].name) {
58
- console.log(a);
59
- this.index = a.i;
60
- this.ret.push(new token(a.v, token_type.identifier, this.lines()));
61
- break;
62
- }
63
- this.ret.push(new token(this.words[i].name, token_type.keyword, this.lines()));
64
- this.index += this.words[i].name.length;
65
- word_match = true;
66
- break;
67
- }
68
- //标识符
69
- if (!word_match) {
70
- if (match(this.code, this.index, match_type.identifier).o) {
71
- var a = match(this.code, this.index, match_type.identifier);
72
- this.index = a.i - 1;
73
- this.ret.push(new token(a.v, token_type.identifier, this.lines()));
74
- }
75
- else {
76
- this.ret.push(new token(this.code[this.index], token_type.unknow, this.lines()));
77
- this.index++;
78
- }
79
- }
80
- }
81
- return this.ret.filter((v) => v.type != token_type.space);
82
- }
83
- is(i) {
84
- return i >= 0 && i < this.code.length;
85
- }
86
- match_comment() {
87
- if (this.code[this.index] == '/') {
88
- if (this.code[this.index + 1] == '/') {
89
- this.index += 2;
90
- while (this.is(this.index)) {
91
- if (this.code[this.index] == '\n') {
92
- this.index++;
93
- this.line++;
94
- break;
95
- }
96
- this.index++;
97
- }
98
- return true;
99
- }
100
- else if (this.code[this.index + 1] == '*') {
101
- this.index += 2;
102
- while (this.is(this.index)) {
103
- if (this.code[this.index] == '*' && this.is(this.index + 1) && this.code[this.index + 1] == '/') {
104
- this.index += 2;
105
- break;
106
- }
107
- this.index++;
108
- }
109
- return true;
110
- }
111
- }
112
- return false;
113
- }
114
- match_other() {
115
- var a = match(this.code, this.index, match_type.string);
116
- if (match(this.code, this.index, match_type.string).o) {
117
- this.ret.push(new token(a.v, token_type.string, this.lines()));
118
- this.index = a.i;
119
- return true;
120
- }
121
- else if (match(this.code, this.index, match_type.number).o) {
122
- a = match(this.code, this.index, match_type.number);
123
- this.ret.push(new token(a.v, token_type.number, this.lines()));
124
- this.index = a.i;
125
- return true;
126
- }
127
- return false;
128
- }
129
- match(w) {
130
- if (this.is(this.index + w.name.length - 1)) {
131
- for (let i = 0; i < w.name.length; i++) {
132
- if (this.code[this.index + i] != w.name[i])
133
- return false;
134
- }
135
- return true;
136
- }
137
- return false;
138
- }
139
- }
140
- export default segment;
141
- //# sourceMappingURL=segment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"segment.js","sourceRoot":"","sources":["../../../src/core/pre/segment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAC,UAAU,EAAE,KAAK,EAAE,UAAU,EAAO,MAAM,SAAS,CAAA;AAC3D,OAAO,EAAC,KAAK,EAAC,MAAM,SAAS,CAAA;AAE7B,MAAM,OAAO;IAOT,YAAY,IAAW,EAAC,KAAY;QAChC,IAAI,GAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAC,IAAI,CAAC,CAAA;QAC/B,YAAY;QACZ,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,EAAE;YACd,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;QACtC,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,GAAC,CAAC,GAAG,IAAI,CAAC,CAAA;QACnB,IAAI,CAAC,KAAK,GAAC,KAAK,CAAA;QAChB,IAAI,CAAC,IAAI,GAAC,CAAC,CAAA;QACX,IAAI,CAAC,SAAS,GAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACzD,CAAC;IACD,KAAK;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,GAAC,SAAS,GAAC,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,CAAA;IAC9D,CAAC;IACD,OAAO;QACH,IAAI,CAAC,GAAG,GAAC,EAAE,CAAA;QACX,IAAI,CAAC,KAAK,GAAC,CAAC,CAAA;QACZ,IAAI,CAAC,IAAI,GAAC,CAAC,CAAA;QACX,OAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC;YACvB,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,EAAC,CAAC;gBAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;gBACZ,IAAI,CAAC,IAAI,EAAE,CAAA;gBACX,SAAQ;YACZ,CAAC;YACD,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,EAAC,CAAC;gBAC1D,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,EAAC,UAAU,CAAC,KAAK,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC3D,OAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC;oBACvB,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,EAAC,CAAC;wBAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;wBACZ,IAAI,CAAC,IAAI,EAAE,CAAA;wBACX,SAAQ;oBACZ,CAAC;oBACD,IAAG,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,GAAG,IAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,CAAC,CAAC;wBAC1D,MAAK;oBACV,IAAI,CAAC,KAAK,EAAE,CAAA;gBAChB,CAAC;gBACD,SAAQ;YACZ,CAAC;YACD,IAAI;YACJ,IAAG,IAAI,CAAC,aAAa,EAAE;gBAAE,SAAQ;YACjC,OAAO;YACP,IAAG,IAAI,CAAC,WAAW,EAAE;gBAAE,SAAQ;YAC/B,IAAI,UAAU,GAAC,KAAK,CAAA;YACpB,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;gBACjC,IAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;oBAAC,SAAQ;gBACtC,IAAI,CAAC,GAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,EAAC,UAAU,CAAC,UAAU,CAAC,CAAA;gBACvD,IAAG,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,CAAC;oBAC7B,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;oBACd,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAA;oBACd,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,UAAU,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;oBAChE,MAAK;gBACT,CAAC;gBACD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAC,UAAU,CAAC,OAAO,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBAC5E,IAAI,CAAC,KAAK,IAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;gBACrC,UAAU,GAAC,IAAI,CAAA;gBACf,MAAK;YACT,CAAC;YACD,KAAK;YACL,IAAG,CAAC,UAAU,EAAC,CAAC;gBACZ,IAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,EAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,EAAC,CAAC;oBACpD,IAAI,CAAC,GAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,EAAC,UAAU,CAAC,UAAU,CAAC,CAAA;oBACvD,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,GAAC,CAAC,CAAA;oBAChB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,UAAU,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;gBACpE,CAAC;qBAAI,CAAC;oBACF,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,UAAU,CAAC,MAAM,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;oBAC9E,IAAI,CAAC,KAAK,EAAE,CAAA;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,EAAE,CAAA,CAAC,CAAC,IAAI,IAAE,UAAU,CAAC,KAAK,CAAC,CAAA;IACzD,CAAC;IACD,EAAE,CAAC,CAAQ;QACP,OAAO,CAAC,IAAE,CAAC,IAAE,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAA;IACnC,CAAC;IACD,aAAa;QACT,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,GAAG,EAAC,CAAC;YAC3B,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,IAAE,GAAG,EAAC,CAAC;gBAC7B,IAAI,CAAC,KAAK,IAAE,CAAC,CAAA;gBACb,OAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC;oBACvB,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,IAAI,EAAC,CAAC;wBAC5B,IAAI,CAAC,KAAK,EAAE,CAAA;wBACZ,IAAI,CAAC,IAAI,EAAE,CAAA;wBACX,MAAK;oBACT,CAAC;oBACD,IAAI,CAAC,KAAK,EAAE,CAAA;gBAChB,CAAC;gBACD,OAAO,IAAI,CAAA;YACf,CAAC;iBAAK,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,IAAE,GAAG,EAAC,CAAC;gBACnC,IAAI,CAAC,KAAK,IAAE,CAAC,CAAA;gBACb,OAAM,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAC,CAAC;oBACvB,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAE,GAAG,IAAE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,IAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,IAAE,GAAG,EAAC,CAAC;wBAChF,IAAI,CAAC,KAAK,IAAE,CAAC,CAAA;wBACb,MAAK;oBACT,CAAC;oBACD,IAAI,CAAC,KAAK,EAAE,CAAA;gBAChB,CAAC;gBACD,OAAO,IAAI,CAAA;YACf,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,WAAW;QACP,IAAI,CAAC,GAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,EAAC,UAAU,CAAC,MAAM,CAAC,CAAA;QACnD,IAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;YAChD,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,MAAM,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC5D,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAA;YACd,OAAO,IAAI,CAAA;QACf,CAAC;aAAK,IAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,EAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC;YACtD,CAAC,GAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAC,IAAI,CAAC,KAAK,EAAC,UAAU,CAAC,MAAM,CAAC,CAAA;YAC/C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,EAAC,UAAU,CAAC,MAAM,EAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YAC5D,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,CAAC,CAAA;YACd,OAAO,IAAI,CAAA;QACf,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IACD,KAAK,CAAC,CAAM;QACR,IAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAC,CAAC,CAAC,EAAC,CAAC;YACpC,KAAI,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAC,CAAC,EAAE,EAAC,CAAC;gBAC7B,IAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAC,CAAC,CAAC,IAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;oBAAE,OAAO,KAAK,CAAA;YACvD,CAAC;YACD,OAAO,IAAI,CAAA;QACf,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;CACJ;AACD,eAAe,OAAO,CAAA"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/core/test.ts"],"names":[],"mappings":""}
package/dist/core/test.js DELETED
@@ -1,11 +0,0 @@
1
- import { segment, word } from './pre';
2
- /**
3
- * 测试用
4
- */
5
- let a = [
6
- new word(';'),
7
- new word('if'),
8
- new word('else if')
9
- ];
10
- console.log(new segment("ifif 0x1234 123", a).segment());
11
- //# sourceMappingURL=test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/core/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,IAAI,EAAC,MAAM,OAAO,CAAA;AAEnC;;GAEG;AACH,IAAI,CAAC,GAAQ;IACT,IAAI,IAAI,CAAC,GAAG,CAAC;IACb,IAAI,IAAI,CAAC,IAAI,CAAC;IACd,IAAI,IAAI,CAAC,SAAS,CAAC;CACtB,CAAA;AACD,OAAO,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,kBAAkB,EAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA"}
package/dist/index.d.ts DELETED
@@ -1,5 +0,0 @@
1
- import { Tree, grammar, tools } from './core/parser/grammar';
2
- import { token, token_type, word, segment } from './core/pre';
3
- import { log } from './base/log';
4
- export { Tree, grammar, tools, token, token_type, word, segment, log };
5
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAC,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAc,OAAO,EAAQ,MAAM,YAAY,CAAA;AAC9E,OAAO,EAAC,GAAG,EAAC,MAAM,YAAY,CAAA;AAC9B,OAAO,EACH,IAAI,EACJ,OAAO,EACP,KAAK,EACL,KAAK,EACL,UAAU,EACV,IAAI,EACJ,OAAO,EACP,GAAG,EACN,CAAA"}
package/dist/index.js DELETED
@@ -1,4 +0,0 @@
1
- import { Tree } from './core/parser/grammar';
2
- import { token, token_type, word, segment } from './core/pre';
3
- export { Tree, token, token_type, word, segment };
4
- //# sourceMappingURL=index.js.map
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,IAAI,EAAiB,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAc,OAAO,EAAQ,MAAM,YAAY,CAAA;AAE9E,OAAO,EACH,IAAI,EAGJ,KAAK,EACL,UAAU,EACV,IAAI,EACJ,OAAO,EAEV,CAAA"}
package/index.js DELETED
@@ -1,16 +0,0 @@
1
- import {list_match,create_match,root_match, tools, Tree} from './dist/core/parser/grammar'
2
- import {segment, token, token_type, word} from './dist/core/pre'
3
- import {log} from './dist/base/log'
4
-
5
- export {
6
- Tree,
7
- list_match,
8
- create_match,
9
- root_match,
10
- tools,
11
- token,
12
- token_type,
13
- word,
14
- segment,
15
- log
16
- }