summaryrefslogtreecommitdiff
path: root/examples/unix/CharUni.gf
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2006-04-13 14:19:27 +0000
committeraarne <aarne@cs.chalmers.se>2006-04-13 14:19:27 +0000
commit8edb88dcabe9d5a23c6efcedcd056cd16194f4a4 (patch)
tree501f8408b8f0b76a5fd5d5f058da7b305dfbe395 /examples/unix/CharUni.gf
parent47dedcf256976495f405a802920fa3012f683a52 (diff)
extended unix grammars with character-based spelling
Diffstat (limited to 'examples/unix/CharUni.gf')
-rw-r--r--examples/unix/CharUni.gf67
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" ;
+
+}