@@ -18,7 +18,7 @@ config-strict := Trueu8;
18
18
config-preprocess := Trueu8;
19
19
config-target := 'tmp.s_s;
20
20
21
- type CompileMode ModeTokenize | ModeParse | ModeTypecheck | ModeCompile;
21
+ type CompileMode ModeTokenize | ModeParse | ModePreprocess | ModeTypecheck | ModeCompile;
22
22
config-mode := (: ModeCompile CompileMode);
23
23
24
24
main := λ(: argc U64)(: argv U8[][]).(tail(
@@ -29,6 +29,7 @@ main := λ(: argc U64)(: argv U8[][]).(tail(
29
29
()
30
30
('--tokenize_s (set config-mode ModeTokenize))
31
31
('--parse_s (set config-mode ModeParse))
32
+ ('--preprocess_s (set config-mode ModePreprocess))
32
33
('--typecheck_s (set config-mode ModeTypecheck))
33
34
('--compile_s (set config-mode ModeCompile))
34
35
('--strict_s (set config-strict Trueu8))
@@ -58,10 +59,9 @@ main := λ(: argc U64)(: argv U8[][]).(tail(
58
59
(while (==( continue Trueu8 )) (match input (
59
60
()
60
61
( SNil (set continue Falseu8) )
61
- ( (SCons( SNil rst )) (set input rst) )
62
- ( (SCons( l rst )) (tail( (print l) (set input rst) )) )
63
- ( (SCons( (SAtom( fp )) rst )) (tail( (cli-intake fp) (set input rst) )))
64
- ( (SAtom( fp )) (tail( (cli-intake fp) (set continue False) )))
62
+ ( (SCons( rst SNil )) (set input rst) )
63
+ ( (SCons( rst (SAtom( fp )) )) (tail( (cli-intake fp) (set input rst) )))
64
+ ( (SAtom( fp )) (tail( (cli-intake fp) (set continue Falseu8) )))
65
65
)))
66
66
67
67
@@ -88,7 +88,33 @@ main := λ(: argc U64)(: argv U8[][]).(tail(
88
88
));
89
89
90
90
cli-intake := λ(: fp U8[]) . (: (tail(
91
- (print 'Intake:\s_s)
92
- (print fp)
93
- (print '\n_s)
91
+ (match config-mode (
92
+ ()
93
+ (ModeTokenize (tail(
94
+ (print 'Tokenize:\s_s)
95
+ (print fp)
96
+ (print '\n_s)
97
+ )))
98
+ (ModeParse (tail(
99
+ (print 'Parse:\s_s)
100
+ (print fp)
101
+ (print '\n_s)
102
+ )))
103
+ (ModePreprocess (tail(
104
+ (print 'Preprocess:\s_s)
105
+ (print fp)
106
+ (print '\n_s)
107
+ )))
108
+ (ModeTypecheck (tail(
109
+ (print 'Typecheck:\s_s)
110
+ (print fp)
111
+ (print '\n_s)
112
+ )))
113
+ (ModeCompile (tail(
114
+ (print 'Compile:\s_s)
115
+ (print fp)
116
+ (print '\n_s)
117
+ )))
118
+ ))
119
+ ()
94
120
)) Nil);
0 commit comments