Create Parser.optional() helper method
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user