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); } } } }
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); }
public virtual T Visit(RecordVariableDefNode node) { return(Visit(node as VariableDefNode)); }
public virtual void Visit(RecordVariableDefNode node) { Visit(node as VariableDefNode); }