From 2387fe764dfd44576e667ceb3b91a6e3bcc43e45 Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Wed, 25 Dec 2019 13:47:57 +0800 Subject: [PATCH] change some names of identifiers --- version2.0/main.cpp | 22 ++--- version2.0/nasal_lexer.h | 171 ++++++++++++++++++++------------------- version2.0/nasal_parse.h | 44 +++++----- 3 files changed, 120 insertions(+), 117 deletions(-) diff --git a/version2.0/main.cpp b/version2.0/main.cpp index 07758ac..743284a 100644 --- a/version2.0/main.cpp +++ b/version2.0/main.cpp @@ -1,6 +1,6 @@ #include "nasal.h" -resource_file res; +resource_file resource; nasal_lexer lexer; nasal_parse parser; @@ -36,25 +36,25 @@ int main() } else if(command=="del") { - res.delete_all_source(); + resource.delete_all_source(); std::cout<<">>[Delete] complete."<>[Lib] loaded."< libsource; std::list resource; - std::list total; + std::list totalcode; public: /* resource_file(); @@ -67,21 +67,21 @@ class resource_file { libsource.clear(); resource.clear(); - total.clear(); + totalcode.clear(); return; } ~resource_file() { libsource.clear(); resource.clear(); - total.clear(); + totalcode.clear(); return; } void delete_all_source() { libsource.clear(); resource.clear(); - total.clear(); + totalcode.clear(); return; } void input_file(std::string filename) @@ -107,16 +107,19 @@ class resource_file void load_lib_file() { libsource.clear(); + /* + ifstream lib files here + */ return; } std::list& get_source() { - total.clear(); + totalcode.clear(); for(std::list::iterator i=libsource.begin();i!=libsource.end();++i) - total.push_back(*i); + totalcode.push_back(*i); for(std::list::iterator i=resource.begin();i!=resource.end();++i) - total.push_back(*i); - return total; + totalcode.push_back(*i); + return totalcode; } void print_resource(bool withlib) { @@ -157,7 +160,7 @@ class nasal_lexer { private: std::list token_list; - std::list detail_token; + std::list detail_token_list; int error; public: /* @@ -172,14 +175,14 @@ class nasal_lexer nasal_lexer() { token_list.clear(); - detail_token.clear(); + detail_token_list.clear(); error=0; return; } ~nasal_lexer() { token_list.clear(); - detail_token.clear(); + detail_token_list.clear(); return; } void print_token_list() @@ -195,7 +198,7 @@ class nasal_lexer void scanner(std::list& res) { token_list.clear(); - detail_token.clear(); + detail_token_list.clear(); error=0; int line=1; @@ -365,107 +368,107 @@ class nasal_lexer } void generate_detail_token() { - token detail; - detail_token.clear(); + token detail_token; + detail_token_list.clear(); for(std::list::iterator i=token_list.begin();i!=token_list.end();++i) { if(i->type==__token_number) { - detail.line=i->line; - detail.str =i->str; - detail.type=__number; - detail_token.push_back(detail); + detail_token.line=i->line; + detail_token.str =i->str; + detail_token.type=__number; + detail_token_list.push_back(detail_token); } else if(i->type==__token_string) { - detail.line=i->line; - detail.str =i->str; - detail.type=__string; - detail_token.push_back(detail); + detail_token.line=i->line; + detail_token.str =i->str; + detail_token.type=__string; + detail_token_list.push_back(detail_token); } else if(i->type==__token_reserve_word) { - detail.line=i->line; - detail.str =""; - if(i->str=="for") detail.type=__for; - else if(i->str=="foreach") detail.type=__foreach; - else if(i->str=="forindex") detail.type=__forindex; - else if(i->str=="while") detail.type=__while; - else if(i->str=="var") detail.type=__var; - else if(i->str=="func") detail.type=__func; - else if(i->str=="break") detail.type=__break; - else if(i->str=="continue") detail.type=__continue; - else if(i->str=="return") detail.type=__return; - else if(i->str=="if") detail.type=__if; - else if(i->str=="else") detail.type=__else; - else if(i->str=="elsif") detail.type=__elsif; - else if(i->str=="nil") detail.type=__nil; - else if(i->str=="and") detail.type=__and_operator; - else if(i->str=="or") detail.type=__or_operator; - detail_token.push_back(detail); + detail_token.line=i->line; + detail_token.str =""; + if(i->str=="for") detail_token.type=__for; + else if(i->str=="foreach") detail_token.type=__foreach; + else if(i->str=="forindex") detail_token.type=__forindex; + else if(i->str=="while") detail_token.type=__while; + else if(i->str=="var") detail_token.type=__var; + else if(i->str=="func") detail_token.type=__func; + else if(i->str=="break") detail_token.type=__break; + else if(i->str=="continue") detail_token.type=__continue; + else if(i->str=="return") detail_token.type=__return; + else if(i->str=="if") detail_token.type=__if; + else if(i->str=="else") detail_token.type=__else; + else if(i->str=="elsif") detail_token.type=__elsif; + else if(i->str=="nil") detail_token.type=__nil; + else if(i->str=="and") detail_token.type=__and_operator; + else if(i->str=="or") detail_token.type=__or_operator; + detail_token_list.push_back(detail_token); } else if(i->type==__token_identifier) { - detail.line=i->line; - detail.str =i->str; + detail_token.line=i->line; + detail_token.str =i->str; if(i->str.length()<=3) - detail.type=__id; + detail_token.type=__id; else { std::string tempstr=i->str; int strback=tempstr.length()-1; if(tempstr.length()>3 &&tempstr[strback]=='.' && tempstr[strback-1]=='.' && tempstr[strback-2]=='.') { - detail.str=""; + detail_token.str=""; for(int j=0;jtype==__token_operator) { - detail.line=i->line; - detail.str =""; - if(i->str=="+") detail.type=__add_operator; - else if(i->str=="-") detail.type=__sub_operator; - else if(i->str=="*") detail.type=__mul_operator; - else if(i->str=="/") detail.type=__div_operator; - else if(i->str=="~") detail.type=__link_operator; - else if(i->str=="+=") detail.type=__add_equal; - else if(i->str=="-=") detail.type=__sub_equal; - else if(i->str=="*=") detail.type=__mul_equal; - else if(i->str=="/=") detail.type=__div_equal; - else if(i->str=="~=") detail.type=__link_equal; - else if(i->str=="=") detail.type=__equal; - else if(i->str=="==") detail.type=__cmp_equal; - else if(i->str=="!=") detail.type=__cmp_not_equal; - else if(i->str=="<") detail.type=__cmp_less; - else if(i->str=="<=") detail.type=__cmp_less_or_equal; - else if(i->str==">") detail.type=__cmp_more; - else if(i->str==">=") detail.type=__cmp_more_or_equal; - else if(i->str==";") detail.type=__semi; - else if(i->str==".") detail.type=__dot; - else if(i->str==":") detail.type=__colon; - else if(i->str==",") detail.type=__comma; - else if(i->str=="?") detail.type=__ques_mark; - else if(i->str=="!") detail.type=__nor_operator; - else if(i->str=="[") detail.type=__left_bracket; - else if(i->str=="]") detail.type=__right_bracket; - else if(i->str=="(") detail.type=__left_curve; - else if(i->str==")") detail.type=__right_curve; - else if(i->str=="{") detail.type=__left_brace; - else if(i->str=="}") detail.type=__right_brace; + detail_token.line=i->line; + detail_token.str =""; + if(i->str=="+") detail_token.type=__add_operator; + else if(i->str=="-") detail_token.type=__sub_operator; + else if(i->str=="*") detail_token.type=__mul_operator; + else if(i->str=="/") detail_token.type=__div_operator; + else if(i->str=="~") detail_token.type=__link_operator; + else if(i->str=="+=") detail_token.type=__add_equal; + else if(i->str=="-=") detail_token.type=__sub_equal; + else if(i->str=="*=") detail_token.type=__mul_equal; + else if(i->str=="/=") detail_token.type=__div_equal; + else if(i->str=="~=") detail_token.type=__link_equal; + else if(i->str=="=") detail_token.type=__equal; + else if(i->str=="==") detail_token.type=__cmp_equal; + else if(i->str=="!=") detail_token.type=__cmp_not_equal; + else if(i->str=="<") detail_token.type=__cmp_less; + else if(i->str=="<=") detail_token.type=__cmp_less_or_equal; + else if(i->str==">") detail_token.type=__cmp_more; + else if(i->str==">=") detail_token.type=__cmp_more_or_equal; + else if(i->str==";") detail_token.type=__semi; + else if(i->str==".") detail_token.type=__dot; + else if(i->str==":") detail_token.type=__colon; + else if(i->str==",") detail_token.type=__comma; + else if(i->str=="?") detail_token.type=__ques_mark; + else if(i->str=="!") detail_token.type=__nor_operator; + else if(i->str=="[") detail_token.type=__left_bracket; + else if(i->str=="]") detail_token.type=__right_bracket; + else if(i->str=="(") detail_token.type=__left_curve; + else if(i->str==")") detail_token.type=__right_curve; + else if(i->str=="{") detail_token.type=__left_brace; + else if(i->str=="}") detail_token.type=__right_brace; else { ++error; - std::cout<<">>[Lexer-error] line "<str<<"\'."<>[Lexer-error] line "<str<<"\'."<>[Detail-Lexer] complete generating. "<& get_detail_token() + std::list& get_detail_token_list() { - return detail_token; + return detail_token_list; } }; diff --git a/version2.0/nasal_parse.h b/version2.0/nasal_parse.h index 43f355c..8ed725a 100644 --- a/version2.0/nasal_parse.h +++ b/version2.0/nasal_parse.h @@ -4,8 +4,8 @@ class nasal_parse { private: - std::stack parse; - std::stack checked; + std::stack parse_token_stream; + std::stack checked_tokens; token this_token; int error; int warning; @@ -28,7 +28,7 @@ class nasal_parse void nasal_parse::print_detail_token() { - std::stack tmp=parse; + std::stack tmp=parse_token_stream; std::string space=""; int line=1; std::cout<& detail_token) +void nasal_parse::get_token_list(std::list& detail_token_stream) { - while(!parse.empty()) - parse.pop(); - while(!checked.empty()) - checked.pop(); + while(!parse_token_stream.empty()) + parse_token_stream.pop(); + while(!checked_tokens.empty()) + checked_tokens.pop(); // clear stack - std::stack tmp; - for(std::list::iterator i=detail_token.begin();i!=detail_token.end();++i) - tmp.push(*i); - while(!tmp.empty()) + std::stack backward_tmp; + for(std::list::iterator i=detail_token_stream.begin();i!=detail_token_stream.end();++i) + backward_tmp.push(*i); + while(!backward_tmp.empty()) { - parse.push(tmp.top()); - tmp.pop(); + parse_token_stream.push(backward_tmp.top()); + backward_tmp.pop(); } return; } void nasal_parse::get_token() { - if(!parse.empty()) + if(!parse_token_stream.empty()) { - this_token=parse.top(); - parse.pop(); - checked.push(this_token); + this_token=parse_token_stream.top(); + parse_token_stream.pop(); + checked_tokens.push(this_token); } else { @@ -95,10 +95,10 @@ void nasal_parse::get_token() void nasal_parse::push_token() { - if(!checked.empty()) + if(!checked_tokens.empty()) { - parse.push(checked.top()); - checked.pop(); + parse_token_stream.push(checked_tokens.top()); + checked_tokens.pop(); } else std::cout<<">>[Parse-error] empty checked token stack."<