Diff of /trunk/Cm/Cm.Parser/Function.hpp [000000] .. [r1] Maximize Restore

  Switch to side-by-side view

--- a
+++ b/trunk/Cm/Cm.Parser/Function.hpp
@@ -0,0 +1,41 @@
+#ifndef Function_hpp_8254
+#define Function_hpp_8254
+#include <Soul.Parsing/Grammar.hpp>
+#include <Soul.Parsing/Keyword.hpp>
+#include <Cm.Core/Function.hpp>
+
+
+namespace Cm { namespace Parser {
+
+using Cm::Core::FunctionPtr;
+using Cm::Core::ScopePtr;
+using Soul::Parsing::GrammarPtr;
+using Soul::Parsing::ParsingDomainPtr;
+using Soul::Parsing::String;
+using Soul::Parsing::KeywordRule;
+
+class FunctionParser;
+typedef boost::shared_ptr<FunctionParser> FunctionParserGrammarPtr;
+
+class FunctionParser : public Soul::Parsing::Grammar
+{
+public:
+    static FunctionParserGrammarPtr Create();
+    static FunctionParserGrammarPtr Create(const ParsingDomainPtr& parsingDomain);
+    FunctionPtr Parse(const String& content, int fileIndex, const String& fileName, ScopePtr scope);
+private:
+    FunctionParser(const ParsingDomainPtr& parsingDomain_);
+    virtual void CreateRules();
+    virtual void GetReferencedGrammars();
+    class FunctionRuleParser;
+    class ReturnTypeRuleParser;
+    class DeclaredFunctionSetNameRuleParser;
+    class FunctionSetNameRuleParser;
+    class OperatorRuleParser;
+    class ParametersRuleParser;
+    class BodyRuleParser;
+};
+
+} } // Cm.Parser
+
+#endif // Function_hpp_8254