mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-22 01:22:51 -06:00
unix command grammar started
This commit is contained in:
24
examples/unix/Unix.gf
Normal file
24
examples/unix/Unix.gf
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
abstract Unix = {
|
||||||
|
|
||||||
|
cat
|
||||||
|
S ;
|
||||||
|
Line ;
|
||||||
|
Command ;
|
||||||
|
File ;
|
||||||
|
|
||||||
|
fun
|
||||||
|
Pipe : Command -> S -> S ;
|
||||||
|
Comm : Command -> S ;
|
||||||
|
|
||||||
|
WhatTime : Command ;
|
||||||
|
WhatDate : Command ;
|
||||||
|
WhereNow : Command ;
|
||||||
|
Remove : File -> Command ;
|
||||||
|
Copy : File -> File -> Command ;
|
||||||
|
Linecount : File -> Command ;
|
||||||
|
Wordcount : File -> Command ;
|
||||||
|
|
||||||
|
Name : String -> File ;
|
||||||
|
It : File ;
|
||||||
|
|
||||||
|
}
|
||||||
30
examples/unix/UnixEng.gf
Normal file
30
examples/unix/UnixEng.gf
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
--# -path=.:prelude
|
||||||
|
|
||||||
|
concrete UnixEng of Unix = open Prelude in {
|
||||||
|
|
||||||
|
flags unlexer=textlit ; lexer=textlit ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
lincat
|
||||||
|
Line ;
|
||||||
|
[Command] {1} ;
|
||||||
|
Command ;
|
||||||
|
File ;
|
||||||
|
-}
|
||||||
|
|
||||||
|
lin
|
||||||
|
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"] ;
|
||||||
|
|
||||||
|
Name x = x ;
|
||||||
|
It = ss "it" ;
|
||||||
|
|
||||||
|
}
|
||||||
30
examples/unix/UnixUni.gf
Normal file
30
examples/unix/UnixUni.gf
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
--# -path=.:prelude
|
||||||
|
|
||||||
|
concrete UnixUni of Unix = open Prelude in {
|
||||||
|
|
||||||
|
flags unlexer=codelit ; lexer=codelit ;
|
||||||
|
|
||||||
|
{-
|
||||||
|
lincat
|
||||||
|
Line ;
|
||||||
|
[Command] {1} ;
|
||||||
|
Command ;
|
||||||
|
File ;
|
||||||
|
-}
|
||||||
|
|
||||||
|
lin
|
||||||
|
Pipe = infixSS "|" ;
|
||||||
|
Comm c = c ;
|
||||||
|
|
||||||
|
WhatTime = ss ["date +%D"] ;
|
||||||
|
WhatDate = ss ["date +%T"] ;
|
||||||
|
WhereNow = ss ["pwd"] ;
|
||||||
|
Remove = prefixSS "rm" ;
|
||||||
|
Copy x y = ss ("cp" ++ x.s ++ y.s) ;
|
||||||
|
Linecount = prefixSS ["wc -l"] ;
|
||||||
|
Wordcount = prefixSS ["wc -w"] ;
|
||||||
|
|
||||||
|
Name x = x ;
|
||||||
|
It = ss [] ;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user