move runvisitor implementation in cpp files 27/14627/5
Antoine ELIAS [Fri, 6 Jun 2014 08:42:02 +0000 (10:42 +0200)]
Change-Id: I9bf8d741a64e79f977a33f398c39cb744cef997e

363 files changed:
scilab/Makefile.am
scilab/Makefile.in
scilab/modules/action_binding/Makefile.am
scilab/modules/action_binding/Makefile.in
scilab/modules/action_binding/sci_gateway/cpp/action_binding_gw.vcxproj
scilab/modules/action_binding/sci_gateway/cpp/sci_notify.cpp
scilab/modules/action_binding/src/c/action_binding.vcxproj
scilab/modules/action_binding/src/c/action_binding.vcxproj.filters
scilab/modules/api_scilab/Makefile.am
scilab/modules/api_scilab/Makefile.in
scilab/modules/api_scilab/api_scilab.vcxproj
scilab/modules/api_scilab/src/cpp/api_common.cpp
scilab/modules/api_scilab/src/cpp/overload.cpp
scilab/modules/ast/Makefile.am
scilab/modules/ast/Makefile.in
scilab/modules/ast/ast-tools/ast-tools.vcxproj
scilab/modules/ast/ast.vcxproj
scilab/modules/ast/ast.vcxproj.filters
scilab/modules/ast/includes/arraylistexp.hxx [deleted file]
scilab/modules/ast/includes/arraylistvar.hxx [deleted file]
scilab/modules/ast/includes/assignlistexp.hxx [deleted file]
scilab/modules/ast/includes/breakexp.hxx [deleted file]
scilab/modules/ast/includes/callexp.hxx [deleted file]
scilab/modules/ast/includes/caseexp.hxx [deleted file]
scilab/modules/ast/includes/cellcallexp.hxx [deleted file]
scilab/modules/ast/includes/cellexp.hxx [deleted file]
scilab/modules/ast/includes/colonvar.hxx [deleted file]
scilab/modules/ast/includes/commentexp.hxx [deleted file]
scilab/modules/ast/includes/continueexp.hxx [deleted file]
scilab/modules/ast/includes/decls.hxx [deleted file]
scilab/modules/ast/includes/dollarvar.hxx [deleted file]
scilab/modules/ast/includes/doubleexp.hxx [deleted file]
scilab/modules/ast/includes/exp.hxx [deleted file]
scilab/modules/ast/includes/exps/all.hxx [moved from scilab/modules/ast/includes/all.hxx with 100% similarity]
scilab/modules/ast/includes/exps/alldec.hxx [moved from scilab/modules/ast/includes/alldec.hxx with 100% similarity]
scilab/modules/ast/includes/exps/allexp.hxx [moved from scilab/modules/ast/includes/allexp.hxx with 100% similarity]
scilab/modules/ast/includes/exps/allvar.hxx [moved from scilab/modules/ast/includes/allvar.hxx with 100% similarity]
scilab/modules/ast/includes/exps/anydecs.hxx [moved from scilab/modules/ast/includes/anydecs.hxx with 68% similarity]
scilab/modules/ast/includes/exps/arraylistexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/arraylistvar.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/assignexp.hxx [moved from scilab/modules/ast/includes/assignexp.hxx with 100% similarity]
scilab/modules/ast/includes/exps/assignlistexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/ast.hxx [moved from scilab/modules/ast/includes/ast.hxx with 100% similarity]
scilab/modules/ast/includes/exps/boolexp.hxx [moved from scilab/modules/ast/includes/boolexp.hxx with 100% similarity]
scilab/modules/ast/includes/exps/breakexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/callexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/caseexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/cellcallexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/cellexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/colonvar.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/commentexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/constexp.hxx [moved from scilab/modules/ast/includes/constexp.hxx with 53% similarity]
scilab/modules/ast/includes/exps/continueexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/controlexp.hxx [moved from scilab/modules/ast/includes/controlexp.hxx with 52% similarity]
scilab/modules/ast/includes/exps/dec.hxx [moved from scilab/modules/ast/includes/dec.hxx with 54% similarity]
scilab/modules/ast/includes/exps/decls.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/decs.hxx [moved from scilab/modules/ast/includes/decs.hxx with 50% similarity]
scilab/modules/ast/includes/exps/dollarvar.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/doubleexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/exp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/fieldexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/floatexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/forexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/functiondec.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/ifexp.hxx [moved from scilab/modules/ast/includes/ifexp.hxx with 100% similarity]
scilab/modules/ast/includes/exps/intexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/listexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/location.hxx [moved from scilab/modules/ast/includes/location.hxx with 100% similarity]
scilab/modules/ast/includes/exps/logicalopexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/mathexp.hxx [moved from scilab/modules/ast/includes/mathexp.hxx with 53% similarity]
scilab/modules/ast/includes/exps/matrixexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/matrixlineexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/nilexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/notexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/opexp.hxx [moved from scilab/modules/ast/includes/opexp.hxx with 100% similarity]
scilab/modules/ast/includes/exps/returnexp.hxx [moved from scilab/modules/ast/includes/returnexp.hxx with 100% similarity]
scilab/modules/ast/includes/exps/selectexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/seqexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/simplevar.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/stepvisitor.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/stringexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/token.hxx [moved from scilab/modules/ast/includes/token.hxx with 100% similarity]
scilab/modules/ast/includes/exps/transposeexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/trycatchexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/exps/var.hxx [moved from scilab/modules/ast/includes/var.hxx with 50% similarity]
scilab/modules/ast/includes/exps/vardec.hxx [moved from scilab/modules/ast/includes/vardec.hxx with 100% similarity]
scilab/modules/ast/includes/exps/whileexp.hxx [new file with mode: 0644]
scilab/modules/ast/includes/fieldexp.hxx [deleted file]
scilab/modules/ast/includes/floatexp.hxx [deleted file]
scilab/modules/ast/includes/forexp.hxx [deleted file]
scilab/modules/ast/includes/functiondec.hxx [deleted file]
scilab/modules/ast/includes/intexp.hxx [deleted file]
scilab/modules/ast/includes/listexp.hxx [deleted file]
scilab/modules/ast/includes/logicalopexp.hxx [deleted file]
scilab/modules/ast/includes/matrixexp.hxx [deleted file]
scilab/modules/ast/includes/matrixlineexp.hxx [deleted file]
scilab/modules/ast/includes/nilexp.hxx [deleted file]
scilab/modules/ast/includes/notexp.hxx [deleted file]
scilab/modules/ast/includes/runvisitor.hxx
scilab/modules/ast/includes/selectexp.hxx [deleted file]
scilab/modules/ast/includes/seqexp.hxx [deleted file]
scilab/modules/ast/includes/simplevar.hxx [deleted file]
scilab/modules/ast/includes/stepvisitor.hxx
scilab/modules/ast/includes/stringexp.hxx [deleted file]
scilab/modules/ast/includes/transposeexp.hxx [deleted file]
scilab/modules/ast/includes/trycatchexp.hxx [deleted file]
scilab/modules/ast/includes/whileexp.hxx [deleted file]
scilab/modules/ast/src/cpp/libAst.cpp [deleted file]
scilab/modules/ast/src/cpp/libAst.hxx [deleted file]
scilab/modules/ast/src/cpp/run_AssignExp.cpp [moved from scilab/modules/ast/includes/run_AssignExp.hxx with 96% similarity]
scilab/modules/ast/src/cpp/run_CallExp.cpp [moved from scilab/modules/ast/includes/run_CallExp.hxx with 97% similarity]
scilab/modules/ast/src/cpp/run_MatrixExp.cpp [moved from scilab/modules/ast/includes/run_MatrixExp.hxx with 88% similarity]
scilab/modules/ast/src/cpp/run_OpExp.cpp [moved from scilab/modules/ast/includes/run_OpExp.hxx with 92% similarity]
scilab/modules/ast/src/cpp/runvisitor.cpp [new file with mode: 0644]
scilab/modules/ast/src/cpp/visitor_common.cpp
scilab/modules/boolean/Makefile.am
scilab/modules/boolean/Makefile.in
scilab/modules/boolean/sci_gateway/cpp/sci_bool2s.cpp
scilab/modules/boolean/sci_gateway/cpp/sci_find.cpp
scilab/modules/boolean/src/cpp/boolean_gw.vcxproj
scilab/modules/cacsd/Makefile.am
scilab/modules/cacsd/Makefile.in
scilab/modules/cacsd/sci_gateway/cpp/sci_ereduc.cpp
scilab/modules/cacsd/sci_gateway/cpp/sci_fstair.cpp
scilab/modules/cacsd/src/c/cacsd.vcxproj
scilab/modules/completion/Makefile.am
scilab/modules/completion/Makefile.in
scilab/modules/completion/src/c/completion.vcxproj
scilab/modules/completion/src/cpp/EOFieldsGetter.cpp
scilab/modules/console/Makefile.am
scilab/modules/console/Makefile.in
scilab/modules/console/sci_gateway/cpp/console_gw.vcxproj
scilab/modules/console/src/c/console.vcxproj
scilab/modules/console/src/noconsole/noconsole.vcxproj
scilab/modules/core/Makefile.am
scilab/modules/core/Makefile.in
scilab/modules/core/sci_gateway/cpp/core_gw.vcxproj
scilab/modules/core/sci_gateway/cpp/sci_pause.cpp
scilab/modules/core/sci_gateway/cpp/sci_where.cpp
scilab/modules/core/src/c/core.vcxproj
scilab/modules/core/src/c/getdynamicdebuginfo.c
scilab/modules/core/src/c/getversion.c
scilab/modules/core/src/cpp/InitScilab.cpp
scilab/modules/core/src/cpp/runner.cpp
scilab/modules/core/src/cpp/storeCommand.cpp
scilab/modules/data_structures/Makefile.am
scilab/modules/data_structures/Makefile.in
scilab/modules/data_structures/src/c/data_structures.vcxproj
scilab/modules/differential_equations/Makefile.am
scilab/modules/differential_equations/Makefile.in
scilab/modules/differential_equations/sci_gateway/cpp/sci_bvode.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_daskr.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_dasrt.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_dassl.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_feval.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_impl.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_int2d.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_int3d.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_intg.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_ode.cpp
scilab/modules/differential_equations/sci_gateway/cpp/sci_odedc.cpp
scilab/modules/differential_equations/sci_gateway/differential_equations_gw.vcxproj
scilab/modules/differential_equations/src/c/differential_equations.vcxproj
scilab/modules/differential_equations/src/cpp/differentialequationfunctions.cpp
scilab/modules/differential_equations/src/cpp/scifunctions.cpp
scilab/modules/dynamic_link/Makefile.am
scilab/modules/dynamic_link/Makefile.in
scilab/modules/dynamic_link/sci_gateway/cpp/dynamic_link_gw.vcxproj
scilab/modules/dynamic_link/src/c/dynamic_link.vcxproj
scilab/modules/elementary_functions/Makefile.am
scilab/modules/elementary_functions/Makefile.in
scilab/modules/elementary_functions/sci_gateway/cpp/elem_func_gw/elem_func_gw.vcxproj
scilab/modules/elementary_functions/sci_gateway/cpp/sci_abs.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_acos.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_asin.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_atan.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_ceil.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_clean.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_conj.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cos.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumprod.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_cumsum.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_diag.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_exp.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_expm.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_eye.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_floor.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_frexp.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_gsort.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_imag.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_imult.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_int.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_isreal.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_kron.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_log.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_log1p.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_matrix.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_max.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_ones.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_prod.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_rand.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_rat.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sin.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_size.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_sum.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_tan.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_tril.cpp
scilab/modules/elementary_functions/sci_gateway/cpp/sci_triu.cpp
scilab/modules/elementary_functions/src/c/elementary_functions.vcxproj
scilab/modules/fileio/Makefile.am
scilab/modules/fileio/Makefile.in
scilab/modules/fileio/fileio.vcxproj
scilab/modules/fileio/sci_gateway/cpp/fileio_gw.vcxproj
scilab/modules/fileio/sci_gateway/cpp/sci_mfprintf.cpp
scilab/modules/functions/Makefile.am
scilab/modules/functions/Makefile.in
scilab/modules/functions/sci_gateway/cpp/functions_gw.vcxproj
scilab/modules/functions/sci_gateway/cpp/sci_exec.cpp
scilab/modules/functions/sci_gateway/cpp/sci_execstr.cpp
scilab/modules/functions_manager/Makefile.am
scilab/modules/functions_manager/Makefile.in
scilab/modules/functions_manager/functions_manager.vcxproj
scilab/modules/graphics/Makefile.am
scilab/modules/graphics/Makefile.in
scilab/modules/graphics/graphics.vcxproj
scilab/modules/graphics/graphics.vcxproj.filters
scilab/modules/graphics/sci_gateway/cpp/graphics_gw.vcxproj
scilab/modules/graphics/sci_gateway/cpp/sci_get.cpp
scilab/modules/graphics/sci_gateway/cpp/sci_xget.cpp
scilab/modules/graphics/sci_gateway/cpp/sci_xset.cpp
scilab/modules/graphics/src/nographics/nographics.vcxproj
scilab/modules/gui/Makefile.am
scilab/modules/gui/Makefile.in
scilab/modules/gui/sci_gateway/cpp/gui_gw.vcxproj
scilab/modules/gui/src/nogui/nogui.vcxproj
scilab/modules/hdf5/Makefile.am
scilab/modules/hdf5/Makefile.in
scilab/modules/hdf5/src/c/hdf5.vcxproj
scilab/modules/helptools/Makefile.am
scilab/modules/helptools/Makefile.in
scilab/modules/history_manager/Makefile.am
scilab/modules/history_manager/Makefile.in
scilab/modules/history_manager/sci_gateway/cpp/history_manager_gw.vcxproj
scilab/modules/integer/Makefile.am
scilab/modules/integer/Makefile.in
scilab/modules/integer/sci_gateway/cpp/sci_iconvert.cpp
scilab/modules/integer/src/cpp/integer_gw.vcxproj
scilab/modules/interpolation/Makefile.am
scilab/modules/interpolation/Makefile.in
scilab/modules/interpolation/src/c/interpolation.vcxproj
scilab/modules/io/Makefile.am
scilab/modules/io/Makefile.in
scilab/modules/io/src/cpp/io_gw.vcxproj
scilab/modules/jvm/Makefile.am
scilab/modules/jvm/Makefile.in
scilab/modules/jvm/sci_gateway/cpp/libjvm_gw.vcxproj
scilab/modules/jvm/src/nojvm/nojvm.vcxproj
scilab/modules/linear_algebra/Makefile.am
scilab/modules/linear_algebra/Makefile.in
scilab/modules/linear_algebra/sci_gateway/cpp/linear_algebra_gw.vcxproj
scilab/modules/linear_algebra/sci_gateway/cpp/sci_balanc.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_chol.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_det.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_hess.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_inv.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_lsq.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_lu.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_qr.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_rcond.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_schur.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_spec.cpp
scilab/modules/linear_algebra/sci_gateway/cpp/sci_svd.cpp
scilab/modules/linear_algebra/src/cpp/schurSelect.cpp
scilab/modules/localization/Makefile.am
scilab/modules/localization/Makefile.in
scilab/modules/localization/sci_gateway/cpp/localization_gw.vcxproj
scilab/modules/mexlib/Makefile.am
scilab/modules/mexlib/Makefile.in
scilab/modules/mexlib/src/cpp/mexlib.cpp
scilab/modules/mexlib/src/libmat/libmat.vcxproj
scilab/modules/mexlib/src/libmex/libmex.vcxproj
scilab/modules/mexlib/src/libmx/libmx.vcxproj
scilab/modules/operations/Makefile.am
scilab/modules/operations/Makefile.in
scilab/modules/operations/operations.vcxproj
scilab/modules/optimization/Makefile.am
scilab/modules/optimization/Makefile.in
scilab/modules/optimization/sci_gateway/cpp/sci_fsolve.cpp
scilab/modules/optimization/sci_gateway/cpp/sci_lsqrsolve.cpp
scilab/modules/optimization/sci_gateway/cpp/sci_optim.cpp
scilab/modules/optimization/src/c/optimization.vcxproj
scilab/modules/optimization/src/cpp/optimizationfunctions.cpp
scilab/modules/optimization/src/cpp/scioptimfunctions.cpp
scilab/modules/output_stream/Makefile.am
scilab/modules/output_stream/Makefile.in
scilab/modules/output_stream/sci_gateway/cpp/output_stream_gw/output_stream_gw.vcxproj
scilab/modules/output_stream/sci_gateway/cpp/sci_disp.cpp
scilab/modules/output_stream/sci_gateway/cpp/sci_mprintf.cpp
scilab/modules/output_stream/sci_gateway/cpp/sci_msprintf.cpp
scilab/modules/output_stream/src/c/output_stream.vcxproj
scilab/modules/parse/Makefile.am
scilab/modules/parse/Makefile.in
scilab/modules/parse/parse.vcxproj
scilab/modules/polynomials/Makefile.am
scilab/modules/polynomials/Makefile.in
scilab/modules/polynomials/sci_gateway/cpp/sci_bezout.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_coeff.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_degree.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_poly.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_pppdiv.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_roots.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_sfact.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_simp.cpp
scilab/modules/polynomials/sci_gateway/cpp/sci_varn.cpp
scilab/modules/polynomials/src/c/polynomials.vcxproj
scilab/modules/randlib/Makefile.am
scilab/modules/randlib/Makefile.in
scilab/modules/randlib/src/c/randlib.vcxproj
scilab/modules/signal_processing/Makefile.am
scilab/modules/signal_processing/Makefile.in
scilab/modules/signal_processing/sci_gateway/cpp/signal_processing_gw.vcxproj
scilab/modules/sparse/Makefile.am
scilab/modules/sparse/Makefile.in
scilab/modules/sparse/sci_gateway/cpp/sparse_gw.vcxproj
scilab/modules/special_functions/Makefile.am
scilab/modules/special_functions/Makefile.in
scilab/modules/spreadsheet/Makefile.am
scilab/modules/spreadsheet/Makefile.in
scilab/modules/spreadsheet/spreadsheet.vcxproj
scilab/modules/statistics/Makefile.am
scilab/modules/statistics/Makefile.in
scilab/modules/string/Makefile.am
scilab/modules/string/Makefile.in
scilab/modules/string/sci_gateway/cpp/sci_length.cpp
scilab/modules/string/sci_gateway/cpp/sci_part.cpp
scilab/modules/string/sci_gateway/cpp/sci_string.cpp
scilab/modules/string/sci_gateway/cpp/sci_strsplit.cpp
scilab/modules/string/sci_gateway/cpp/string_gw.vcxproj
scilab/modules/string/src/c/string.vcxproj
scilab/modules/string/src/c/string.vcxproj.filters
scilab/modules/symbol/Makefile.am
scilab/modules/symbol/Makefile.in
scilab/modules/symbol/symbol.vcxproj
scilab/modules/system_env/Makefile.am
scilab/modules/system_env/Makefile.in
scilab/modules/system_env/system_env.vcxproj
scilab/modules/time/Makefile.am
scilab/modules/time/Makefile.in
scilab/modules/time/sci_gateway/cpp/time_gw.vcxproj
scilab/modules/types/Makefile.am
scilab/modules/types/Makefile.in
scilab/modules/types/includes/callable.hxx
scilab/modules/types/sci_gateway/cpp/sci_cell.cpp
scilab/modules/types/sci_gateway/cpp/sci_typeof.cpp
scilab/modules/types/sci_gateway/cpp/types_gw.vcxproj
scilab/modules/types/types.vcxproj
scilab/modules/types/typesmacro/typesmacro.vcxproj
scilab/modules/windows_tools/src/c/CScilex/CScilex.vcxproj
scilab/modules/windows_tools/src/c/WScilex/WScilex.vcxproj
scilab/modules/windows_tools/src/c/windows_tools.vcxproj
scilab/modules/xml/Makefile.am
scilab/modules/xml/Makefile.in
scilab/modules/xml/xml.vcxproj

index df5937e..e958699 100644 (file)
@@ -64,6 +64,7 @@ scilab_bin_CPPFLAGS = \
 -I$(top_srcdir)/modules/output_stream/includes/ \
 -I$(top_srcdir)/modules/parse/includes/ \
 -I$(top_srcdir)/modules/ast/includes/ \
+-I$(top_srcdir)/modules/ast/includes/exps \
 -I$(top_srcdir)/modules/symbol/includes/ \
 -I$(top_srcdir)/modules/functions_manager/includes/ \
 -I$(top_srcdir)/modules/types/includes/ \
index 0554c2e..a99a507 100644 (file)
@@ -814,6 +814,7 @@ scilab_bin_CPPFLAGS = -I$(top_srcdir)/modules/console/includes/ \
        -I$(top_srcdir)/modules/output_stream/includes/ \
        -I$(top_srcdir)/modules/parse/includes/ \
        -I$(top_srcdir)/modules/ast/includes/ \
+       -I$(top_srcdir)/modules/ast/includes/exps \
        -I$(top_srcdir)/modules/symbol/includes/ \
        -I$(top_srcdir)/modules/functions_manager/includes/ \
        -I$(top_srcdir)/modules/types/includes/ \
