From 425b609d2930e50bbe49e5e81b14837ef9e80cc5 Mon Sep 17 00:00:00 2001 From: Valk Richard Li <48872266+ValKmjolnir@users.noreply.github.com> Date: Wed, 2 Oct 2019 11:52:31 -0500 Subject: [PATCH] Add calculation in '(' & ')' --- version1.0/choose.txt | 4 ++++ version1.0/func.txt | 2 +- version1.0/loop.txt | 6 +++++- version1.0/nasal_parser.h | 23 +++++++++++++++++++++-- 4 files changed, 31 insertions(+), 4 deletions(-) diff --git a/version1.0/choose.txt b/version1.0/choose.txt index bb819dc..47f991d 100644 --- a/version1.0/choose.txt +++ b/version1.0/choose.txt @@ -22,6 +22,10 @@ elsif(this_token.type==__elsif) parse.push(this_token); return; } +else if(this==(1+2+3*1)) +{ + return nil; +} else { parse.push(this_token); diff --git a/version1.0/func.txt b/version1.0/func.txt index d00a425..023e5bd 100644 --- a/version1.0/func.txt +++ b/version1.0/func.txt @@ -6,5 +6,5 @@ var f=func(n,m,dynamic...) n+=m; return dynamic; }; -print(f(1,1,0,0,0,0,0)[3]); +print(f(1,1,0,0,0,0,0,(1+2+3+(1+2+3+4)))[3]); function([0,1,2,3],{str:"str"}); \ No newline at end of file diff --git a/version1.0/loop.txt b/version1.0/loop.txt index 0c05320..5376d85 100644 --- a/version1.0/loop.txt +++ b/version1.0/loop.txt @@ -20,7 +20,11 @@ for(var i=0;i<1024;i+=1) { print(i); } -foreach(var i;[1,2,3,4]) +for(var i=0;(2*512)>=i;i+=1) +{ + print(i); +} +foreach(var i;[1+(1+1),2,3,4]) { print(i); } diff --git a/version1.0/nasal_parser.h b/version1.0/nasal_parser.h index 0a615b4..32378ca 100644 --- a/version1.0/nasal_parser.h +++ b/version1.0/nasal_parser.h @@ -265,6 +265,7 @@ void nasal_parser::list_generate_expr() case __id:identifier_begin_expr();break; case __left_bracket:list_generate_expr();break; case __left_brace:hash_generate_expr();break; + case __left_curve:in_curve_calc_expr();break; default: ++error; std::cout<<">>[Error] line "<>[Error] line "<>[Error] line "<>[Error] line "<