Create abstract iterable parser

This commit is contained in:
Bartłomiej Pluta
2019-07-05 18:07:26 +02:00
parent ed73aa1ad1
commit acd9a42e1b
3 changed files with 147 additions and 94 deletions

View File

@@ -11,3 +11,34 @@ def _flatListNode(listItemNode, list = []):
list.append(value)
_flatListNode(next, list)
return list
# NEW AST
# def toFlatList(parser):
# def decoratedParser(input):
# result = parser(input)
#
# if result.result:
# value = flattenList(result.node)
# node = iterableNodeType()
# for v in value:
# node.append(v)
# return ParseResult.OK(node)
#
# return ParseResult.FAIL()
#
# return decoratedParser
#
#
# def flattenList(node, output=None):
# if output is None:
# output = []
#
# if type(node.value) != IgnoredNode:
# output.append(node.value)
#
# if type(node.next) != IgnoredNode:
# flattenList(node.next, output)
#
# return output