From 404826e78a56e15e20d3938aed80945295921745 Mon Sep 17 00:00:00 2001 From: HombreLaser Date: Sat, 22 Jun 2024 16:45:04 -0600 Subject: Add parser --- src/include/parser.hpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 src/include/parser.hpp (limited to 'src/include/parser.hpp') diff --git a/src/include/parser.hpp b/src/include/parser.hpp new file mode 100644 index 0000000..7bc7997 --- /dev/null +++ b/src/include/parser.hpp @@ -0,0 +1,24 @@ +/* Grammar + * Expression --> Term PrimeExpression + * PrimeExpression --> (+|-)Expression | Null + * Term --> Factor PrimeTerm + * PrimeTerm --> (*|/)Term | Null + * Factor --> -Expression | (Expression) | operand */ +#pragma once +#include "tokenizer.hpp" +#include "syntax_tree.hpp" + + +class Parser { +private: + // Private methods. + void parseExpression(); + void parsePrimeExpression(); + void parseTerm(); + void parsePrimeTerm(); + void parseFactor(); + // End of private methods. +public: + Parser(); + const SyntaxTree *parse(); +}; -- cgit v1.2.3