11mod lexericals;
2+ mod parsers;
23mod repl;
34use std:: io;
45
@@ -12,10 +13,8 @@ fn main() {
1213 println ! ( "press ctrl+c to exit the terminal" ) ;
1314 start ( io:: stdin ( ) , io:: stdout ( ) ) ;
1415 //print_tokens();
15-
1616}
1717
18-
1918fn print_tokens ( ) {
2019 let mut lexer = Lexer :: new ( read_input ( ) ) ;
2120 let runer = expected_token ( ) ;
@@ -34,7 +33,6 @@ fn print_tokens() {
3433 }
3534}
3635
37-
3836fn read_input ( ) -> & ' static str {
3937 let input = r#"
4038 let five = 5000000;
@@ -50,57 +48,54 @@ fn read_input() -> &'static str {
5048 input
5149}
5250fn expected_token ( ) -> Vec < Token > {
53-
54- let expect_tokens = vec ! [
55- Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
56- Token :: new( Tokenkind :: Ident , String :: from( "five" ) ) ,
57- Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
58- Token :: new( Tokenkind :: Int , String :: from( "5000000" ) ) ,
59- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
60- Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
61- Token :: new( Tokenkind :: Ident , String :: from( "floattest" ) ) ,
62- Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
63- Token :: new( Tokenkind :: Float , String :: from( "5.0" ) ) ,
64- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
65- Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
66- Token :: new( Tokenkind :: Ident , String :: from( "ten" ) ) ,
67- Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
68- Token :: new( Tokenkind :: Int , String :: from( "10" ) ) ,
69- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
70- Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
71- Token :: new( Tokenkind :: Ident , String :: from( "add" ) ) ,
72- Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
73- Token :: new( Tokenkind :: Function , String :: from( "fn" ) ) ,
74- Token :: new( Tokenkind :: Lparen , String :: from( "(" ) ) ,
75- Token :: new( Tokenkind :: Ident , String :: from( "x" ) ) ,
76- Token :: new( Tokenkind :: Comma , String :: from( "," ) ) ,
77- Token :: new( Tokenkind :: Ident , String :: from( "y" ) ) ,
78- Token :: new( Tokenkind :: Rparen , String :: from( ")" ) ) ,
79- Token :: new( Tokenkind :: Lbrace , String :: from( "{" ) ) ,
80- Token :: new( Tokenkind :: Ident , String :: from( "x" ) ) ,
81- Token :: new( Tokenkind :: Plus , String :: from( "+" ) ) ,
82- Token :: new( Tokenkind :: Ident , String :: from( "y" ) ) ,
83- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
84- Token :: new( Tokenkind :: Rbrace , String :: from( "}" ) ) ,
85- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
86- Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
87- Token :: new( Tokenkind :: Ident , String :: from( "result" ) ) ,
88- Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
89- Token :: new( Tokenkind :: Ident , String :: from( "add" ) ) ,
90- Token :: new( Tokenkind :: Lparen , String :: from( "(" ) ) ,
91- Token :: new( Tokenkind :: Ident , String :: from( "five" ) ) ,
92- Token :: new( Tokenkind :: Comma , String :: from( "," ) ) ,
93- Token :: new( Tokenkind :: Ident , String :: from( "ten" ) ) ,
94- Token :: new( Tokenkind :: Rparen , String :: from( ")" ) ) ,
95- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
96- Token :: new( Tokenkind :: Eq , String :: from( "==" ) ) ,
97- Token :: new( Tokenkind :: Bool , String :: from( "True" ) ) ,
98- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
99- Token :: new( Tokenkind :: Bool , String :: from( "False" ) ) ,
100- Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
101- Token :: new( Tokenkind :: Eof , String :: new( ) ) ,
102- ] ;
51+ let expect_tokens = vec ! [
52+ Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
53+ Token :: new( Tokenkind :: Ident , String :: from( "five" ) ) ,
54+ Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
55+ Token :: new( Tokenkind :: Int , String :: from( "5000000" ) ) ,
56+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
57+ Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
58+ Token :: new( Tokenkind :: Ident , String :: from( "floattest" ) ) ,
59+ Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
60+ Token :: new( Tokenkind :: Float , String :: from( "5.0" ) ) ,
61+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
62+ Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
63+ Token :: new( Tokenkind :: Ident , String :: from( "ten" ) ) ,
64+ Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
65+ Token :: new( Tokenkind :: Int , String :: from( "10" ) ) ,
66+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
67+ Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
68+ Token :: new( Tokenkind :: Ident , String :: from( "add" ) ) ,
69+ Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
70+ Token :: new( Tokenkind :: Function , String :: from( "fn" ) ) ,
71+ Token :: new( Tokenkind :: Lparen , String :: from( "(" ) ) ,
72+ Token :: new( Tokenkind :: Ident , String :: from( "x" ) ) ,
73+ Token :: new( Tokenkind :: Comma , String :: from( "," ) ) ,
74+ Token :: new( Tokenkind :: Ident , String :: from( "y" ) ) ,
75+ Token :: new( Tokenkind :: Rparen , String :: from( ")" ) ) ,
76+ Token :: new( Tokenkind :: Lbrace , String :: from( "{" ) ) ,
77+ Token :: new( Tokenkind :: Ident , String :: from( "x" ) ) ,
78+ Token :: new( Tokenkind :: Plus , String :: from( "+" ) ) ,
79+ Token :: new( Tokenkind :: Ident , String :: from( "y" ) ) ,
80+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
81+ Token :: new( Tokenkind :: Rbrace , String :: from( "}" ) ) ,
82+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
83+ Token :: new( Tokenkind :: Let , String :: from( "let" ) ) ,
84+ Token :: new( Tokenkind :: Ident , String :: from( "result" ) ) ,
85+ Token :: new( Tokenkind :: Assign , String :: from( "=" ) ) ,
86+ Token :: new( Tokenkind :: Ident , String :: from( "add" ) ) ,
87+ Token :: new( Tokenkind :: Lparen , String :: from( "(" ) ) ,
88+ Token :: new( Tokenkind :: Ident , String :: from( "five" ) ) ,
89+ Token :: new( Tokenkind :: Comma , String :: from( "," ) ) ,
90+ Token :: new( Tokenkind :: Ident , String :: from( "ten" ) ) ,
91+ Token :: new( Tokenkind :: Rparen , String :: from( ")" ) ) ,
92+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
93+ Token :: new( Tokenkind :: Eq , String :: from( "==" ) ) ,
94+ Token :: new( Tokenkind :: Bool , String :: from( "True" ) ) ,
95+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
96+ Token :: new( Tokenkind :: Bool , String :: from( "False" ) ) ,
97+ Token :: new( Tokenkind :: Semicolon , String :: from( ";" ) ) ,
98+ Token :: new( Tokenkind :: Eof , String :: new( ) ) ,
99+ ] ;
103100 expect_tokens
104101}
105-
106-
0 commit comments