Example:  Arithmetic Expressions I:   The context-free grammar is:
• T =  { 0,1,2,3,4,5,6,7,8,9,+,*,-,/,(,) }
• N =  { Digit, PInt, Int, Exp }
• P =   { <Digit, 0>, <Digit, 1>, <Digit, 2>, <Digit, 3>, <Digit, 4>, <Digit, 5>, <Digit, 6>, <Digit, 7>, <Digit, 8>, <Digit, 9>,

•             <PInt, 1>, <PInt, 2>, <PInt, 3>, <PInt, 4>, <PInt, 5>, <PInt, 6>, <PInt, 7>, <PInt, 8>, <PInt, 9>, <PInt, PInt.Digit>,
<Int, PInt>, <Int, 0>, <Int, -PInt>,
<Exp, Int>,  <Exp, (Exp + Exp)>,<Exp, (Exp * Exp)>,<Exp, (Exp - Exp)>,<Exp, (Exp / Exp)>}
The corresponding signature is:

The Signature GramAE1 in mathematical form:

name: GramAE1

sorts: {Digit, Pint, Int, Exp}

operators:
GramAE1(Digit) = {d0, d1, d2, d3, d4, d5, d6, d7, d8, d9}
GramAE1(PInt) = {p1, p2, p3, p4, p5, p6, p7, p8, p9}
GramAE1(PInt.Digit,PInt) = {pd}
GramAE1(PInt,Int) = {inc}
GramAE1(Int) = {z}
GramAE1(PInt,Int) = {neg}
GramAE1(Int,Exp) = {inc2}
GramAE1(Exp.Exp,Exp) = {plus, times, minus, div}

End of signature GramAE1.

This signature is built-into the UACalculator so you can experiment with it.
end.