Ejemplo n.º 1
0
 internal static RecordVariableFieldUseNode UsageField(RecordVariableDefNode def, string field, bool inherit_decl = true)
 {
     return(new RecordVariableFieldUseNode {
         RecordName = def.Name,
         Field = field,
         ExpressionType = def.ExpressionType,
         Definition = inherit_decl ? def : null
     });
 }
 public override void Visit(RecordVariableDefNode node)
 {
     base.Visit(node);
     if (!ReferenceEquals(node.Fields, null))
     {
         foreach (var field in node.Fields)
         {
             if (!ReferenceEquals(field, null))
             {
                 field.Accept(this);
             }
         }
     }
 }
Ejemplo n.º 3
0
        public override void Visit(RecordVariableDefNode node)
        {
            base.Visit(node);

            // check if record name is known
            var recDecl = LookupRecordDeclaration(node.Type);

            if (recDecl == null)
            {
                throw new TypeCheckException("Unknown record type");
            }

            // check if fields types matches with record type template
            CheckRecordVariableFields(recDecl.Fields, node.Fields);
        }
Ejemplo n.º 4
0
 public virtual T Visit(RecordVariableDefNode node)
 {
     return(Visit(node as VariableDefNode));
 }
Ejemplo n.º 5
0
 public virtual void Visit(RecordVariableDefNode node)
 {
     Visit(node as VariableDefNode);
 }