index 3d8a20d..b9b7b13 100644 (file)
@@ -45,6 +45,7 @@ libsciaction_binding_disable_la_CPPFLAGS =    -I$(srcdir)/includes/ \
                                                                                        -I$(top_srcdir)/modules/localization/includes/ \
                                                                                        -I$(top_srcdir)/modules/output_stream/includes \
                                                                                        -I$(top_srcdir)/modules/ast/includes \
+                                               -I$(top_srcdir)/modules/ast/includes/exps \
                                                                                        -I$(top_srcdir)/modules/symbol/includes \
                                                                                        -I$(top_srcdir)/modules/system_env/includes \
                                                                                        -I$(top_srcdir)/modules/types/includes \
@@ -65,6 +66,7 @@ $(JAVA_JNI_INCLUDE) \
 -I$(top_srcdir)/modules/symbol/includes \
 -I$(top_srcdir)/modules/functions_manager/includes \
 -I$(top_srcdir)/modules/ast/includes \
+-I$(top_srcdir)/modules/ast/includes/exps \
 -I$(top_srcdir)/modules/system_env/includes \
 -I$(top_srcdir)/modules/types/includes \
 -I$(top_srcdir)/modules/dynamic_link/includes \
index 8f7aef3..3995be3 100644 (file)
@@ -597,6 +597,7 @@ libsciaction_binding_disable_la_CPPFLAGS = -I$(srcdir)/includes/ \
                                                                                        -I$(top_srcdir)/modules/localization/includes/ \
                                                                                        -I$(top_srcdir)/modules/output_stream/includes \
                                                                                        -I$(top_srcdir)/modules/ast/includes \
+                                               -I$(top_srcdir)/modules/ast/includes/exps \
                                                                                        -I$(top_srcdir)/modules/symbol/includes \
                                                                                        -I$(top_srcdir)/modules/system_env/includes \
                                                                                        -I$(top_srcdir)/modules/types/includes \
@@ -618,6 +619,7 @@ $(JAVA_JNI_INCLUDE) \
 -I$(top_srcdir)/modules/symbol/includes \
 -I$(top_srcdir)/modules/functions_manager/includes \
 -I$(top_srcdir)/modules/ast/includes \
+-I$(top_srcdir)/modules/ast/includes/exps \
 -I$(top_srcdir)/modules/system_env/includes \
 -I$(top_srcdir)/modules/types/includes \
 -I$(top_srcdir)/modules/dynamic_link/includes \
index 7c76aa0..1632866 100644 (file)
@@ -85,7 +85,7 @@
     <ClCompile>
       <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;../../../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;ACTION_BINDING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>Default</BasicRuntimeChecks>
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;../../../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;_DEBUG;_WINDOWS;_USRDLL;ACTION_BINDING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>Default</BasicRuntimeChecks>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;../../../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;ACTION_BINDING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>.;../../includes;../../src/c;../../src/jni;../../../../java/jdk/include;../../../../java/jdk/include/win32;../../../types/includes;../../../operations/includes;../../../core/includes;../../../ast/includes;../../../localization/includes;../../../output_stream/includes;../../../jvm/includes;../../../../libs/intl;../../../symbol/includes;../../../commons/src/jni;../../../dynamic_link/includes;../../../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>_CRT_SECURE_NO_DEPRECATE;FORDLL;NDEBUG;_WINDOWS;_USRDLL;ACTION_BINDING_GW_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
index 56cfb8c..4700b3e 100644 (file)
@@ -20,7 +20,6 @@ extern "C"
 }
 
 #include "function.hxx"
-#include "action_binding_GiwsExports.hxx"
 #include "action_binding_gw.hxx"
 #include "string.hxx"
 #include "Signal.hxx"
index 36fe751..263db0a 100644 (file)
     </PostBuildEvent>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClCompile Include="..\cpp\action_binding_GiwsExports.cpp" />
     <ClCompile Include="DllmainAction_Binding.c" />
     <ClCompile Include="InterpreterManagement.c" />
     <ClCompile Include="..\jni\InterpreterManagement_wrap.c" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\includes\dynlib_action_binding.h" />
-    <ClInclude Include="..\..\includes\action_binding_GiwsExports.hxx" />
     <ClInclude Include="InterpreterManagement.h" />
     <ClInclude Include="..\jni\Signal.hxx" />
   </ItemGroup>
index d60040e..4e867dd 100644 (file)
@@ -38,9 +38,6 @@
     <ClCompile Include="..\jni\Signal.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="..\cpp\action_binding_GiwsExports.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\includes\dynlib_action_binding.h">
@@ -52,9 +49,6 @@
     <ClInclude Include="..\jni\Signal.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\includes\action_binding_GiwsExports.hxx">
-      <Filter>Header Files</Filter>
-    </ClInclude>
   </ItemGroup>
   <ItemGroup>
     <None Include="..\jni\InterpreterManagement.i">
index a450011..564bd65 100644 (file)
@@ -37,6 +37,7 @@ libsciapi_scilab_la_CPPFLAGS= \
 -I$(top_srcdir)/modules/symbol/includes \
 -I$(top_srcdir)/modules/types/includes \
 -I$(top_srcdir)/modules/ast/includes \
+-I$(top_srcdir)/modules/ast/includes/exps \
 -I$(top_srcdir)/modules/elementary_functions/includes \
 -I$(top_srcdir)/modules/string/includes \
 -I$(top_srcdir)/modules/dynamic_link/includes \
index d794a18..f34195d 100644 (file)
@@ -576,6 +576,7 @@ libsciapi_scilab_la_CPPFLAGS = \
 -I$(top_srcdir)/modules/symbol/includes \
 -I$(top_srcdir)/modules/types/includes \
 -I$(top_srcdir)/modules/ast/includes \
+-I$(top_srcdir)/modules/ast/includes/exps \
 -I$(top_srcdir)/modules/elementary_functions/includes \
 -I$(top_srcdir)/modules/string/includes \
 -I$(top_srcdir)/modules/dynamic_link/includes \
index a8bafe8..62b2233 100644 (file)
@@ -81,7 +81,7 @@
     <ClCompile>
       <AdditionalOptions>%(AdditionalOptions)</AdditionalOptions>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>Default</BasicRuntimeChecks>
@@ -134,7 +134,7 @@ cd .. &gt;nul
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;_DEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>Default</BasicRuntimeChecks>
@@ -188,7 +188,7 @@ cd .. &gt;nul
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@@ -251,7 +251,7 @@ cd .. &gt;nul
       <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
       <FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
       <WholeProgramOptimization>false</WholeProgramOptimization>
