diff --git a/src/syntaxTreeCore.ml b/src/syntaxTreeCore.ml index 48906f86139beb2e8ae1d28ef75481c30bd56fef..982e9f5f190915fa3fd85b2b9ba1f58beaa323f2 100644 --- a/src/syntaxTreeCore.ml +++ b/src/syntaxTreeCore.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 20/02/2008 (at 13:35) by Erwan Jahier> *) +(** Time-stamp: <modified the 06/03/2008 (at 14:56) by Erwan Jahier> *) (** (Raw) Abstract syntax tree of source programs. *) @@ -91,7 +91,6 @@ and slice_info = { and predef_node = (* zeroaire *) - NULL_exp | TRUE_n | FALSE_n | ICONST_n of Ident.t @@ -180,7 +179,7 @@ and by_name_op = | STRUCT_anonymous_n (* for backward compatibility with lv4 *) -and node_exp = +and node_exp = | CallPreDef of predef_node | CallUsrDef of (Ident.idref * static_arg srcflagged list) (* diff --git a/src/syntaxTreeDump.ml b/src/syntaxTreeDump.ml index 2c4c7d1cfdd1f09378d19ef6146eabafc5bd4e06..82570b2a009ce67994c24fce748cc52df073718e 100644 --- a/src/syntaxTreeDump.ml +++ b/src/syntaxTreeDump.ml @@ -1,4 +1,4 @@ -(** Time-stamp: <modified the 20/02/2008 (at 13:36) by Erwan Jahier> *) +(** Time-stamp: <modified the 06/03/2008 (at 14:42) by Erwan Jahier> *) open Lxm @@ -48,7 +48,6 @@ let (op2string : SyntaxTreeCore.predef_node -> string) = | (REAL2INT_n)-> assert false | (FALSE_n ) -> assert false | (TRUE_n ) -> assert false - | (NULL_exp ) -> assert false (* ternaires *) | (IF_n ) -> "if" | (WITH_n ) -> "with" @@ -463,7 +462,6 @@ and dump_by_pos_exp (os: Format.formatter) (oper: predef_node) (pars: operands) | (FBY_n, _) -> assert false | (PROJ_n _, _) -> assert false - | (NULL_exp, _) -> assert false | (STRUCT_ACCESS_n _, _) -> assert false | (ARRAY_SLICE_n _, _) -> assert false diff --git a/src/test/test.res.exp b/src/test/test.res.exp index 5abe196dd5f5a7a4a7c8d2b43913bea3a80a3e06..bafc9738c23cca3e455a7adb5a1651549f9174b3 100644 --- a/src/test/test.res.exp +++ b/src/test/test.res.exp @@ -1440,31 +1440,6 @@ End of Syntax table dump. node dummy::bad_call02 = dummy::bad_call02(int, bool) returns (int) on clock XXX *** SyntaxTab.create pass 1 -*** SyntaxTab.create pass 2 - init pack dummy - export node titi - export node call02 - export node toto -*** SyntaxTab.create pass 3 - init symbol tables for pack dummy -*** SyntaxTab.create done -*** « Syntax table dump: - - Package or model list: - call02 (pack) - - - Raw model table: - - Raw Package table: dummy - - Package manager table: dummy -End of Syntax table dump. » --- MAIN NODE: "call02::main" -*** Dump the exported items of the packages. - * package dummy - Exported types: - Exported constants: -*** Error in file "should_work/call/call02.lus", line 2, col 13 to 23, token 'Lustre::and': unknown node - - Exported nodes: -*** SyntaxTab.create pass 1 *** SyntaxTab.create pass 2 init pack dummy export node call07 @@ -1594,6 +1569,31 @@ End of Syntax table dump. node dummy::bip = extern bip(bool, bool) returns (bool, bool) +*** SyntaxTab.create pass 1 +*** SyntaxTab.create pass 2 + init pack dummy + export node titi + export node call02 + export node toto +*** SyntaxTab.create pass 3 + init symbol tables for pack dummy +*** SyntaxTab.create done +*** « Syntax table dump: + - Package or model list: + call02 (pack) + + - Raw model table: + - Raw Package table: dummy + - Package manager table: dummy +End of Syntax table dump. » +-- MAIN NODE: "call02::main" +*** Dump the exported items of the packages. + * package dummy + Exported types: + Exported constants: +*** Error in file "should_work/call/call02.lus", line 2, col 13 to 23, token 'Lustre::and': unknown node + + Exported nodes: *** Error in file "should_work/packEnvTest/contractForElementSelectionInArray/main.lus", line 3, col 45 to 45, token '=': syntax error *** SyntaxTab.create pass 1 @@ -5008,7 +5008,7 @@ End of Syntax table dump. type Int8::Int = Int8::Int Exported constants: Int8::n = 8 can be provided. -*** oops: an internal error occurred in file lazyCompiler.ml, line 318, column 5 +*** oops: an internal error occurred in file lazyCompiler.ml, line 330, column 5 *** when compiling lustre program should_work/NONREG/Int.lus *** SyntaxTab.create pass 1 *** SyntaxTab.create pass 2 @@ -5558,68 +5558,64 @@ End of Syntax table dump. *** SyntaxTab.create pass 1 *** SyntaxTab.create pass 2 init pack dummy - export type t2 - export type t - export const m - export const n - export const o - export const s - export node tranche + export type pendule + export const G + export const L + export const T + export node jeu + export node make_pend + export node sqrt + export node cos + export node D + export node sin + export node asservi + export node I + export node PEND + export node I2 *** SyntaxTab.create pass 3 init symbol tables for pack dummy *** SyntaxTab.create done *** « Syntax table dump: - Package or model list: - tranche (pack) + asservi (pack) - Raw model table: - Raw Package table: dummy - Package manager table: dummy End of Syntax table dump. » --- MAIN NODE: "tranche::main" +-- MAIN NODE: "asservi::main" *** Dump the exported items of the packages. * package dummy Exported types: - type dummy::t2 = bool^7^8^9^10 - type dummy::t = bool^3^4 -*** Error in file "should_work/demo/tranche.lus", line 7, col 6 to 6, token 'n': can't eval constant: external constant not allowed (in file "should_work/demo/tranche.lus", line 7, col 6 to 6, token 'n') - + type dummy::pendule = dummy::pendule Exported constants: -*** Error in file "should_work/to_sort_out/record.lus", line 2, col 2 to 7, token 'struct': syntax error + const dummy::G = 10.000000 + const dummy::L = 2.000000 + const dummy::T = 0.100000 + Exported nodes: + node dummy::jeu = dummy::jeu(real, real) returns (dummy::pendule) on clock XXX -*** Error in file "should_work/to_sort_out/asservi.lus", line 7, col 1 to 8, token 'function': syntax error + node dummy::make_pend = extern make_pend(real, real, real, real) returns (dummy::pendule) -*** Error in file "should_work/to_sort_out/const2.lus", line 10, col 11 to 11, token 'M': unknown constant + node dummy::sqrt = extern sqrt(real) returns (real) + + node dummy::cos = extern cos(real) returns (real) + + node dummy::D = dummy::D(real) returns (real) on clock XXX + + node dummy::sin = extern sin(real) returns (real) + + node dummy::asservi = dummy::asservi(real) returns (dummy::pendule) on clock XXX + + node dummy::I = dummy::I(real) returns (real) on clock XXX + + node dummy::PEND = dummy::PEND(real, real) returns (real) on clock XXX + + node dummy::I2 = dummy::I2(real) returns (real) on clock XXX -*** SyntaxTab.create pass 1 -*** SyntaxTab.create pass 2 - init pack dummy - export type t1 - export type t2 - export type t3 - export type t4 - export type t5 - export type t6 - export type t7 - export type t8 - export const e3 -*** SyntaxTab.create pass 3 - init symbol tables for pack dummy -*** SyntaxTab.create done -*** « Syntax table dump: - - Package or model list: - const2 (pack) - - - Raw model table: - - Raw Package table: dummy - - Package manager table: dummy -End of Syntax table dump. » --- MAIN NODE: "const2::main" -*** Dump the exported items of the packages. - * package dummy - Exported types: - type dummy::t1 = int Those tests are supposed to generate errors +*** Error in file "should_fail/syntax/record.lus", line 7, col 29 to 29, token '{': syntax error + *** SyntaxTab.create pass 1 *** SyntaxTab.create pass 2 init pack dummy @@ -5876,6 +5872,80 @@ End of Syntax table dump. Exported nodes: *** Error in file "should_fail/semantics/bad_call03.lus", line 2, col 18 to 18, token '+': syntax error +*** SyntaxTab.create pass 1 +*** SyntaxTab.create pass 2 + init pack dummy + export type t2 + export type t + export const m + export const n + export const o + export const s + export node tranche +*** SyntaxTab.create pass 3 + init symbol tables for pack dummy +*** SyntaxTab.create done +*** « Syntax table dump: + - Package or model list: + tranche (pack) + + - Raw model table: + - Raw Package table: dummy + - Package manager table: dummy +End of Syntax table dump. » +-- MAIN NODE: "tranche::main" +*** Dump the exported items of the packages. + * package dummy + Exported types: + type dummy::t2 = bool^7^8^9^10 + type dummy::t = bool^3^4 +*** Error in file "should_fail/semantics/tranche.lus", line 7, col 6 to 6, token 'n': can't eval constant: external constant not allowed (in file "should_fail/semantics/tranche.lus", line 7, col 6 to 6, token 'n') + + Exported constants: +*** SyntaxTab.create pass 1 +*** SyntaxTab.create pass 2 + init pack dummy + export type t1 + export type t2 + export type t3 + export type t4 + export type t5 + export type t6 + export type t7 + export type t8 + export const c10 + export const e3 + export const M + export const N + export const O + export const P +*** SyntaxTab.create pass 3 + init symbol tables for pack dummy +*** SyntaxTab.create done +*** « Syntax table dump: + - Package or model list: + const2 (pack) + + - Raw model table: + - Raw Package table: dummy + - Package manager table: dummy +End of Syntax table dump. » +-- MAIN NODE: "const2::main" +*** Dump the exported items of the packages. + * package dummy + Exported types: + type dummy::t1 = int + type dummy::t2 = int^3 + type dummy::t3 = int^3^6 + type dummy::t4 = int^3^6^3 + type dummy::t5 = int^3^6^3^2 + type dummy::t6 = int^3^6^3^2^12 + type dummy::t7 = int^3^6^3^2^12^3 + type dummy::t8 = int^3^6^3^2^12^3^3 +*** Error in file "should_fail/semantics/const2.lus", line 4, col 13 to 16, token 'when': can't eval constant: operation when not allowed in static expression + + Exported constants: + const dummy::c10 = 12 *** Error in file "should_fail/clock/clock.lus", line 6, col 1 to 4, token 'node': syntax error *** Error in file "should_fail/type/Gyro.lus", line 11, col 42 to 42, token ',': syntax error