diff options
author | Mike Buland <eichlan@xagasoft.com> | 2016-12-19 15:52:04 -0700 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2016-12-19 15:52:04 -0700 |
commit | 0580d6a85fda454b05620aa4415a53f3dbcd3475 (patch) | |
tree | ef257f03b3c395f7eb2177177bbafef9e5de8265 /src/main.cpp | |
parent | f7035d970fc629e3e95f03dd5f4e9618cb3230d7 (diff) | |
download | clic-0580d6a85fda454b05620aa4415a53f3dbcd3475.tar.gz clic-0580d6a85fda454b05620aa4415a53f3dbcd3475.tar.bz2 clic-0580d6a85fda454b05620aa4415a53f3dbcd3475.tar.xz clic-0580d6a85fda454b05620aa4415a53f3dbcd3475.zip |
It actually sorta' works again!newparser
Diffstat (limited to '')
-rw-r--r-- | src/main.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/main.cpp b/src/main.cpp index 667d19a..1365f1f 100644 --- a/src/main.cpp +++ b/src/main.cpp | |||
@@ -5,6 +5,8 @@ | |||
5 | #include "token.h" | 5 | #include "token.h" |
6 | #include "parser.h" | 6 | #include "parser.h" |
7 | #include "options.h" | 7 | #include "options.h" |
8 | #include "scriptengine.h" | ||
9 | |||
8 | #include <math.h> | 10 | #include <math.h> |
9 | #include <sys/time.h> | 11 | #include <sys/time.h> |
10 | 12 | ||
@@ -14,6 +16,21 @@ | |||
14 | #include <bu/streamstack.h> | 16 | #include <bu/streamstack.h> |
15 | using namespace Bu; | 17 | using namespace Bu; |
16 | 18 | ||
19 | void numResult( const class Number &num ) | ||
20 | { | ||
21 | println("==> %1").arg( num ); | ||
22 | } | ||
23 | |||
24 | void dispError( const Bu::String &sMsg ) | ||
25 | { | ||
26 | println(sMsg); | ||
27 | } | ||
28 | |||
29 | void dispMessage( const Bu::String &sMsg ) | ||
30 | { | ||
31 | println(sMsg); | ||
32 | } | ||
33 | |||
17 | int main( int argc, char *argv[] ) | 34 | int main( int argc, char *argv[] ) |
18 | { | 35 | { |
19 | try | 36 | try |
@@ -28,7 +45,17 @@ int main( int argc, char *argv[] ) | |||
28 | lex.setScale( opt.getScale() ); | 45 | lex.setScale( opt.getScale() ); |
29 | lex.setRadix( opt.getRadix() ); | 46 | lex.setRadix( opt.getRadix() ); |
30 | Parser parser( lex ); | 47 | Parser parser( lex ); |
31 | parser.parse(); | 48 | |
49 | ScriptEngine se; | ||
50 | se.sigNumResult = Bu::slot(numResult); | ||
51 | se.sigError = Bu::slot(dispError); | ||
52 | se.sigMessage = Bu::slot(dispMessage); | ||
53 | for(;;) | ||
54 | { | ||
55 | Expression *pExpr = parser.parse(); | ||
56 | se.exec( pExpr ); | ||
57 | delete pExpr; | ||
58 | } | ||
32 | } | 59 | } |
33 | catch( std::exception &e ) | 60 | catch( std::exception &e ) |
34 | { | 61 | { |