-      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;src/c;../core/includes;../call_scilab/includes;../string/includes;../operations/includes;../output_stream/includes;../localization/includes;../../libs/intl;../types/includes;../symbol/includes;../ast/includes;../elementary_functions/includes;../system_env/includes;../Threads/includes;../console/includes;../../libs/Eigen/includes;../dynamic_link/includes;../ast/includes/exps;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>FORDLL;NDEBUG;_WINDOWS;_USRDLL;API_SCILAB_EXPORTS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <StringPooling>true</StringPooling>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
index 12d291e..5fe265e 100644 (file)
@@ -259,7 +259,7 @@ int callScilabFunction(void* _pvCtx, char* _pstName, int _iStart, int _iLhs, int
 
     if (callResult == Function::OK)
     {
-        int iCallerRhs = pStr->m_pIn->size();
+        int iCallerRhs = (int)pStr->m_pIn->size();
         pStr->m_pIn->resize(iCallerRhs + _iRhs + _iLhs, NULL);
         for (int i = 0 ; i < _iLhs ; i++)
         {
index 499141c..24d2994 100644 (file)
@@ -84,13 +84,13 @@ types::Function::ReturnValue Overload::call(std::wstring _stOverloadingFunctionN
         types::optional_list opt;
         return pCall->call(in, opt, _iRetCount, out, _execMe);
     }
-    catch (ScilabMessage sm)
+    catch (ast::ScilabMessage sm)
     {
         if (pCall->isMacro() || pCall->isMacroFile())
         {
             wchar_t szError[bsiz];
             os_swprintf(szError, bsiz, _W("at line % 5d of function %ls called by :\n"), sm.GetErrorLocation().first_line, pCall->getName().c_str());
-            throw ScilabMessage(szError);
+            throw ast::ScilabMessage(szError);
         }
         else
         {
@@ -104,61 +104,61 @@ std::wstring Overload::getNameFromOper(ast::OpExp::Oper _oper)
     switch (_oper)
     {
             /* standard operators */
-        case OpExp::plus :
+        case ast::OpExp::plus :
             return std::wstring(L"a");
-        case OpExp::unaryMinus :
-        case OpExp::minus :
+        case ast::OpExp::unaryMinus :
+        case ast::OpExp::minus :
             return std::wstring(L"s");
-        case OpExp::times :
+        case ast::OpExp::times :
             return std::wstring(L"m");
-        case OpExp::rdivide :
+        case ast::OpExp::rdivide :
             return std::wstring(L"r");
-        case OpExp::ldivide :
+        case ast::OpExp::ldivide :
             return std::wstring(L"l");
-        case OpExp::power :
+        case ast::OpExp::power :
             return std::wstring(L"p");
             /* dot operators */
-        case OpExp::dottimes :
+        case ast::OpExp::dottimes :
             return std::wstring(L"x");
-        case OpExp::dotrdivide :
+        case ast::OpExp::dotrdivide :
             return std::wstring(L"d");
-        case OpExp::dotldivide :
+        case ast::OpExp::dotldivide :
             return std::wstring(L"q");
-        case OpExp::dotpower :
+        case ast::OpExp::dotpower :
             return std::wstring(L"j");
             /* Kron operators */
-        case OpExp::krontimes :
+        case ast::OpExp::krontimes :
             return std::wstring(L"k");
-        case OpExp::kronrdivide :
+        case ast::OpExp::kronrdivide :
             return std::wstring(L"y");
-        case OpExp::kronldivide :
+        case ast::OpExp::kronldivide :
             return std::wstring(L"z");
             /* Control Operators ??? */
-        case OpExp::controltimes :
+        case ast::OpExp::controltimes :
             return std::wstring(L"u");
-        case OpExp::controlrdivide :
+        case ast::OpExp::controlrdivide :
             return std::wstring(L"v");
-        case OpExp::controlldivide :
+        case ast::OpExp::controlldivide :
             return std::wstring(L"w");
-        case OpExp::eq :
+        case ast::OpExp::eq :
             return std::wstring(L"o");
-        case OpExp::ne :
+        case ast::OpExp::ne :
             return std::wstring(L"n");
-        case OpExp::lt :
+        case ast::OpExp::lt :
             return std::wstring(L"1");
-        case OpExp::le :
+        case ast::OpExp::le :
             return std::wstring(L"3");
-        case OpExp::gt :
+        case ast::OpExp::gt :
             return std::wstring(L"2");
-        case OpExp::ge :
+        case ast::OpExp::ge :
             return std::wstring(L"4");
-        case OpExp::logicalAnd :
+        case ast::OpExp::logicalAnd :
             return std::wstring(L"h");
-        case OpExp::logicalOr :
+        case ast::OpExp::logicalOr :
             return std::wstring(L"g");
-        case OpExp::logicalShortCutAnd :
+        case ast::OpExp::logicalShortCutAnd :
             return std::wstring(L"h");
-        case OpExp::logicalShortCutOr :
+        case ast::OpExp::logicalShortCutOr :
             return std::wstring(L"g");
         default :
             return std::wstring(L"???");
index 215b2f9..43acbc2 100644 (file)
 pkglib_LTLIBRARIES     = libsciast.la
 
 libsciast_la_SOURCES = \
-       src/cpp/libAst.cpp \
+       src/cpp/runvisitor.cpp \
+       src/cpp/run_CallExp.cpp \
+       src/cpp/run_MatrixExp.cpp \
+       src/cpp/run_OpExp.cpp \
+       src/cpp/run_AssignExp.cpp \
        src/cpp/visitor_common.cpp \
        src/cpp/printvisitor.cpp \
        src/cpp/debugvisitor.cpp \
@@ -26,6 +30,7 @@ libsciast_la_SOURCES = \
 
 libsciast_la_CPPFLAGS = \
        -Iincludes \
+       -Iincludes/exps \
        -Isrc/cpp \
     -I$(top_srcdir)/modules/dynamic_link/includes \
     -I$(top_srcdir)/modules/symbol/includes \
index 73c94ef..5d699c5 100644 (file)
@@ -158,7 +158,11 @@ am__installdirs = "$(DESTDIR)$(pkglibdir)" \
 LTLIBRARIES = $(pkglib_LTLIBRARIES)
 libsciast_la_LIBADD =
 am__dirstamp = $(am__leading_dot)dirstamp
-am_libsciast_la_OBJECTS = src/cpp/libsciast_la-libAst.lo \
+am_libsciast_la_OBJECTS = src/cpp/libsciast_la-runvisitor.lo \
+       src/cpp/libsciast_la-run_CallExp.lo \
+       src/cpp/libsciast_la-run_MatrixExp.lo \
+       src/cpp/libsciast_la-run_OpExp.lo \
+       src/cpp/libsciast_la-run_AssignExp.lo \
        src/cpp/libsciast_la-visitor_common.lo \
        src/cpp/libsciast_la-printvisitor.lo \
        src/cpp/libsciast_la-debugvisitor.lo \
@@ -520,7 +524,11 @@ top_srcdir = @top_srcdir@
 yacc_present = @yacc_present@
 pkglib_LTLIBRARIES = libsciast.la
 libsciast_la_SOURCES = \
-       src/cpp/libAst.cpp \
+       src/cpp/runvisitor.cpp \
+       src/cpp/run_CallExp.cpp \
+       src/cpp/run_MatrixExp.cpp \
+       src/cpp/run_OpExp.cpp \
+       src/cpp/run_AssignExp.cpp \
        src/cpp/visitor_common.cpp \
        src/cpp/printvisitor.cpp \
        src/cpp/debugvisitor.cpp \
@@ -532,6 +540,7 @@ libsciast_la_SOURCES = \
 
 libsciast_la_CPPFLAGS = \
        -Iincludes \
+       -Iincludes/exps \
        -Isrc/cpp \
     -I$(top_srcdir)/modules/dynamic_link/includes \
     -I$(top_srcdir)/modules/symbol/includes \
@@ -707,7 +716,15 @@ src/cpp/$(am__dirstamp):
 src/cpp/$(DEPDIR)/$(am__dirstamp):
        @$(MKDIR_P) src/cpp/$(DEPDIR)
        @: > src/cpp/$(DEPDIR)/$(am__dirstamp)
-src/cpp/libsciast_la-libAst.lo: src/cpp/$(am__dirstamp) \
+src/cpp/libsciast_la-runvisitor.lo: src/cpp/$(am__dirstamp) \
+       src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciast_la-run_CallExp.lo: src/cpp/$(am__dirstamp) \
+       src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciast_la-run_MatrixExp.lo: src/cpp/$(am__dirstamp) \
+       src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciast_la-run_OpExp.lo: src/cpp/$(am__dirstamp) \
+       src/cpp/$(DEPDIR)/$(am__dirstamp)
+src/cpp/libsciast_la-run_AssignExp.lo: src/cpp/$(am__dirstamp) \
        src/cpp/$(DEPDIR)/$(am__dirstamp)
 src/cpp/libsciast_la-visitor_common.lo: src/cpp/$(am__dirstamp) \
        src/cpp/$(DEPDIR)/$(am__dirstamp)
@@ -739,10 +756,14 @@ distclean-compile:
 
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-debugvisitor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-expHistory.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-libAst.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-macrovarvisitor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-mutevisitor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-printvisitor.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-run_AssignExp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-run_CallExp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-run_MatrixExp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-run_OpExp.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-runvisitor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-scilabexception.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-shortcutvisitor.Plo@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@src/cpp/$(DEPDIR)/libsciast_la-visitor_common.Plo@am__quote@
@@ -771,12 +792,40 @@ distclean-compile:
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LTCXXCOMPILE) -c -o $@ $<
 
-src/cpp/libsciast_la-libAst.lo: src/cpp/libAst.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciast_la-libAst.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciast_la-libAst.Tpo -c -o src/cpp/libsciast_la-libAst.lo `test -f 'src/cpp/libAst.cpp' || echo '$(srcdir)/'`src/cpp/libAst.cpp
-@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciast_la-libAst.Tpo src/cpp/$(DEPDIR)/libsciast_la-libAst.Plo
-@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/libAst.cpp' object='src/cpp/libsciast_la-libAst.lo' libtool=yes @AMDEPBACKSLASH@
+src/cpp/libsciast_la-runvisitor.lo: src/cpp/runvisitor.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciast_la-runvisitor.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciast_la-runvisitor.Tpo -c -o src/cpp/libsciast_la-runvisitor.lo `test -f 'src/cpp/runvisitor.cpp' || echo '$(srcdir)/'`src/cpp/runvisitor.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciast_la-runvisitor.Tpo src/cpp/$(DEPDIR)/libsciast_la-runvisitor.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/runvisitor.cpp' object='src/cpp/libsciast_la-runvisitor.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciast_la-runvisitor.lo `test -f 'src/cpp/runvisitor.cpp' || echo '$(srcdir)/'`src/cpp/runvisitor.cpp
+
+src/cpp/libsciast_la-run_CallExp.lo: src/cpp/run_CallExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciast_la-run_CallExp.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciast_la-run_CallExp.Tpo -c -o src/cpp/libsciast_la-run_CallExp.lo `test -f 'src/cpp/run_CallExp.cpp' || echo '$(srcdir)/'`src/cpp/run_CallExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciast_la-run_CallExp.Tpo src/cpp/$(DEPDIR)/libsciast_la-run_CallExp.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/run_CallExp.cpp' object='src/cpp/libsciast_la-run_CallExp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciast_la-run_CallExp.lo `test -f 'src/cpp/run_CallExp.cpp' || echo '$(srcdir)/'`src/cpp/run_CallExp.cpp
+
+src/cpp/libsciast_la-run_MatrixExp.lo: src/cpp/run_MatrixExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciast_la-run_MatrixExp.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciast_la-run_MatrixExp.Tpo -c -o src/cpp/libsciast_la-run_MatrixExp.lo `test -f 'src/cpp/run_MatrixExp.cpp' || echo '$(srcdir)/'`src/cpp/run_MatrixExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciast_la-run_MatrixExp.Tpo src/cpp/$(DEPDIR)/libsciast_la-run_MatrixExp.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/run_MatrixExp.cpp' object='src/cpp/libsciast_la-run_MatrixExp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciast_la-run_MatrixExp.lo `test -f 'src/cpp/run_MatrixExp.cpp' || echo '$(srcdir)/'`src/cpp/run_MatrixExp.cpp
+
+src/cpp/libsciast_la-run_OpExp.lo: src/cpp/run_OpExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciast_la-run_OpExp.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciast_la-run_OpExp.Tpo -c -o src/cpp/libsciast_la-run_OpExp.lo `test -f 'src/cpp/run_OpExp.cpp' || echo '$(srcdir)/'`src/cpp/run_OpExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciast_la-run_OpExp.Tpo src/cpp/$(DEPDIR)/libsciast_la-run_OpExp.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/run_OpExp.cpp' object='src/cpp/libsciast_la-run_OpExp.lo' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciast_la-run_OpExp.lo `test -f 'src/cpp/run_OpExp.cpp' || echo '$(srcdir)/'`src/cpp/run_OpExp.cpp
+
+src/cpp/libsciast_la-run_AssignExp.lo: src/cpp/run_AssignExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciast_la-run_AssignExp.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciast_la-run_AssignExp.Tpo -c -o src/cpp/libsciast_la-run_AssignExp.lo `test -f 'src/cpp/run_AssignExp.cpp' || echo '$(srcdir)/'`src/cpp/run_AssignExp.cpp
+@am__fastdepCXX_TRUE@  $(AM_V_at)$(am__mv) src/cpp/$(DEPDIR)/libsciast_la-run_AssignExp.Tpo src/cpp/$(DEPDIR)/libsciast_la-run_AssignExp.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@     $(AM_V_CXX)source='src/cpp/run_AssignExp.cpp' object='src/cpp/libsciast_la-run_AssignExp.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCXX_FALSE@     DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
-@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciast_la-libAst.lo `test -f 'src/cpp/libAst.cpp' || echo '$(srcdir)/'`src/cpp/libAst.cpp
+@am__fastdepCXX_FALSE@ $(AM_V_CXX@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c -o src/cpp/libsciast_la-run_AssignExp.lo `test -f 'src/cpp/run_AssignExp.cpp' || echo '$(srcdir)/'`src/cpp/run_AssignExp.cpp
 
 src/cpp/libsciast_la-visitor_common.lo: src/cpp/visitor_common.cpp
 @am__fastdepCXX_TRUE@  $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libsciast_la_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -MT src/cpp/libsciast_la-visitor_common.lo -MD -MP -MF src/cpp/$(DEPDIR)/libsciast_la-visitor_common.Tpo -c -o src/cpp/libsciast_la-visitor_common.lo `test -f 'src/cpp/visitor_common.cpp' || echo '$(srcdir)/'`src/cpp/visitor_common.cpp
index ef4bcf8..fbc2893 100644 (file)
@@ -77,7 +77,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\includes;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\includes;../includes/exps;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AST_TOOLS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -107,7 +107,7 @@ lib /DEF:"$(ProjectDir)core_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform)
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\includes;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\includes;../includes/exps;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AST_TOOLS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
@@ -135,7 +135,7 @@ lib /DEF:"$(ProjectDir)core_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform)
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\includes;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\includes;../includes/exps;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AST_TOOLS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
@@ -165,7 +165,7 @@ lib /DEF:"$(ProjectDir)core_Import.def" /SUBSYSTEM:WINDOWS /MACHINE:$(Platform)
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\includes;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>..\includes;../includes/exps;..\..\symbol\includes;..\..\types\includes;..\..\functions_manager\includes;..\../core/includes;..\..\elementary_functions\includes;..\../operations/includes;..\../localization/includes;..\../../libs/intl;..\../output_stream/includes;..\../system_env/includes;..\../string/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AST_TOOLS_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
index 2d4fa2a..0432cfa 100644 (file)
@@ -80,7 +80,7 @@
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;includes/exps;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
     </Midl>
     <ClCompile>
       <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>includes;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;includes/exps;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;_DEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <MinimalRebuild>true</MinimalRebuild>
       <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>includes;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;includes/exps;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
     <ClCompile>
       <Optimization>MaxSpeed</Optimization>
       <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>includes;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+      <AdditionalIncludeDirectories>includes;includes/exps;../symbol/includes;../types/includes;../functions_manager/includes;../core/includes;../elementary_functions/includes;../operations/includes;../localization/includes;../../libs/intl;../output_stream/includes;../system_env/includes;../string/includes;../api_scilab/includes;../threads/includes;../../libs/Eigen/includes;../console/includes;../graphic_objects/includes;../dynamic_link/includes;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PreprocessorDefinitions>WIN32;NDEBUG;_WINDOWS;_USRDLL;AST_EXPORTS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
       <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
       <FunctionLevelLinking>true</FunctionLevelLinking>
   <ItemGroup>
     <ClCompile Include="src\cpp\debugvisitor.cpp" />
     <ClCompile Include="src\cpp\expHistory.cpp" />
-    <ClCompile Include="src\cpp\libAst.cpp" />
     <ClCompile Include="src\cpp\macrovarvisitor.cpp" />
     <ClCompile Include="src\cpp\mutevisitor.cpp" />
     <ClCompile Include="src\cpp\printvisitor.cpp" />
+    <ClCompile Include="src\cpp\runvisitor.cpp" />
+    <ClCompile Include="src\cpp\run_AssignExp.cpp" />
+    <ClCompile Include="src\cpp\run_CallExp.cpp" />
+    <ClCompile Include="src\cpp\run_MatrixExp.cpp" />
+    <ClCompile Include="src\cpp\run_OpExp.cpp" />
     <ClCompile Include="src\cpp\shortcutvisitor.cpp" />
     <ClCompile Include="src\cpp\visitor_common.cpp" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="includes\all.hxx" />
-    <ClInclude Include="includes\alldec.hxx" />
-    <ClInclude Include="includes\allexp.hxx" />
-    <ClInclude Include="includes\allvar.hxx" />
-    <ClInclude Include="includes\anydecs.hxx" />
-    <ClInclude Include="includes\arraylistexp.hxx" />
-    <ClInclude Include="includes\arraylistvar.hxx" />
-    <ClInclude Include="includes\assignexp.hxx" />
-    <ClInclude Include="includes\assignlistexp.hxx" />
-    <ClInclude Include="includes\ast.hxx" />
-    <ClInclude Include="includes\boolexp.hxx" />
-    <ClInclude Include="includes\breakexp.hxx" />
-    <ClInclude Include="includes\callexp.hxx" />
-    <ClInclude Include="includes\caseexp.hxx" />
-    <ClInclude Include="includes\cellcallexp.hxx" />
-    <ClInclude Include="includes\cellexp.hxx" />
-    <ClInclude Include="includes\colonvar.hxx" />
-    <ClInclude Include="includes\commentexp.hxx" />
-    <ClInclude Include="includes\constexp.hxx" />
-    <ClInclude Include="includes\continueexp.hxx" />
-    <ClInclude Include="includes\controlexp.hxx" />
-    <ClInclude Include="includes\debugvisitor.hxx" />
-    <ClInclude Include="includes\dec.hxx" />
-    <ClInclude Include="includes\decls.hxx" />
-    <ClInclude Include="includes\decs.hxx" />
-    <ClInclude Include="includes\dollarvar.hxx" />
-    <ClInclude Include="includes\doubleexp.hxx" />
-    <ClInclude Include="includes\dummyvisitor.hxx" />
-    <ClInclude Include="includes\execvisitor.hxx" />
-    <ClInclude Include="includes\exp.hxx" />
-    <ClInclude Include="includes\expHistory.hxx" />
-    <ClInclude Include="includes\fieldexp.hxx" />
-    <ClInclude Include="includes\floatexp.hxx" />
-    <ClInclude Include="includes\forexp.hxx" />
-    <ClInclude Include="includes\functiondec.hxx" />
-    <ClInclude Include="includes\ifexp.hxx" />
-    <ClInclude Include="includes\intexp.hxx" />
-    <ClInclude Include="includes\macrovarvisitor.hxx" />
-    <ClInclude Include="includes\stepvisitor.hxx" />
-    <ClInclude Include="src\cpp\libAst.hxx" />
-    <ClInclude Include="includes\listexp.hxx" />
-    <ClInclude Include="includes\logicalopexp.hxx" />
-    <ClInclude Include="includes\mathexp.hxx" />
-    <ClInclude Include="includes\matrixexp.hxx" />
-    <ClInclude Include="includes\matrixlineexp.hxx" />
-    <ClInclude Include="includes\mutevisitor.hxx" />
-    <ClInclude Include="includes\nilexp.hxx" />
-    <ClInclude Include="includes\notexp.hxx" />
-    <ClInclude Include="includes\opexp.hxx" />
-    <ClInclude Include="includes\printvisitor.hxx" />
-    <ClInclude Include="includes\returnexp.hxx" />
-    <ClInclude Include="includes\run_AssignExp.hxx" />
-    <ClInclude Include="includes\run_CallExp.hxx" />
-    <ClInclude Include="includes\run_MatrixExp.hxx" />
-    <ClInclude Include="includes\run_OpExp.hxx" />
-    <ClInclude Include="includes\runvisitor.hxx" />
-    <ClInclude Include="includes\selectexp.hxx" />
-    <ClInclude Include="includes\seqexp.hxx" />
-    <ClInclude Include="includes\shortcutvisitor.hxx" />
-    <ClInclude Include="includes\simplevar.hxx" />
-    <ClInclude Include="includes\stringexp.hxx" />
-    <ClInclude Include="includes\timedvisitor.hxx" />
-    <ClInclude Include="includes\token.hxx" />
-    <ClInclude Include="includes\transposeexp.hxx" />
-    <ClInclude Include="includes\trycatchexp.hxx" />
-    <ClInclude Include="includes\var.hxx" />
-    <ClInclude Include="includes\vardec.hxx" />
-    <ClInclude Include="includes\visitor.hxx" />
-    <ClInclude Include="includes\visitor_common.hxx" />
-    <ClInclude Include="includes\whileexp.hxx" />
-  </ItemGroup>
-  <ItemGroup>
     <Library Include="..\..\bin\blasplus.lib" />
     <Library Include="..\..\bin\lapack.lib" />
     <Library Include="..\..\bin\libintl.lib" />
   <ItemGroup>
     <None Include="core_Import.def" />
   </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="includes\debugvisitor.hxx" />
+    <ClInclude Include="includes\dummyvisitor.hxx" />
+    <ClInclude Include="includes\dynlib_ast_tools.hxx" />
+    <ClInclude Include="includes\execvisitor.hxx" />
+    <ClInclude Include="includes\expHistory.hxx" />
+    <ClInclude Include="includes\exps\all.hxx" />
+    <ClInclude Include="includes\exps\alldec.hxx" />
+    <ClInclude Include="includes\exps\allexp.hxx" />
+    <ClInclude Include="includes\exps\allvar.hxx" />
+    <ClInclude Include="includes\exps\anydecs.hxx" />
+    <ClInclude Include="includes\exps\arraylistexp.hxx" />
+    <ClInclude Include="includes\exps\arraylistvar.hxx" />
+    <ClInclude Include="includes\exps\assignexp.hxx" />
+    <ClInclude Include="includes\exps\assignlistexp.hxx" />
+    <ClInclude Include="includes\exps\ast.hxx" />
+    <ClInclude Include="includes\exps\boolexp.hxx" />
+    <ClInclude Include="includes\exps\breakexp.hxx" />
+    <ClInclude Include="includes\exps\callexp.hxx" />
+    <ClInclude Include="includes\exps\caseexp.hxx" />
+    <ClInclude Include="includes\exps\cellcallexp.hxx" />
+    <ClInclude Include="includes\exps\cellexp.hxx" />
+    <ClInclude Include="includes\exps\colonvar.hxx" />
+    <ClInclude Include="includes\exps\commentexp.hxx" />
+    <ClInclude Include="includes\exps\constexp.hxx" />
+    <ClInclude Include="includes\exps\continueexp.hxx" />
+    <ClInclude Include="includes\exps\controlexp.hxx" />
+    <ClInclude Include="includes\exps\dec.hxx" />
+    <ClInclude Include="includes\exps\decls.hxx" />
+    <ClInclude Include="includes\exps\decs.hxx" />
+    <ClInclude Include="includes\exps\dollarvar.hxx" />
+    <ClInclude Include="includes\exps\doubleexp.hxx" />
+    <ClInclude Include="includes\exps\exp.hxx" />
+    <ClInclude Include="includes\exps\fieldexp.hxx" />
+    <ClInclude Include="includes\exps\floatexp.hxx" />
+    <ClInclude Include="includes\exps\forexp.hxx" />
+    <ClInclude Include="includes\exps\functiondec.hxx" />
+    <ClInclude Include="includes\exps\ifexp.hxx" />
+    <ClInclude Include="includes\exps\intexp.hxx" />
+    <ClInclude Include="includes\exps\listexp.hxx" />
+    <ClInclude Include="includes\exps\location.hxx" />
+    <ClInclude Include="includes\exps\logicalopexp.hxx" />
+    <ClInclude Include="includes\exps\mathexp.hxx" />
+    <ClInclude Include="includes\exps\matrixexp.hxx" />
+    <ClInclude Include="includes\exps\matrixlineexp.hxx" />
+    <ClInclude Include="includes\exps\nilexp.hxx" />
+    <ClInclude Include="includes\exps\notexp.hxx" />
+    <ClInclude Include="includes\exps\opexp.hxx" />
+    <ClInclude Include="includes\exps\returnexp.hxx" />
+    <ClInclude Include="includes\exps\selectexp.hxx" />
+    <ClInclude Include="includes\exps\seqexp.hxx" />
+    <ClInclude Include="includes\exps\simplevar.hxx" />
+    <ClInclude Include="includes\exps\stepvisitor.hxx" />
+    <ClInclude Include="includes\exps\stringexp.hxx" />
+    <ClInclude Include="includes\exps\token.hxx" />
+    <ClInclude Include="includes\exps\transposeexp.hxx" />
+    <ClInclude Include="includes\exps\trycatchexp.hxx" />
+    <ClInclude Include="includes\exps\var.hxx" />
+    <ClInclude Include="includes\exps\vardec.hxx" />
+    <ClInclude Include="includes\exps\whileexp.hxx" />
+    <ClInclude Include="includes\macrovarvisitor.hxx" />
+    <ClInclude Include="includes\mutevisitor.hxx" />
+    <ClInclude Include="includes\printvisitor.hxx" />
+    <ClInclude Include="includes\runvisitor.hxx" />
+    <ClInclude Include="includes\scilabexception.hxx" />
+    <ClInclude Include="includes\shortcutvisitor.hxx" />
+    <ClInclude Include="includes\stepvisitor.hxx" />
+    <ClInclude Include="includes\timedvisitor.hxx" />
+    <ClInclude Include="includes\visitor.hxx" />
+    <ClInclude Include="includes\visitor_common.hxx" />
+  </ItemGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
   <ImportGroup Label="ExtensionTargets">
   </ImportGroup>
index 2fdeabe..a7f99be 100644 (file)
@@ -4,9 +4,6 @@
     <ClCompile Include="src\cpp\debugvisitor.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
-    <ClCompile Include="src\cpp\libAst.cpp">
-      <Filter>Source Files</Filter>
-    </ClCompile>
     <ClCompile Include="src\cpp\mutevisitor.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
     <ClCompile Include="src\cpp\expHistory.cpp">
       <Filter>Source Files</Filter>
     </ClCompile>
+    <ClCompile Include="src\cpp\runvisitor.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\run_AssignExp.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\run_MatrixExp.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\run_OpExp.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
+    <ClCompile Include="src\cpp\run_CallExp.cpp">
+      <Filter>Source Files</Filter>
+    </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="includes\all.hxx">
-      <Filter>Header Files</Filter>
+    <Library Include="..\..\bin\blasplus.lib" />
+    <Library Include="..\..\bin\lapack.lib" />
+    <Library Include="..\..\bin\libintl.lib" />
+  </ItemGroup>
+  <ItemGroup>
+    <Filter Include="Header Files">
+      <UniqueIdentifier>{cb9b58ce-c856-48a4-bd7a-313c179422ac}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Source Files">
+      <UniqueIdentifier>{0499815e-56d2-4ff4-bb90-dd57cf2c6cd0}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Libraries Dependencies">
+      <UniqueIdentifier>{31bac480-5190-44fd-8c11-aa2cf27d3069}</UniqueIdentifier>
+    </Filter>
+    <Filter Include="Header Files\exps">
+      <UniqueIdentifier>{145230a5-48e4-4b42-899c-680c6ced09cb}</UniqueIdentifier>
+    </Filter>
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="core_Import.def">
+      <Filter>Libraries Dependencies</Filter>
+    </None>
+  </ItemGroup>
+  <ItemGroup>
+    <ClInclude Include="includes\exps\all.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\ast.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\alldec.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\alldec.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\allexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\allexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\allvar.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\allvar.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\anydecs.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\anydecs.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\arraylistexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\arraylistexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\arraylistvar.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\arraylistvar.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\assignexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\assignexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\assignlistexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\assignlistexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\ast.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\boolexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\boolexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\controlexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\breakexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\breakexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\callexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\callexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\caseexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\caseexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\cellcallexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\cellcallexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\cellexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\cellexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\colonvar.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\colonvar.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\commentexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\commentexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\constexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\constexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\continueexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\continueexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\controlexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\debugvisitor.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\dec.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\intexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\decls.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\dec.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\decs.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\decls.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\dollarvar.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\decs.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\doubleexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\dollarvar.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\exp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\doubleexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\fieldexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\dummyvisitor.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\floatexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\execvisitor.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\forexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\exp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\functiondec.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\fieldexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\ifexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\floatexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\intexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\forexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\listexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\functiondec.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\location.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\ifexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\logicalopexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\listexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\mathexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\whileexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\matrixexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\logicalopexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\matrixlineexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\mathexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\nilexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\matrixexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\notexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\matrixlineexp.hxx">
-      <Filter>Header Files</Filter>
-    </ClInclude>
-    <ClInclude Include="includes\mutevisitor.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\opexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\nilexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\returnexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\notexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\selectexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\opexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\seqexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\printvisitor.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\simplevar.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\returnexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\stepvisitor.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\run_AssignExp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\stringexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\run_CallExp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\token.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\run_MatrixExp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\transposeexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\run_OpExp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\trycatchexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\runvisitor.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\var.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\selectexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\vardec.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\seqexp.hxx">
-      <Filter>Header Files</Filter>
+    <ClInclude Include="includes\exps\whileexp.hxx">
+      <Filter>Header Files\exps</Filter>
     </ClInclude>
-    <ClInclude Include="includes\shortcutvisitor.hxx">
+    <ClInclude Include="includes\debugvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\simplevar.hxx">
+    <ClInclude Include="includes\dummyvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\stringexp.hxx">
+    <ClInclude Include="includes\dynlib_ast_tools.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\timedvisitor.hxx">
+    <ClInclude Include="includes\execvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\token.hxx">
+    <ClInclude Include="includes\expHistory.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\transposeexp.hxx">
+    <ClInclude Include="includes\macrovarvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\trycatchexp.hxx">
+    <ClInclude Include="includes\mutevisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\var.hxx">
+    <ClInclude Include="includes\printvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\vardec.hxx">
+    <ClInclude Include="includes\runvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\visitor.hxx">
+    <ClInclude Include="includes\scilabexception.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\visitor_common.hxx">
+    <ClInclude Include="includes\shortcutvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="src\cpp\libAst.hxx">
+    <ClInclude Include="includes\stepvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\stepvisitor.hxx">
+    <ClInclude Include="includes\timedvisitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\macrovarvisitor.hxx">
+    <ClInclude Include="includes\visitor.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
-    <ClInclude Include="includes\expHistory.hxx">
+    <ClInclude Include="includes\visitor_common.hxx">
       <Filter>Header Files</Filter>
     </ClInclude>
   </ItemGroup>
-  <ItemGroup>
-    <Library Include="..\..\bin\blasplus.lib" />
-    <Library Include="..\..\bin\lapack.lib" />
-    <Library Include="..\..\bin\libintl.lib" />
-  </ItemGroup>
-  <ItemGroup>
-    <Filter Include="Header Files">
-      <UniqueIdentifier>{cb9b58ce-c856-48a4-bd7a-313c179422ac}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Source Files">
-      <UniqueIdentifier>{0499815e-56d2-4ff4-bb90-dd57cf2c6cd0}</UniqueIdentifier>
-    </Filter>
-    <Filter Include="Libraries Dependencies">
-      <UniqueIdentifier>{31bac480-5190-44fd-8c11-aa2cf27d3069}</UniqueIdentifier>
-    </Filter>
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="core_Import.def">
-      <Filter>Libraries Dependencies</Filter>
-    </None>
-  </ItemGroup>
 </Project>
\ No newline at end of file
diff --git a/scilab/modules/ast/includes/arraylistexp.hxx b/scilab/modules/ast/includes/arraylistexp.hxx
deleted file mode 100644 (file)
index b924961..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
-** \file arraylistexp.hxx
-** Define the Sequence Expression class.
-*/
-
-#ifndef __ARRAYLISTEXP_HXX__
-#define __ARRAYLISTEXP_HXX__
-
-#include "exp.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract an Array List of Expression node.
-    **
-    ** \b Example: foo(a), foo(b) */
-    class ArrayListExp : public Exp
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct an Array List of Expression node.
-        ** \param location scanner position informations
-        ** \param body EXP LIST intruction
-        */
-        ArrayListExp (const Location& location,
-            std::list<Exp *>& exps) 
-            : Exp (location),
-            _exps (&exps)
-        {
-        }
-
-        virtual ~ArrayListExp ()
-        {
-            delete _exps;
-        }
-
-        virtual ArrayListExp* clone()
-        {
-            std::list<Exp *>* exps = new std::list<Exp *>;
-            std::list<Exp *>::const_iterator it;
-            for(it = _exps->begin() ; it != _exps->end() ; it++)
-            {
-                exps->push_back((*it)->clone());
-            }
-
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            ArrayListExp* cloned = new ArrayListExp(*newloc, *exps);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        const std::list<Exp *>&        exps_get() const
-        {
-            return *_exps;
-        }
-
-        std::list<Exp *>&      exps_get()
-        {
-            return *_exps;
-        }
-        /** \} */
-
-
-    protected:
-        std::list<Exp *>* _exps;
-    };
-
-} // namespace ast
-
-#endif // __ARRAYLISTEXP_HXX__
diff --git a/scilab/modules/ast/includes/arraylistvar.hxx b/scilab/modules/ast/includes/arraylistvar.hxx
deleted file mode 100644 (file)
index 77f03c3..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
-** \file arraylistvar.hxx
-** Define the Arraylistuence Varression class.
-*/
-
-#ifndef __ARRAYLISTVAR_HXX__
-#define __ARRAYLISTVAR_HXX__
-
-#include "var.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract an Array List of Variable node.
-    **
-    ** \b Example: a, b, $, : */
-    class ArrayListVar : public Var
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct an Array List of Variable node.
-        ** \param location scanner position informations
-        ** \param body VAR LIST intruction
-        */
-        ArrayListVar (const Location& location,
-            std::list<Var *>& vars) 
-            : Var (location),
-            _vars (&vars)
-        {
-        }
-
-        virtual ~ArrayListVar ()
-        {
-            delete _vars;
-        }
-
-        virtual ArrayListVar* clone()
-        {
-            std::list<Var *>* vars = new std::list<Var *>;
-            std::list<Var *>::const_iterator it;
-            for(it = vars_get().begin() ; it != vars_get().end() ; it++)
-            {
-                Var* var = dynamic_cast<Var*>((*it)->clone());
-                vars->push_back(var);
-            }
-
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            ArrayListVar* cloned = new ArrayListVar(*newloc, *vars);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        const std::list<Var *>&        vars_get() const
-        {
-            return *_vars;
-        }
-
-        std::list<Var *>&      vars_get()
-        {
-            return *_vars;
-        }
-        /** \} */
-
-
-    protected:
-        std::list<Var *>* _vars;
-    };
-
-} // namespace ast
-
-#endif // __ARRAYLISTVAR_HXX__
diff --git a/scilab/modules/ast/includes/assignlistexp.hxx b/scilab/modules/ast/includes/assignlistexp.hxx
deleted file mode 100644 (file)
index 695c93e..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
- ** \file assignlistexp.hxx
- ** Define the Sequence Expression class.
- */
-
-#ifndef __ASSIGNLISTEXP_HXX__
-#define __ASSIGNLISTEXP_HXX__
-
-#include "assignlistexp.hxx"
-
-namespace ast
-{
-    /** \brief Abstract an Assign List of Expression node.
-    **
-    ** \b Example: [a, b, c.d, e(2)] = ... */
-    class AssignListExp : public ArrayListExp
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct an Assign List of Expression node.
-        ** \param location scanner position informations
-        ** \param body EXP LIST intruction
-        */
-        AssignListExp (const Location& location,
-            std::list<Exp *>& exps) :
-        ArrayListExp (location, exps)
-        {
-        }
-
-        virtual AssignListExp* clone()
-        {
-            std::list<Exp *>* exps = new std::list<Exp *>;
-            std::list<Exp *>::const_iterator it;
-            for(it = _exps->begin() ; it != _exps->end() ; it++)
-            {
-                exps->push_back((*it)->clone());
-            }
-
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            AssignListExp* cloned = new AssignListExp(*newloc, *exps);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-    };
-
-} // namespace ast
-
-#endif // __ASSIGNLISTEXP_HXX__
diff --git a/scilab/modules/ast/includes/breakexp.hxx b/scilab/modules/ast/includes/breakexp.hxx
deleted file mode 100644 (file)
index cf83a62..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
-** \file ast/breakexp.hxx
-** Define the Break Expression class.
-*/
-
-#ifndef AST_BREAKEXP_HXX
-#define AST_BREAKEXP_HXX
-
-#include "controlexp.hxx"
-
-namespace ast
-{
-    /** \brief Abstract an Break Expression node.
-    **
-    ** \b Example:  break ;*/
-    class BreakExp : public ControlExp
-    {
-    public:
-        BreakExp (const Location& location) 
-            : ControlExp (location)
-        {
-        }
-
-        /** \brief Destroy an Break Exp node. */
-        virtual ~BreakExp ()
-        {
-        }
-        /** \} */
-
-        virtual BreakExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            BreakExp* cloned = new BreakExp(*newloc);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-    };
-
-} // namespace ast
-
-
-#endif // !AST_BREAKEXP_HXX
diff --git a/scilab/modules/ast/includes/callexp.hxx b/scilab/modules/ast/includes/callexp.hxx
deleted file mode 100644 (file)
index 9936fd1..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-#ifndef AST_CALLEXP_HXX
-#define AST_CALLEXP_HXX
-
-#include <list>
-#include "exp.hxx"
-
-namespace ast
-{
-    /*
-    ** \brief Abstract a Call Expression node.
-    **
-    ** \b Example: foo(2097)
-    */
-    class CallExp : public Exp
-    {
-        // \brief Ctor & dtor.
-    public:
-        /*
-        ** \brief Construct a Call Expression node.
-        ** \param location scanner position informations
-        ** \param name of the function
-        ** \param list of the arguments
-        */
-        CallExp (const Location& location,
-            Exp& name,
-            std::list<Exp *>& args) :
-        Exp (location),
-            _name (&name),
-            _args (&args)
-        {
-        }
-
-        virtual ~CallExp ()
-        {
-            delete _name;
-            std::list<Exp *>::const_iterator i;
-            for(i = _args->begin() ; i != _args->end() ; i++)
-            {
-                delete *i;
-            }
-            delete _args;
-        }
-
-        virtual CallExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            std::list<Exp *>* args = new std::list<Exp *>;
-            std::list<Exp *>::const_iterator it;
-            for(it = _args->begin() ; it != _args->end() ; it++)
-            {
-                args->push_back((*it)->clone());
-            }
-
-            CallExp* cloned = new CallExp(*newloc, *name_get().clone(), *args);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        // \brief Visitors entry point.
-    public:
-        // \brief Accept a const visitor
-        virtual void   accept(Visitor& v)
-        {
-            v.visit (*this);
-        }
-        // \brief Accept a non-const visitor
-        virtual void   accept(ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-
-
-        // \brief Accessors.
-    public:
-        const Exp&     name_get() const
-        {
-            return *_name;
-        }
-
-        Exp&   name_get()
-        {
-            return *_name;
-        }
-
-        void name_set (Exp *name)
-        {
-            _name = name;
-        }
-
-        const std::list<Exp *>&        args_get() const
-        {
-            return *_args;
-        }
-
-        std::list<Exp *>&      args_get()
-        {
-            return *_args;
-        }
-
-    protected:
-        Exp*           _name;
-        std::list<Exp *>*      _args;
-    };
-
-} // namespace ast
-
-#endif // !AST_CALLEXP_HXX
diff --git a/scilab/modules/ast/includes/caseexp.hxx b/scilab/modules/ast/includes/caseexp.hxx
deleted file mode 100644 (file)
index 8f8ae7e..0000000
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
- * 
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- * 
- */
-
-#ifndef __AST_CASE_EXP_HXX__
-#define __AST_CASE_EXP_HXX__
-
-#include "exp.hxx"
-#include "seqexp.hxx"
-
-namespace ast {
-    class CaseExp : public ControlExp
-    {
-    public :
-        CaseExp(const Location& location,
-            Exp& test,
-            SeqExp& body) :
-        ControlExp (location),
-            _test (&test),
-            _body (&body)
-        {
-        }
-
-        ~CaseExp()
-        {
-            delete _test;
-            delete _body;
-        }
-
-        virtual CaseExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            CaseExp* cloned = new CaseExp(*newloc, *test_get()->clone(), *body_get()->clone());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-    public :
-        Exp* test_get() const { return _test; }
-        SeqExp* body_get() const { return _body; }
-
-    private :
-        Exp* _test;
-        SeqExp *_body;
-    };
-
-    /** \brief Define a shorthand for list of CaseExp* manipulation. */
-    typedef std::list<CaseExp *> cases_t;
-}
-
-#endif /* !__AST_CASE_EXP_HXX__ */
diff --git a/scilab/modules/ast/includes/cellcallexp.hxx b/scilab/modules/ast/includes/cellcallexp.hxx
deleted file mode 100644 (file)
index 9855c68..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2010-2010 - DIGITEO - Antoine ELIAS
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
- ** \file cellcallexp.hxx
- ** Define the Sequence Expression class.
- */
-
-#ifndef AST_CELLCALLEXP_HXX
-#define AST_CELLCALLEXP_HXX
-
-#include "callexp.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract an Array List of Expression node.
-    **
-    ** \b Example: foo(a), foo(b) */
-    class CellCallExp : public CallExp
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /*
-        ** \brief Construct a CellCall Expression node.
-        ** \param location scanner position informations
-        ** \param name of the cell
-        ** \param list of the arguments
-        */
-        CellCallExp (const Location& location,
-            Exp& name,
-            std::list<Exp *>& args) 
-            : CallExp(location, name, args)
-        {
-        }
-
-        virtual CellCallExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            std::list<Exp *>* args = new std::list<Exp *>;
-            std::list<Exp *>::const_iterator it;
-            for(it = _args->begin() ; it != _args->end() ; it++)
-            {
-                args->push_back((*it)->clone());
-            }
-
-            CellCallExp* cloned = new CellCallExp(*newloc, *name_get().clone(), *args);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-    };
-
-} // namespace ast
-
-#endif // !AST_CELLCALLEXP_HXX
diff --git a/scilab/modules/ast/includes/cellexp.hxx b/scilab/modules/ast/includes/cellexp.hxx
deleted file mode 100644 (file)
index 63cf259..0000000
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
- ** \file cellexp.hxx
- ** Define the Sequence Expression class.
- */
-
-#ifndef AST_CELLEXP_HXX
-#define AST_CELLEXP_HXX
-
-#include "matrixexp.hxx"
-#include "matrixlineexp.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract an Array List of Expression node.
-    **
-    ** \b Example: foo(a), foo(b) */
-    class CellExp : public MatrixExp
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct an Array List of Expression node.
-        ** \param location scanner position informations
-        ** \param body EXP LIST intruction
-        */
-        CellExp (const Location& location,
-            std::list<MatrixLineExp *>& lines) 
-            : MatrixExp (location, lines)
-        {
-        }
-
-        virtual CellExp* clone()
-        {
-            std::list<MatrixLineExp *>* lines = new std::list<MatrixLineExp *>;
-            std::list<MatrixLineExp *>::const_iterator it;
-            for(it = lines_get().begin() ; it != lines_get().end() ; it++)
-            {
-                lines->push_back((*it)->clone());
-            }
-
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            CellExp* cloned = new CellExp(*newloc, *lines);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-    };
-
-} // namespace ast
-
-#endif // !AST_CELLEXP_HXX
diff --git a/scilab/modules/ast/includes/colonvar.hxx b/scilab/modules/ast/includes/colonvar.hxx
deleted file mode 100644 (file)
index 1a59bff..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-
-#ifndef AST_COLONVAR_HXX
-#define AST_COLONVAR_HXX
-
-#include "var.hxx"
-
-namespace ast
-{
-    /** \brief Abstract a Colon Variable node.
-    **
-    ** \b Example: : */
-    class ColonVar : public Var
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct a Colon Variable node.
-        ** \param location scanner position informations
-        ** \param name the name of the variable
-        */
-        ColonVar (const Location& location)
-            : Var (location)
-        {
-        }
-        /** \brief Destroy a Field Variable node.
-        **
-        ** Delete name, see constructor. */
-        virtual ~ColonVar ()
-        {
-        }
-
-        virtual ColonVar* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            ColonVar* cloned = new ColonVar(*newloc);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-    };
-
-} // namespace ast
-
-#endif // !AST_COLONVAR_HXX
diff --git a/scilab/modules/ast/includes/commentexp.hxx b/scilab/modules/ast/includes/commentexp.hxx
deleted file mode 100644 (file)
index 89116a7..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-#ifndef AST_COMMENTEXP_HXX
-#define AST_COMMENTEXP_HXX
-
-#include "constexp.hxx"
-
-namespace ast
-{
-    /** \brief Abstract an string Expression node.
-    **
-    ** \b Example: string*/
-    class CommentExp : public ConstExp
-    {
-    public:
-        CommentExp (const Location& location,
-            std::wstring* comment)
-            : ConstExp (location),
-            _comment (comment)
-        {
-        }
-        /** \brief Destroy an string Exp node.
-        **
-        ** Delete value (see constructor). */
-        virtual ~CommentExp ()
-        {
-            delete _comment;
-        }
-        /** \} */
-
-        virtual CommentExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            CommentExp* cloned = new CommentExp(*newloc, new std::wstring(comment_get()));
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        /** \brief Return the comment (read only). */
-        std::wstring &comment_get () const
-        {
-            return *_comment;
-        }
-        /** \} */
-    protected:
-        std::wstring* _comment;
-    };
-
-} // namespace ast
-
-#endif // !AST_COMMENTEXP_HXX
diff --git a/scilab/modules/ast/includes/continueexp.hxx b/scilab/modules/ast/includes/continueexp.hxx
deleted file mode 100644 (file)
index 851624c..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
- ** \file ast/continueexp.hxx
- ** Define the Continue Expression class.
- */
-
-#ifndef AST_CONTINUEEXP_HXX
-#define AST_CONTINUEEXP_HXX
-
-#include "controlexp.hxx"
-
-namespace ast
-{
-    /** \brief Abstract an Continue Expression node.
-    **
-    ** \b Example:  continue ;*/
-    class ContinueExp : public ControlExp
-    {
-    public:
-        ContinueExp (const Location& location) 
-            : ControlExp (location)
-        {
-        }
-
-        /** \brief Destroy an Continue Exp node. */
-        virtual ~ContinueExp ()
-        {
-        }
-        /** \} */
-
-        virtual ContinueExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            ContinueExp* cloned = new ContinueExp(*newloc);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-    };
-
-} // namespace ast
-
-
-#endif // !AST_CONTINUEEXP_HXX
diff --git a/scilab/modules/ast/includes/decls.hxx b/scilab/modules/ast/includes/decls.hxx
deleted file mode 100644 (file)
index 5df3b44..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
- ** \file decls.hxx
- ** \brief Forward declarations of all node-classes of AST
- ** (needed by the visitors)
- */
-#ifndef AST_DECLS_HXX
-#define AST_DECLS_HXX
-
-#include <list>
-
-namespace ast
-{
-    class Ast;
-
-    class Exp;
-    typedef std::list<Exp *> exps_t;
-    // Low Level Expressions.
-
-    // Const Exp
-    class IntExp;
-    class StringExp;
-    class FloatExp;
-    class DoubleExp;
-    class BoolExp;
-    class CommentExp;
-    class NilExp;
-
-    // Var Exp
-    class SimpleVar;
-    class ArrayListVar;
-    class DollarVar;
-    class ColonVar;
-
-    // Intructions Exp
-    class CallExp;
-    class CellCallExp;
-    class MathExp;
-    class OpExp;
-    class LogicalOpExp;
-    class AssignExp;
-    class IfExp;
-    class WhileExp;
-    class ForExp;
-    class BreakExp;
-    class ContinueExp;
-    class FieldExp;
-    class TryCatchExp;
-    class ReturnExp;
-    class SelectExp;
-    class CaseExp;
-
-    // Single operations expressions
-    class NotExp;
-    class TransposeExp;
-
-    // List of expressions
-    class SeqExp;
-    class ArrayListExp;
-    class AssignListExp;
-
-    // Matrix expression
-    class MatrixExp;
-    class MatrixLineExp;
-
-    // Cell expression
-    class CellExp;
-
-    // Decs
-    class VarDec;
-    class FunctionDec;
-
-    // Type dedicated Exp
-    class ListExp;
-
-} // namespace ast
-
-#endif // !AST_DECLS_HXX
diff --git a/scilab/modules/ast/includes/dollarvar.hxx b/scilab/modules/ast/includes/dollarvar.hxx
deleted file mode 100644 (file)
index 80f0f3a..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-
-#ifndef AST_DOLLARVAR_HXX
-#define AST_DOLLARVAR_HXX
-
-#include "var.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract a Dollar Variable node.
-    **
-    ** \b Example: $ */
-    class DollarVar : public Var
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct a Dollar Variable node.
-        ** \param location scanner position informations
-        ** \param name the name of the variable
-        */
-        DollarVar (const Location& location)
-            : Var (location)
-        {
-        }
-        /** \brief Destroy a Field Variable node.
-        **
-        ** Delete name, see constructor. */
-        ~DollarVar ()
-        {
-        }
-
-        virtual DollarVar* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            DollarVar* cloned = new DollarVar(*newloc);
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-    };
-
-} // namespace ast
-
-#endif // !AST_DOLLARVAR_HXX
diff --git a/scilab/modules/ast/includes/doubleexp.hxx b/scilab/modules/ast/includes/doubleexp.hxx
deleted file mode 100644 (file)
index c5ef21d..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-#ifndef AST_DOUBLEEXP_HXX
-#define AST_DOUBLEEXP_HXX
-
-#include "constexp.hxx"
-
-#include "visitor.hxx"
-
-#include "double.hxx"
-
-namespace ast
-{
-    /** \brief Abstract an Double Expression node.
-    **
-    ** \b Example:  42.51 */
-    class DoubleExp : public ConstExp
-    {
-    public:
-        DoubleExp (const Location& location, double value)
-            : ConstExp (location),
-              _value (value),
-              _bigDouble (NULL)
-        {
-        }
-        /** \brief Destroy an Double Expression node.
-        **
-        ** Delete size et init (exp) (see constructor). */
-        virtual ~DoubleExp ()
-        {
-            if(_bigDouble)
-            {
-                _bigDouble->DecreaseRef();
-                if(_bigDouble->isDeletable())
-                {
-                    delete _bigDouble;
-                }
-            }
-        }
-        /** \} */
-
-        virtual DoubleExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            DoubleExp* cloned = new DoubleExp(*newloc, value_get());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        /** \brief Return the value */
-        double value_get() const
-        {
-            return _value;
-        }
-        /** \} */
-
-        types::Double* getBigDouble() const
-        {
-            return _bigDouble;
-        }
-
-        void setBigDouble(types::Double *pdbl)
-        {
-            if(_bigDouble && _bigDouble->isRef())
-            {
-                _bigDouble->DecreaseRef();
-                if(_bigDouble->isDeletable())
-                {
-                    delete _bigDouble;
-                }
-            }
-            _bigDouble = pdbl;
-            _bigDouble->IncreaseRef();
-        }
-
-    protected:
-        double     _value;
-        types::Double*    _bigDouble;
-    };
-
-} // namespace ast
-#endif
diff --git a/scilab/modules/ast/includes/exp.hxx b/scilab/modules/ast/includes/exp.hxx
deleted file mode 100644 (file)
index 2c01ed7..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
-** \file exp.hxx
-** Define the Expression mother class.
-*/
-
-#ifndef AST_EXP_HXX
-#define AST_EXP_HXX
-
-#include <list>
-
-#include "ast.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract an Expression node. */
-    class Exp : public Ast
-    {
-
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct an Expression node.
-        ** \param location scanner position informations */
-        Exp (const Location& location) 
-            : Ast (location),
-            _verbose(false),
-            _bBreak(false),
-            _bBreakable(false),
-            _bReturn(false),
-            _bReturnable(false),
-            _bContinue(false),
-            _bContinuable(false)
-        {
-        }
-        /** \brief Destroys an Expression node. */
-        virtual ~Exp ()
-        {
-        }
-        /** \} */
-
-        virtual Exp* clone() = 0;
-        //{
-        //    Location* newloc = const_cast<Location*>(&location_get())->clone();
-        //    Exp* exp = new Exp(location_get());
-        //    exp->set_verbose(is_verbose());
-
-        //    if(is_break())
-        //    {
-        //        exp->break_set();
-        //    }
-
-        //    if(is_breakable())
-        //    {
-        //        exp->breakable_set();
-        //    }
-
-        //    if(is_return())
-        //    {
-        //        exp->return_set();
-        //    }
-
-        //    if(is_returnable())
-        //    {
-        //        exp->returnable_set();
-        //    }
-
-        //    if(is_continue())
-        //    {
-        //        exp->continue_set();
-        //    }
-
-        //    if(is_continuable())
-        //    {
-        //        exp->continuable_set();
-        //    }
-
-        //    return exp;
-        //}
-
-    public:
-        /** \brief Return if an expression should be displayed or not. */
-        void mute(void)
-        {
-            _verbose = false;
-        }
-
-        /** \brief Return if an expression should be displayed or not. */
-        void set_verbose(bool verbose)
-        {
-            _verbose = verbose;
-        }
-
-        /** \brief Return if an expression should be displayed or not. */
-        bool is_verbose(void) const
-        {
-            return _verbose;
-        }
-
-        void break_set(void)
-        {
-            _bBreak = true;
-        }
-
-        void break_reset(void)
-        {
-            _bBreak = false;
-        }
-
-        bool is_break(void) const
-        {
-            return _bBreak;
-        }
-
-        void breakable_set(void)
-        {
-            _bBreakable = true;
-        }
-
-        void breakable_reset(void)
-        {
-            _bBreakable = false;
-        }
-
-        bool is_breakable(void) const
-        {
-            return _bBreakable;
-        }
-
-        void return_set(void)
-        {
-            _bReturn = true;
-        }
-
-        void return_reset(void)
-        {
-            _bReturn = false;
-        }
-
-        bool is_return(void) const
-        {
-            return _bReturn;
-        }
-
-        void returnable_set(void)
-        {
-            _bReturnable = true;
-        }
-
-        void returnable_reset(void)
-        {
-            _bReturnable = false;
-        }
-
-        bool is_returnable(void) const
-        {
-            return _bReturnable;
-        }
-
-        void continue_set(void)
-        {
-            _bContinue = true;
-        }
-
-        void continue_reset(void)
-        {
-            _bContinue = false;
-        }
-
-        bool is_continue(void) const
-        {
-            return _bContinue;
-        }
-
-        void continuable_set(void)
-        {
-            _bContinuable = true;
-        }
-
-        void continuable_reset(void)
-        {
-            _bContinuable = false;
-        }
-
-        bool is_continuable(void) const
-        {
-            return _bContinuable;
-        }
-    private:
-        bool _verbose;
-        bool _bBreak;
-        bool _bBreakable;
-        bool _bReturn;
-        bool _bReturnable;
-        bool _bContinue;
-        bool _bContinuable;
-    };
-
-    /** \brief Define a shorthand for list of Exp* manipulation. */
-    typedef std::list<Exp *> exps_t;
-
-} // namespace ast
-
-#endif // !AST_EXP_HXX
similarity index 68%
rename from scilab/modules/ast/includes/anydecs.hxx
rename to scilab/modules/ast/includes/exps/anydecs.hxx
index 80806be..108ff89 100644 (file)
 namespace ast
 {
 
-  template < typename D >
-  /** \brief Abstract a "list of D-declarations" node. */
-  class AnyDecs : public Decs
-  {
-  public:
+template < typename D >
+/** \brief Abstract a "list of D-declarations" node. */
+class AnyDecs : public Decs
+{
+public:
     /** \brief Define shortand type for list of D-declarations. */
     typedef std::list< D* > Ds;
 
     /** \name Ctor & dtor.
      ** \{ */
-  public:
+public:
     /** \brief Construct an Any Decs node.
      ** \param location scanner position informations */
     AnyDecs (const Location& location) :
-      Decs (location),
-      _decs (new Ds ())
+        Decs (location),
+        _decs (new Ds ())
     {
     }
     /** \brief Construct an Any Decs node with a list of D-declarations.
      ** \param location scanner position informations
      ** \param decs list of D-declarations */
     AnyDecs (const Location& location, Ds& decs) :
-      Decs (location),
-      _decs (&decs)
+        Decs (location),
+        _decs (&decs)
     {
     }
 
@@ -60,66 +60,66 @@ namespace ast
      **
      ** Free list and its content. */
     ~AnyDecs ()
-               {
-                       for (typename Ds::iterator i = _decs->begin(); i != _decs->end(); ++i)
-                       {
-                               delete *i;
-                       }
-                       delete _decs;
-               }
-               /** \} */
+    {
+        for (typename Ds::iterator i = _decs->begin(); i != _decs->end(); ++i)
+        {
+            delete *i;
+        }
+        delete _decs;
+    }
+    /** \} */
 
 
     /** \name Visitors entry point.
      ** \{ */
-  public:
+public:
     /** \brief Accept a const visitor \a v. */
     virtual void accept (Visitor& v)
     {
-      v.visit (*this);
+        v.visit (*this);
     }
     /** \brief Accept a non-const visitor \a v. */
     virtual void accept (ConstVisitor& v) const
     {
-      v.visit (*this);
+        v.visit (*this);
     }
     /** \} */
 
 
     /** \name Accessors.
      ** \{ */
-  public:
+public:
     /** \brief Push a D-declaration into the list.
      ** \param d declaration to push */
     AnyDecs< D >& push_back (D& d)
     {
-      location_set (location_get () + d.location_get ());
-      _decs->push_back (&d);
-      return *this;
+        location_set (location_get () + d.location_get ());
+        _decs->push_back (&d);
+        return *this;
     }
 
     /** \brief Access to list of D-declarations (read and write). */
     Ds& decs_get ()
     {
-      return *_decs;
+        return *_decs;
     }
     /** \brief Access to list of D-declarations (read only). */
     const Ds& decs_get () const
     {
-      return *_decs;
+        return *_decs;
     }
     /** \} */
 
-  private:
+private:
     Ds* _decs;
-  };
-
-  /** \brief Define shortand type for Variable declarations. */
-  typedef AnyDecs< VarDec > VarDecs;
-  /** \brief Define shortand type for Type declarations. */
-  typedef AnyDecs< TypeDec > TypeDecs;
-  /** \brief Define shortand type for Function declarations. */
-  typedef AnyDecs< FunctionDec > FunctionDecs;
+};
+
+/** \brief Define shortand type for Variable declarations. */
+typedef AnyDecs< VarDec > VarDecs;
+/** \brief Define shortand type for Type declarations. */
+typedef AnyDecs< TypeDec > TypeDecs;
+/** \brief Define shortand type for Function declarations. */
+typedef AnyDecs< FunctionDec > FunctionDecs;
 
 } // namespace ast
 
