public void AddFunction(SymFunction val) { if (CheckSymbol(val)) { _curDomain.AddFunction(val); } }
public PathElement(T element, string description, SymFunction c) : base(c) { this.Element = element; this.Description = description; this.isStatic = false; this.isUnmanagedPointer = false; this.isManagedPointer = false; }
public MethodCallPathElement(Method method, bool isGetter, bool isBooleanTyped, bool isStatic, string description, SymFunction func, bool isCompressed) : base(method, description, func) { this.is_boolean_typed = isBooleanTyped; this.is_getter = isGetter; this.is_compressed = isCompressed; this.isStatic = isStatic; }
public ParameterPathElement(Parameter p, string description, SymFunction c, IMetaDataProvider metaDataProvider) : base(p, description, c) { TypeNode type = metaDataProvider.ParameterType(p); ResultType = metaDataProvider.ManagedPointer(type); if (metaDataProvider.IsManagedPointer(type)) { this.isManagedPointer = true; } }
void funcbody(SymFunction sym) { _ind = data_offset; gen_prolog(sym.typeId); _rsym = 0; var bsym = -1; var csym = -1; compound_statement(ref bsym, ref csym, sym); gen_back_patch(_rsym, _ind); gen_epilog(); data_offset = _ind; }
public void AddFunction(SymFunction val) { RegisterSymbol(val.tokenId, val); Functions.Add(val); Domains.Add(val); }
public SpecialPathElement(SpecialPathElementKind element, SymFunction c) : base(element, element.ToString(), c) { this.castTo = ""; }
protected PathElementBase (SymFunction c) { this.Func = c; }
SymFunction parameter_type_list(int func_call, int tokenId) { int n = 0; GetToken(); Symbol first = null; Symbol plast = first; var symFunc = FindFunction(tokenId, false); bool hasDefined = symFunc != null; if (symFunc == null) { //add function symFunc = new SymFunction(); symFunc.tokenId = tokenId; symFunc.__name = GetTokenName(tokenId); } while (CurTokenId != TK_CLOSEPA) { var rawTokenId = CurTokenId; if (!type_specifier()) { Error(ETipsType.UnknowTypeIdentifier, CurTokenId); } int isForceAlign = -1; var s = declarator(ref n, ref isForceAlign); s.Type = FindStruct(rawTokenId); CurSymbol = s; if (!hasDefined) { symFunc.AddParam(s as SymVar); } if (CurTokenId == TK_CLOSEPA) { break; } SkipToken(TK_COMMA); if (CurTokenId == TK_ELLIPSIS) { func_call = KW_CDECL; GetToken(); break; } } SyntaxState = SNTX_DELAY; SkipToken(TK_CLOSEPA); if (CurTokenId == TK_BEGIN) // 函数定义 { SyntaxState = SNTX_LF_HT; } else // 函数声明 { SyntaxState = SNTX_NUL; } SyntaxIndent(); CurBuildInTypeId = T_FUNC; CurSymbol = symFunc; return(symFunc); }
protected PathElementBase(SymFunction c) { this.Func = c; }