]> git.saurik.com Git - bison.git/commitdiff
tests: add token declaration order test
authorValentin Tolmer <nitnelave1@gmail.com>
Fri, 25 Jan 2013 10:12:49 +0000 (11:12 +0100)
committerAkim Demaille <akim@lrde.epita.fr>
Sun, 27 Jan 2013 09:43:59 +0000 (10:43 +0100)
* tests/conflicts.at: New test.

tests/conflicts.at

index 81765aacf7e5119f51f2e1e5d84114d1be0fbfa4..5325b69e2742ac143930cf6c9ed9d346e13f76e2 100644 (file)
 AT_BANNER([[Conflicts.]])
 
 
+## ------------------------ ##
+## Token declaration order. ##
+## ------------------------ ##
+
+# This test checks that token are declared left to right when in a precedence
+# statement.
+
+AT_SETUP([Token declaration order])
+
+AT_BISON_OPTION_PUSHDEFS
+
+AT_DATA_GRAMMAR([[input.y]],
+[[%code {
+  #include <stdio.h>
+  ]AT_YYERROR_DECLARE[
+  ]AT_YYLEX_DECLARE[
+}
+%token A B C
+%token D
+%right E F G
+%right H I
+%right J
+%left  K
+%left  L M N
+%nonassoc O P Q
+%precedence R S T U
+%precedence V W
+%%
+exp: A
+%%
+]AT_YYERROR_DEFINE[
+]AT_YYLEX_DEFINE[
+int main (void)
+{
+  assert (A < B);
+  assert (B < C);
+  assert (C < D);
+  assert (D < E);
+  assert (E < F);
+  assert (F < G);
+  assert (G < H);
+  assert (H < I);
+  assert (I < J);
+  assert (J < K);
+  assert (K < L);
+  assert (L < M);
+  assert (M < N);
+  assert (N < O);
+  assert (O < P);
+  assert (P < Q);
+  assert (Q < R);
+  assert (R < S);
+  assert (S < T);
+  assert (T < U);
+  assert (U < V);
+  assert (V < W);
+}
+]])
+
+AT_FULL_COMPILE([input])
+
+AT_CHECK([./input])
+
+AT_BISON_OPTION_POPDEFS
+
+AT_CLEANUP
+
+
 ## ---------------- ##
 ## S/R in initial.  ##
 ## ---------------- ##