private string GetHash(ProcedureCall call) { var name = new Compiler.CodeElements.Expressions.URI(call.ProcedureName.Name); var found = Node.SymbolTable.GetFunction(name, call.AsProfile(Node.SymbolTable)); if (found.Count < 1) return "?NOT_FOUND?"; if (found.Count > 1) return "?AMBIGUOUS?"; return ((Compiler.Nodes.FunctionDeclaration)found[0]).Hash; }
public virtual bool Visit(ProcedureCall functionCall) { return(true); }
//SMEDILOL: idea use 2 SymbolReference split per CandidatesType //Both are ambiguous, but less ambiguous than one //But this can be a bad idea, because code that use CallStatement will now have to deal with 2 variables //So try it, but don't hesitate to remove if it's a bad idea //public SymbolReferenceVariable ProgramNameOrProgramEntry { get; set; } //public SymbolReferenceVariable ProcdurePointerOrTCProcedureFunction { get; set; } public ProcedureStyleCallStatement(ProcedureCall call) : base(CodeElementType.ProcedureStyleCall, StatementType.CallStatement) { this.ProcedureCall = call; }
public ProcedureStyleCallStatement(ProcedureCall call) : base(CodeElementType.ProcedureStyleCall, StatementType.CallStatement) { this.ProcedureCall = call; }