def InitCommandParser(code_str): from osh.word_parse import WordParser from osh.cmd_parse import CommandParser line_reader, lexer = parse_lib.InitLexer(code_str) w_parser = WordParser(lexer, line_reader) c_parser = CommandParser(w_parser, lexer, line_reader) return c_parser
def _InitWordParserWithArena(s): pool = alloc.Pool() arena = pool.NewArena() arena.PushSource('word_parse_test.py') line_reader, lexer = parse_lib.InitLexer(s, arena=arena) w_parser = WordParser(lexer, line_reader) return arena, w_parser
def InitCommandParser(code_str): pool = Pool() arena = pool.NewArena() arena.PushSource('<unit test>') line_reader, lexer = parse_lib.InitLexer(code_str, arena=arena) w_parser = WordParser(lexer, line_reader) c_parser = CommandParser(w_parser, lexer, line_reader) return arena, c_parser # arena is returned for printing errors
def InitCommandParser(code_str): from osh.word_parse import WordParser from osh.cmd_parse import CommandParser arena = test_lib.MakeArena('<cmd_exec_test.py>') line_reader, lexer = parse_lib.InitLexer(code_str, arena) w_parser = WordParser(lexer, line_reader) c_parser = CommandParser(w_parser, lexer, line_reader, arena) return c_parser
def ParseAndExecute(code_str): line_reader, lexer = parse_lib.InitLexer(code_str) w_parser = WordParser(lexer, line_reader) c_parser = CommandParser(w_parser, lexer, line_reader) node = c_parser.ParseWholeFile() if not node: raise AssertionError() print(node) ex = cmd_exec_test.InitExecutor() status = ex.Execute(node) # TODO: Can we capture output here? return status
def ParseAndExecute(code_str): arena = test_lib.MakeArena('<shell_test.py>') # TODO: Unify with InitCommandParser above. from osh.word_parse import WordParser from osh.cmd_parse import CommandParser line_reader, lexer = parse_lib.InitLexer(code_str, arena) w_parser = WordParser(lexer, line_reader) c_parser = CommandParser(w_parser, lexer, line_reader, arena) node = c_parser.ParseWholeFile() if not node: raise AssertionError() print(node) ex = InitExecutor(arena) status = ex.Execute(node) # TODO: Can we capture output here? return status
def InitCommandParser(code_str): arena = test_lib.MakeArena('<cmd_parse_test.py>') parse_ctx = parse_lib.ParseContext(arena, {}) line_reader, lexer = parse_lib.InitLexer(code_str, arena) _, c_parser = parse_ctx.MakeParser(line_reader) return arena, c_parser # arena is returned for printing errors
def InitCommandParser(code_str): arena = test_lib.MakeArena('<cmd_parse_test.py>') line_reader, lexer = parse_lib.InitLexer(code_str, arena) w_parser = WordParser(lexer, line_reader) c_parser = CommandParser(w_parser, lexer, line_reader, arena) return arena, c_parser # arena is returned for printing errors
def _InitLexer(s): arena = test_lib.MakeArena('<lex_test.py>') _, lexer = parse_lib.InitLexer(s, arena) return lexer
def InitCommandParser(code_str, arena=None): arena = arena or test_lib.MakeArena('<cmd_exec_test.py>') parse_ctx = parse_lib.ParseContext(arena, {}) line_reader, lexer = parse_lib.InitLexer(code_str, arena) _, c_parser = parse_ctx.MakeParser(line_reader) return c_parser
def _InitLexer(s): _, lexer = parse_lib.InitLexer(s) return lexer
def _InitWordParserWithArena(s): arena = alloc.SideArena('word_parse_test.py') parse_ctx = parse_lib.ParseContext(arena, {}) line_reader, lexer = parse_lib.InitLexer(s, arena) w_parser, _ = parse_ctx.MakeParser(line_reader) return arena, w_parser