44
55from pylasu .model import Point
66from pylasu .parsing .parse_tree import ParseTreeOrigin , generate_nodes_classes_for_parser
7+ from tests .antlr_script .AntlrScriptLexer import AntlrScriptLexer
8+ from tests .antlr_script .AntlrScriptParser import AntlrScriptParser
79from tests .simple_lang .SimpleLangLexer import SimpleLangLexer
810from tests .simple_lang .SimpleLangParser import SimpleLangParser
911
@@ -19,6 +21,17 @@ def test_parse_tree_origin(self):
1921 self .assertEqual (position .start , Point (1 , 0 ))
2022 self .assertEqual (position .end , Point (2 , 2 ))
2123
24+ def test_empty_parse_tree_position (self ):
25+ lexer = AntlrScriptLexer (InputStream ("" ))
26+ parser = AntlrScriptParser (CommonTokenStream (lexer ))
27+ parse_tree = parser .script ()
28+ self .assertIsNone (parse_tree .stop )
29+ origin = ParseTreeOrigin (parse_tree )
30+ position = origin .position
31+ self .assertIsNotNone (position )
32+ self .assertEqual (position .start , Point (1 , 0 ))
33+ self .assertEqual (position .end , Point (1 , 0 ))
34+
2235 def test_ast_gen (self ):
2336 generate_nodes_classes_for_parser (SimpleLangParser , globals ())
2437 self .assertTrue ("CompilationUnit" in globals ())
0 commit comments