diff --git a/scilab/modules/ast/includes/exps/arraylistexp.hxx b/scilab/modules/ast/includes/exps/arraylistexp.hxx
new file mode 100644 (file)
index 0000000..eb00a7f
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+** \file arraylistexp.hxx
+** Define the Sequence Expression class.
+*/
+
+#ifndef __ARRAYLISTEXP_HXX__
+#define __ARRAYLISTEXP_HXX__
+
+#include "exp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Array List of Expression node.
+**
+** \b Example: foo(a), foo(b) */
+class ArrayListExp : public Exp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Array List of Expression node.
+    ** \param location scanner position informations
+    ** \param body EXP LIST intruction
+    */
+    ArrayListExp (const Location& location,
+                  std::list<Exp *>& exps)
+        : Exp (location),
+          _exps (&exps)
+    {
+    }
+
+    virtual ~ArrayListExp ()
+    {
+        delete _exps;
+    }
+
+    virtual ArrayListExp* clone()
+    {
+        std::list<Exp *>* exps = new std::list<Exp *>;
+        std::list<Exp *>::const_iterator it;
+        for (it = _exps->begin() ; it != _exps->end() ; it++)
+        {
+            exps->push_back((*it)->clone());
+        }
+
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        ArrayListExp* cloned = new ArrayListExp(*newloc, *exps);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    const std::list<Exp *>&    exps_get() const
+    {
+        return *_exps;
+    }
+
+    std::list<Exp *>&  exps_get()
+    {
+        return *_exps;
+    }
+    /** \} */
+
+
+protected:
+    std::list<Exp *>* _exps;
+};
+
+} // namespace ast
+
+#endif // __ARRAYLISTEXP_HXX__
diff --git a/scilab/modules/ast/includes/exps/arraylistvar.hxx b/scilab/modules/ast/includes/exps/arraylistvar.hxx
new file mode 100644 (file)
index 0000000..5a44b55
--- /dev/null
@@ -0,0 +1,103 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+** \file arraylistvar.hxx
+** Define the Arraylistuence Varression class.
+*/
+
+#ifndef __ARRAYLISTVAR_HXX__
+#define __ARRAYLISTVAR_HXX__
+
+#include "var.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Array List of Variable node.
+**
+** \b Example: a, b, $, : */
+class ArrayListVar : public Var
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Array List of Variable node.
+    ** \param location scanner position informations
+    ** \param body VAR LIST intruction
+    */
+    ArrayListVar (const Location& location,
+                  std::list<Var *>& vars)
+        : Var (location),
+          _vars (&vars)
+    {
+    }
+
+    virtual ~ArrayListVar ()
+    {
+        delete _vars;
+    }
+
+    virtual ArrayListVar* clone()
+    {
+        std::list<Var *>* vars = new std::list<Var *>;
+        std::list<Var *>::const_iterator it;
+        for (it = vars_get().begin() ; it != vars_get().end() ; it++)
+        {
+            Var* var = dynamic_cast<Var*>((*it)->clone());
+            vars->push_back(var);
+        }
+
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        ArrayListVar* cloned = new ArrayListVar(*newloc, *vars);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    const std::list<Var *>&    vars_get() const
+    {
+        return *_vars;
+    }
+
+    std::list<Var *>&  vars_get()
+    {
+        return *_vars;
+    }
+    /** \} */
+
+
+protected:
+    std::list<Var *>* _vars;
+};
+
+} // namespace ast
+
+#endif // __ARRAYLISTVAR_HXX__
diff --git a/scilab/modules/ast/includes/exps/assignlistexp.hxx b/scilab/modules/ast/includes/exps/assignlistexp.hxx
new file mode 100644 (file)
index 0000000..e61afbd
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file assignlistexp.hxx
+ ** Define the Sequence Expression class.
+ */
+
+#ifndef __ASSIGNLISTEXP_HXX__
+#define __ASSIGNLISTEXP_HXX__
+
+#include "assignlistexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Assign List of Expression node.
+**
+** \b Example: [a, b, c.d, e(2)] = ... */
+class AssignListExp : public ArrayListExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Assign List of Expression node.
+    ** \param location scanner position informations
+    ** \param body EXP LIST intruction
+    */
+    AssignListExp (const Location& location,
+                   std::list<Exp *>& exps) :
+        ArrayListExp (location, exps)
+    {
+    }
+
+    virtual AssignListExp* clone()
+    {
+        std::list<Exp *>* exps = new std::list<Exp *>;
+        std::list<Exp *>::const_iterator it;
+        for (it = _exps->begin() ; it != _exps->end() ; it++)
+        {
+            exps->push_back((*it)->clone());
+        }
+
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        AssignListExp* cloned = new AssignListExp(*newloc, *exps);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+};
+
+} // namespace ast
+
+#endif // __ASSIGNLISTEXP_HXX__
diff --git a/scilab/modules/ast/includes/exps/breakexp.hxx b/scilab/modules/ast/includes/exps/breakexp.hxx
new file mode 100644 (file)
index 0000000..bcb50f1
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+** \file ast/breakexp.hxx
+** Define the Break Expression class.
+*/
+
+#ifndef AST_BREAKEXP_HXX
+#define AST_BREAKEXP_HXX
+
+#include "controlexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Break Expression node.
+**
+** \b Example:  break ;*/
+class BreakExp : public ControlExp
+{
+public:
+    BreakExp (const Location& location)
+        : ControlExp (location)
+    {
+    }
+
+    /** \brief Destroy an Break Exp node. */
+    virtual ~BreakExp ()
+    {
+    }
+    /** \} */
+
+    virtual BreakExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        BreakExp* cloned = new BreakExp(*newloc);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+};
+
+} // namespace ast
+
+
+#endif // !AST_BREAKEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/callexp.hxx b/scilab/modules/ast/includes/exps/callexp.hxx
new file mode 100644 (file)
index 0000000..d1c621c
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_CALLEXP_HXX
+#define AST_CALLEXP_HXX
+
+#include <list>
+#include "exp.hxx"
+
+namespace ast
+{
+/*
+** \brief Abstract a Call Expression node.
+**
+** \b Example: foo(2097)
+*/
+class CallExp : public Exp
+{
+    // \brief Ctor & dtor.
+public:
+    /*
+    ** \brief Construct a Call Expression node.
+    ** \param location scanner position informations
+    ** \param name of the function
+    ** \param list of the arguments
+    */
+    CallExp (const Location& location,
+             Exp& name,
+             std::list<Exp *>& args) :
+        Exp (location),
+        _name (&name),
+        _args (&args)
+    {
+    }
+
+    virtual ~CallExp ()
+    {
+        delete _name;
+        std::list<Exp *>::const_iterator i;
+        for (i = _args->begin() ; i != _args->end() ; i++)
+        {
+            delete *i;
+        }
+        delete _args;
+    }
+
+    virtual CallExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        std::list<Exp *>* args = new std::list<Exp *>;
+        std::list<Exp *>::const_iterator it;
+        for (it = _args->begin() ; it != _args->end() ; it++)
+        {
+            args->push_back((*it)->clone());
+        }
+
+        CallExp* cloned = new CallExp(*newloc, *name_get().clone(), *args);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    // \brief Visitors entry point.
+public:
+    // \brief Accept a const visitor
+    virtual void       accept(Visitor& v)
+    {
+        v.visit (*this);
+    }
+    // \brief Accept a non-const visitor
+    virtual void       accept(ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+
+
+    // \brief Accessors.
+public:
+    const Exp& name_get() const
+    {
+        return *_name;
+    }
+
+    Exp&       name_get()
+    {
+        return *_name;
+    }
+
+    void name_set (Exp *name)
+    {
+        _name = name;
+    }
+
+    const std::list<Exp *>&    args_get() const
+    {
+        return *_args;
+    }
+
+    std::list<Exp *>&  args_get()
+    {
+        return *_args;
+    }
+
+protected:
+    Exp*               _name;
+    std::list<Exp *>*  _args;
+};
+
+} // namespace ast
+
+#endif // !AST_CALLEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/caseexp.hxx b/scilab/modules/ast/includes/exps/caseexp.hxx
new file mode 100644 (file)
index 0000000..12816c4
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __AST_CASE_EXP_HXX__
+#define __AST_CASE_EXP_HXX__
+
+#include "exp.hxx"
+#include "seqexp.hxx"
+
+namespace ast
+{
+class CaseExp : public ControlExp
+{
+public :
+    CaseExp(const Location& location,
+            Exp& test,
+            SeqExp& body) :
+        ControlExp (location),
+        _test (&test),
+        _body (&body)
+    {
+    }
+
+    ~CaseExp()
+    {
+        delete _test;
+        delete _body;
+    }
+
+    virtual CaseExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        CaseExp* cloned = new CaseExp(*newloc, *test_get()->clone(), *body_get()->clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+public :
+    Exp* test_get() const
+    {
+        return _test;
+    }
+    SeqExp* body_get() const
+    {
+        return _body;
+    }
+
+private :
+    Exp* _test;
+    SeqExp *_body;
+};
+
+/** \brief Define a shorthand for list of CaseExp* manipulation. */
+typedef std::list<CaseExp *> cases_t;
+}
+
+#endif /* !__AST_CASE_EXP_HXX__ */
diff --git a/scilab/modules/ast/includes/exps/cellcallexp.hxx b/scilab/modules/ast/includes/exps/cellcallexp.hxx
new file mode 100644 (file)
index 0000000..9d8e8a2
--- /dev/null
@@ -0,0 +1,81 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2010-2010 - DIGITEO - Antoine ELIAS
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file cellcallexp.hxx
+ ** Define the Sequence Expression class.
+ */
+
+#ifndef AST_CELLCALLEXP_HXX
+#define AST_CELLCALLEXP_HXX
+
+#include "callexp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Array List of Expression node.
+**
+** \b Example: foo(a), foo(b) */
+class CellCallExp : public CallExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /*
+    ** \brief Construct a CellCall Expression node.
+    ** \param location scanner position informations
+    ** \param name of the cell
+    ** \param list of the arguments
+    */
+    CellCallExp (const Location& location,
+                 Exp& name,
+                 std::list<Exp *>& args)
+        : CallExp(location, name, args)
+    {
+    }
+
+    virtual CellCallExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        std::list<Exp *>* args = new std::list<Exp *>;
+        std::list<Exp *>::const_iterator it;
+        for (it = _args->begin() ; it != _args->end() ; it++)
+        {
+            args->push_back((*it)->clone());
+        }
+
+        CellCallExp* cloned = new CellCallExp(*newloc, *name_get().clone(), *args);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+};
+
+} // namespace ast
+
+#endif // !AST_CELLCALLEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/cellexp.hxx b/scilab/modules/ast/includes/exps/cellexp.hxx
new file mode 100644 (file)
index 0000000..07d650d
--- /dev/null
@@ -0,0 +1,78 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file cellexp.hxx
+ ** Define the Sequence Expression class.
+ */
+
+#ifndef AST_CELLEXP_HXX
+#define AST_CELLEXP_HXX
+
+#include "matrixexp.hxx"
+#include "matrixlineexp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Array List of Expression node.
+**
+** \b Example: foo(a), foo(b) */
+class CellExp : public MatrixExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Array List of Expression node.
+    ** \param location scanner position informations
+    ** \param body EXP LIST intruction
+    */
+    CellExp (const Location& location,
+             std::list<MatrixLineExp *>& lines)
+        : MatrixExp (location, lines)
+    {
+    }
+
+    virtual CellExp* clone()
+    {
+        std::list<MatrixLineExp *>* lines = new std::list<MatrixLineExp *>;
+        std::list<MatrixLineExp *>::const_iterator it;
+        for (it = lines_get().begin() ; it != lines_get().end() ; it++)
+        {
+            lines->push_back((*it)->clone());
+        }
+
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        CellExp* cloned = new CellExp(*newloc, *lines);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+};
+
+} // namespace ast
+
+#endif // !AST_CELLEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/colonvar.hxx b/scilab/modules/ast/includes/exps/colonvar.hxx
new file mode 100644 (file)
index 0000000..6f431be
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+
+#ifndef AST_COLONVAR_HXX
+#define AST_COLONVAR_HXX
+
+#include "var.hxx"
+
+namespace ast
+{
+/** \brief Abstract a Colon Variable node.
+**
+** \b Example: : */
+class ColonVar : public Var
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Colon Variable node.
+    ** \param location scanner position informations
+    ** \param name the name of the variable
+    */
+    ColonVar (const Location& location)
+        : Var (location)
+    {
+    }
+    /** \brief Destroy a Field Variable node.
+    **
+    ** Delete name, see constructor. */
+    virtual ~ColonVar ()
+    {
+    }
+
+    virtual ColonVar* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        ColonVar* cloned = new ColonVar(*newloc);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+};
+
+} // namespace ast
+
+#endif // !AST_COLONVAR_HXX
diff --git a/scilab/modules/ast/includes/exps/commentexp.hxx b/scilab/modules/ast/includes/exps/commentexp.hxx
new file mode 100644 (file)
index 0000000..b81d078
--- /dev/null
@@ -0,0 +1,80 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_COMMENTEXP_HXX
+#define AST_COMMENTEXP_HXX
+
+#include "constexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an string Expression node.
+**
+** \b Example: string*/
+class CommentExp : public ConstExp
+{
+public:
+    CommentExp (const Location& location,
+                std::wstring* comment)
+        : ConstExp (location),
+          _comment (comment)
+    {
+    }
+    /** \brief Destroy an string Exp node.
+    **
+    ** Delete value (see constructor). */
+    virtual ~CommentExp ()
+    {
+        delete _comment;
+    }
+    /** \} */
+
+    virtual CommentExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        CommentExp* cloned = new CommentExp(*newloc, new std::wstring(comment_get()));
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the comment (read only). */
+    std::wstring &comment_get () const
+    {
+        return *_comment;
+    }
+    /** \} */
+protected:
+    std::wstring* _comment;
+};
+
+} // namespace ast
+
+#endif // !AST_COMMENTEXP_HXX
similarity index 53%
rename from scilab/modules/ast/includes/constexp.hxx
rename to scilab/modules/ast/includes/exps/constexp.hxx
index c7b6abd..0081d44 100644 (file)
 
 namespace ast
 {
-    /** \brief Abstract an Constant Expression node.
-    **
-    ** \b Example:  true or 2 or 1,23*/
-    class ConstExp : public Exp
+/** \brief Abstract an Constant Expression node.
+**
+** \b Example:  true or 2 or 1,23*/
+class ConstExp : public Exp
+{
+public:
+    ConstExp (const Location& location)
+        : Exp (location)
     {
-    public:
-        ConstExp (const Location& location) 
-            : Exp (location)
-        {
-        }
+    }
 
-        virtual ~ConstExp ()
-        {
-        }
+    virtual ~ConstExp ()
+    {
+    }
 
-        //virtual ConstExp* clone()
-        //{
-        //    Location* newloc = const_cast<Location*>(&location_get())->clone();
-        //    return new ConstExp(*newloc);
-        //}
-    };
+    //virtual ConstExp* clone()
+    //{
+    //    Location* newloc = const_cast<Location*>(&location_get())->clone();
+    //    return new ConstExp(*newloc);
+    //}
+};
 } // namespace ast
 #endif
