Fixed a bug.
This commit is contained in:
parent
2e2c4a96cd
commit
4ddb74e4e0
|
@ -71,6 +71,7 @@ class abstract_syntax_tree
|
||||||
case __number:std::cout<<": "<<number;break;
|
case __number:std::cout<<": "<<number;break;
|
||||||
case __string:std::cout<<": "<<str;break;
|
case __string:std::cout<<": "<<str;break;
|
||||||
case __id:
|
case __id:
|
||||||
|
case __dynamic_id:
|
||||||
case __call_array:
|
case __call_array:
|
||||||
case __call_hash:
|
case __call_hash:
|
||||||
case __call_function:std::cout<<": "<<name;break;
|
case __call_function:std::cout<<": "<<name;break;
|
||||||
|
|
|
@ -92,8 +92,14 @@ class resource_file
|
||||||
totalsource.clear();
|
totalsource.clear();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
void clear_lib_code()
|
||||||
|
{
|
||||||
|
libsource.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
void add_lib()
|
void add_lib()
|
||||||
{
|
{
|
||||||
|
libsource.clear();
|
||||||
std::string lib_name;
|
std::string lib_name;
|
||||||
lib_name="lib/math.nas";
|
lib_name="lib/math.nas";
|
||||||
if(access("lib/math.nas",0))
|
if(access("lib/math.nas",0))
|
||||||
|
|
|
@ -678,6 +678,14 @@ abstract_syntax_tree balloon_parse::func_generate()
|
||||||
temp.set_clear();
|
temp.set_clear();
|
||||||
temp.set_line(this_token.line);
|
temp.set_line(this_token.line);
|
||||||
temp.set_type(this_token.type);
|
temp.set_type(this_token.type);
|
||||||
|
if(this_token.type==__dynamic_id)
|
||||||
|
{
|
||||||
|
std::string tempstr="";
|
||||||
|
for(int i=0;i<this_token.str.length()-3;++i)
|
||||||
|
tempstr+=this_token.str[i];
|
||||||
|
temp.set_name(tempstr);
|
||||||
|
}
|
||||||
|
else
|
||||||
temp.set_name(this_token.str);
|
temp.set_name(this_token.str);
|
||||||
para.add_child(temp);
|
para.add_child(temp);
|
||||||
if(this_token.type==__dynamic_id)
|
if(this_token.type==__dynamic_id)
|
||||||
|
|
|
@ -40,6 +40,7 @@ int main()
|
||||||
break;
|
break;
|
||||||
else if(command=="lexer")
|
else if(command=="lexer")
|
||||||
{
|
{
|
||||||
|
prog.clear_lib_code(); // avoid print lib code
|
||||||
lex.scanner(prog.get_resource());
|
lex.scanner(prog.get_resource());
|
||||||
lex.print_token_list();
|
lex.print_token_list();
|
||||||
}
|
}
|
||||||
|
@ -51,6 +52,7 @@ int main()
|
||||||
}
|
}
|
||||||
else if(command=="parser")
|
else if(command=="parser")
|
||||||
{
|
{
|
||||||
|
prog.clear_lib_code(); // avoid print lib code
|
||||||
lex.scanner(prog.get_resource());
|
lex.scanner(prog.get_resource());
|
||||||
lex.generate_detail_token();
|
lex.generate_detail_token();
|
||||||
if(!lex.get_error())
|
if(!lex.get_error())
|
||||||
|
@ -67,6 +69,7 @@ int main()
|
||||||
}
|
}
|
||||||
else if(command=="ast")
|
else if(command=="ast")
|
||||||
{
|
{
|
||||||
|
prog.clear_lib_code(); // avoid print lib code
|
||||||
lex.scanner(prog.get_resource());
|
lex.scanner(prog.get_resource());
|
||||||
lex.generate_detail_token();
|
lex.generate_detail_token();
|
||||||
if(!lex.get_error())
|
if(!lex.get_error())
|
||||||
|
|
Loading…
Reference in New Issue