Changeset View
Changeset View
Standalone View
Standalone View
swh/web/tests/resources/contents/code/extensions/test.flix
- This file was added.
/** | |||||
* An example of Flix for syntax highlighting. | |||||
*/ | |||||
// Here is a namespace. | |||||
namespace a.b.c { | |||||
// Here are some literals. | |||||
def b: Bool = true | |||||
def c: Char = 'a' | |||||
def f: Float = 1.23 | |||||
def i: Int = 42 | |||||
def s: Str = "string" | |||||
// Here are some relations. | |||||
rel LitStm(r: Str, c: Int) | |||||
rel AddStm(r: Str, x: Str, y: Str) | |||||
rel DivStm(r: Str, x: Str, y: Str) | |||||
// Here is a lattice. | |||||
lat LocalVar(k: Str, v: Constant) | |||||
// Here is an index. | |||||
index LitStm{{r}, {r, c}} | |||||
// Here is an enum. | |||||
enum Constant { | |||||
case Top, | |||||
case Cst(Int), | |||||
case Bot | |||||
} | |||||
// Here is a function. | |||||
def leq(e1: Constant, e2: Constant): Bool = match (e1, e2) with { | |||||
case (Constant.Bot, _) => true | |||||
case (Constant.Cst(n1), Constant.Cst(n2)) => n1 == n2 | |||||
case (_, Constant.Top) => true | |||||
case _ => false | |||||
} | |||||
// Here are some rules. | |||||
LocalVar(r, alpha(c)) :- LitStm(r, c). | |||||
LocalVar(r, sum(v1, v2)) :- AddStm(r, x, y), | |||||
LocalVar(x, v1), | |||||
LocalVar(y, v2). | |||||
} | |||||
No newline at end of file |