Beispiel #1
0
 public bool Visit(StructFieldAccessSyntaxNode node)
 {
     if (!node.Source.Accept(this))
     {
         return(false);
     }
     _ticTypeGraph.SetFieldAccess(node.Source.OrderNumber, node.OrderNumber, node.FieldName);
     return(true);
 }
        public IExpressionNode Visit(StructFieldAccessSyntaxNode node)
        {
            var structNode = ReadNode(node.Source);

            //Funtic allows default values for not specified types
            // so call:
            //  y = {}.missingField
            // is allowed, but it semantically incorrect

            if (!structNode.Type.StructTypeSpecification.ContainsKey(node.FieldName))
            {
                throw FunParseException.ErrorStubToDo($"Access to non exist field {node.FieldName}");
            }
            return(new StructFieldAccessExpressionNode(node.FieldName, structNode, node.Interval));
        }
Beispiel #3
0
 public virtual VisitorEnterResult Visit(StructFieldAccessSyntaxNode node) => DefaultVisitEnter(node);
Beispiel #4
0
 public string Visit(StructFieldAccessSyntaxNode node) => $".{node.FieldName}";
Beispiel #5
0
 public virtual bool Visit(StructFieldAccessSyntaxNode node) => true;