summaryrefslogtreecommitdiff
path: root/deprecated/old-lib/prelude/Predef.gf
diff options
context:
space:
mode:
Diffstat (limited to 'deprecated/old-lib/prelude/Predef.gf')
-rw-r--r--deprecated/old-lib/prelude/Predef.gf37
1 files changed, 37 insertions, 0 deletions
diff --git a/deprecated/old-lib/prelude/Predef.gf b/deprecated/old-lib/prelude/Predef.gf
new file mode 100644
index 000000000..d8141ea8c
--- /dev/null
+++ b/deprecated/old-lib/prelude/Predef.gf
@@ -0,0 +1,37 @@
+--1 Predefined functions for concrete syntax
+
+-- The definitions of these constants are hard-coded in GF, and defined
+-- in [AppPredefined.hs ../src/GF/Grammar/AppPredefined.hs]. Applying
+-- them to run-time variables leads to compiler errors that are often
+-- only detected at the code generation time.
+
+resource Predef = {
+
+-- This type of booleans is for internal use only.
+
+ param PBool = PTrue | PFalse ;
+
+ oper Error : Type = variants {} ; -- the empty type
+ oper Int : Type = variants {} ; -- the type of integers
+ oper Ints : Int -> Type = variants {} ; -- the type of integers from 0 to n
+
+ oper error : Str -> Error = variants {} ; -- forms error message
+ oper length : Tok -> Int = variants {} ; -- length of string
+ oper drop : Int -> Tok -> Tok = variants {} ; -- drop prefix of length
+ oper take : Int -> Tok -> Tok = variants {} ; -- take prefix of length
+ oper tk : Int -> Tok -> Tok = variants {} ; -- drop suffix of length
+ oper dp : Int -> Tok -> Tok = variants {} ; -- take suffix of length
+ oper eqInt : Int -> Int -> PBool = variants {} ; -- test if equal integers
+ oper lessInt: Int -> Int -> PBool = variants {} ; -- test order of integers
+ oper plus : Int -> Int -> Int = variants {} ; -- add integers
+ oper eqStr : Tok -> Tok -> PBool = variants {} ; -- test if equal strings
+ oper occur : Tok -> Tok -> PBool = variants {} ; -- test if occurs as substring
+ oper occurs : Tok -> Tok -> PBool = variants {} ; -- test if any char occurs
+ oper show : (P : Type) -> P -> Tok = variants {} ; -- convert param to string
+ oper read : (P : Type) -> Tok -> P = variants {} ; -- convert string to param
+ oper toStr : (L : Type) -> L -> Str = variants {} ; -- find the "first" string
+ oper mapStr : (L : Type) -> (Str -> Str) -> L -> L = variants {} ;
+ -- map all strings in a data structure; experimental ---
+
+} ;
+