diff --git a/scilab/modules/ast/includes/exps/continueexp.hxx b/scilab/modules/ast/includes/exps/continueexp.hxx
new file mode 100644 (file)
index 0000000..5520365
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file ast/continueexp.hxx
+ ** Define the Continue Expression class.
+ */
+
+#ifndef AST_CONTINUEEXP_HXX
+#define AST_CONTINUEEXP_HXX
+
+#include "controlexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Continue Expression node.
+**
+** \b Example:  continue ;*/
+class ContinueExp : public ControlExp
+{
+public:
+    ContinueExp (const Location& location)
+        : ControlExp (location)
+    {
+    }
+
+    /** \brief Destroy an Continue Exp node. */
+    virtual ~ContinueExp ()
+    {
+    }
+    /** \} */
+
+    virtual ContinueExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        ContinueExp* cloned = new ContinueExp(*newloc);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+};
+
+} // namespace ast
+
+
+#endif // !AST_CONTINUEEXP_HXX
similarity index 52%
rename from scilab/modules/ast/includes/controlexp.hxx
rename to scilab/modules/ast/includes/exps/controlexp.hxx
index 84b97e5..7b04fcc 100644 (file)
 
 namespace ast
 {
-    /** \brief Abstract an Control Sequence Expression node.
-    **
-    ** \b Example:  if...then...else...end */
-    class ControlExp : public Exp
+/** \brief Abstract an Control Sequence Expression node.
+**
+** \b Example:  if...then...else...end */
+class ControlExp : public Exp
+{
+public:
+    ControlExp (const Location& location)
+        : Exp (location)
     {
-    public:
-        ControlExp (const Location& location) 
-            : Exp (location)
-        {
-        }
+    }
 
-        virtual ~ControlExp ()
-        {
-        }
+    virtual ~ControlExp ()
+    {
+    }
 
-        //virtual ControlExp* clone()
-        //{
-        //    Location* newloc = const_cast<Location*>(&location_get())->clone();
-        //    return new ControlExp(location_get());
-        //}
-    };
+    //virtual ControlExp* clone()
+    //{
+    //    Location* newloc = const_cast<Location*>(&location_get())->clone();
+    //    return new ControlExp(location_get());
+    //}
+};
 } // namespace ast
 #endif /* !AST_CONTROLEXP_HXX */
