Пример #1
0
        self.current = []

    def exitRow(self, ctx):
        # getParent() method does not exist, use 'parentCtx' field here.
        if ctx.parentCtx.getRuleIndex() == CSVParser.RULE_hdr:
            return
        m = dict(zip(self.header, self.current))
        self.rows.append(m)


if __name__ == '__main__':
    if len(sys.argv) > 1:
        input_stream = FileStream(sys.argv[1])
    else:
        input_stream = InputStream(sys.stdin.read())

    lexer = CSVLexer(input_stream)
    token_stream = CommonTokenStream(lexer)
    parser = CSVParser(token_stream)
    tree = parser.top()

    lisp_tree_str = tree.toStringTree(recog=parser)
    print(lisp_tree_str)

    # listener
    print("Start Walking...")
    listener = CsvLoader()
    walker = ParseTreeWalker()
    walker.walk(listener, tree)
    print('result =', listener.rows)
Пример #2
0
        self.current = []

    def exitRow(self, ctx):
        # getParent() method does not exist, use 'parentCtx' field here.
        if ctx.parentCtx.getRuleIndex() == CSVParser.RULE_hdr:
            return
        m = dict(zip(self.header, self.current))
        self.rows.append(m)


if __name__ == '__main__':
    if len(sys.argv) > 1:
        input_stream = FileStream(sys.argv[1])
    else:
        input_stream = InputStream(sys.stdin.read())

    lexer = CSVLexer(input_stream)
    token_stream = CommonTokenStream(lexer)
    parser = CSVParser(token_stream)
    tree = parser.top()

    lisp_tree_str = tree.toStringTree(recog=parser)
    print(lisp_tree_str)

    # listener
    print("Start Walking...")
    listener = CsvLoader()
    walker = ParseTreeWalker()
    walker.walk(listener, tree)
    print('result =', listener.rows)