private ProtoCore.Type BuildArgumentTypeFromVarDeclNode(VarDeclNode argNode) { ProtoCore.Utils.Validity.Assert(argNode != null); if (argNode == null) { return new ProtoCore.Type(); } int uid = compileStateTracker.TypeSystem.GetType(argNode.ArgumentType.Name); if (uid == (int)PrimitiveType.kInvalidType && !compileStateTracker.IsTempVar(argNode.NameNode.Name)) { string message = String.Format(ProtoCore.BuildData.WarningMessage.kArgumentTypeUndefined, argNode.ArgumentType.Name, argNode.NameNode.Name); buildStatus.LogWarning(ProtoCore.BuildData.WarningID.kTypeUndefined, message, null, argNode.line, argNode.col); } bool isArray = argNode.ArgumentType.IsIndexable; int rank = argNode.ArgumentType.rank; return compileStateTracker.TypeSystem.BuildTypeObject(uid, isArray, rank); }
public void AddArgument(VarDeclNode arg) { Arguments.Add(arg); }
private ProtoCore.Type BuildArgumentTypeFromVarDeclNode(VarDeclNode argNode, ProtoCore.AssociativeGraph.GraphNode graphNode = null) { ProtoCore.Utils.Validity.Assert(argNode != null); if (argNode == null) { return new ProtoCore.Type(); } int uid = core.TypeSystem.GetType(argNode.ArgumentType.Name); if (uid == (int)PrimitiveType.kInvalidType && !core.IsTempVar(argNode.NameNode.Name)) { string message = String.Format(ProtoCore.Properties.Resources.kArgumentTypeUndefined, argNode.ArgumentType.Name, argNode.NameNode.Name); buildStatus.LogWarning(WarningID.kTypeUndefined, message, null, argNode.line, argNode.col, graphNode); } int rank = argNode.ArgumentType.rank; return core.TypeSystem.BuildTypeObject(uid, rank); }