Beispiel #1
0
        public override ASTNode VisitAssignment([NotNull] DaedalusParser.AssignmentContext context)
        {
            string         oper           = context.assignmentOperator().GetText();
            ReferenceNode  referenceNode  = (ReferenceNode)VisitReference(context.reference());
            ExpressionNode expressionNode = (ExpressionNode)Visit(context.expression());

            if (oper == "=")
            {
                return(new AssignmentNode(GetLocation(context), GetLocation(context.assignmentOperator()), referenceNode, expressionNode));
            }
            return(new CompoundAssignmentNode(GetLocation(context), GetCompoundAssignmentOperator(oper), GetLocation(context.assignmentOperator()), referenceNode, expressionNode));
        }
Beispiel #2
0
        public override void ExitAssignment(DaedalusParser.AssignmentContext context)
        {
            _assemblyBuilder.IsInsideAssignment = false;

            string assignmentOperator = context.assignmentOperator().GetText();

            _assemblyBuilder.AssignmentEnd(assignmentOperator);
        }