예제 #1
0
파일: shell_test.py 프로젝트: optionalg/oil
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
예제 #2
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
예제 #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):
    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
예제 #6
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