public override StatementNode VisitMemberAssignStatement([NotNull] CoronaParser.MemberAssignStatementContext context) { BuildValueAst valueVisitor = new BuildValueAst(); BuildExpressionAst exprVisitor = new BuildExpressionAst(); try { // Get GridPoint GridValueNode gridPoint = null; if (context.gridPoint() != null) { gridPoint = (GridValueNode)valueVisitor.Visit(context.gridPoint()); } // Get Member IdentifierValueNode memberID = new IdentifierValueNode(context.identifierValue().GetText()); // Get value ValueNode value; if (context.expr() != null) { value = exprVisitor.Visit(context.expr()); } else { value = new StringValueNode(context.STRING().GetText()); } return(new MemberAssignmentStatementNode(gridPoint, memberID, value)); } catch (TheLanguageErrorException e) { throw new TheLanguageErrorException("Member assignment statement", e); } }