diff options
| author | aarne <aarne@cs.chalmers.se> | 2006-04-13 14:19:27 +0000 |
|---|---|---|
| committer | aarne <aarne@cs.chalmers.se> | 2006-04-13 14:19:27 +0000 |
| commit | 8edb88dcabe9d5a23c6efcedcd056cd16194f4a4 (patch) | |
| tree | 501f8408b8f0b76a5fd5d5f058da7b305dfbe395 /examples/unix/CharUni.gf | |
| parent | 47dedcf256976495f405a802920fa3012f683a52 (diff) | |
extended unix grammars with character-based spelling
Diffstat (limited to 'examples/unix/CharUni.gf')
| -rw-r--r-- | examples/unix/CharUni.gf | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/examples/unix/CharUni.gf b/examples/unix/CharUni.gf new file mode 100644 index 000000000..0e6628657 --- /dev/null +++ b/examples/unix/CharUni.gf @@ -0,0 +1,67 @@ +concrete CharUni of Char = open Prelude in { + +param + LForm = LCap | LSma ; + +oper + chr : Str -> Str -> {s : LForm => Str} = \c,C -> { + s = table { + LCap => C ; + LSma => c + } + } ; + +lincat + Letter = {s : LForm => Str} ; + +lin + BaseChr c = c ; + ConsChr = infixSS "&+" ; + + C_dot = ss "." ; + C_pipe = ss "|" ; + C_hyphen = ss "-" ; + CSmall c = ss (c.s ! LSma) ; + CCap c = ss (c.s ! LCap) ; + CC c = ss (c.s ! LSma) ; + + CDig_0 = ss "0" ; + CDig_1 = ss "1" ; + CDig_2 = ss "2" ; + CDig_3 = ss "3" ; + CDig_4 = ss "4" ; + CDig_5 = ss "5" ; + CDig_6 = ss "6" ; + CDig_7 = ss "7" ; + CDig_8 = ss "8" ; + CDig_9 = ss "9" ; + + + L_a = chr "a" "A" ; + L_b = chr "b" "B" ; + L_c = chr "c" "C" ; + L_d = chr "d" "D" ; + L_e = chr "e" "E" ; + L_f = chr "f" "F" ; + L_g = chr "g" "G" ; + L_h = chr "h" "H" ; + L_i = chr "i" "I" ; + L_j = chr "j" "J" ; + L_k = chr "k" "K" ; + L_l = chr "l" "L" ; + L_m = chr "m" "M" ; + L_n = chr "n" "N" ; + L_o = chr "o" "O" ; + L_p = chr "p" "P" ; + L_q = chr "q" "Q" ; + L_r = chr "r" "R" ; + L_s = chr "s" "S" ; + L_t = chr "t" "T" ; + L_u = chr "u" "U" ; + L_v = chr "v" "V" ; + L_w = chr "w" "W" ; + L_x = chr "x" "X" ; + L_y = chr "y" "Y" ; + L_z = chr "z" "Z" ; + +} |
