[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
doc: use color in the cex examples
From: |
Akim Demaille |
Subject: |
doc: use color in the cex examples |
Date: |
Tue, 30 Jun 2020 20:43:18 +0200 |
commit 21f769057019837b165463535da6888941e36c4e
Author: Akim Demaille <akim.demaille@gmail.com>
Date: Tue Jun 30 20:15:54 2020 +0200
doc: use color in the cex examples
* doc/bison.texi: here.
And use smallexample when it no longer fits in PDF.
diff --git a/doc/bison.texi b/doc/bison.texi
index 985b1d7c..439c7266 100644
--- a/doc/bison.texi
+++ b/doc/bison.texi
@@ -37,6 +37,23 @@
@c ## ---------------------- ##
@tex
+\gdef\rgbGreen{0 .80 0}
+\gdef\colorGreen{%
+ \setcolor{\rgbGreen}%
+}
+\gdef\rgbYellow{1 .5 0}
+\gdef\colorYellow{%
+ \setcolor{\rgbYellow}%
+}
+\gdef\rgbRed{1 0 0}
+\gdef\colorRed{%
+ \setcolor{\rgbRed}%
+}
+\gdef\rgbBlue{0 0 1}
+\gdef\colorBlue{%
+ \setcolor{\rgbBlue}%
+}
+
\gdef\rgbWarning{0.50 0 0.50}
\gdef\colorWarning{%
\setcolor{\rgbWarning}%
@@ -55,6 +72,19 @@
@end tex
@ifnottex
+@macro colorGreen
+@inlineraw{html, <b style="color:green">}
+@end macro
+@macro colorYellow
+@inlineraw{html, <b style="color:#ff8000">}
+@end macro
+@macro colorRed
+@inlineraw{html, <b style="color:red">}
+@end macro
+@macro colorBlue
+@inlineraw{html, <b style="color:blue">}
+@end macro
+
@macro colorWarning
@inlineraw{html, <b style="color:darkviolet">}
@end macro
@@ -69,6 +99,22 @@
@end macro
@end ifnottex
+@macro green{text}
+@colorGreen{}\text\@colorOff{}
+@end macro
+
+@macro yellow{text}
+@colorYellow{}\text\@colorOff{}
+@end macro
+
+@macro red{text}
+@colorRed{}\text\@colorOff{}
+@end macro
+
+@macro blue{text}
+@colorBlue{}\text\@colorOff{}
+@end macro
+
@macro dwarning{text}
@colorWarning{}\text\@colorOff{}
@end macro
@@ -9819,7 +9865,7 @@ useless: STR;
@command{bison} reports:
-@example
+@smallexample
calc.y: @dwarning{warning}: 1 nonterminal useless in grammar
[@dwarning{-Wother}]
calc.y: @dwarning{warning}: 1 rule useless in grammar [@dwarning{-Wother}]
calc.y:19.1-7: @dwarning{warning}: nonterminal useless in grammar: useless
[@dwarning{-Wother}]
@@ -9827,7 +9873,7 @@ calc.y:19.1-7: @dwarning{warning}: nonterminal useless in
grammar: useless [@dwa
| @dwarning{^~~~~~~}
calc.y: @dwarning{warning}: 7 shift/reduce conflicts
[@dwarning{-Wconflicts-sr}]
calc.y: @dwarning{warning}: rerun with option '-Wcounterexamples' to generate
conflict counterexamples [@dwarning{-Wother}]
-@end example
+@end smallexample
When given @option{-Wcounterexamples}, @command{bison} will run a search for
strings in your grammar that better demonstrate you
@@ -9837,10 +9883,10 @@ Isradisaikul and Andrew Myers @pcite{Isradisaikul
2015}. For
@example
Shift/reduce conflict on token '/':
- Example exp '+' exp • '/' exp
- First derivation exp ::=[ exp ::=[ exp '+' exp • ] '/' exp ]
- Example exp '+' exp • '/' exp
- Second derivation exp ::=[ exp '+' exp ::=[ exp • '/' exp ] ]
+ Example @green{exp '+' exp} @red{•} @yellow{'/' exp}
+ First derivation @yellow{exp ::=[} @green{exp ::=[ exp '+' exp} @red{•}
@green{]} @yellow{'/' exp ]}
+ Example @yellow{exp '+'} @green{exp} @red{•} @green{'/' exp}
+ Second derivation @yellow{exp ::=[ exp '+'} @green{exp ::=[ exp} @red{•}
@green{'/' exp ]} @yellow{]}
@end example
This shows two separate derivations in the grammar for the same @code{exp}:
@@ -9867,13 +9913,13 @@ expr: %empty | expr ID ','
@command{bison} reports:
-@example
+@smallexample
Shift/reduce conflict on token ID:
- First example expr • ID $end
- First derivation $accept ::=[ s ::=[ a ::=[ expr • ] ID ] $end ]
- Second example expr • ID ',' ID $end
- Second derivation $accept ::=[ s ::=[ a ::=[ expr ::=[ expr • ID ',' ] ]
ID ] $end ]
-@end example
+ First example @blue{expr} @red{•} @green{ID} @yellow{$end}
+ First derivation @yellow{$accept ::=[} @green{s ::=[} @blue{a ::=[ expr}
@red{•} @blue{]} @green{ID ]} @yellow{$end ]}
+ Second example @blue{expr} @red{•} @blue{ID ','} @green{ID}
@yellow{$end}
+ Second derivation @yellow{$accept ::=[} @green{s ::=[} @blue{a ::=[ expr
::=[ expr} @red{•} @blue{ID ',' ] ]} @green{ID ]} @yellow{$end ]}
+@end smallexample
This conflict is caused by the parser not having enough information to know
the difference between these two examples. The parser would need an
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- doc: use color in the cex examples,
Akim Demaille <=