private void CheckSemanticLocal(MoveInfo treeInfo, ScriptInfo scriptInfo, CheckingInfo checkingInfo) { _funcInfo = scriptInfo.FindLocalFunc(_name); if (_funcInfo == null) // find in includes { _funcInfo = scriptInfo.FindIncludesFunc(_name); if (_funcInfo == null) { scriptInfo.SF.Errors.Add( new SemanticError("Unknown function '" + _name + "'", treeInfo.GetErrorInfo(treeInfo.Current))); return; } if (_funcInfo.Access == MemberAccess.Private) { scriptInfo.SF.Errors.Add( new SemanticError("Cannot access member '" + _funcInfo.ToString() + "'", treeInfo.GetErrorInfo(treeInfo.Current))); } } scriptInfo.References.Add(new FuncRefInfo(scriptInfo.SF, _funcInfo, this.CharIndex, this.CharLength, checkingInfo.SC.SourceCode.Substring(this.CharIndex, this.CharLength), false)); }
private void CheckSemanticLocal(MoveInfo treeInfo, ScriptInfo scriptInfo, CheckingInfo checkingInfo) { _funcInfo = scriptInfo.FindLocalFunc(_name); if (_funcInfo == null) { _funcInfo = scriptInfo.FindGlobalsFunc(_name); } if (_funcInfo == null) // find in includes { _funcInfo = scriptInfo.FindIncludesFunc(_name); if (_funcInfo == null) { scriptInfo.SF.Errors.Add( new SemanticError("Unknown function '" + _name + "'", treeInfo.GetErrorInfo(treeInfo.Current))); return; } if (_funcInfo.Access != MemberAccess.Public) // private member in include { scriptInfo.SF.Errors.Add( new SemanticError("Cannot access function '" + _funcInfo.ToString() + "'", treeInfo.GetErrorInfo(treeInfo.Current))); } } }