diff --git a/version1.0/call_ide.txt b/version1.0/call_ide.txt index 8ba4b94..b45b492 100644 --- a/version1.0/call_ide.txt +++ b/version1.0/call_ide.txt @@ -17,4 +17,9 @@ id(); id.id(); id.id.id(); id[0].id.id(id,"str",1,2,3,4).id[10]; -id(0)[1].id; \ No newline at end of file +id(0)[1].id; +var hash={ + h:"hello", + parent:[id], +}; +function_test([1,2,3,4,55],1,2,3,{str:"str"}); \ No newline at end of file diff --git a/version1.0/main.cpp b/version1.0/main.cpp index 80d659c..00f000a 100644 --- a/version1.0/main.cpp +++ b/version1.0/main.cpp @@ -60,7 +60,7 @@ int main() lex.lexer_process(prog.use_file()); lex.token_list_type_detail_edit(); pas.parse_process(lex.return_list()); -// pas.gen_main_prog(); + pas.parse_main_work(); pas.print_ast(); } else if(command=="run") @@ -68,7 +68,7 @@ int main() lex.lexer_process(prog.use_file()); lex.token_list_type_detail_edit(); pas.parse_process(lex.return_list()); -// pas.gen_main_prog(); + pas.parse_main_work(); pas.run(); } else diff --git a/version1.0/nasal.h b/version1.0/nasal.h index 6aedf61..73cc2d4 100644 --- a/version1.0/nasal.h +++ b/version1.0/nasal.h @@ -10,8 +10,11 @@ #include "nasal_token_type.h" #include "abstract_syntax_tree.h" +#include "nasal_var.h" #include "nasal_lexer.h" #include "nasal_parser.h" +#include "nasal_var.cpp" + #endif diff --git a/version1.0/nasal_parser.h b/version1.0/nasal_parser.h index 9dcc939..34160bf 100644 --- a/version1.0/nasal_parser.h +++ b/version1.0/nasal_parser.h @@ -356,8 +356,8 @@ void nasal_parser::definition_expr() else if(this_token.type==__semi) { parse.push(this_token);// for semi check - ++warning; - std::cout<<">>[Warning] line "<>[Warning] line "<>[Error] line "< +#include + +enum var_type +{ + var_null=0xaa55, + var_number, + var_string, + var_list, + var_hash +}; + +class nasal_list; +class nasal_hash; + +class var +{ + private: + void* ptr; + int type; + public: + var(); + var(const var&); + ~var(); +}; + +class nasal_list +{ + private: + std::list elem; + public: + nasal_list(); + nasal_list(const nasal_list&); +}; + +class nasal_hash +{ + private: + std::list elem; + std::list elem_name; + public: + nasal_hash(); + nasal_hash(const nasal_hash&); +}; + +#endif