similarity index 54%
rename from scilab/modules/ast/includes/dec.hxx
rename to scilab/modules/ast/includes/exps/dec.hxx
index 4afecef..0eb0a0a 100644 (file)
 namespace ast
 {
 
-    /** \brief Abstract an Declaration node. */
-    class Dec : public Exp
-    {
+/** \brief Abstract an Declaration node. */
+class Dec : public Exp
+{
 
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct a Declaration node.
-        ** \param location scanner position informations */
-        Dec (const Location& location) 
-            : Exp (location)
-        {
-        }
-        /** \} */
-
-        //virtual Dec* clone()
-        //{
-        //    Location* newloc = const_cast<Location*>(&location_get())->clone();
-        //    return new Dec(location_get());
-        //}
-    };
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Declaration node.
+    ** \param location scanner position informations */
+    Dec (const Location& location)
+        : Exp (location)
+    {
+    }
+    /** \} */
+
+    //virtual Dec* clone()
+    //{
+    //    Location* newloc = const_cast<Location*>(&location_get())->clone();
+    //    return new Dec(location_get());
+    //}
+};
 
 } // namespace ast
 
diff --git a/scilab/modules/ast/includes/exps/decls.hxx b/scilab/modules/ast/includes/exps/decls.hxx
new file mode 100644 (file)
index 0000000..a4f77a1
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file decls.hxx
+ ** \brief Forward declarations of all node-classes of AST
+ ** (needed by the visitors)
+ */
+#ifndef AST_DECLS_HXX
+#define AST_DECLS_HXX
+
+#include <list>
+
+namespace ast
+{
+class Ast;
+
+class Exp;
+typedef std::list<Exp *> exps_t;
+// Low Level Expressions.
+
+// Const Exp
+class IntExp;
+class StringExp;
+class FloatExp;
+class DoubleExp;
+class BoolExp;
+class CommentExp;
+class NilExp;
+
+// Var Exp
+class SimpleVar;
+class ArrayListVar;
+class DollarVar;
+class ColonVar;
+
+// Intructions Exp
+class CallExp;
+class CellCallExp;
+class MathExp;
+class OpExp;
+class LogicalOpExp;
+class AssignExp;
+class IfExp;
+class WhileExp;
+class ForExp;
+class BreakExp;
+class ContinueExp;
+class FieldExp;
+class TryCatchExp;
+class ReturnExp;
+class SelectExp;
+class CaseExp;
+
+// Single operations expressions
+class NotExp;
+class TransposeExp;
+
+// List of expressions
+class SeqExp;
+class ArrayListExp;
+class AssignListExp;
+
+// Matrix expression
+class MatrixExp;
+class MatrixLineExp;
+
+// Cell expression
+class CellExp;
+
+// Decs
+class VarDec;
+class FunctionDec;
+
+// Type dedicated Exp
+class ListExp;
+
+} // namespace ast
+
+#endif // !AST_DECLS_HXX
similarity index 50%
rename from scilab/modules/ast/includes/decs.hxx
rename to scilab/modules/ast/includes/exps/decs.hxx
index 94ddcf7..6eab9f9 100644 (file)
 namespace ast
 {
 
-    /** \brief Abstract a Declarations node. */
-    class Decs : public Ast
+/** \brief Abstract a Declarations node. */
+class Decs : public Ast
+{
+
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Declarations node.
+    ** \param location scanner position informations */
+    Decs (const Location& location)
+        : Ast (location)
     {
+    }
 
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct a Declarations node.
-        ** \param location scanner position informations */
-        Decs (const Location& location) 
-            : Ast (location)
-        {
-        }
-
-        virtual Decs* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            return new Decs(*newloc);
-        }
-    };
-    /** \brief Define shortand type for list of Declarations. */
-    typedef std::list<Decs *> decs_t;
+    virtual Decs* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        return new Decs(*newloc);
+    }
+};
+/** \brief Define shortand type for list of Declarations. */
+typedef std::list<Decs *> decs_t;
 
 } // namespace ast
 
diff --git a/scilab/modules/ast/includes/exps/dollarvar.hxx b/scilab/modules/ast/includes/exps/dollarvar.hxx
new file mode 100644 (file)
index 0000000..5ad6a48
--- /dev/null
@@ -0,0 +1,71 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+
+#ifndef AST_DOLLARVAR_HXX
+#define AST_DOLLARVAR_HXX
+
+#include "var.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract a Dollar Variable node.
+**
+** \b Example: $ */
+class DollarVar : public Var
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Dollar Variable node.
+    ** \param location scanner position informations
+    ** \param name the name of the variable
+    */
+    DollarVar (const Location& location)
+        : Var (location)
+    {
+    }
+    /** \brief Destroy a Field Variable node.
+    **
+    ** Delete name, see constructor. */
+    ~DollarVar ()
+    {
+    }
+
+    virtual DollarVar* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        DollarVar* cloned = new DollarVar(*newloc);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+};
+
+} // namespace ast
+
+#endif // !AST_DOLLARVAR_HXX
diff --git a/scilab/modules/ast/includes/exps/doubleexp.hxx b/scilab/modules/ast/includes/exps/doubleexp.hxx
new file mode 100644 (file)
index 0000000..5954b8b
--- /dev/null
@@ -0,0 +1,110 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_DOUBLEEXP_HXX
+#define AST_DOUBLEEXP_HXX
+
+#include "constexp.hxx"
+
+#include "visitor.hxx"
+
+#include "double.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Double Expression node.
+**
+** \b Example:  42.51 */
+class DoubleExp : public ConstExp
+{
+public:
+    DoubleExp (const Location& location, double value)
+        : ConstExp (location),
+          _value (value),
+          _bigDouble (NULL)
+    {
+    }
+    /** \brief Destroy an Double Expression node.
+    **
+    ** Delete size et init (exp) (see constructor). */
+    virtual ~DoubleExp ()
+    {
+        if (_bigDouble)
+        {
+            _bigDouble->DecreaseRef();
+            if (_bigDouble->isDeletable())
+            {
+                delete _bigDouble;
+            }
+        }
+    }
+    /** \} */
+
+    virtual DoubleExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        DoubleExp* cloned = new DoubleExp(*newloc, value_get());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the value */
+    double value_get() const
+    {
+        return _value;
+    }
+    /** \} */
+
+    types::Double* getBigDouble() const
+    {
+        return _bigDouble;
+    }
+
+    void setBigDouble(types::Double *pdbl)
+    {
+        if (_bigDouble && _bigDouble->isRef())
+        {
+            _bigDouble->DecreaseRef();
+            if (_bigDouble->isDeletable())
+            {
+                delete _bigDouble;
+            }
+        }
+        _bigDouble = pdbl;
+        _bigDouble->IncreaseRef();
+    }
+
+protected:
+    double     _value;
+    types::Double*    _bigDouble;
+};
+
+} // namespace ast
+#endif
diff --git a/scilab/modules/ast/includes/exps/exp.hxx b/scilab/modules/ast/includes/exps/exp.hxx
new file mode 100644 (file)
index 0000000..0f3af48
--- /dev/null
@@ -0,0 +1,216 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+** \file exp.hxx
+** Define the Expression mother class.
+*/
+
+#ifndef AST_EXP_HXX
+#define AST_EXP_HXX
+
+#include <list>
+
+#include "ast.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Expression node. */
+class Exp : public Ast
+{
+
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Expression node.
+    ** \param location scanner position informations */
+    Exp (const Location& location)
+        : Ast (location),
+          _verbose(false),
+          _bBreak(false),
+          _bBreakable(false),
+          _bReturn(false),
+          _bReturnable(false),
+          _bContinue(false),
+          _bContinuable(false)
+    {
+    }
+    /** \brief Destroys an Expression node. */
+    virtual ~Exp ()
+    {
+    }
+    /** \} */
+
+    virtual Exp* clone() = 0;
+    //{
+    //    Location* newloc = const_cast<Location*>(&location_get())->clone();
+    //    Exp* exp = new Exp(location_get());
+    //    exp->set_verbose(is_verbose());
+
+    //    if(is_break())
+    //    {
+    //        exp->break_set();
+    //    }
+
+    //    if(is_breakable())
+    //    {
+    //        exp->breakable_set();
+    //    }
+
+    //    if(is_return())
+    //    {
+    //        exp->return_set();
+    //    }
+
+    //    if(is_returnable())
+    //    {
+    //        exp->returnable_set();
+    //    }
+
+    //    if(is_continue())
+    //    {
+    //        exp->continue_set();
+    //    }
+
+    //    if(is_continuable())
+    //    {
+    //        exp->continuable_set();
+    //    }
+
+    //    return exp;
+    //}
+
+public:
+    /** \brief Return if an expression should be displayed or not. */
+    void mute(void)
+    {
+        _verbose = false;
+    }
+
+    /** \brief Return if an expression should be displayed or not. */
+    void set_verbose(bool verbose)
+    {
+        _verbose = verbose;
+    }
+
+    /** \brief Return if an expression should be displayed or not. */
+    bool is_verbose(void) const
+    {
+        return _verbose;
+    }
+
+    void break_set(void)
+    {
+        _bBreak = true;
+    }
+
+    void break_reset(void)
+    {
+        _bBreak = false;
+    }
+
+    bool is_break(void) const
+    {
+        return _bBreak;
+    }
+
+    void breakable_set(void)
+    {
+        _bBreakable = true;
+    }
+
+    void breakable_reset(void)
+    {
+        _bBreakable = false;
+    }
+
+    bool is_breakable(void) const
+    {
+        return _bBreakable;
+    }
+
+    void return_set(void)
+    {
+        _bReturn = true;
+    }
+
+    void return_reset(void)
+    {
+        _bReturn = false;
+    }
+
+    bool is_return(void) const
+    {
+        return _bReturn;
+    }
+
+    void returnable_set(void)
+    {
+        _bReturnable = true;
+    }
+
+    void returnable_reset(void)
+    {
+        _bReturnable = false;
+    }
+
+    bool is_returnable(void) const
+    {
+        return _bReturnable;
+    }
+
+    void continue_set(void)
+    {
+        _bContinue = true;
+    }
+
+    void continue_reset(void)
+    {
+        _bContinue = false;
+    }
+
+    bool is_continue(void) const
+    {
+        return _bContinue;
+    }
+
+    void continuable_set(void)
+    {
+        _bContinuable = true;
+    }
+
+    void continuable_reset(void)
+    {
+        _bContinuable = false;
+    }
+
+    bool is_continuable(void) const
+    {
+        return _bContinuable;
+    }
+private:
+    bool _verbose;
+    bool _bBreak;
+    bool _bBreakable;
+    bool _bReturn;
+    bool _bReturnable;
+    bool _bContinue;
+    bool _bContinuable;
+};
+
+/** \brief Define a shorthand for list of Exp* manipulation. */
+typedef std::list<Exp *> exps_t;
+
+} // namespace ast
+
+#endif // !AST_EXP_HXX
diff --git a/scilab/modules/ast/includes/exps/fieldexp.hxx b/scilab/modules/ast/includes/exps/fieldexp.hxx
new file mode 100644 (file)
index 0000000..796f1f3
--- /dev/null
@@ -0,0 +1,127 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file fieldexp.hxx
+ ** Define the Field Expression class.
+ */
+
+#ifndef AST_FIELDEXP_HXX
+#define AST_FIELDEXP_HXX
+
+#include <list>
+
+#include "exp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract a Field Expression node.
+**
+** \b Example: var.field(n)
+**            |___________| */
+class FieldExp : public Exp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Field Expression node.
+    ** \param location scanner position informations
+    ** \param name field identifier
+    ** \param init initial value assigned to the field
+    **
+    ** \b Example: field = 2097
+    ** \li "field" is the name of the field
+    ** \li "2097" is the initial value of the field */
+    FieldExp (const Location& location,
+              Exp& head, Exp& tail)
+        : Exp (location),
+          _head (&head),
+          _tail (&tail)
+    {
+    }
+
+    /** \brief Destroy a Field Expression node.
+    **
+    ** Delete name and init (see constructor). */
+    virtual ~FieldExp()
+    {
+        delete _head;
+        delete _tail;
+    }
+    /** \}*/
+
+    virtual FieldExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        FieldExp* cloned = new FieldExp(*newloc, *head_get()->clone(), *tail_get()->clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the name of the field (read only). */
+    const Exp* head_get() const
+    {
+        return _head;
+    }
+
+    /** \brief Return the initial value of the field (read only). */
+    const Exp* tail_get() const
+    {
+        return _tail;
+    }
+
+    /** \brief Return the initial value of the field (read and write). */
+    Exp* head_get()
+    {
+        return _head;
+    }
+
+    /** \brief Return the initial value of the field (read and write). */
+    Exp* tail_get()
+    {
+        return _tail;
+    }
+    /** \} */
+
+protected:
+    /** \brief Name of the field. */
+    Exp* _head;
+    /** \brief Initial value of the field. */
+    Exp* _tail;
+};
+
+/** \brief Define shortand type for Field Expression list. */
+typedef std::list<FieldExp *> fieldexps_t;
+
+} // namespace ast
+
+#endif // !AST_FIELDEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/floatexp.hxx b/scilab/modules/ast/includes/exps/floatexp.hxx
new file mode 100644 (file)
index 0000000..8760fd6
--- /dev/null
@@ -0,0 +1,77 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_FLOATEXP_HXX
+#define AST_FLOATEXP_HXX
+
+#include "constexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Float Expression node.
+**
+** \b Example:  42.51 */
+class FloatExp : public ConstExp
+{
+public:
+    FloatExp (const Location& location, float value)
+        : ConstExp (location),
+          _value (value)
+    {
+    }
+    /** \brief Destroy an Float Expression node.
+    **
+    ** Delete size et init (exp) (see constructor). */
+    virtual ~FloatExp ()
+    {
+    }
+    /** \} */
+
+    virtual FloatExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        FloatExp* cloned = new FloatExp(*newloc, value_get());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the value */
+    float value_get() const
+    {
+        return _value;
+    }
+    /** \} */
+
+protected:
+    float     _value;
+};
+
+} // namespace ast
+#endif
diff --git a/scilab/modules/ast/includes/exps/forexp.hxx b/scilab/modules/ast/includes/exps/forexp.hxx
new file mode 100644 (file)
index 0000000..0d1847c
--- /dev/null
@@ -0,0 +1,122 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file forexp.hxx
+ ** Define the For Expression class.
+ */
+
+#ifndef AST_FOREXP_HXX
+#define AST_FOREXP_HXX
+
+#include "controlexp.hxx"
+#include "vardec.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract a For Expression node.
+**
+** \b Example: for i = 0:2097 do print("WipeOut") */
+class ForExp : public ControlExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a For Expression node.
+    ** \param location scanner position informations
+    ** \param vardec implicit variable declaration
+    ** \param body instructions executed in the for loop
+    **
+    ** \b Example: for i = 0:2097 do print("WipeOut")
+    ** \li "i = 0:2097" is the variable declaration
+    ** \li "print("WipeOut")" is the body
+    */
+    ForExp (const Location& location,
+            VarDec& vardec, Exp& body)
+        : ControlExp (location),
+          _vardec (&vardec),
+          _body (&body)
+    {
+    }
+
+    /** \brief Destroy a For Expression node.
+    **
+    ** Delete vardec, hi and body (see constructor). */
+    virtual ~ForExp ()
+    {
+        delete  _vardec;
+        delete  _body;
+    }
+    /** \} */
+
+    virtual ForExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        ForExp* cloned = new ForExp(*newloc, *vardec_get().clone(), *body_get().clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the implicit variable declaration (read only) */
+    const VarDec& vardec_get () const
+    {
+        return *_vardec;
+    }
+    /** \brief Return the implicit variable declaration (read and write) */
+    VarDec& vardec_get ()
+    {
+        return *_vardec;
+    }
+
+    /** \brief Return the body of the loop (read only) */
+    const Exp& body_get () const
+    {
+        return *_body;
+    }
+    /** \brief Return the body of the loop (read and write) */
+    Exp& body_get ()
+    {
+        return *_body;
+    }
+    /** \} */
+
+
+protected:
+    /** \brief Implicit variable declaration. */
+    VarDec* _vardec;
+    /** \brief Instructions executed in the loop. */
+    Exp* _body;
+};
+
+} // namespace ast
+
+#endif // !AST_FOREXP_HXX
diff --git a/scilab/modules/ast/includes/exps/functiondec.hxx b/scilab/modules/ast/includes/exps/functiondec.hxx
new file mode 100644 (file)
index 0000000..c93c06b
--- /dev/null
@@ -0,0 +1,143 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+** \file functiondec.hxx
+** Define the Function Declaration class.
+*/
+
+#ifndef AST_FUNCTIONDEC_HXX
+#define AST_FUNCTIONDEC_HXX
+
+#include <list>
+
+#include "dec.hxx"
+#include "symbol.hxx"
+#include "exp.hxx"
+#include "arraylistvar.hxx"
+
+using namespace std;
+
+namespace ast
+{
+/*
+** \brief Abstract a Function Declaration node.
+**
+** \b Example: function foo(s : string) : int = (print(s); 2097)
+*/
+class FunctionDec : public Dec
+{
+    // \name Ctor & dtor.
+public:
+    /*
+    ** \brief Construct a Function Declaration node.
+    ** \param location scanner position informations
+    ** \param name of function
+    ** \param list of params
+    ** \param list of returns
+    ** \param body
+    */
+    FunctionDec (const Location& location,
+                 symbol::Symbol& name,
+                 ArrayListVar& args,
+                 ArrayListVar& returns,
+                 Exp& body)
+        : Dec (location),
+          _name (name),
+          _args (&args),
+          _returns (&returns),
+          _body (&body)
+    {
+    }
+
+    virtual ~FunctionDec ()
+    {
+        delete _body;
+        delete _args;
+        delete _returns;
+        delete &_name;
+    }
+
+    virtual FunctionDec* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        FunctionDec* cloned = new FunctionDec(*newloc, *new symbol::Symbol(name_get().name_get()), *args_get().clone(), *returns_get().clone(), *body_get().clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    // \name Visitors entry point.
+public:
+    // \brief Accept a const visitor
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    // \brief Accept a non-const visitor
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+
+
+    // \name Accessors.
+public:
+    symbol::Symbol& name_get (void) const
+    {
+        return _name;
+    }
+
+    const Exp& body_get (void) const
+    {
+        return *_body;
+    }
+
+    Exp& body_get (void)
+    {
+        return *_body;
+    }
+
+    const ArrayListVar& args_get () const
+    {
+        return *_args;
+    }
+
+    ArrayListVar& args_get ()
+    {
+        return *_args;
+    }
+
+    const ArrayListVar& returns_get () const
+    {
+        return *_returns;
+    }
+
+    ArrayListVar& returns_get ()
+    {
+        return *_returns;
+    }
+
+    void body_set(Exp *body)
+    {
+        _body = body;
+    }
+
+protected:
+    symbol::Symbol&    _name;
+    ArrayListVar*      _args;
+    ArrayListVar*      _returns;
+    Exp*               _body;
+};
+
+} // namespace ast
+
+#endif // !AST_FUNCTIONDEC_HXX
diff --git a/scilab/modules/ast/includes/exps/intexp.hxx b/scilab/modules/ast/includes/exps/intexp.hxx
new file mode 100644 (file)
index 0000000..192e3cc
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_INTEXP_HXX
+#define AST_INTEXP_HXX
+
+#include "constexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Int Expression node.
+**
+** \b Example:  25 */
+class IntExp : public ConstExp
+{
+public :
+    /** \brief Precision qualifier */
+    enum Prec
+    {
+        /** \brief 8-bit Integer */     _8_,
+        /** \brief 16-bit Integer */ _16_,
+        /** \brief 32-bit Integer */ _32_,
+        /** \brief 64-bit Integer */ _64_
+    };
+public:
+    IntExp (const Location& location, Prec prec, int value)
+        : ConstExp (location),
+          _prec (prec),
+          _value (value)
+    {
+    }
+
+    IntExp (const Location& location, int value)
+        : ConstExp (location),
+          _prec (_32_),
+          _value (value)
+    {
+    }
+
+    /** \brief Destroy an Int Expression node.
+    **
+    ** Delete size et init (exp) (see constructor). */
+    virtual ~IntExp ()
+    {
+    }
+    /** \} */
+
+    virtual IntExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        IntExp* cloned = new IntExp(*newloc, prec_get(), value_get());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the value */
+    int value_get() const
+    {
+        return _value;
+    }
+
+    Prec prec_get() const
+    {
+        return _prec;
+    }
+    /** \} */
+
+protected:
+    Prec       _prec;
+    int                _value;
+};
+
+} // namespace ast
+#endif
diff --git a/scilab/modules/ast/includes/exps/listexp.hxx b/scilab/modules/ast/includes/exps/listexp.hxx
new file mode 100644 (file)
index 0000000..6de0bdf
--- /dev/null
@@ -0,0 +1,134 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_LISTEXP_HXX
+#define AST_LISTEXP_HXX
+
+#include "exp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Operation Expression node.
+**
+** \b Example: 1:0.5:10 */
+class ListExp : public Exp
+{
+public:
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Implicit list Expression node.
+    ** \param location scanner position informations
+    ** \param start the start point of the list
+    ** \param step the step between each element
+    ** \param end the end of the list (the max value)
+    **
+    ** \b Example: start:step:stop
+    ** \li "start" is the start point of the list
+    ** \li "step" is the step between each element
+    ** \li "stop" is the end of the list (the max value)
+    */
+    ListExp (const Location& location,
+             Exp& start, Exp& step, Exp& end)
+        : Exp (location),
+          _start (&start),
+          _step (&step),
+          _end (&end)
+    {
+    }
+
+    /** \brief Destroy a Operation Expression node.
+    **
+    ** Delete left and right, see constructor. */
+    virtual ~ListExp ()
+    {
+        delete _start;
+        delete _step;
+        delete _end;
+    }
+    /** \} */
+
+    virtual ListExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        ListExp* cloned = new ListExp(*newloc, *start_get().clone(), *step_get().clone(), *end_get().clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the expression (read only) */
+    const Exp& start_get () const
+    {
+        return *_start;
+    }
+    /** \brief Return the expression (read and write) */
+    Exp& start_get ()
+    {
+        return *_start;
+    }
+
+    /** \brief Return the expression (read only) */
+    const Exp& step_get () const
+    {
+        return *_step;
+    }
+    /** \brief Return the expression (read and write) */
+    Exp& step_get ()
+    {
+        return *_step;
+    }
+
+    /** \brief Return the expression (read only) */
+    const Exp& end_get () const
+    {
+        return *_end;
+    }
+    /** \brief Return the expression (read and write) */
+    Exp& end_get ()
+    {
+        return *_end;
+    }
+
+    /** \} */
+
+protected:
+    /** \brief start expression of the list. */
+    Exp* _start;
+    /** \brief step expression of the list. */
+    Exp* _step;
+    /** \brief end expression of the list. */
+    Exp* _end;
+};
+
+} // namespace ast
+
+#endif // !AST_LISTEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/logicalopexp.hxx b/scilab/modules/ast/includes/exps/logicalopexp.hxx
new file mode 100644 (file)
index 0000000..c047b5e
--- /dev/null
@@ -0,0 +1,89 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_LOGICALOPEXP_HXX
+#define AST_LOGICALOPEXP_HXX
+
+#include <assert.h>
+#include "mathexp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Operation Expression node.
+**
+** \b Example: 77 * 27 */
+class LogicalOpExp : public OpExp
+{
+
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Operation Expression node.
+    ** \param location scanner position informations
+    ** \param left left expression of the operator
+    ** \param oper operator description
+    ** \param right right expression of the operator
+    **
+    ** \b Example: 77 * 27
+    ** \li "77" is the left expression
+    ** \li "*" is the operator
+    ** \li "27" is the right expression
+    */
+    LogicalOpExp (const Location& location,
+                  Exp& left, Oper oper, Exp& right):
+        OpExp (location, left, oper, right)
+    {
+    }
+
+    /** \brief Destroy a Operation Expression node.
+    **
+    ** Delete left and right, see constructor. */
+    virtual ~LogicalOpExp ()
+    {
+    }
+    /** \} */
+
+    virtual LogicalOpExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        LogicalOpExp* cloned = new LogicalOpExp(*newloc, *left_get().clone(), oper_get(), *right_get().clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+    /** \brief set the operator description (read only) */
+    void oper_set(Oper oper)
+    {
+        _oper = oper;
+    }
+
+};
+
+} // namespace ast
+
+#endif // !AST_LOGICALOPEXP_HXX
similarity index 53%
rename from scilab/modules/ast/includes/mathexp.hxx
rename to scilab/modules/ast/includes/exps/mathexp.hxx
index 81ab826..416eab6 100644 (file)
 
 namespace ast
 {
-    /** \brief Abstract an Mathematical Expression node.
-    **
-    ** \b Example:  Operations, Transpose, Matrixes... */
-    class MathExp : public Exp
+/** \brief Abstract an Mathematical Expression node.
+**
+** \b Example:  Operations, Transpose, Matrixes... */
+class MathExp : public Exp
+{
+public:
+    MathExp (const Location& location)
+        : Exp (location)
     {
-    public:
-        MathExp (const Location& location) 
-            : Exp (location)
-        {
-        }
+    }
 
-        virtual ~MathExp ()
-        {
-        }
+    virtual ~MathExp ()
+    {
+    }
 
-        //virtual MathExp* clone()
-        //{
-        //    Location* newloc = const_cast<Location*>(&location_get())->clone();
-        //    return new MathExp(*newloc);
-        //}
-    };
+    //virtual MathExp* clone()
+    //{
+    //    Location* newloc = const_cast<Location*>(&location_get())->clone();
+    //    return new MathExp(*newloc);
+    //}
+};
 } // namespace ast
 #endif /* !__AST_MATHEXP_HXX__ */
