* Bug 9673 fixed: colon operator precedence was too low 21/20621/3
Stéphane Mottelet [Wed, 14 Nov 2018 08:03:19 +0000 (09:03 +0100)]
http://bugzilla.scilab.org/show_bug.cgi?id=9673
https://github.com/rdbyk/balisc/issues/601

Change-Id: I42358f7fd938af65232dc063461d4d3506561d85

scilab/CHANGES.md
scilab/modules/ast/includes/parse/parsescilab.hxx
scilab/modules/ast/src/cpp/parse/bison/parsescilab.output
scilab/modules/ast/src/cpp/parse/bison/parsescilab.yy
scilab/modules/ast/src/cpp/parse/parsescilab.cpp
scilab/modules/ast/tests/nonreg_tests/bug_9673.tst [new file with mode: 0644]

index c47513b..7e97c7e 100644 (file)
@@ -138,8 +138,7 @@ Bug Fixes
 ### Bugs fixed in 6.1.0:
 * [#2694](http://bugzilla.scilab.org/show_bug.cgi?id=2694): `bitget` did not accept positive integers of types int8, int16 or int32.
 * [#8784](http://bugzilla.scilab.org/show_bug.cgi?id=8784): Automatic self-adjusting blocks `SCALE_CSCOPE` & `SCALE_CMSCOPE` in Xcos.
-* [#12520](http://bugzilla.scilab.org/show_bug.cgi?id=12520): Vriable browser did not display the size of the variables.
-* [#12534](http://bugzilla.scilab.org/show_bug.cgi?id=12534): Variable browser did not display the size of the variables.
+* [#9673](http://bugzilla.scilab.org/show_bug.cgi?id=9673): Priority of colon `:` operator was too low
 * [#14604](http://bugzilla.scilab.org/show_bug.cgi?id=14604): `emptystr()` is 40x slower with 6.0.0 wrt 5.5.2
 * [#14605](http://bugzilla.scilab.org/show_bug.cgi?id=14605): fixed - `bench_run` was too strict about the specification of tests names.
 * [#14606](http://bugzilla.scilab.org/show_bug.cgi?id=14606): Memory used by variables returned by `[names,mem]=who()` was always zero.
index 2d36601..ac315c9 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 3.0.5.  */
 
 /* Bison interface for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
index b7fed95..d49b234 100644 (file)
@@ -14071,7 +14071,7 @@ keywords (148)
   167             | . "\\." functionCall
   168 listableBegin: . ":" variable
   169              | . ":" functionCall
-  169              | ":" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  169              | ":" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   170 listableEnd: . listableBegin ":" variable
   171            | . listableBegin ":" functionCall
   172            | . listableBegin
@@ -14080,32 +14080,26 @@ keywords (148)
   181         | functionCall . listableEnd
   197         | functionCall . "(" functionArgs ")"
 
-    "'"         décalage et aller à l'état 114
-    "("         décalage et aller à l'état 164
-    "."         décalage et aller à l'état 165
-    ".'"        décalage et aller à l'état 118
-    "+"         décalage et aller à l'état 119
-    "-"         décalage et aller à l'état 120
-    "*"         décalage et aller à l'état 121
-    ".*"        décalage et aller à l'état 122
-    ".*."       décalage et aller à l'état 123
-    "*."        décalage et aller à l'état 124
-    "/"         décalage et aller à l'état 125
-    "./"        décalage et aller à l'état 126
-    "/."        décalage et aller à l'état 127
-    "./."       décalage et aller à l'état 128
-    "\\"        décalage et aller à l'état 129
-    ".\\"       décalage et aller à l'état 130
-    "\\."       décalage et aller à l'état 131
-    ".\\."      décalage et aller à l'état 132
-    "** or ^"   décalage et aller à l'état 133
-    ".^"        décalage et aller à l'état 134
-    "=="        décalage et aller à l'état 135
-    "<> or ~="  décalage et aller à l'état 136
-    "<"         décalage et aller à l'état 137
-    "<="        décalage et aller à l'état 138
-    ">"         décalage et aller à l'état 139
-    ">="        décalage et aller à l'état 140
+    "'"        décalage et aller à l'état 114
+    "("        décalage et aller à l'état 164
+    "."        décalage et aller à l'état 165
+    ".'"       décalage et aller à l'état 118
+    "+"        décalage et aller à l'état 119
+    "-"        décalage et aller à l'état 120
+    "*"        décalage et aller à l'état 121
+    ".*"       décalage et aller à l'état 122
+    ".*."      décalage et aller à l'état 123
+    "*."       décalage et aller à l'état 124
+    "/"        décalage et aller à l'état 125
+    "./"       décalage et aller à l'état 126
+    "/."       décalage et aller à l'état 127
+    "./."      décalage et aller à l'état 128
+    "\\"       décalage et aller à l'état 129
+    ".\\"      décalage et aller à l'état 130
+    "\\."      décalage et aller à l'état 131
+    ".\\."     décalage et aller à l'état 132
+    "** or ^"  décalage et aller à l'état 133
+    ".^"       décalage et aller à l'état 134
 
     $défaut  réduction par utilisation de la règle 169 (listableBegin)
 
@@ -14135,12 +14129,12 @@ keywords (148)
     Conflit entre la règle 169 et le jeton ".\\." résolu par décalage (COLON < ".\\.").
     Conflit entre la règle 169 et le jeton "** or ^" résolu par décalage (COLON < "** or ^").
     Conflit entre la règle 169 et le jeton ".^" résolu par décalage (COLON < ".^").
-    Conflit entre la règle 169 et le jeton "==" résolu par décalage (COLON < "==").
-    Conflit entre la règle 169 et le jeton "<> or ~=" résolu par décalage (COLON < "<> or ~=").
-    Conflit entre la règle 169 et le jeton "<" résolu par décalage (COLON < "<").
-    Conflit entre la règle 169 et le jeton "<=" résolu par décalage (COLON < "<=").
-    Conflit entre la règle 169 et le jeton ">" résolu par décalage (COLON < ">").
-    Conflit entre la règle 169 et le jeton ">=" résolu par décalage (COLON < ">=").
+    Conflit entre la règle 169 et le jeton "==" résolu par réduction ("==" < COLON).
+    Conflit entre la règle 169 et le jeton "<> or ~=" résolu par réduction ("<> or ~=" < COLON).
+    Conflit entre la règle 169 et le jeton "<" résolu par réduction ("<" < COLON).
+    Conflit entre la règle 169 et le jeton "<=" résolu par réduction ("<=" < COLON).
+    Conflit entre la règle 169 et le jeton ">" résolu par réduction (">" < COLON).
+    Conflit entre la règle 169 et le jeton ">=" résolu par réduction (">=" < COLON).
     Conflit entre la règle 169 et le jeton "&" résolu par réduction ("&" < COLON).
     Conflit entre la règle 169 et le jeton "&&" résolu par réduction ("&&" < COLON).
     Conflit entre la règle 169 et le jeton "|" résolu par réduction ("|" < COLON).
@@ -14216,7 +14210,7 @@ keywords (148)
   166             | . "\\." variable
   167             | . "\\." functionCall
   168 listableBegin: . ":" variable
-  168              | ":" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  168              | ":" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   169              | . ":" functionCall
   170 listableEnd: . listableBegin ":" variable
   171            | . listableBegin ":" functionCall
@@ -14227,32 +14221,26 @@ keywords (148)
   180         | variable . listableEnd
   196         | variable . "(" functionArgs ")"
 
-    "'"         décalage et aller à l'état 150
-    "("         décalage et aller à l'état 166
-    "."         décalage et aller à l'état 167
-    ".'"        décalage et aller à l'état 153
-    "+"         décalage et aller à l'état 119
-    "-"         décalage et aller à l'état 120
-    "*"         décalage et aller à l'état 121
-    ".*"        décalage et aller à l'état 122
-    ".*."       décalage et aller à l'état 123
-    "*."        décalage et aller à l'état 124
-    "/"         décalage et aller à l'état 125
-    "./"        décalage et aller à l'état 126
-    "/."        décalage et aller à l'état 127
-    "./."       décalage et aller à l'état 128
-    "\\"        décalage et aller à l'état 129
-    ".\\"       décalage et aller à l'état 130
-    "\\."       décalage et aller à l'état 131
-    ".\\."      décalage et aller à l'état 132
-    "** or ^"   décalage et aller à l'état 154
-    ".^"        décalage et aller à l'état 155
-    "=="        décalage et aller à l'état 135
-    "<> or ~="  décalage et aller à l'état 136
-    "<"         décalage et aller à l'état 137
-    "<="        décalage et aller à l'état 138
-    ">"         décalage et aller à l'état 139
-    ">="        décalage et aller à l'état 140
+    "'"        décalage et aller à l'état 150
+    "("        décalage et aller à l'état 166
+    "."        décalage et aller à l'état 167
+    ".'"       décalage et aller à l'état 153
+    "+"        décalage et aller à l'état 119
+    "-"        décalage et aller à l'état 120
+    "*"        décalage et aller à l'état 121
+    ".*"       décalage et aller à l'état 122
+    ".*."      décalage et aller à l'état 123
+    "*."       décalage et aller à l'état 124
+    "/"        décalage et aller à l'état 125
+    "./"       décalage et aller à l'état 126
+    "/."       décalage et aller à l'état 127
+    "./."      décalage et aller à l'état 128
+    "\\"       décalage et aller à l'état 129
+    ".\\"      décalage et aller à l'état 130
+    "\\."      décalage et aller à l'état 131
+    ".\\."     décalage et aller à l'état 132
+    "** or ^"  décalage et aller à l'état 154
+    ".^"       décalage et aller à l'état 155
 
     $défaut  réduction par utilisation de la règle 168 (listableBegin)
 
@@ -14282,12 +14270,12 @@ keywords (148)
     Conflit entre la règle 168 et le jeton ".\\." résolu par décalage (COLON < ".\\.").
     Conflit entre la règle 168 et le jeton "** or ^" résolu par décalage (COLON < "** or ^").
     Conflit entre la règle 168 et le jeton ".^" résolu par décalage (COLON < ".^").
-    Conflit entre la règle 168 et le jeton "==" résolu par décalage (COLON < "==").
-    Conflit entre la règle 168 et le jeton "<> or ~=" résolu par décalage (COLON < "<> or ~=").
-    Conflit entre la règle 168 et le jeton "<" résolu par décalage (COLON < "<").
-    Conflit entre la règle 168 et le jeton "<=" résolu par décalage (COLON < "<=").
-    Conflit entre la règle 168 et le jeton ">" résolu par décalage (COLON < ">").
-    Conflit entre la règle 168 et le jeton ">=" résolu par décalage (COLON < ">=").
+    Conflit entre la règle 168 et le jeton "==" résolu par réduction ("==" < COLON).
+    Conflit entre la règle 168 et le jeton "<> or ~=" résolu par réduction ("<> or ~=" < COLON).
+    Conflit entre la règle 168 et le jeton "<" résolu par réduction ("<" < COLON).
+    Conflit entre la règle 168 et le jeton "<=" résolu par réduction ("<=" < COLON).
+    Conflit entre la règle 168 et le jeton ">" résolu par réduction (">" < COLON).
+    Conflit entre la règle 168 et le jeton ">=" résolu par réduction (">=" < COLON).
     Conflit entre la règle 168 et le jeton "&" résolu par réduction ("&" < COLON).
     Conflit entre la règle 168 et le jeton "&&" résolu par réduction ("&&" < COLON).
     Conflit entre la règle 168 et le jeton "|" résolu par réduction ("|" < COLON).
@@ -18572,7 +18560,7 @@ keywords (148)
   103                | . "||" ":"
   104                | . "==" variable
   105                | . "==" functionCall
-  105                | "==" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  105                | "==" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   106                | . "==" ":"
   107                | . "<> or ~=" variable
   108                | . "<> or ~=" functionCall
@@ -18635,6 +18623,7 @@ keywords (148)
   197         | functionCall . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 114
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 164
     "."        décalage et aller à l'état 165
     ".'"       décalage et aller à l'état 118
@@ -18663,7 +18652,7 @@ keywords (148)
     listableEnd      aller à l'état 149
 
     Conflit entre la règle 105 et le jeton "'" résolu par décalage (EQ < "'").
-    Conflit entre la règle 105 et le jeton ":" résolu par réduction (":" < EQ).
+    Conflit entre la règle 105 et le jeton ":" résolu par décalage (EQ < ":").
     Conflit entre la règle 105 et le jeton "(" résolu par décalage (EQ < "(").
     Conflit entre la règle 105 et le jeton "." résolu par décalage (EQ < ".").
     Conflit entre la règle 105 et le jeton ".'" résolu par décalage (EQ < ".'").
@@ -18711,7 +18700,7 @@ keywords (148)
   102                | . "||" functionCall
   103                | . "||" ":"
   104                | . "==" variable
-  104                | "==" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  104                | "==" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   105                | . "==" functionCall
   106                | . "==" ":"
   107                | . "<> or ~=" variable
@@ -18776,6 +18765,7 @@ keywords (148)
   196         | variable . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 150
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 166
     "."        décalage et aller à l'état 167
     ".'"       décalage et aller à l'état 153
@@ -18804,7 +18794,7 @@ keywords (148)
     listableEnd      aller à l'état 158
 
     Conflit entre la règle 104 et le jeton "'" résolu par décalage (EQ < "'").
-    Conflit entre la règle 104 et le jeton ":" résolu par réduction (":" < EQ).
+    Conflit entre la règle 104 et le jeton ":" résolu par décalage (EQ < ":").
     Conflit entre la règle 104 et le jeton "(" résolu par décalage (EQ < "(").
     Conflit entre la règle 104 et le jeton "." résolu par décalage (EQ < ".").
     Conflit entre la règle 104 et le jeton ".'" résolu par décalage (EQ < ".'").
@@ -18863,7 +18853,7 @@ keywords (148)
   106                | . "==" ":"
   107                | . "<> or ~=" variable
   108                | . "<> or ~=" functionCall
-  108                | "<> or ~=" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  108                | "<> or ~=" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   109                | . "<> or ~=" ":"
   110                | . ">" variable
   111                | . ">" functionCall
@@ -18923,6 +18913,7 @@ keywords (148)
   197         | functionCall . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 114
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 164
     "."        décalage et aller à l'état 165
     ".'"       décalage et aller à l'état 118
@@ -18951,7 +18942,7 @@ keywords (148)
     listableEnd      aller à l'état 149
 
     Conflit entre la règle 108 et le jeton "'" résolu par décalage (NE < "'").
-    Conflit entre la règle 108 et le jeton ":" résolu par réduction (":" < NE).
+    Conflit entre la règle 108 et le jeton ":" résolu par décalage (NE < ":").
     Conflit entre la règle 108 et le jeton "(" résolu par décalage (NE < "(").
     Conflit entre la règle 108 et le jeton "." résolu par décalage (NE < ".").
     Conflit entre la règle 108 et le jeton ".'" résolu par décalage (NE < ".'").
@@ -19002,7 +18993,7 @@ keywords (148)
   105                | . "==" functionCall
   106                | . "==" ":"
   107                | . "<> or ~=" variable
-  107                | "<> or ~=" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  107                | "<> or ~=" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   108                | . "<> or ~=" functionCall
   109                | . "<> or ~=" ":"
   110                | . ">" variable
@@ -19064,6 +19055,7 @@ keywords (148)
   196         | variable . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 150
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 166
     "."        décalage et aller à l'état 167
     ".'"       décalage et aller à l'état 153
@@ -19092,7 +19084,7 @@ keywords (148)
     listableEnd      aller à l'état 158
 
     Conflit entre la règle 107 et le jeton "'" résolu par décalage (NE < "'").
-    Conflit entre la règle 107 et le jeton ":" résolu par réduction (":" < NE).
+    Conflit entre la règle 107 et le jeton ":" résolu par décalage (NE < ":").
     Conflit entre la règle 107 et le jeton "(" résolu par décalage (NE < "(").
     Conflit entre la règle 107 et le jeton "." résolu par décalage (NE < ".").
     Conflit entre la règle 107 et le jeton ".'" résolu par décalage (NE < ".'").
@@ -19157,7 +19149,7 @@ keywords (148)
   112                | . ">" ":"
   113                | . "<" variable
   114                | . "<" functionCall
-  114                | "<" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  114                | "<" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   115                | . "<" ":"
   116                | . ">=" variable
   117                | . ">=" functionCall
@@ -19211,6 +19203,7 @@ keywords (148)
   197         | functionCall . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 114
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 164
     "."        décalage et aller à l'état 165
     ".'"       décalage et aller à l'état 118
@@ -19239,7 +19232,7 @@ keywords (148)
     listableEnd      aller à l'état 149
 
     Conflit entre la règle 114 et le jeton "'" résolu par décalage (LT < "'").
-    Conflit entre la règle 114 et le jeton ":" résolu par réduction (":" < LT).
+    Conflit entre la règle 114 et le jeton ":" résolu par décalage (LT < ":").
     Conflit entre la règle 114 et le jeton "(" résolu par décalage (LT < "(").
     Conflit entre la règle 114 et le jeton "." résolu par décalage (LT < ".").
     Conflit entre la règle 114 et le jeton ".'" résolu par décalage (LT < ".'").
@@ -19296,7 +19289,7 @@ keywords (148)
   111                | . ">" functionCall
   112                | . ">" ":"
   113                | . "<" variable
-  113                | "<" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  113                | "<" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   114                | . "<" functionCall
   115                | . "<" ":"
   116                | . ">=" variable
@@ -19352,6 +19345,7 @@ keywords (148)
   196         | variable . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 150
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 166
     "."        décalage et aller à l'état 167
     ".'"       décalage et aller à l'état 153
@@ -19380,7 +19374,7 @@ keywords (148)
     listableEnd      aller à l'état 158
 
     Conflit entre la règle 113 et le jeton "'" résolu par décalage (LT < "'").
-    Conflit entre la règle 113 et le jeton ":" résolu par réduction (":" < LT).
+    Conflit entre la règle 113 et le jeton ":" résolu par décalage (LT < ":").
     Conflit entre la règle 113 et le jeton "(" résolu par décalage (LT < "(").
     Conflit entre la règle 113 et le jeton "." résolu par décalage (LT < ".").
     Conflit entre la règle 113 et le jeton ".'" résolu par décalage (LT < ".'").
@@ -19451,7 +19445,7 @@ keywords (148)
   118                | . ">=" ":"
   119                | . "<=" variable
   120                | . "<=" functionCall
-  120                | "<=" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  120                | "<=" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   121                | . "<=" ":"
   123 operation: functionCall . rightOperand
   130          | functionCall . "** or ^" variable
@@ -19499,6 +19493,7 @@ keywords (148)
   197         | functionCall . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 114
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 164
     "."        décalage et aller à l'état 165
     ".'"       décalage et aller à l'état 118
@@ -19527,7 +19522,7 @@ keywords (148)
     listableEnd      aller à l'état 149
 
     Conflit entre la règle 120 et le jeton "'" résolu par décalage (LE < "'").
-    Conflit entre la règle 120 et le jeton ":" résolu par réduction (":" < LE).
+    Conflit entre la règle 120 et le jeton ":" résolu par décalage (LE < ":").
     Conflit entre la règle 120 et le jeton "(" résolu par décalage (LE < "(").
     Conflit entre la règle 120 et le jeton "." résolu par décalage (LE < ".").
     Conflit entre la règle 120 et le jeton ".'" résolu par décalage (LE < ".'").
@@ -19590,7 +19585,7 @@ keywords (148)
   117                | . ">=" functionCall
   118                | . ">=" ":"
   119                | . "<=" variable
-  119                | "<=" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  119                | "<=" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   120                | . "<=" functionCall
   121                | . "<=" ":"
   122 operation: variable . rightOperand
@@ -19640,6 +19635,7 @@ keywords (148)
   196         | variable . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 150
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 166
     "."        décalage et aller à l'état 167
     ".'"       décalage et aller à l'état 153
@@ -19668,7 +19664,7 @@ keywords (148)
     listableEnd      aller à l'état 158
 
     Conflit entre la règle 119 et le jeton "'" résolu par décalage (LE < "'").
-    Conflit entre la règle 119 et le jeton ":" résolu par réduction (":" < LE).
+    Conflit entre la règle 119 et le jeton ":" résolu par décalage (LE < ":").
     Conflit entre la règle 119 et le jeton "(" résolu par décalage (LE < "(").
     Conflit entre la règle 119 et le jeton "." résolu par décalage (LE < ".").
     Conflit entre la règle 119 et le jeton ".'" résolu par décalage (LE < ".'").
@@ -19730,7 +19726,7 @@ keywords (148)
   109                | . "<> or ~=" ":"
   110                | . ">" variable
   111                | . ">" functionCall
-  111                | ">" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  111                | ">" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   112                | . ">" ":"
   113                | . "<" variable
   114                | . "<" functionCall
@@ -19787,6 +19783,7 @@ keywords (148)
   197         | functionCall . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 114
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 164
     "."        décalage et aller à l'état 165
     ".'"       décalage et aller à l'état 118
@@ -19815,7 +19812,7 @@ keywords (148)
     listableEnd      aller à l'état 149
 
     Conflit entre la règle 111 et le jeton "'" résolu par décalage (GT < "'").
-    Conflit entre la règle 111 et le jeton ":" résolu par réduction (":" < GT).
+    Conflit entre la règle 111 et le jeton ":" résolu par décalage (GT < ":").
     Conflit entre la règle 111 et le jeton "(" résolu par décalage (GT < "(").
     Conflit entre la règle 111 et le jeton "." résolu par décalage (GT < ".").
     Conflit entre la règle 111 et le jeton ".'" résolu par décalage (GT < ".'").
@@ -19869,7 +19866,7 @@ keywords (148)
   108                | . "<> or ~=" functionCall
   109                | . "<> or ~=" ":"
   110                | . ">" variable
-  110                | ">" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  110                | ">" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   111                | . ">" functionCall
   112                | . ">" ":"
   113                | . "<" variable
@@ -19928,6 +19925,7 @@ keywords (148)
   196         | variable . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 150
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 166
     "."        décalage et aller à l'état 167
     ".'"       décalage et aller à l'état 153
@@ -19956,7 +19954,7 @@ keywords (148)
     listableEnd      aller à l'état 158
 
     Conflit entre la règle 110 et le jeton "'" résolu par décalage (GT < "'").
-    Conflit entre la règle 110 et le jeton ":" résolu par réduction (":" < GT).
+    Conflit entre la règle 110 et le jeton ":" résolu par décalage (GT < ":").
     Conflit entre la règle 110 et le jeton "(" résolu par décalage (GT < "(").
     Conflit entre la règle 110 et le jeton "." résolu par décalage (GT < ".").
     Conflit entre la règle 110 et le jeton ".'" résolu par décalage (GT < ".'").
@@ -20024,7 +20022,7 @@ keywords (148)
   115                | . "<" ":"
   116                | . ">=" variable
   117                | . ">=" functionCall
-  117                | ">=" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  117                | ">=" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   118                | . ">=" ":"
   119                | . "<=" variable
   120                | . "<=" functionCall
@@ -20075,6 +20073,7 @@ keywords (148)
   197         | functionCall . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 114
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 164
     "."        décalage et aller à l'état 165
     ".'"       décalage et aller à l'état 118
@@ -20103,7 +20102,7 @@ keywords (148)
     listableEnd      aller à l'état 149
 
     Conflit entre la règle 117 et le jeton "'" résolu par décalage (GE < "'").
-    Conflit entre la règle 117 et le jeton ":" résolu par réduction (":" < GE).
+    Conflit entre la règle 117 et le jeton ":" résolu par décalage (GE < ":").
     Conflit entre la règle 117 et le jeton "(" résolu par décalage (GE < "(").
     Conflit entre la règle 117 et le jeton "." résolu par décalage (GE < ".").
     Conflit entre la règle 117 et le jeton ".'" résolu par décalage (GE < ".'").
@@ -20163,7 +20162,7 @@ keywords (148)
   114                | . "<" functionCall
   115                | . "<" ":"
   116                | . ">=" variable
-  116                | ">=" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  116                | ">=" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   117                | . ">=" functionCall
   118                | . ">=" ":"
   119                | . "<=" variable
@@ -20216,6 +20215,7 @@ keywords (148)
   196         | variable . "(" functionArgs ")"
 
     "'"        décalage et aller à l'état 150
+    ":"        décalage et aller à l'état 115
     "("        décalage et aller à l'état 166
     "."        décalage et aller à l'état 167
     ".'"       décalage et aller à l'état 153
@@ -20244,7 +20244,7 @@ keywords (148)
     listableEnd      aller à l'état 158
 
     Conflit entre la règle 116 et le jeton "'" résolu par décalage (GE < "'").
-    Conflit entre la règle 116 et le jeton ":" résolu par réduction (":" < GE).
+    Conflit entre la règle 116 et le jeton ":" résolu par décalage (GE < ":").
     Conflit entre la règle 116 et le jeton "(" résolu par décalage (GE < "(").
     Conflit entre la règle 116 et le jeton "." résolu par décalage (GE < ".").
     Conflit entre la règle 116 et le jeton ".'" résolu par décalage (GE < ".'").
@@ -25408,39 +25408,33 @@ keywords (148)
   169              | . ":" functionCall
   170 listableEnd: . listableBegin ":" variable
   171            | . listableBegin ":" functionCall
-  171            | listableBegin ":" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  171            | listableBegin ":" functionCall .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   172            | . listableBegin
   178 variable: functionCall . "." "identifier"
   179         | functionCall . "." keywords
   181         | functionCall . listableEnd
   197         | functionCall . "(" functionArgs ")"
 
-    "'"         décalage et aller à l'état 114
-    "("         décalage et aller à l'état 164
-    "."         décalage et aller à l'état 165
-    ".'"        décalage et aller à l'état 118
-    "+"         décalage et aller à l'état 119
-    "-"         décalage et aller à l'état 120
-    "*"         décalage et aller à l'état 121
-    ".*"        décalage et aller à l'état 122
-    ".*."       décalage et aller à l'état 123
-    "*."        décalage et aller à l'état 124
-    "/"         décalage et aller à l'état 125
-    "./"        décalage et aller à l'état 126
-    "/."        décalage et aller à l'état 127
-    "./."       décalage et aller à l'état 128
-    "\\"        décalage et aller à l'état 129
-    ".\\"       décalage et aller à l'état 130
-    "\\."       décalage et aller à l'état 131
-    ".\\."      décalage et aller à l'état 132
-    "** or ^"   décalage et aller à l'état 133
-    ".^"        décalage et aller à l'état 134
-    "=="        décalage et aller à l'état 135
-    "<> or ~="  décalage et aller à l'état 136
-    "<"         décalage et aller à l'état 137
-    "<="        décalage et aller à l'état 138
-    ">"         décalage et aller à l'état 139
-    ">="        décalage et aller à l'état 140
+    "'"        décalage et aller à l'état 114
+    "("        décalage et aller à l'état 164
+    "."        décalage et aller à l'état 165
+    ".'"       décalage et aller à l'état 118
+    "+"        décalage et aller à l'état 119
+    "-"        décalage et aller à l'état 120
+    "*"        décalage et aller à l'état 121
+    ".*"       décalage et aller à l'état 122
+    ".*."      décalage et aller à l'état 123
+    "*."       décalage et aller à l'état 124
+    "/"        décalage et aller à l'état 125
+    "./"       décalage et aller à l'état 126
+    "/."       décalage et aller à l'état 127
+    "./."      décalage et aller à l'état 128
+    "\\"       décalage et aller à l'état 129
+    ".\\"      décalage et aller à l'état 130
+    "\\."      décalage et aller à l'état 131
+    ".\\."     décalage et aller à l'état 132
+    "** or ^"  décalage et aller à l'état 133
+    ".^"       décalage et aller à l'état 134
 
     $défaut  réduction par utilisation de la règle 171 (listableEnd)
 
@@ -25470,12 +25464,12 @@ keywords (148)
     Conflit entre la règle 171 et le jeton ".\\." résolu par décalage (COLON < ".\\.").
     Conflit entre la règle 171 et le jeton "** or ^" résolu par décalage (COLON < "** or ^").
     Conflit entre la règle 171 et le jeton ".^" résolu par décalage (COLON < ".^").
-    Conflit entre la règle 171 et le jeton "==" résolu par décalage (COLON < "==").
-    Conflit entre la règle 171 et le jeton "<> or ~=" résolu par décalage (COLON < "<> or ~=").
-    Conflit entre la règle 171 et le jeton "<" résolu par décalage (COLON < "<").
-    Conflit entre la règle 171 et le jeton "<=" résolu par décalage (COLON < "<=").
-    Conflit entre la règle 171 et le jeton ">" résolu par décalage (COLON < ">").
-    Conflit entre la règle 171 et le jeton ">=" résolu par décalage (COLON < ">=").
+    Conflit entre la règle 171 et le jeton "==" résolu par réduction ("==" < COLON).
+    Conflit entre la règle 171 et le jeton "<> or ~=" résolu par réduction ("<> or ~=" < COLON).
+    Conflit entre la règle 171 et le jeton "<" résolu par réduction ("<" < COLON).
+    Conflit entre la règle 171 et le jeton "<=" résolu par réduction ("<=" < COLON).
+    Conflit entre la règle 171 et le jeton ">" résolu par réduction (">" < COLON).
+    Conflit entre la règle 171 et le jeton ">=" résolu par réduction (">=" < COLON).
     Conflit entre la règle 171 et le jeton "&" résolu par réduction ("&" < COLON).
     Conflit entre la règle 171 et le jeton "&&" résolu par réduction ("&&" < COLON).
     Conflit entre la règle 171 et le jeton "|" résolu par réduction ("|" < COLON).
@@ -25553,7 +25547,7 @@ keywords (148)
   168 listableBegin: . ":" variable
   169              | . ":" functionCall
   170 listableEnd: . listableBegin ":" variable
-  170            | listableBegin ":" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
+  170            | listableBegin ":" variable .  ["end of file", error, "end of line", "%t or %T", "%f or %F", "~ or @", "$", ",", ":", ";", ")", "[", "]", "{", "}", "==", "<> or ~=", "<", "<=", ">", ">=", "&", "&&", "|", "||", "if", "then", "else", "elseif", "end", "select", "switch", "case", "otherwise", "function", "endfunction", "for", "while", "do", "break", "continue", "try", "catch", "return", "string", "identifier", "integer", "float", "number", "line comment"]
   171            | . listableBegin ":" functionCall
   172            | . listableBegin
   175 variable: variable . "." "identifier"
@@ -25562,32 +25556,26 @@ keywords (148)
   180         | variable . listableEnd
   196         | variable . "(" functionArgs ")"
 
-    "'"         décalage et aller à l'état 150
-    "("         décalage et aller à l'état 166
-    "."         décalage et aller à l'état 167
-    ".'"        décalage et aller à l'état 153
-    "+"         décalage et aller à l'état 119
-    "-"         décalage et aller à l'état 120
-    "*"         décalage et aller à l'état 121
-    ".*"        décalage et aller à l'état 122
-    ".*."       décalage et aller à l'état 123
-    "*."        décalage et aller à l'état 124
-    "/"         décalage et aller à l'état 125
-    "./"        décalage et aller à l'état 126
-    "/."        décalage et aller à l'état 127
-    "./."       décalage et aller à l'état 128
-    "\\"        décalage et aller à l'état 129
-    ".\\"       décalage et aller à l'état 130
-    "\\."       décalage et aller à l'état 131
-    ".\\."      décalage et aller à l'état 132
-    "** or ^"   décalage et aller à l'état 154
-    ".^"        décalage et aller à l'état 155
-    "=="        décalage et aller à l'état 135
-    "<> or ~="  décalage et aller à l'état 136
-    "<"         décalage et aller à l'état 137
-    "<="        décalage et aller à l'état 138
-    ">"         décalage et aller à l'état 139
-    ">="        décalage et aller à l'état 140
+    "'"        décalage et aller à l'état 150
+    "("        décalage et aller à l'état 166
+    "."        décalage et aller à l'état 167
+    ".'"       décalage et aller à l'état 153
+    "+"        décalage et aller à l'état 119
+    "-"        décalage et aller à l'état 120
+    "*"        décalage et aller à l'état 121
+    ".*"       décalage et aller à l'état 122
+    ".*."      décalage et aller à l'état 123
+    "*."       décalage et aller à l'état 124
+    "/"        décalage et aller à l'état 125
+    "./"       décalage et aller à l'état 126
+    "/."       décalage et aller à l'état 127
+    "./."      décalage et aller à l'état 128
+    "\\"       décalage et aller à l'état 129
+    ".\\"      décalage et aller à l'état 130
+    "\\."      décalage et aller à l'état 131
+    ".\\."     décalage et aller à l'état 132
+    "** or ^"  décalage et aller à l'état 154
+    ".^"       décalage et aller à l'état 155
 
     $défaut  réduction par utilisation de la règle 170 (listableEnd)
 
@@ -25617,12 +25605,12 @@ keywords (148)
     Conflit entre la règle 170 et le jeton ".\\." résolu par décalage (COLON < ".\\.").
     Conflit entre la règle 170 et le jeton "** or ^" résolu par décalage (COLON < "** or ^").
     Conflit entre la règle 170 et le jeton ".^" résolu par décalage (COLON < ".^").
-    Conflit entre la règle 170 et le jeton "==" résolu par décalage (COLON < "==").
-    Conflit entre la règle 170 et le jeton "<> or ~=" résolu par décalage (COLON < "<> or ~=").
-    Conflit entre la règle 170 et le jeton "<" résolu par décalage (COLON < "<").
-    Conflit entre la règle 170 et le jeton "<=" résolu par décalage (COLON < "<=").
-    Conflit entre la règle 170 et le jeton ">" résolu par décalage (COLON < ">").
-    Conflit entre la règle 170 et le jeton ">=" résolu par décalage (COLON < ">=").
+    Conflit entre la règle 170 et le jeton "==" résolu par réduction ("==" < COLON).
+    Conflit entre la règle 170 et le jeton "<> or ~=" résolu par réduction ("<> or ~=" < COLON).
+    Conflit entre la règle 170 et le jeton "<" résolu par réduction ("<" < COLON).
+    Conflit entre la règle 170 et le jeton "<=" résolu par réduction ("<=" < COLON).
+    Conflit entre la règle 170 et le jeton ">" résolu par réduction (">" < COLON).
+    Conflit entre la règle 170 et le jeton ">=" résolu par réduction (">=" < COLON).
     Conflit entre la règle 170 et le jeton "&" résolu par réduction ("&" < COLON).
     Conflit entre la règle 170 et le jeton "&&" résolu par réduction ("&&" < COLON).
     Conflit entre la règle 170 et le jeton "|" résolu par réduction ("|" < COLON).
index 0a52733..ce60d41 100644 (file)
@@ -374,8 +374,8 @@ static void print_rules(const std::string& _parent, const double _value)
 %left OR OROR
 %left AND ANDAND
 
-%left COLON
 %left EQ NE LT LE GT GE
+%left COLON
 %left MINUS PLUS
 %left TIMES DOTTIMES KRONTIMES CONTROLTIMES RDIVIDE DOTRDIVIDE KRONRDIVIDE CONTROLRDIVIDE LDIVIDE DOTLDIVIDE KRONLDIVIDE CONTROLLDIVIDE
 %left UMINUS UPLUS
index 71b7520..bcc9584 100644 (file)
@@ -1,8 +1,8 @@
-/* A Bison parser, made by GNU Bison 3.0.4.  */
+/* A Bison parser, made by GNU Bison 3.0.5.  */
 
 /* Bison implementation for Yacc-like parsers in C
 
-   Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc.
+   Copyright (C) 1984, 1989-1990, 2000-2015, 2018 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -44,7 +44,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "3.0.4"
+#define YYBISON_VERSION "3.0.5"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -727,7 +727,7 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  105
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   3513
+#define YYLAST   3501
 
 /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  85
@@ -915,26 +915,26 @@ static const yytype_int16 yypact[] =
     3082,    13,   131,    21,    50,   163,  1484,  1705,  1705,  -461,
      128,  3042,  3082,  -461,  -461,  -461,  2137,  2205,  -461,  -461,
     -461,  -461,  -461,  -461,    83,  -461,    27,  -461,  -461,  -461,
-    -461,   215,    97,    83,  -461,  2743,  2223,  3421,  -461,  2743,
+    -461,   215,    97,    83,  -461,  2743,  2223,  3409,  -461,  2743,
     2743,  2743,  2743,  2743,  2743,  2743,  2743,  2743,  2743,  2743,
     2743,  2743,  2743,  2743,  2743,  2327,  2345,  2413,  2431,  2449,
     2517,  2535,  2553,  2621,  2639,  2241,  -461,  -461,    94,  -461,
     -461,  2223,  1050,  -461,  2743,  2743,  -461,  -461,  -461,  2309,
-    3042,  3082,    39,  1148,  2223,  3443,  2223,  2719,  2743,  -461,
+    3042,  3082,    39,  1148,  2223,  3431,  2223,  2719,  2743,  -461,
     2743,  -461,  2743,  -461,  -461,  2101,  1303,  -461,  -461,  1775,
     -461,  -461,  -461,    65,  -461,  3042,  3082,    40,  1925,  -461,
     2119,  1795,  -461,  1815,  -461,  -461,   166,   169,   229,   154,
      750,   149,  -461,   195,   198,     6,   150,    69,   174,  2743,
     -461,   213,   230,   265,   277,   266,  1582,  -461,  -461,  -461,
     -461,  1333,  2657,  -461,  -461,   189,  2881,   224,  3002,  -461,
-    -461,    38,   232,   215,    97,    97,  3270,  3306,   257,  -461,
+    -461,    38,   232,   215,    97,    97,  3330,  3360,   257,  -461,
     -461,  -461,  -461,  -461,  -461,  -461,  -461,  -461,  -461,  -461,
-    -461,  -461,  -461,  -461,  -461,  -461,  -461,   252,   259,  3402,
-    3432,  3402,  3432,   672,   733,   672,   733,   672,   733,   672,
+    -461,  -461,  -461,  -461,  -461,  -461,  -461,   252,   259,  3390,
+    3420,  3390,  3420,   672,   733,   672,   733,   672,   733,   672,
      733,   672,   733,   672,   733,   672,   733,   672,   733,   672,
      733,   672,   733,   672,   733,   672,   733,   672,   733,   672,
-     733,  -461,  3342,  3372,  -461,  3342,  3372,  -461,  3342,  3372,
-    -461,  3342,  3372,  -461,  3342,  3372,  -461,  3342,  3372,  -461,
+     733,  -461,  3270,  3300,  -461,  3270,  3300,  -461,  3270,  3300,
+    -461,  3270,  3300,  -461,  3270,  3300,  -461,  3270,  3300,  -461,
     3198,  3234,  -461,  3198,  3234,  -461,  3122,  3160,  -461,  3122,
     3160,  -461,  3042,  3082,  -461,  2743,   260,    15,   218,   269,
      281,   672,   733,   672,   733,  -461,  3042,  3082,  -461,  -461,
@@ -945,7 +945,7 @@ static const yytype_int16 yypact[] =
      332,   312,  -461,   315,   367,  -461,   381,   390,   391,  1509,
     -461,  2743,  3042,  3082,    43,  -461,  -461,  -461,   393,   396,
     -461,   400,   405,  -461,  -461,   364,   370,  -461,  2881,  3002,
-    -461,  2725,  -461,  -461,  -461,    97,   372,  3270,  3306,   378,
+    -461,  2725,  -461,  -461,  -461,    97,   372,  3330,  3360,   378,
      147,   403,  -461,  -461,   -43,  2743,   425,   311,   -14,  -461,
     -461,  -461,  -461,  -461,   375,  2743,  -461,  1607,   377,   367,
      363,  -461,  -461,    69,  -461,  -461,  -461,  -461,   137,   423,
@@ -1382,30 +1382,29 @@ static const yytype_int16 yytable[] =
        0,     0,     0,     0,   167,   153,   119,   120,   121,   122,
      123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
      154,   155,   135,   136,   137,   138,   139,   140,   114,     0,
+       0,     0,   115,     0,   164,     0,     0,     0,     0,     0,
+     165,   118,   119,   120,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   133,   134,   150,     0,
+       0,     0,   115,     0,   166,     0,     0,     0,     0,     0,
+     167,   153,   119,   120,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   154,   155,   114,     0,
        0,     0,     0,     0,   164,     0,     0,     0,     0,     0,
      165,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-     127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
-     137,   138,   139,   140,   150,     0,     0,     0,     0,     0,
-     166,     0,     0,     0,     0,     0,   167,   153,   119,   120,
-     121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
-     131,   132,   154,   155,   135,   136,   137,   138,   139,   140,
-     114,     0,     0,     0,     0,     0,   164,     0,     0,     0,
-       0,     0,   165,   118,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     150,     0,     0,     0,     0,     0,   166,     0,     0,     0,
-       0,     0,   167,   153,   119,   120,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   154,   155,
-     114,     0,     0,     0,     0,     0,   164,     0,     0,     0,
-       0,     0,   165,   118,     0,     0,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
-     150,     0,     0,     0,     0,     0,   166,     0,     0,     0,
-       0,     0,   167,   153,     0,     0,   121,   122,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,   154,   155,
+     127,   128,   129,   130,   131,   132,   133,   134,   150,     0,
+       0,     0,     0,     0,   166,     0,     0,     0,     0,     0,
+     167,   153,   119,   120,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   154,   155,   114,     0,
+       0,     0,     0,     0,   164,     0,     0,     0,     0,     0,
+     165,   118,     0,     0,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   133,   134,   150,     0,
+       0,     0,     0,     0,   166,     0,     0,     0,     0,     0,
+     167,   153,     0,     0,   121,   122,   123,   124,   125,   126,
+     127,   128,   129,   130,   131,   132,   154,   155,   239,   240,
+     241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
+     251,   252,   253,     0,   254,   255,   256,     0,     0,   257,
      239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
      249,   250,   251,   252,   253,     0,   254,   255,   256,     0,
-       0,   257,   239,   240,   241,   242,   243,   244,   245,   246,
-     247,   248,   249,   250,   251,   252,   253,     0,   254,   255,
-     256,     0,     0,   346
+       0,   346
 };
 
 static const yytype_int16 yycheck[] =
@@ -1738,30 +1737,29 @@ static const yytype_int16 yycheck[] =
       -1,    -1,    -1,    -1,    20,    21,    22,    23,    24,    25,
       26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
       36,    37,    38,    39,    40,    41,    42,    43,     8,    -1,
+      -1,    -1,    12,    -1,    14,    -1,    -1,    -1,    -1,    -1,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,     8,    -1,
+      -1,    -1,    12,    -1,    14,    -1,    -1,    -1,    -1,    -1,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,     8,    -1,
       -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,    -1,
       20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
-      30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
-      40,    41,    42,    43,     8,    -1,    -1,    -1,    -1,    -1,
-      14,    -1,    -1,    -1,    -1,    -1,    20,    21,    22,    23,
-      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
-      34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
-       8,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
-      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-       8,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
-      -1,    -1,    20,    21,    22,    23,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-       8,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
-      -1,    -1,    20,    21,    -1,    -1,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
-       8,    -1,    -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,
-      -1,    -1,    20,    21,    -1,    -1,    24,    25,    26,    27,
-      28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
+      30,    31,    32,    33,    34,    35,    36,    37,     8,    -1,
+      -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,    -1,
+      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,     8,    -1,
+      -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,    -1,
+      20,    21,    -1,    -1,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,     8,    -1,
+      -1,    -1,    -1,    -1,    14,    -1,    -1,    -1,    -1,    -1,
+      20,    21,    -1,    -1,    24,    25,    26,    27,    28,    29,
+      30,    31,    32,    33,    34,    35,    36,    37,    49,    50,
+      51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
+      61,    62,    63,    -1,    65,    66,    67,    -1,    -1,    70,
       49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
       59,    60,    61,    62,    63,    -1,    65,    66,    67,    -1,
-      -1,    70,    49,    50,    51,    52,    53,    54,    55,    56,
-      57,    58,    59,    60,    61,    62,    63,    -1,    65,    66,
-      67,    -1,    -1,    70
+      -1,    70
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -2342,6 +2340,7 @@ yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
       case N:                               \
         yyformat = S;                       \
       break
+    default: /* Avoid compiler warnings. */
       YYCASE_(0, YY_("syntax error"));
       YYCASE_(1, YY_("syntax error, unexpected %s"));
       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
@@ -3018,8 +3017,9 @@ yyreduce:
      GCC warning that YYVAL may be used uninitialized.  */
   yyval = yyvsp[1-yylen];
 
-  /* Default location.  */
+  /* Default location. */
   YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
+  yyerror_range[1] = yyloc;
   YY_REDUCE_PRINT (yyn);
   switch (yyn)
     {
@@ -5945,7 +5945,6 @@ yyerrorlab:
   if (/*CONSTCOND*/ 0)
      goto yyerrorlab;
 
-  yyerror_range[1] = yylsp[1-yylen];
   /* Do not reclaim the symbols of the rule whose action triggered
      this YYERROR.  */
   YYPOPSTACK (yylen);
diff --git a/scilab/modules/ast/tests/nonreg_tests/bug_9673.tst b/scilab/modules/ast/tests/nonreg_tests/bug_9673.tst
new file mode 100644 (file)
index 0000000..f80a409
--- /dev/null
@@ -0,0 +1,20 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2018 - Stéphane MOTTELET
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- CLI SHELL MODE -->
+// <-- NO CHECK REF -->
+//
+// <-- Non-regression test for bug 9673 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/9673
+//
+// <-- Short Description -->
+// Priority of colon : operator is too low
+
+assert_checkequal(1 == 2 : 3,[%f %f])
+