@@ -28,15 +28,30 @@ function assert_node_type(node, type) {
2828}
2929
3030function assert_range ( range , begin_pos , end_pos ) {
31- assert ( range instanceof Range , `can't assert begin_pos/end_pos of null range ` )
31+ assert ( range instanceof Range , `expected ${ range } to be an instance of Range ` )
3232 assert ( range . begin_pos === begin_pos , `expected 'begin_pos' of range to be ${ begin_pos } , got ${ range . begin_pos } ` )
3333 assert ( range . end_pos === end_pos , `expected 'end_pos' of range to be ${ end_pos } , got ${ range . end_pos } ` )
3434}
3535
36+ function assert_token ( token , name , value , loc ) {
37+ assert ( token instanceof Token , `expected ${ token } to be an instance of Token` )
38+ assert ( token . name == name , `expected token's name to be ${ name } , got ${ token . name } ` )
39+ assert ( token . value == value , `expected token's value to be ${ value } , got ${ token . value } ` )
40+ assert ( token . loc . begin == loc . begin , `expected token's begin to be ${ loc . begin } , got ${ token . loc . begin } ` )
41+ assert ( token . loc . end == loc . end , `expected token's end to be ${ loc . end } , got ${ token . loc . end } ` )
42+ }
43+
3644assert_throws ( 42 )
3745assert_throws ( "foo" , 10 )
3846
39- let result = parse ( "self.foo(123)" )
47+ let result = parse (
48+ "self.foo(123)" ,
49+ {
50+ record_tokens : true ,
51+ debug : true ,
52+ buffer_name : "(test)"
53+ }
54+ )
4055console . log ( inspect ( result , { showHidden : false , depth : null } ) ) ;
4156
4257assert ( result !== null , "expected result to be non-null" )
@@ -66,24 +81,14 @@ assert(arg.value === "123")
6681assert ( arg . operator_l === null )
6782assert_range ( arg . expression_l , 9 , 12 )
6883
69- let expected_tokens = [
70- new Token ( "kSELF" , "self" , new Loc ( 0 , 4 ) ) ,
71- new Token ( "tDOT" , "." , new Loc ( 4 , 5 ) ) ,
72- new Token ( "tIDENTIFIER" , "foo" , new Loc ( 5 , 8 ) ) ,
73- new Token ( "tLPAREN2" , "(" , new Loc ( 8 , 9 ) ) ,
74- new Token ( "tINTEGER" , "123" , new Loc ( 9 , 12 ) ) ,
75- new Token ( "tRPAREN" , ")" , new Loc ( 12 , 13 ) ) ,
76- new Token ( "EOF" , "" , new Loc ( 13 , 13 ) ) ,
77- ]
78-
79- assert ( tokens . length == expected_tokens . length )
80-
81- for ( let i = 0 ; i < tokens . length ; i ++ ) {
82- assert ( tokens [ i ] . name == expected_tokens [ i ] . name )
83- assert ( tokens [ i ] . value == expected_tokens [ i ] . value )
84- assert ( tokens [ i ] . loc . begin == expected_tokens [ i ] . loc . begin )
85- assert ( tokens [ i ] . loc . end == expected_tokens [ i ] . loc . end )
86- }
84+ assert ( tokens . length == 7 )
85+ assert_token ( tokens [ 0 ] , "kSELF" , "self" , new Loc ( 0 , 4 ) )
86+ assert_token ( tokens [ 1 ] , "tDOT" , "." , new Loc ( 4 , 5 ) )
87+ assert_token ( tokens [ 2 ] , "tIDENTIFIER" , "foo" , new Loc ( 5 , 8 ) )
88+ assert_token ( tokens [ 3 ] , "tLPAREN2" , "(" , new Loc ( 8 , 9 ) )
89+ assert_token ( tokens [ 4 ] , "tINTEGER" , "123" , new Loc ( 9 , 12 ) )
90+ assert_token ( tokens [ 5 ] , "tRPAREN" , ")" , new Loc ( 12 , 13 ) )
91+ assert_token ( tokens [ 6 ] , "EOF" , "" , new Loc ( 13 , 13 ) )
8792
8893assert ( diagnostics . length === 0 )
8994assert ( comments . length === 0 )
0 commit comments