bison-patches
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]