Пример #1
0
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
Пример #2
0
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
Пример #3
0
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
Пример #4
0
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
Пример #5
0
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
Пример #6
0
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
Пример #7
0
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
Пример #8
0
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
Пример #9
0
def _InitLexer(s):
    arena = test_lib.MakeArena('<lex_test.py>')
    _, lexer = parse_lib.InitLexer(s, arena)
    return lexer
Пример #10
0
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
Пример #11
0
def _InitLexer(s):
    _, lexer = parse_lib.InitLexer(s)
    return lexer
Пример #12
0
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