Add equal ('==') operator to strings
This commit is contained in:
@@ -53,9 +53,10 @@ class ExpressionNode(Node):
|
||||
from smnp.ast.node.bool import BoolLiteralNode
|
||||
|
||||
from smnp.ast.node.identifier import IdentifierNode
|
||||
from smnp.ast.node.string import StringLiteralNode
|
||||
return Parser.oneOf(
|
||||
#IntegerLiteralNode.parse,
|
||||
#StringLiteralNode.parse,
|
||||
StringLiteralNode.parse,
|
||||
#NoteLiteralNode.parse,
|
||||
BoolLiteralNode.parse,
|
||||
IdentifierNode.parse,
|
||||
|
||||
@@ -55,12 +55,14 @@ class RelationOperatorNode(ExpressionNode):
|
||||
|
||||
@staticmethod
|
||||
def _relationRhs():
|
||||
# TODO doAssert
|
||||
from smnp.ast.node.bool import BoolLiteralNode
|
||||
from smnp.ast.node.identifier import IdentifierNode
|
||||
|
||||
return Parser.oneOf(
|
||||
from smnp.ast.node.string import StringLiteralNode
|
||||
return Parser.doAssert(Parser.oneOf(
|
||||
BoolLiteralNode.accessParser(),
|
||||
BoolLiteralNode.literalParser(),
|
||||
IdentifierNode.literalParser()
|
||||
)
|
||||
IdentifierNode.literalParser(),
|
||||
StringLiteralNode.accessParser(),
|
||||
StringLiteralNode.literalParser()
|
||||
), "expression")
|
||||
@@ -1,17 +1,30 @@
|
||||
from smnp.ast.node.access import AccessNode
|
||||
from smnp.ast.node.literal import LiteralNode
|
||||
from smnp.ast.node.relation import RelationOperatorNode
|
||||
from smnp.ast.parser import Parser
|
||||
from smnp.token.type import TokenType
|
||||
|
||||
|
||||
class StringLiteralNode(LiteralNode):
|
||||
class StringLiteralNode(AccessNode, RelationOperatorNode, LiteralNode):
|
||||
def __init__(self, pos):
|
||||
super().__init__(pos)
|
||||
#TODO del self.children[1]
|
||||
del self.children[1]
|
||||
|
||||
|
||||
# TODO: To Remove
|
||||
@classmethod
|
||||
def _parse(cls, input):
|
||||
return cls.literalParser()(input)
|
||||
return Parser.oneOf(
|
||||
cls.accessParser(),
|
||||
cls.relationParser(),
|
||||
cls.literalParser()
|
||||
)(input)
|
||||
|
||||
@classmethod
|
||||
def _accessLhs(cls):
|
||||
return cls.literalParser()
|
||||
|
||||
@classmethod
|
||||
def _relationLhs(cls):
|
||||
return cls.literalParser()
|
||||
|
||||
@classmethod
|
||||
def _getTokenType(cls):
|
||||
|
||||
Reference in New Issue
Block a user