diff --git a/scilab/modules/ast/includes/exps/matrixexp.hxx b/scilab/modules/ast/includes/exps/matrixexp.hxx
new file mode 100644 (file)
index 0000000..932f2a7
--- /dev/null
@@ -0,0 +1,106 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file matrixexp.hxx
+ ** Define the Sequence Expression class.
+ */
+
+#ifndef AST_MATRIXEXP_HXX
+#define AST_MATRIXEXP_HXX
+
+#include "mathexp.hxx"
+#include "matrixlineexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Array List of Expression node.
+**
+** \b Example: foo(a), foo(b) */
+class MatrixExp : public MathExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Array List of Expression node.
+    ** \param location scanner position informations
+    ** \param body EXP LIST intruction
+    */
+    MatrixExp (const Location& location,
+               std::list<MatrixLineExp *>& lines)
+        : MathExp (location),
+          _lines (&lines)
+    {
+    }
+
+    virtual ~MatrixExp ()
+    {
+        std::list<MatrixLineExp *>::const_iterator i;
+        for (i = _lines->begin() ; i != _lines->end() ; i++)
+        {
+            delete *i;
+        }
+        delete _lines;
+    }
+
+    virtual MatrixExp* clone()
+    {
+        std::list<MatrixLineExp *>* lines = new std::list<MatrixLineExp *>;
+        std::list<MatrixLineExp *>::const_iterator it;
+        for (it = lines_get().begin() ; it != lines_get().end() ; it++)
+        {
+            lines->push_back((*it)->clone());
+        }
+
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        MatrixExp* cloned = new MatrixExp(*newloc, *lines);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    const std::list<MatrixLineExp *>&  lines_get() const
+    {
+        return *_lines;
+    }
+
+    std::list<MatrixLineExp *>&        lines_get()
+    {
+        return *_lines;
+    }
+    /** \} */
+
+
+protected:
+    std::list<MatrixLineExp *>* _lines;
+};
+
+} // namespace ast
+
+#endif // !AST_MATRIXEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/matrixlineexp.hxx b/scilab/modules/ast/includes/exps/matrixlineexp.hxx
new file mode 100644 (file)
index 0000000..94506eb
--- /dev/null
@@ -0,0 +1,109 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file matrixlineexp.hxx
+ ** Define the Sequence Expression class.
+ */
+
+#ifndef __AST_MATRIXLINEEXP_HXX__
+#define __AST_MATRIXLINEEXP_HXX__
+
+#include "mathexp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract an Matrix Line Expression node.
+**
+** \b Example: a, b, c, d */
+class MatrixLineExp : public MathExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Matrix Columns node.
+    ** \param location scanner position informations
+    ** \param columns EXP LIST intruction
+    */
+    MatrixLineExp (const Location& location,
+                   std::list<Exp *>& columns)
+        : MathExp (location),
+          _columns (&columns)
+    {
+    }
+
+    virtual ~MatrixLineExp ()
+    {
+        std::list<Exp *>::const_iterator i;
+        for (i = _columns->begin() ; i != _columns->end() ; i++)
+        {
+            delete *i;
+        }
+        delete _columns;
+    }
+
+    virtual MatrixLineExp* clone()
+    {
+        std::list<Exp *>* columns = new std::list<Exp *>;
+        std::list<Exp *>::const_iterator it;
+        for (it = columns_get().begin() ; it != columns_get().end() ; it++)
+        {
+            columns->push_back((*it)->clone());
+        }
+
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        MatrixLineExp* cloned = new MatrixLineExp(*newloc, *columns);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    const std::list<Exp *>&    columns_get() const
+    {
+        return *_columns;
+    }
+
+    std::list<Exp *>&  columns_get()
+    {
+        return *_columns;
+    }
+    /** \} */
+
+
+protected:
+    std::list<Exp *>* _columns;
+};
+
+} // namespace ast
+
+#endif /* !__AST_MATRIXLINEEXP_HXX__ */
+
+
diff --git a/scilab/modules/ast/includes/exps/nilexp.hxx b/scilab/modules/ast/includes/exps/nilexp.hxx
new file mode 100644 (file)
index 0000000..ebb4c66
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __AST_NILEXP_HXX__
+#define __AST_NILEXP_HXX__
+
+#include "constexp.hxx"
+
+namespace ast
+{
+/** \brief Null expression
+**
+**/
+class NilExp : public ConstExp
+{
+public:
+    NilExp (const Location& location)
+        : ConstExp (location)
+    {
+    }
+
+    virtual ~NilExp ()
+    {
+    }
+
+    virtual NilExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        NilExp* cloned = new NilExp(*newloc);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+};
+} // namespace ast
+
+#endif /* !__AST_NILEXP_HXX__ */
diff --git a/scilab/modules/ast/includes/exps/notexp.hxx b/scilab/modules/ast/includes/exps/notexp.hxx
new file mode 100644 (file)
index 0000000..bf39e8c
--- /dev/null
@@ -0,0 +1,96 @@
+/*
+*  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+*  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+*
+*  This file must be used under the terms of the CeCILL.
+*  This source file is licensed as described in the file COPYING, which
+*  you should have received as part of this distribution.  The terms
+*  are also available at
+*  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+*
+*/
+
+#ifndef AST_NOTEXP_HXX
+#define AST_NOTEXP_HXX
+
+#include "mathexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract an Operation Expression node.
+**
+** \b Example: ~a */
+class NotExp : public MathExp
+{
+public:
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Operation Expression node.
+    ** \param location scanner position informations
+    ** \param exp expression of the NOT operator
+    **
+    ** \b Example: ~a
+    */
+    NotExp (const Location& location,
+            Exp& exp)
+        : MathExp (location),
+          _exp (&exp)
+    {
+    }
+
+    /** \brief Destroy a Not Operation Expression node.
+    **
+    ** Delete expression, see constructor. */
+    virtual ~NotExp ()
+    {
+        delete _exp;
+    }
+    /** \} */
+
+    virtual NotExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        NotExp* cloned = new NotExp(*newloc, *exp_get().clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the expression of the operation (read only) */
+    const Exp& exp_get () const
+    {
+        return *_exp;
+    }
+    /** \brief Return the expression of the operation (read and write) */
+    Exp& exp_get ()
+    {
+        return *_exp;
+    }
+
+protected:
+    /** \brief Left expression of the operation. */
+    Exp* _exp;
+};
+
+} // namespace ast
+
+#endif // !AST_NOTEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/selectexp.hxx b/scilab/modules/ast/includes/exps/selectexp.hxx
new file mode 100644 (file)
index 0000000..11972f8
--- /dev/null
@@ -0,0 +1,124 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file selectexp.hxx
+ ** Define Select Expression class
+ */
+
+#ifndef __AST_SELECT_EXP_HXX__
+#define __AST_SELECT_EXP_HXX__
+
+#include "controlexp.hxx"
+#include "exp.hxx"
+#include "caseexp.hxx"
+#include "seqexp.hxx"
+
+namespace ast
+{
+class SelectExp : public ControlExp
+{
+public :
+    SelectExp(const Location& location,
+              Exp& select,
+              cases_t& cases,
+              SeqExp& defaultCase)
+        : ControlExp (location),
+          _selectme (&select),
+          _cases (&cases),
+          _default (&defaultCase)
+    {
+    }
+
+    SelectExp(const Location& location,
+              Exp& select,
+              cases_t& cases)
+        : ControlExp (location),
+          _selectme (&select),
+          _cases (&cases)
+    {
+        _default = NULL;
+    }
+
+    ~SelectExp()
+    {
+        delete _selectme;
+        delete _cases;
+        if (_default != NULL)
+        {
+            delete _default;
+        }
+    }
+
+    virtual SelectExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        cases_t* cases = new cases_t;
+        cases_t::const_iterator it;
+        for (it = cases_get()->begin() ; it != cases_get()->end() ; it++)
+        {
+            cases->push_back((*it)->clone());
+        }
+
+        SelectExp* cloned = NULL;
+        if (_default != NULL)
+        {
+            cloned = new SelectExp(*newloc, *select_get()->clone(), *cases, *default_case_get()->clone());
+        }
+        else
+        {
+            cloned = new SelectExp(*newloc, *select_get()->clone(), *cases);
+        }
+
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+public :
+    Exp* select_get() const
+    {
+        return _selectme;
+    }
+    cases_t* cases_get() const
+    {
+        return _cases;
+    }
+    SeqExp* default_case_get() const
+    {
+        return _default;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+private :
+    Exp* _selectme;
+    cases_t* _cases;
+    SeqExp* _default;
+};
+
+}
+
+
+#endif /* !__AST_SELECT_EXP_HXX__ */
diff --git a/scilab/modules/ast/includes/exps/seqexp.hxx b/scilab/modules/ast/includes/exps/seqexp.hxx
new file mode 100644 (file)
index 0000000..5d98be6
--- /dev/null
@@ -0,0 +1,113 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file seqexp.hxx
+ ** Define the Sequence Expression class.
+ */
+
+#ifndef __AST_SEQEXP_HXX__
+#define __AST_SEQEXP_HXX__
+
+#include "exp.hxx"
+#include "functiondec.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract a Sequence Expression node.
+**
+** \b Example: (print_int(2097); print("WipeOut")) */
+class SeqExp : public Exp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Sequence Expression node.
+    ** \param location scanner position informations
+    ** \param body EXP LIST intruction
+    */
+    SeqExp (const Location& location,
+            std::list<Exp *>& l_body)
+        : Exp (location),
+          _l_body (&l_body)
+    {
+    }
+
+    virtual ~SeqExp ()
+    {
+        std::list<Exp *>::const_iterator i;
+        for (i = _l_body->begin() ; i != _l_body->end() ; i++)
+        {
+            FunctionDec* pDec = dynamic_cast<FunctionDec*>(*i);
+            if (pDec)
+            {
+                //do not delete function declaration.
+                continue;
+            }
+            delete *i;
+        }
+        delete _l_body;
+    }
+
+    virtual SeqExp* clone()
+    {
+        std::list<Exp *>* exp = new std::list<Exp *>;
+        std::list<Exp *>::const_iterator it;
+        for (it = exps_get().begin() ; it != exps_get().end() ; it++)
+        {
+            exp->push_back((*it)->clone());
+        }
+
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        SeqExp* cloned = new SeqExp(*newloc, *exp);
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    const std::list<Exp *>&    exps_get() const
+    {
+        return *_l_body;
+    }
+
+    std::list<Exp *>&  exps_get()
+    {
+        return *_l_body;
+    }
+    /** \} */
+
+
+protected:
+    std::list<Exp *>* _l_body;
+};
+
+} // namespace ast
+
+#endif // __AST_SEQEXP_HXX__
diff --git a/scilab/modules/ast/includes/exps/simplevar.hxx b/scilab/modules/ast/includes/exps/simplevar.hxx
new file mode 100644 (file)
index 0000000..04e1968
--- /dev/null
@@ -0,0 +1,95 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+
+#ifndef AST_SIMPLEVAR_HXX
+#define AST_SIMPLEVAR_HXX
+
+#include "var.hxx"
+#include "symbol.hxx"
+
+namespace ast
+{
+/** \brief Abstract a Simple Variable node.
+**
+** \b Example: i */
+class SimpleVar : public Var
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Simple Variable node.
+    ** \param location scanner position informations
+    ** \param name the name of the variable
+    */
+    SimpleVar (const Location& location,
+               symbol::Symbol& name)
+        : Var (location),
+          _name (name)
+    {
+    }
+    /** \brief Destroy a Field Variable node.
+    **
+    ** Delete name, see constructor. */
+    virtual ~SimpleVar ()
+    {
+        delete &_name;
+    }
+
+    virtual SimpleVar* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        SimpleVar* cloned = new SimpleVar(*newloc, *new symbol::Symbol(name_get().name_get()));
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the Variable's name. */
+    symbol::Symbol& name_get () const
+    {
+        return _name;
+    }
+    /** \} */
+
+
+    bool operator== (const SimpleVar &rhs) const
+    {
+        return _name == rhs.name_get();
+    }
+
+protected:
+    /** \brief Variable's name */
+    symbol::Symbol& _name;
+};
+
+} // namespace ast
+
+#endif // !AST_SIMPLEVAR_HXX
diff --git a/scilab/modules/ast/includes/exps/stepvisitor.hxx b/scilab/modules/ast/includes/exps/stepvisitor.hxx
new file mode 100644 (file)
index 0000000..95c83fd
--- /dev/null
@@ -0,0 +1,222 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2010-2010 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef __AST_STEPVISITOR_HXX__
+#define __AST_STEPVISITOR_HXX__
+
+#include <iostream>
+
+#include "runvisitor.hxx"
+#include "execvisitor.hxx"
+#include "printvisitor.hxx"
+
+namespace ast
+{
+class StepVisitor : public RunVisitorT<StepVisitor>
+{
+    void visit(const SeqExp &e)
+    {
+        std::list<Exp*>::const_iterator it;
+        for (it = e.exps_get().begin() ; it != e.exps_get().end() ; ++it)
+        {
+            PrintVisitor *pv = new PrintVisitor(std::wcerr);
+            (*it)->accept(*pv);
+            std::wcerr << std::endl;
+            //ExecVisitor *pe = new ast::ExecVisitor();
+            //(*it)->accept(*pe);
+        }
+        visitprivate(e);
+    }
+
+    void visit (const MatrixExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const MatrixLineExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const CellExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const StringExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const CommentExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const IntExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const FloatExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const DoubleExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const BoolExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const NilExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const SimpleVar &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const ColonVar &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const DollarVar &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const ArrayListVar &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const FieldExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const OpExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const LogicalOpExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const AssignExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const CellCallExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const CallExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const IfExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const TryCatchExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const WhileExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const ForExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const BreakExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const ContinueExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const ReturnExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const SelectExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const CaseExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const ArrayListExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const AssignListExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const NotExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const TransposeExp &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const VarDec &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit (const FunctionDec &e)
+    {
+        visitprivate(e);
+    }
+
+    void visit(const ListExp &e)
+    {
+        visitprivate(e);
+    }
+};
+}
+
+#endif /* !__AST_STEPVISITOR_HXX__ */
diff --git a/scilab/modules/ast/includes/exps/stringexp.hxx b/scilab/modules/ast/includes/exps/stringexp.hxx
new file mode 100644 (file)
index 0000000..0df384a
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_STRINGEXP_HXX
+#define AST_STRINGEXP_HXX
+
+#include "constexp.hxx"
+#include "string.hxx"
+
+namespace ast
+{
+/** \brief Abstract an string Expression node.
+**
+** \b Example: string*/
+class StringExp : public ConstExp
+{
+public:
+    StringExp (const Location& location,
+               std::wstring value)
+        : ConstExp (location),
+          _value (value),
+          _bigString (NULL)
+    {
+    }
+    /** \brief Destroy an string Exp node.
+    **
+    ** Delete value (see constructor). */
+    virtual ~StringExp ()
+    {
+        if (_bigString)
+        {
+            _bigString->DecreaseRef();
+            if (_bigString->isDeletable())
+            {
+                delete _bigString;
+            }
+        }
+    }
+    /** \} */
+
+    virtual StringExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        StringExp* cloned = new StringExp(*newloc, value_get());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+    types::String* getBigString() const
+    {
+        return _bigString;
+    }
+
+
+    void setBigString(types::String *_pS)
+    {
+        if (_bigString && _bigString->isRef())
+        {
+            _bigString->DecreaseRef();
+            if (_bigString->isDeletable())
+            {
+                delete _bigString;
+            }
+        }
+        _bigString = _pS;
+        _bigString->IncreaseRef();
+    }
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the name of the type name (read only). */
+    const std::wstring value_get () const
+    {
+        return _value;
+    }
+    /** \} */
+protected:
+    const std::wstring _value;
+    types::String* _bigString;
+};
+
+} // namespace ast
+
+#endif // !AST_STRINGEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/transposeexp.hxx b/scilab/modules/ast/includes/exps/transposeexp.hxx
new file mode 100644 (file)
index 0000000..c7c1561
--- /dev/null
@@ -0,0 +1,111 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+#ifndef AST_TRANSPOSEEXP_HXX
+#define AST_TRANSPOSEEXP_HXX
+
+#include "mathexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract a Transpose Expression node.
+**
+** \b Example: ~a */
+class TransposeExp : public MathExp
+{
+public:
+    /* \brief Conjugate or not transposition */
+    enum Kind
+    {
+        /** \brief Conjugate transpose */ _Conjugate_,
+        /** \brief NonConjugate transpose */ _NonConjugate_
+    };
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct an Transpose Expression node.
+    ** \param location scanner position informations
+    ** \param exp expression of the Transpose operator
+    ** \param kind indicate if should be conjugated or not
+    **
+    ** \b Example: a'
+    */
+    TransposeExp (const Location& location,
+                  Exp& exp,
+                  Kind kind)
+        : MathExp (location),
+          _exp (&exp),
+          _conjugate (kind)
+    {
+    }
+
+    /** \brief Destroy a Transpose Operation Expression node.
+    **
+    ** Delete expression, see constructor. */
+    virtual ~TransposeExp ()
+    {
+        delete _exp;
+    }
+    /** \} */
+
+    virtual TransposeExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        TransposeExp* cloned = new TransposeExp(*newloc, *exp_get().clone(), conjugate_get());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the expression of the operation (read only) */
+    const Exp& exp_get () const
+    {
+        return *_exp;
+    }
+    /** \brief Return the expression of the operation (read and write) */
+    Exp& exp_get ()
+    {
+        return *_exp;
+    }
+    /** \brief Return the conjugate kind of the transposition */
+    Kind conjugate_get () const
+    {
+        return _conjugate;
+    }
+
+protected:
+    /** \brief Left expression of the operation. */
+    Exp* _exp;
+    Kind _conjugate;
+};
+
+} // namespace ast
+
+#endif // !AST_TRANSPOSEEXP_HXX
diff --git a/scilab/modules/ast/includes/exps/trycatchexp.hxx b/scilab/modules/ast/includes/exps/trycatchexp.hxx
new file mode 100644 (file)
index 0000000..711def1
--- /dev/null
@@ -0,0 +1,108 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file trycatchexp.hxx
+ ** Define the Trycatchuence Expression class.
+ */
+
+#ifndef AST_TRYCATCHEXP_HXX
+#define AST_TRYCATCHEXP_HXX
+
+#include "controlexp.hxx"
+#include "seqexp.hxx"
+
+namespace ast
+{
+
+/** \brief Abstract a Trycatchuence Expression node.
+**
+** \b Example: try (print_int(2097); catch print("WipeOut")) */
+class TryCatchExp : public ControlExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Trycatchuence Expression node.
+    ** \param location scanner position informations
+    ** \param body EXP LIST intruction
+    */
+    TryCatchExp (const Location& location,
+                 SeqExp& tried,
+                 SeqExp& catched)
+        : ControlExp (location),
+          _tryme (&tried),
+          _catchme (&catched)
+    {
+    }
+
+    virtual ~TryCatchExp ()
+    {
+        delete _tryme;
+        delete _catchme;
+    }
+
+    virtual TryCatchExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        TryCatchExp* cloned = new TryCatchExp(*newloc, *try_get().clone(), *catch_get().clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    const SeqExp&      try_get() const
+    {
+        return *_tryme;
+    }
+
+    SeqExp&            try_get()
+    {
+        return *_tryme;
+    }
+    const SeqExp&      catch_get() const
+    {
+        return *_catchme;
+    }
+
+    SeqExp&            catch_get()
+    {
+        return *_catchme;
+    }
+    /** \} */
+
+
+protected:
+    SeqExp* _tryme;
+    SeqExp* _catchme;
+};
+
+} // namespace ast
+
+#endif /* !AST_TRYCATCHEXP_HXX */
similarity index 50%
rename from scilab/modules/ast/includes/var.hxx
rename to scilab/modules/ast/includes/exps/var.hxx
index e6c554b..744f9f0 100644 (file)
 
 namespace ast
 {
-    class Var : public Exp
+class Var : public Exp
+{
+
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a Declaration node.
+    ** \param location scanner position informations */
+    Var (const Location& location)
+        : Exp (location)
     {
+    }
 
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct a Declaration node.
-        ** \param location scanner position informations */
-        Var (const Location& location) 
-            : Exp (location)
-        {
-        }
-
-        virtual ~Var()
-        {
-        }
-        /** \} */
-
-        //virtual Var* clone()
-        //{
-        //    Location* newloc = const_cast<Location*>(&location_get())->clone();
-        //    return new Var(*newloc);
-        //}
-    };
-
-    /** \brief Define a shorthand for list of Exp* manipulation. */
-    typedef std::list<Var *> vars_t;
+    virtual ~Var()
+    {
+    }
+    /** \} */
+
+    //virtual Var* clone()
+    //{
+    //    Location* newloc = const_cast<Location*>(&location_get())->clone();
+    //    return new Var(*newloc);
+    //}
+};
+
+/** \brief Define a shorthand for list of Exp* manipulation. */
+typedef std::list<Var *> vars_t;
 
 } // namespace ast
 
