public FunctionNode(LeafParser.Function_declContext ctx) { Line = ctx.Start.Line; _returnType = TypeNode.Create(ctx.type()); Parameters = ctx.parameter_def().ArraySelect(p => new ParameterNode(p.Id().GetText(), TypeNode.Create(p.type()))); }
CreateNestedTypeDefCommand(TypeNode ownerType, TypeDefOptions options) { this.ownerType = ownerType; var modNode = ownerType.GetModuleNode(); Debug.Assert(modNode != null); if (modNode == null) throw new InvalidOperationException(); nestedType = ownerType.Create(options.CreateTypeDef(modNode.Document.ModuleDef)); }
public DeclarationNode(LeafParser.Var_def_tContext ctx) { Line = ctx.Start.Line; _name = ctx.Id().GetText(); Mutable = ctx.Var() != null; Type = TypeNode.Create(ctx.type(0)); if (ctx.type(1) != null) { Allocator = TypeNode.Create(ctx.type(1)); } }
static TypeNode GetOrCreateNestedTypeTreeNode(TypeNode typeNode, TypeDef nestedType) { Debug.Assert(nestedType != null && nestedType.DeclaringType == typeNode.TypeDef); typeNode.TreeNode.EnsureChildrenLoaded(); var childTypeNode = typeNode.TreeNode.DataChildren.OfType <TypeNode>().FirstOrDefault(a => a.TypeDef == nestedType); if (childTypeNode != null) { return(childTypeNode); } childTypeNode = typeNode.Create(nestedType); typeNode.TreeNode.AddChild(childTypeNode.TreeNode); return(childTypeNode); }
public DeclarationNode(LeafParser.Var_def_vContext ctx) { Line = ctx.Start.Line; _name = ctx.Id().GetText(); Mutable = ctx.Var() != null; Reference = ctx.Ref() != null; Value = ValueNode.Create(ctx.value()); if (ctx.type(0) != null) { Type = TypeNode.Create(ctx.type(0)); } if (ctx.type(1) != null) { Allocator = TypeNode.Create(ctx.type(1)); } }
public CastNode(LeafParser.ValueContext v, LeafParser.TypeContext t) { Line = v.Start.Line; Value = Create(v); Type = TypeNode.Create(t); }
CreateFieldDefCommand(TypeNode ownerNode, FieldDefOptions options) { this.ownerNode = ownerNode; this.fieldNode = ownerNode.Create(options.CreateFieldDef(ownerNode.TypeDef.Module)); }
CreateEventDefCommand(TypeNode ownerNode, EventDefOptions options) { this.ownerNode = ownerNode; eventNode = ownerNode.Create(options.CreateEventDef(ownerNode.TypeDef.Module)); }
CreatePropertyDefCommand(TypeNode ownerNode, PropertyDefOptions options) { this.ownerNode = ownerNode; this.propNode = ownerNode.Create(options.CreatePropertyDef(ownerNode.TypeDef.Module)); }
CreateMethodDefCommand(TypeNode ownerNode, MethodDefOptions options) { this.ownerNode = ownerNode; methodNode = ownerNode.Create(options.CreateMethodDef(ownerNode.TypeDef.Module)); }
CreateFieldDefCommand(TypeNode ownerNode, FieldDefOptions options) { this.ownerNode = ownerNode; fieldNode = ownerNode.Create(options.CreateFieldDef(ownerNode.TypeDef.Module)); }
static TypeNode GetOrCreateNestedTypeTreeNode(TypeNode typeNode, TypeDef nestedType) { Debug.Assert(nestedType != null && nestedType.DeclaringType == typeNode.TypeDef); typeNode.TreeNode.EnsureChildrenLoaded(); var childTypeNode = typeNode.TreeNode.DataChildren.OfType<TypeNode>().FirstOrDefault(a => a.TypeDef == nestedType); if (childTypeNode != null) return childTypeNode; childTypeNode = typeNode.Create(nestedType); typeNode.TreeNode.AddChild(childTypeNode.TreeNode); return childTypeNode; }