summaryrefslogtreecommitdiff
path: root/old-examples/unix/UnixEng.gf
diff options
context:
space:
mode:
Diffstat (limited to 'old-examples/unix/UnixEng.gf')
-rw-r--r--old-examples/unix/UnixEng.gf43
1 files changed, 43 insertions, 0 deletions
diff --git a/old-examples/unix/UnixEng.gf b/old-examples/unix/UnixEng.gf
new file mode 100644
index 000000000..5b0ca944f
--- /dev/null
+++ b/old-examples/unix/UnixEng.gf
@@ -0,0 +1,43 @@
+--# -path=.:prelude
+
+concrete UnixEng of Unix = CharEng ** open Prelude in {
+
+ flags lexer=text ;
+
+{-
+ lincat
+ Line ;
+ [Command] {1} ;
+ Command ;
+ File ;
+-}
+
+ lin
+ CommWords w = w ;
+
+ Redirect = infixSS (optStr "and" ++ ["write the result to"]) ;
+ Pipe = infixSS "then" ;
+ Comm c = c ;
+
+ WhatTime = ss ["what time is it"] ;
+ WhatDate = ss ["what date is it"] ;
+ WhereNow = ss ["where am I now"] ;
+ Remove = prefixSS "remove" ;
+ Copy x y = ss ("copy" ++ x.s ++ "to" ++ y.s) ;
+ Linecount = prefixSS ["how many lines has"] ;
+ Wordcount = prefixSS ["how many words has"] ;
+ Grep x y = ss (["show the lines containing"] ++ x.s ++ "in" ++ y.s) ;
+ Cat = prefixSS ["show the contents of"] ;
+
+ It = ss "it" ;
+
+ FileChars = prefixSS (optStr ["the file"]) ;
+ WordChars = prefixSS (optStr ["the word"]) ;
+
+ FileSuffix = prefixSS ["all files ending with"] ;
+ FilePrefix = prefixSS ["all files beginning with"] ;
+
+ BaseWord w = w ;
+ ConsWord = infixSS "space" ;
+
+}