diff options
author | Mark Spruiell <mes@zeroc.com> | 2009-02-20 16:20:55 -0800 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2009-02-20 16:20:55 -0800 |
commit | 454f1f9711a6e357bac162c48acd1fda84caafe4 (patch) | |
tree | 72339abd358aeefe3f5633a0ea7ebb0cfcb7ada3 /cpp/include/Slice/Parser.h | |
parent | minor fixes in NRVO demo (diff) | |
download | ice-454f1f9711a6e357bac162c48acd1fda84caafe4.tar.bz2 ice-454f1f9711a6e357bac162c48acd1fda84caafe4.tar.xz ice-454f1f9711a6e357bac162c48acd1fda84caafe4.zip |
bug 3374 & general metadata clean up
Diffstat (limited to 'cpp/include/Slice/Parser.h')
-rw-r--r-- | cpp/include/Slice/Parser.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/cpp/include/Slice/Parser.h b/cpp/include/Slice/Parser.h index 4d0aac70b79..a3db93ab5e4 100644 --- a/cpp/include/Slice/Parser.h +++ b/cpp/include/Slice/Parser.h @@ -418,6 +418,7 @@ public: TypeList lookupTypeNoBuiltin(const std::string&, bool = true); ContainedList lookupContained(const std::string&, bool = true); ExceptionPtr lookupException(const std::string&, bool = true); + UnitPtr unit() const; ModuleList modules() const; ClassList classes() const; ExceptionList exceptions() const; @@ -938,6 +939,7 @@ public: void setComment(const std::string&); std::string currentComment(); // Not const, as this function removes the current comment. std::string currentFile() const; + std::string topLevelFile() const; int currentLine() const; void nextLine(); @@ -945,6 +947,7 @@ public: int currentIncludeLevel() const; void addGlobalMetaData(const StringList&); + void setSeenDefinition(); void error(const char*); // Not const, because error count is increased. @@ -960,6 +963,7 @@ public: DefinitionContextPtr currentDefinitionContext() const; void pushDefinitionContext(); void popDefinitionContext(); + DefinitionContextPtr findDefinitionContext(const std::string&) const; void addContent(const ContainedPtr&); void removeContent(const ContainedPtr&); @@ -974,8 +978,16 @@ public: FeatureProfile profile() const; + // + // Returns the path names of the files included directly by the top-level file. + // StringList includeFiles() const; - + + // + // Returns the path names of all files parsed by this unit. + // + StringList allFiles() const; + int parse(const std::string&, FILE*, bool, FeatureProfile profile = Ice); virtual void destroy(); @@ -992,20 +1004,20 @@ private: bool _all; bool _allowIcePrefix; bool _caseSensitive; - StringList _defaultGlobalMetadata; + StringList _defaultGlobalMetaData; int _errors; std::string _currentComment; int _currentLine; int _currentIncludeLevel; std::string _currentFile; std::string _topLevelFile; - std::map<std::string, std::string> _fullPaths; std::stack<DefinitionContextPtr> _definitionContextStack; StringList _includeFiles; std::stack<ContainerPtr> _containerStack; std::map<Builtin::Kind, BuiltinPtr> _builtins; std::map<std::string, ContainedList> _contentMap; FeatureProfile _featureProfile; + std::map<std::string, DefinitionContextPtr> _definitionContextMap; }; extern SLICE_API Unit* unit; // The current parser for bison/flex |