/******************************************************************************/ #if EE_PRIVATE namespace Edit{ /******************************************************************************/ enum SPACE_MODE { SPACE_NORMAL , // |int x|; SPACE_FUNC_PARAM, // void func(|int x|); SPACE_TEMPLATE , // template<|int x|> }; Symbol* GetFullSymbol(Memc &tokens, Int &i, Str &temp, Symbol *set_parent, Memc &templates, Symbol* *symbol_parent=null, Int *symbol_index=null, Bool adjust_super=true); // 'i' will update only on tokens that were processed void DetectDataTypes(Memc &symbols, Memc &decls, Memc &tokens, SymbolPtr parent=null); // get list of main symbols (namespace, struct/class/union, enum, typedef), remember it can also be "typedef class X{}x;" in which case 'x' is typedef for 'X' class void LinkDataTypes(Memc &symbols, Memc &tokens); void DetectVarFuncs(Memc &symbols, Memc &tokens); // get list of 2nd main symbols (variables, functions) Bool IsDeclaration(Memc &tokens, Symbol *symbol, Int i); Bool IsVarFuncDefinition(Memc &tokens, Int &i, Str &temp, Symbol* &symbol, Memc &templates, Symbol *set_parent, Symbol* *symbol_parent=null, Int *symbol_index=null); void ParseFuncTemplate(Memc &tokens, Int i); Int ReadModifiers(Memc &tokens, Int i, UInt &const_level, UInt &modifiers, Memc &new_templates, Str &temp); void ReadVarFunc(Symbol *type, Memc &symbols, Memc &tokens, Int &i, Int type_start, SPACE_MODE space_mode, Str &temp, Memc &templates, Memc &new_templates, Symbol *symbol_parent=null); void GetFuncParams(Memc &symbols, Memc &tokens, Int &i, Str &temp, SymbolPtr *var_func, Int var_func_token_index, Bool func_ptr, Symbol *set_parent); Int GetSymbolStart(Memc &tokens, Int i); // get first ';' or '{' or '}' or ':' or beginning of the file (':' because of "private/protected/public:") /******************************************************************************/ } // namespace #endif /******************************************************************************/