From 33e2780e5f5e79a4366cd2ce45db79d02502e431 Mon Sep 17 00:00:00 2001 From: binrapt Date: Fri, 16 Oct 2009 19:03:52 +0200 Subject: [PATCH] Operator resolution is now part of the parser class --- fridh/parser.hpp | 5 +++-- parser/operator.cpp | 4 ++-- parser/statement.cpp | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/fridh/parser.hpp b/fridh/parser.hpp index dbfa242..8e4ffdf 100644 --- a/fridh/parser.hpp +++ b/fridh/parser.hpp @@ -131,6 +131,9 @@ namespace fridh void error(std::string const & message); void single_lexeme_error(std::string const & message, std::size_t offset); void double_lexeme_error(std::string const & message, std::size_t offset); + + void process_node_group(parse_tree_nodes & arguments, parse_tree_nodes & output); + void operator_resolution(parse_tree_nodes & input, parse_tree_node & output); }; void lexeme_to_argument_node(lexeme & input, parse_tree_node & output); @@ -142,6 +145,4 @@ namespace fridh bool get_parse_tree_node_precedence(parse_tree_node & input, word & output); bool is_right_to_left_operator(parse_tree_node & input); - - void operator_resolution(parse_tree_nodes & input, parse_tree_node & output); } diff --git a/parser/operator.cpp b/parser/operator.cpp index 87b6f7f..d25a6d1 100644 --- a/parser/operator.cpp +++ b/parser/operator.cpp @@ -11,7 +11,7 @@ namespace fridh throw ail::exception("Invalid call offset encountered during operator resolution"); } - void operator_resolution(parse_tree_nodes & input, parse_tree_node & output) + void parser::operator_resolution(parse_tree_nodes & input, parse_tree_node & output) { if(input.size() != 1) { @@ -44,7 +44,7 @@ namespace fridh } if(!got_an_operator) - throw ail::exception("Failed to perform operator resolution"); + error("Failed to perform operator resolution"); parse_tree_node & operator_node = input[extremum_offset]; std::size_t next_offset = extremum_offset + 1; diff --git a/parser/statement.cpp b/parser/statement.cpp index 5055d48..b83205c 100644 --- a/parser/statement.cpp +++ b/parser/statement.cpp @@ -23,7 +23,7 @@ namespace fridh add_unary_node(lexeme(lexeme_type::negation), arguments); } - void process_node_group(parse_tree_nodes & arguments, parse_tree_nodes & output) + void parser::process_node_group(parse_tree_nodes & arguments, parse_tree_nodes & output) { parse_tree_node new_node; operator_resolution(arguments, new_node); -- 2.11.4.GIT