Create Parser.optional() helper method

This commit is contained in:
Bartłomiej Pluta
2019-07-06 23:08:12 +02:00
parent ace0e2b31f
commit 99e9fc7de5
2 changed files with 14 additions and 9 deletions

View File

@@ -1,5 +1,6 @@
from smnp.ast.node.ignore import IgnoredNode
from smnp.ast.node.model import ParseResult, Node
from smnp.ast.node.none import NoneNode
from smnp.error.syntax import SyntaxException
@@ -139,3 +140,14 @@ class Parser:
return result
return parse
@staticmethod
def optional(parser):
def parse(input):
result = parser(input)
if result.result:
return result
return ParseResult.OK(NoneNode())
return parse