@@ -24,7 +24,6 @@ import {
24
24
SimpleHeadedWordUnit ,
25
25
SimpleWordUnit ,
26
26
} from "./ast.ts" ;
27
- import { cache } from "./cache.ts" ;
28
27
import { everyWordUnitInSentence } from "./extract.ts" ;
29
28
import {
30
29
CLAUSE_RULE ,
@@ -59,11 +58,10 @@ import {
59
58
UnrecognizedError ,
60
59
} from "./parser_lib.ts" ;
61
60
import { describe , Token } from "./token.ts" ;
61
+ import { lazy as lazyEval } from "../../misc/misc.ts" ;
62
62
63
63
const spaces = match ( / \s * / , "spaces" ) ;
64
64
65
- Parser . startCache ( cache ) ;
66
-
67
65
const specificToken = memoize (
68
66
< T extends Token [ "type" ] > ( type : T ) : Parser < Token & { type : T } > =>
69
67
token . map ( ( token ) =>
@@ -219,7 +217,7 @@ function optionalCombined(
219
217
) ;
220
218
}
221
219
const number = manyAtLeastOnce ( wordFrom ( numeralSet , "numeral" ) ) ;
222
- const phrase : Parser < Phrase > = lazy ( ( ) =>
220
+ const phrase : Parser < Phrase > = lazy ( lazyEval ( ( ) =>
223
221
choice < Phrase > (
224
222
sequence (
225
223
number ,
@@ -273,7 +271,7 @@ const phrase: Parser<Phrase> = lazy(() =>
273
271
} ) ) ,
274
272
)
275
273
. filter ( filter ( PHRASE_RULE ) )
276
- ) ;
274
+ ) ) ;
277
275
const nanpa = sequence ( wordUnit ( new Set ( [ "nanpa" ] ) , '"nanpa"' ) , phrase )
278
276
. map ( ( [ nanpa , phrase ] ) => ( { nanpa, phrase } ) )
279
277
. filter ( filter ( NANPA_RULES ) ) ;
@@ -723,6 +721,4 @@ export const parse = spaces
723
721
. filter ( filter ( MULTIPLE_SENTENCES_RULE ) )
724
722
. map ( ( sentences ) => ( { type : "sentences" , sentences } ) ) ,
725
723
) )
726
- . parser ( ) ;
727
-
728
- Parser . endCache ( ) ;
724
+ . generateParser ( ) ;
0 commit comments