diff --git a/scilab/modules/ast/includes/exps/whileexp.hxx b/scilab/modules/ast/includes/exps/whileexp.hxx
new file mode 100644 (file)
index 0000000..8462ef7
--- /dev/null
@@ -0,0 +1,119 @@
+/*
+ *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+ *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
+ *
+ *  This file must be used under the terms of the CeCILL.
+ *  This source file is licensed as described in the file COPYING, which
+ *  you should have received as part of this distribution.  The terms
+ *  are also available at
+ *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
+ *
+ */
+
+/**
+ ** \file ast/whileexp.hxx
+ ** Define the While Expression class.
+ */
+
+#ifndef AST_WHILEEXP_HXX
+#define AST_WHILEEXP_HXX
+
+#include "controlexp.hxx"
+
+namespace ast
+{
+/** \brief Abstract a For Expression node.
+**
+** \b Example: while (2097 <> 1) do print("WipeOut") */
+class WhileExp : public ControlExp
+{
+    /** \name Ctor & dtor.
+    ** \{ */
+public:
+    /** \brief Construct a While Expression node.
+    ** \param location scanner position informations
+    ** \param test exit condition of the loop
+    ** \param body instructions executed in the loop
+    **
+    ** \b Example: while (2097 <> 1) do print("WipeOut")
+    ** \li "(2097 <> 1)" is the exit condition (allways true here)
+    ** \li "print("WipeOut")" body of the loop
+    */
+    WhileExp (const Location& location,
+              Exp& test, Exp& body)
+        : ControlExp (location),
+          _test (&test),
+          _body (&body)
+    {
+    }
+
+    /** \brief Destroy a While Expression node.
+    **
+    ** Delete test and body (see constructor). */
+    virtual ~WhileExp ()
+    {
+        delete _test;
+        delete _body;
+    }
+    /** \}*/
+
+    virtual WhileExp* clone()
+    {
+        Location* newloc = const_cast<Location*>(&location_get())->clone();
+        WhileExp* cloned = new WhileExp(*newloc, *test_get().clone(), *body_get().clone());
+        cloned->set_verbose(is_verbose());
+        return cloned;
+    }
+
+    /** \name Visitors entry point.
+    ** \{ */
+public:
+    /** \brief Accept a const visitor \a v. */
+    virtual void accept (Visitor& v)
+    {
+        v.visit (*this);
+    }
+    /** \brief Accept a non-const visitor \a v. */
+    virtual void accept (ConstVisitor& v) const
+    {
+        v.visit (*this);
+    }
+    /** \} */
+
+
+    /** \name Accessors.
+    ** \{ */
+public:
+    /** \brief Return the exit condition of the loop (read only). */
+    const Exp& test_get() const
+    {
+        return *_test;
+    }
+    /** \brief Return the exit condition of the loop (read and write). */
+    Exp& test_get()
+    {
+        return *_test;
+    }
+
+    /** \brief Return the body of the loop (read only). */
+    const Exp& body_get() const
+    {
+        return *_body;
+    }
+    /** \brief Return the body of the loop (read and write). */
+    Exp& body_get()
+    {
+        return *_body;
+    }
+    /** \} */
+
+protected:
+    /** \brief Exit condition of the loop. */
+    Exp* _test;
+    /** \brief Instructions executed in the loop. */
+    Exp* _body;
+};
+
+} // namespace ast
+
+#endif // !AST_WHILEEXP_HXX
diff --git a/scilab/modules/ast/includes/fieldexp.hxx b/scilab/modules/ast/includes/fieldexp.hxx
deleted file mode 100644 (file)
index 7297f70..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
- ** \file fieldexp.hxx
- ** Define the Field Expression class.
- */
-
-#ifndef AST_FIELDEXP_HXX
-#define AST_FIELDEXP_HXX
-
-#include <list>
-
-#include "exp.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract a Field Expression node.
-    **
-    ** \b Example: var.field(n)
-    **            |___________| */
-    class FieldExp : public Exp
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct a Field Expression node.
-        ** \param location scanner position informations
-        ** \param name field identifier
-        ** \param init initial value assigned to the field
-        **
-        ** \b Example: field = 2097
-        ** \li "field" is the name of the field
-        ** \li "2097" is the initial value of the field */
-        FieldExp (const Location& location,
-            Exp& head, Exp& tail) 
-            : Exp (location),
-            _head (&head),
-            _tail (&tail)
-        {
-        }
-
-        /** \brief Destroy a Field Expression node.
-        **
-        ** Delete name and init (see constructor). */
-        virtual ~FieldExp()
-        {
-            delete _head;
-            delete _tail;
-        }
-        /** \}*/
-
-        virtual FieldExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            FieldExp* cloned = new FieldExp(*newloc, *head_get()->clone(), *tail_get()->clone());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        /** \brief Return the name of the field (read only). */
-        const Exp* head_get() const
-        {
-            return _head;
-        }
-
-        /** \brief Return the initial value of the field (read only). */
-        const Exp* tail_get() const
-        {
-            return _tail;
-        }
-
-        /** \brief Return the initial value of the field (read and write). */
-        Exp* head_get()
-        {
-            return _head;
-        }
-
-        /** \brief Return the initial value of the field (read and write). */
-        Exp* tail_get()
-        {
-            return _tail;
-        }
-        /** \} */
-
-    protected:
-        /** \brief Name of the field. */
-        Exp* _head;
-        /** \brief Initial value of the field. */
-        Exp* _tail;
-    };
-
-    /** \brief Define shortand type for Field Expression list. */
-    typedef std::list<FieldExp *> fieldexps_t;
-
-} // namespace ast
-
-#endif // !AST_FIELDEXP_HXX
diff --git a/scilab/modules/ast/includes/floatexp.hxx b/scilab/modules/ast/includes/floatexp.hxx
deleted file mode 100644 (file)
index c9e4286..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-#ifndef AST_FLOATEXP_HXX
-#define AST_FLOATEXP_HXX
-
-#include "constexp.hxx"
-
-namespace ast
-{
-    /** \brief Abstract an Float Expression node.
-    **
-    ** \b Example:  42.51 */
-    class FloatExp : public ConstExp
-    {
-    public:
-        FloatExp (const Location& location, float value) 
-            : ConstExp (location),
-            _value (value)
-        {
-        }
-        /** \brief Destroy an Float Expression node.
-        **
-        ** Delete size et init (exp) (see constructor). */
-        virtual ~FloatExp ()
-        {
-        }
-        /** \} */
-
-        virtual FloatExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            FloatExp* cloned = new FloatExp(*newloc, value_get());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        /** \brief Return the value */
-        float value_get() const
-        {
-            return _value;
-        }
-        /** \} */
-
-    protected:
-        float     _value;
-    };
-
-} // namespace ast
-#endif
diff --git a/scilab/modules/ast/includes/forexp.hxx b/scilab/modules/ast/includes/forexp.hxx
deleted file mode 100644 (file)
index 995cc66..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
- ** \file forexp.hxx
- ** Define the For Expression class.
- */
-
-#ifndef AST_FOREXP_HXX
-#define AST_FOREXP_HXX
-
-#include "controlexp.hxx"
-#include "vardec.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract a For Expression node.
-    **
-    ** \b Example: for i = 0:2097 do print("WipeOut") */
-    class ForExp : public ControlExp
-    {
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct a For Expression node.
-        ** \param location scanner position informations
-        ** \param vardec implicit variable declaration
-        ** \param body instructions executed in the for loop
-        **
-        ** \b Example: for i = 0:2097 do print("WipeOut")
-        ** \li "i = 0:2097" is the variable declaration
-        ** \li "print("WipeOut")" is the body
-        */
-        ForExp (const Location& location,
-            VarDec& vardec, Exp& body)
-            : ControlExp (location),
-            _vardec (&vardec),
-            _body (&body)
-        {
-        }
-
-        /** \brief Destroy a For Expression node.
-        **
-        ** Delete vardec, hi and body (see constructor). */
-        virtual ~ForExp ()
-        {
-            delete  _vardec;
-            delete  _body;
-        }
-        /** \} */
-
-        virtual ForExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            ForExp* cloned = new ForExp(*newloc, *vardec_get().clone(), *body_get().clone());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        /** \brief Return the implicit variable declaration (read only) */
-        const VarDec& vardec_get () const
-        {
-            return *_vardec;
-        }
-        /** \brief Return the implicit variable declaration (read and write) */
-        VarDec& vardec_get ()
-        {
-            return *_vardec;
-        }
-
-        /** \brief Return the body of the loop (read only) */
-        const Exp& body_get () const
-        {
-            return *_body;
-        }
-        /** \brief Return the body of the loop (read and write) */
-        Exp& body_get ()
-        {
-            return *_body;
-        }
-        /** \} */
-
-
-    protected:
-        /** \brief Implicit variable declaration. */
-        VarDec* _vardec;
-        /** \brief Instructions executed in the loop. */
-        Exp* _body;
-    };
-
-} // namespace ast
-
-#endif // !AST_FOREXP_HXX
diff --git a/scilab/modules/ast/includes/functiondec.hxx b/scilab/modules/ast/includes/functiondec.hxx
deleted file mode 100644 (file)
index b69b0f0..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-/**
-** \file functiondec.hxx
-** Define the Function Declaration class.
-*/
-
-#ifndef AST_FUNCTIONDEC_HXX
-#define AST_FUNCTIONDEC_HXX
-
-#include <list>
-
-#include "dec.hxx"
-#include "symbol.hxx"
-#include "exp.hxx"
-#include "arraylistvar.hxx"
-
-using namespace std;
-
-namespace ast
-{
-    /*
-    ** \brief Abstract a Function Declaration node.
-    **
-    ** \b Example: function foo(s : string) : int = (print(s); 2097)
-    */
-    class FunctionDec : public Dec
-    {
-        // \name Ctor & dtor.
-    public:
-        /*
-        ** \brief Construct a Function Declaration node.
-        ** \param location scanner position informations
-        ** \param name of function
-        ** \param list of params
-        ** \param list of returns
-        ** \param body
-        */
-        FunctionDec (const Location& location,
-            symbol::Symbol& name,
-            ArrayListVar& args,
-            ArrayListVar& returns,
-            Exp& body)
-            : Dec (location),
-            _name (name),
-            _args (&args),
-            _returns (&returns),
-            _body (&body)
-        {
-        }
-
-        virtual ~FunctionDec ()
-        {
-            delete _body;
-            delete _args;
-            delete _returns;
-            delete &_name;
-        }
-
-        virtual FunctionDec* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            FunctionDec* cloned = new FunctionDec(*newloc, *new symbol::Symbol(name_get().name_get()), *args_get().clone(), *returns_get().clone(), *body_get().clone());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        // \name Visitors entry point.
-    public:
-        // \brief Accept a const visitor
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        // \brief Accept a non-const visitor
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-
-
-        // \name Accessors.
-    public:
-        symbol::Symbol& name_get (void) const
-        {
-            return _name;
-        }
-
-        const Exp& body_get (void) const
-        {
-            return *_body;
-        }
-
-        Exp& body_get (void)
-        {
-            return *_body;
-        }
-
-        const ArrayListVar& args_get () const
-        {
-            return *_args;
-        }
-
-        ArrayListVar& args_get ()
-        {
-            return *_args;
-        }
-
-        const ArrayListVar& returns_get () const
-        {
-            return *_returns;
-        }
-
-        ArrayListVar& returns_get ()
-        {
-            return *_returns;
-        }
-
-        void body_set(Exp *body)
-        {
-            _body = body;
-        }
-
-    protected:
-        symbol::Symbol&    _name;
-        ArrayListVar*  _args;
-        ArrayListVar*  _returns;
-        Exp*           _body;
-    };
-
-} // namespace ast
-
-#endif // !AST_FUNCTIONDEC_HXX
diff --git a/scilab/modules/ast/includes/intexp.hxx b/scilab/modules/ast/includes/intexp.hxx
deleted file mode 100644 (file)
index 3a1e021..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2007-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-#ifndef AST_INTEXP_HXX
-#define AST_INTEXP_HXX
-
-#include "constexp.hxx"
-
-namespace ast
-{
-    /** \brief Abstract an Int Expression node.
-    **
-    ** \b Example:  25 */
-    class IntExp : public ConstExp
-    {
-    public :
-        /** \brief Precision qualifier */
-        enum Prec
-        {
-            /** \brief 8-bit Integer */         _8_,
-            /** \brief 16-bit Integer */ _16_,
-            /** \brief 32-bit Integer */ _32_,
-            /** \brief 64-bit Integer */ _64_
-        };
-    public:
-        IntExp (const Location& location, Prec prec, int value) 
-            : ConstExp (location),
-            _prec (prec),
-            _value (value)
-        {
-        }
-
-        IntExp (const Location& location, int value) 
-            : ConstExp (location),
-            _prec (_32_),
-            _value (value)
-        {
-        }
-
-        /** \brief Destroy an Int Expression node.
-        **
-        ** Delete size et init (exp) (see constructor). */
-        virtual ~IntExp ()
-        {
-        }
-        /** \} */
-
-        virtual IntExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            IntExp* cloned = new IntExp(*newloc, prec_get(), value_get());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        /** \brief Return the value */
-        int value_get() const
-        {
-            return _value;
-        }
-
-        Prec prec_get() const
-        {
-            return _prec;
-        }
-        /** \} */
-
-    protected:
-        Prec   _prec;
-        int            _value;
-    };
-
-} // namespace ast
-#endif
diff --git a/scilab/modules/ast/includes/listexp.hxx b/scilab/modules/ast/includes/listexp.hxx
deleted file mode 100644 (file)
index 7bfa865..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-/*
- *  Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
- *  Copyright (C) 2008-2008 - DIGITEO - Bruno JOFRET
- *
- *  This file must be used under the terms of the CeCILL.
- *  This source file is licensed as described in the file COPYING, which
- *  you should have received as part of this distribution.  The terms
- *  are also available at
- *  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
- *
- */
-
-#ifndef AST_LISTEXP_HXX
-#define AST_LISTEXP_HXX
-
-#include "exp.hxx"
-
-namespace ast
-{
-
-    /** \brief Abstract an Operation Expression node.
-    **
-    ** \b Example: 1:0.5:10 */
-    class ListExp : public Exp
-    {
-    public:
-        /** \name Ctor & dtor.
-        ** \{ */
-    public:
-        /** \brief Construct an Implicit list Expression node.
-        ** \param location scanner position informations
-        ** \param start the start point of the list
-        ** \param step the step between each element
-        ** \param end the end of the list (the max value)
-        **
-        ** \b Example: start:step:stop
-        ** \li "start" is the start point of the list
-        ** \li "step" is the step between each element
-        ** \li "stop" is the end of the list (the max value)
-        */
-        ListExp (const Location& location,
-            Exp& start, Exp& step, Exp& end)
-            : Exp (location),
-            _start (&start),
-            _step (&step),
-            _end (&end)
-        {
-        }
-
-        /** \brief Destroy a Operation Expression node.
-        **
-        ** Delete left and right, see constructor. */
-        virtual ~ListExp ()
-        {
-            delete _start;
-            delete _step;
-            delete _end;
-        }
-        /** \} */
-
-        virtual ListExp* clone()
-        {
-            Location* newloc = const_cast<Location*>(&location_get())->clone();
-            ListExp* cloned = new ListExp(*newloc, *start_get().clone(), *step_get().clone(), *end_get().clone());
-            cloned->set_verbose(is_verbose());
-            return cloned;
-        }
-
-        /** \name Visitors entry point.
-        ** \{ */
-    public:
-        /** \brief Accept a const visitor \a v. */
-        virtual void accept (Visitor& v)
-        {
-            v.visit (*this);
-        }
-        /** \brief Accept a non-const visitor \a v. */
-        virtual void accept (ConstVisitor& v) const
-        {
-            v.visit (*this);
-        }
-        /** \} */
-
-
-        /** \name Accessors.
-        ** \{ */
-    public:
-        /** \brief Return the expression (read only) */
-        const Exp& start_get () const
-        {
-            return *_start;
-        }
-        /** \brief Return the expression (read and write) */
-        Exp& start_get ()
-        {
-            return *_start;
-        }
-
-        /** \brief Return the expression (read only) */
-        const Exp& step_get () const
-        {
-            return *_step;
-        }
-        /** \brief Return the expression (read and write) */
-        Exp& step_get ()
-        {
-            return *_step;
-        }
-
-        /** \brief Return the expression (read only) */
-        const Exp& end_get () const
-        {
-            return *_end;
-        }
-        /** \brief Return the expression (read and write) */
-        Exp& end_get ()
-        {
-            return *_end;
-        }
-
-        /** \} */
-
-    protected:
-        /** \brief start expression of the list. */
-        Exp* _start;
-        /** \brief step expression of the list. */
-        Exp* _step;
-        /** \brief end expression of the list. */
-        Exp* _end;
-    };
-
-} // namespace ast
-
-#endif // !AST_LISTEXP_HXX
diff --git a/scilab/modules/ast/includes/logicalopexp.hxx b/scilab/modules/ast/includes/logicalopexp.hxx
deleted file mode 100644 (file)
index e0763c8..0000000
+++ /dev/null