Merge remote-tracking branch 'origin/master' into jit
[scilab.git] / scilab / modules / ast / src / cpp / ast / testConstExp.cpp
1 /*
2  *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  *  Copyright (C) 2008-2008 - INRIA - Bruno JOFRET
4  *
5  *  This file must be used under the terms of the CeCILL.
6  *  This source file is licensed as described in the file COPYING, which
7  *  you should have received as part of this distribution.  The terms
8  *  are also available at
9  *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
10  *
11  */
12
13 #include <iostream>
14 #include <assert.h>
15 #include "doubleexp.hxx"
16 #include "commentexp.hxx"
17 #include "floatexp.hxx"
18 #include "boolexp.hxx"
19 #include "intexp.hxx"
20 #include "stringexp.hxx"
21 #include "printvisitor.hxx"
22
23 static void doubleExpTest(void)
24 {
25     double _value = 42.51;
26     ast::DoubleExp *_double = new ast::DoubleExp(*new Location(), _value);
27     ast::PrintVisitor printMe = *new ast::PrintVisitor(std::cout);
28
29     std::cout << "------------------" << std::endl;
30     std::cout << "  ast::DoubleExp" << std::endl;
31     std::cout << "------------------" << std::endl;
32
33     assert(_double->value_get() == _value);
34     _double->accept(printMe);
35     std::cout << std::endl;
36 }
37
38 static void commentExpTest(void)
39 {
40     std::string *_comment = new std::string("** This is a comment");
41     ast::CommentExp *_commentExp = new ast::CommentExp(*new Location(), _comment);
42     ast::PrintVisitor printMe = *new ast::PrintVisitor(std::cout);
43
44     std::cout << "-------------------" << std::endl;
45     std::cout << "  ast::CommentExp" << std::endl;
46     std::cout << "-------------------" << std::endl;
47
48     assert(_commentExp->comment_get() == *_comment);
49     _commentExp->accept(printMe);
50     std::cout << std::endl;
51 }
52
53 static void stringExpTest(void)
54 {
55     std::string _string = *new std::string("** This is a string : &é'(-è_çà)=^$ù*,;:!");
56     ast::StringExp *_stringExp = new ast::StringExp(*new Location(), _string);
57     ast::PrintVisitor printMe = *new ast::PrintVisitor(std::cout);
58
59     std::cout << "------------------" << std::endl;
60     std::cout << "  ast::StringExp" << std::endl;
61     std::cout << "------------------" << std::endl;
62
63     assert(_stringExp->value_get() == _string);
64     _stringExp->accept(printMe);
65     std::cout << std::endl;
66 }
67
68 static void floatExpTest(void)
69 {
70     float _value = 42.51F;
71     ast::FloatExp *_float = new ast::FloatExp(*new Location(), _value);
72     ast::PrintVisitor printMe = *new ast::PrintVisitor(std::cout);
73
74     std::cout << "-----------------" << std::endl;
75     std::cout << "  ast::FloatExp" << std::endl;
76     std::cout << "-----------------" << std::endl;
77
78     assert(_float->value_get() == _value);
79     _float->accept(printMe);
80     std::cout << std::endl;
81 }
82
83 static void intExpTest(void)
84 {
85     int _value = 1664;
86     ast::IntExp *_iVar8 = new ast::IntExp(*new Location(), ast::IntExp::_8_, _value);
87     ast::IntExp *_iVar16 = new ast::IntExp(*new Location(), ast::IntExp::_16_, _value);
88     ast::IntExp *_iVar32 = new ast::IntExp(*new Location(), ast::IntExp::_32_, _value);
89     ast::IntExp *_iVar64 = new ast::IntExp(*new Location(), ast::IntExp::_64_, _value);
90     ast::PrintVisitor printMe = *new ast::PrintVisitor(std::cout);
91
92     std::cout << "---------------" << std::endl;
93     std::cout << "  ast::IntExp" << std::endl;
94     std::cout << "---------------" << std::endl;
95
96     assert(_iVar8->value_get() == _value);
97     _iVar8->accept(printMe);
98     std::cout << std::endl;
99     assert(_iVar16->value_get() == _value);
100     _iVar16->accept(printMe);
101     std::cout << std::endl;
102     assert(_iVar32->value_get() == _value);
103     _iVar32->accept(printMe);
104     std::cout << std::endl;
105     assert(_iVar64->value_get() == _value);
106     _iVar64->accept(printMe);
107     std::cout << std::endl;
108 }
109
110 static void boolExpTest(void)
111 {
112     bool _true = true;
113     bool _false = false;
114
115     ast::BoolExp *_trueExp = new ast::BoolExp(*new Location(), _true);
116     ast::BoolExp *_falseExp = new ast::BoolExp(*new Location(), _false);
117     ast::PrintVisitor printMe = *new ast::PrintVisitor(std::cout);
118
119     std::cout << "----------------" << std::endl;
120     std::cout << "  ast::BoolExp" << std::endl;
121     std::cout << "----------------" << std::endl;
122
123     assert(_trueExp->value_get() == _true);
124     _trueExp->accept(printMe);
125     std::cout << std::endl;
126     assert(_falseExp->value_get() == _false);
127     _falseExp->accept(printMe);
128     std::cout << std::endl;
129 }
130
131 static void nilExpTest(void)
132 {
133     ast::NilExp *_nilExp = new ast::NilExp(*new Location());
134     ast::PrintVisitor printMe = *new ast::PrintVisitor(std::cout);
135
136     std::cout << "---------------" << std::endl;
137     std::cout << "  ast::NilExp" << std::endl;
138     std::cout << "---------------" << std::endl;
139
140     _nilExp->accept(printMe);
141     std::cout << std::endl;
142 }
143
144
145 int main(void)
146 {
147     doubleExpTest();
148     floatExpTest();
149     intExpTest();
150     stringExpTest();
151     commentExpTest();
152     boolExpTest();
153     nilExpTest();
154     return 0;
155 }