mirror of
https://github.com/sharkdp/bat.git
synced 2025-09-01 10:52:24 +01:00
Add an OCaml file for syntax tests.
This commit is contained in:
committed by
David Peter
parent
14092fbadb
commit
203d0bd8ae
83
tests/syntax-tests/source/OCaml/syntax-test.ml
Normal file
83
tests/syntax-tests/source/OCaml/syntax-test.ml
Normal file
@@ -0,0 +1,83 @@
|
||||
let s = "hello world"
|
||||
|
||||
let n : int = 87
|
||||
|
||||
let id x = x
|
||||
|
||||
let add x y = x + y
|
||||
|
||||
let add' x y =
|
||||
let left = x in
|
||||
let right = y in
|
||||
x + y
|
||||
|
||||
let add'' : int -> int -> int = fun x -> fun y -> x + y
|
||||
|
||||
let unwrap_option default opt =
|
||||
match opt with
|
||||
| None -> default
|
||||
| Some v -> v
|
||||
|
||||
let string_of_bool = function true -> "true" | false -> "false"
|
||||
|
||||
let is_a c =
|
||||
if c = 'a' then true
|
||||
else false
|
||||
|
||||
let _ = Printf.printf "%s" "hello"
|
||||
let () = Printf.printf "%s\n" "world"
|
||||
|
||||
let x = ref 0
|
||||
let _ = x := 1
|
||||
|
||||
type my_bool = True | False
|
||||
|
||||
type shape = Circle of float | Square of float | Rectangle of (float * float)
|
||||
|
||||
type user = {
|
||||
login : string;
|
||||
password : string;
|
||||
}
|
||||
|
||||
type 'a my_ref = { mutable ref_value : 'a }
|
||||
|
||||
let (:=) r v = r.ref_value <- v
|
||||
|
||||
let (+) 2 2 = 5
|
||||
|
||||
exception Bad_value of string
|
||||
|
||||
let bad_value_error () = raise (Bad_value "your value is bad and you should feel bad")
|
||||
|
||||
let () =
|
||||
try bad_value_error ()
|
||||
with Bad_value _ -> ()
|
||||
|
||||
let () =
|
||||
try bad_value_error ()
|
||||
with
|
||||
| Bad_value _ -> ()
|
||||
| Not_found -> ()
|
||||
|
||||
module type FOO = sig
|
||||
val foo : 'a -> 'a
|
||||
end
|
||||
|
||||
module Foo : FOO = struct
|
||||
let foo x = x
|
||||
end
|
||||
|
||||
let greeter = object
|
||||
val greeting = "Hello"
|
||||
method greet name = Printf.sprintf "%s, %s!" greeting name
|
||||
end
|
||||
|
||||
let greeting = greeter#greet "world"
|
||||
|
||||
class greeter_factory greeting_text = object (self)
|
||||
val greeting = greeting_text
|
||||
method greet name = Printf.sprintf "%s, %s!" greeting name
|
||||
initializer Printf.printf "Objects will greet the user with \"%s\"\n" greeting
|
||||
end
|
||||
|
||||
let g = new greeter_factory "Hi"
|
Reference in New Issue
Block a user