220 lines
5.0 KiB
Plaintext
220 lines
5.0 KiB
Plaintext
// Test file for Pony syntax highlighting, released under MIT License
|
|
|
|
primitive Red fun apply(): U32 => 0xFFFF0000
|
|
|
|
primitive Colours
|
|
fun black(): U32 => 0xFF000000
|
|
fun red(): U32 => 0xFFFF0000
|
|
|
|
primitive Black
|
|
primitive Blue
|
|
|
|
type Colour is (Black | Blue )
|
|
|
|
primitive ColourList
|
|
fun tag apply(): Array[Colour] =>
|
|
[Black; Blue]
|
|
|
|
<beginfold id='1'>for</beginfold id='1'> colour in ColourList().values() do
|
|
<endfold id='1'>end</endfold id='1'>
|
|
|
|
type EGLEvent is (U8, F32, F32)
|
|
(var code, var x, var y) = @getEvent[EGLEvent]()
|
|
|
|
primitive _XDisplayHandle
|
|
primitive _EGLDisplayHandle
|
|
|
|
let x_dpy = @XOpenDisplay[Pointer[_XDisplayHandle]](U32(0))
|
|
<beginfold id='1'>if</beginfold id='1'> x_dpy.is_null() then
|
|
env.out.print("XOpenDisplay failed")
|
|
<endfold id='1'>end</endfold id='1'>
|
|
|
|
let e_dpy = @eglGetDisplay[Pointer[_EGLDisplayHandle]](x_dpy)
|
|
<beginfold id='1'>if</beginfold id='1'> e_dpy.is_null() then
|
|
env.out.print("eglGetDisplay failed")
|
|
<endfold id='1'>end</endfold id='1'>
|
|
|
|
primitive _EGLConfigHandle
|
|
let a = Array[U16](8)
|
|
a.push(0x3040)
|
|
a.push(0b01011)
|
|
let config = Pointer[_EGLConfigHandle]
|
|
<beginfold id='1'>if</beginfold id='1'> @eglChooseConfig[U32](e_dpy, a, config, U32(1), Pointer[U32]) == 0 then
|
|
env.out.print("eglChooseConfig failed")
|
|
<endfold id='1'>end</endfold id='1'>
|
|
|
|
|
|
actor Main
|
|
new create(env: Env) =>
|
|
// The no of arguments
|
|
env.out.print(env.args.size().string())
|
|
<beginfold id='1'>for</beginfold id='1'> value in env.args.values() do
|
|
env.out.print(value)
|
|
<endfold id='1'>end</endfold id='1'>
|
|
// Access the arguments the first one will always be the the appication name
|
|
<beginfold id='1'>try</beginfold id='1'> env.out.print(env.args(0)?) <endfold id='1'>end</endfold id='1'>
|
|
|
|
actor Main
|
|
new create(env: Env) =>
|
|
var options = Options(env)
|
|
|
|
options
|
|
.add("output", "o", StringArgument)
|
|
|
|
env.out.print(options.has_argument())
|
|
|
|
<beginfold id='1'>for</beginfold id='1'> option in options do
|
|
<beginfold id='1'>match</beginfold id='1'> option
|
|
| ("output", var arg: String) => _outputFileName = arg.string()
|
|
| let err: ParseError =>
|
|
err.report(env.out)
|
|
env.out.print(
|
|
"""
|
|
pony-embed [OPTIONS]
|
|
--output name string output filename.
|
|
"""
|
|
)
|
|
<endfold id='1'>end</endfold id='1'>
|
|
<endfold id='1'>end</endfold id='1'>
|
|
|
|
use "ponytest"
|
|
|
|
actor Main is TestList
|
|
new create(env: Env) => PonyTest(env, this)
|
|
new make() => None
|
|
|
|
fun tag tests(test: PonyTest) =>
|
|
test(_TestAddition)
|
|
|
|
class iso _TestAddition is UnitTest
|
|
"""
|
|
Adding 2 numbers
|
|
"""
|
|
fun name(): String => "u32/add"
|
|
|
|
fun apply(h: TestHelper): TestResult =>
|
|
h.expect_eq[U32](2 + 2, 4)
|
|
|
|
fun tag log(msg: String, verbose: Bool = false)
|
|
be fail() =>
|
|
be assert_failed(msg: String) =>
|
|
fun tag assert_true(actual: Bool, msg: String = "") ?
|
|
fun tag expect_true(actual: Bool, msg: String = ""): Bool
|
|
fun tag expect_eq[A: (Equatable[A] #read & Stringable)]
|
|
(expect: A, actual: A, msg: String = ""): Bool
|
|
fun tag expect_eq[A: (Equatable[A] #unknown & Stringable)]
|
|
(expect: A, actual: A, msg: String = ""): Bool
|
|
|
|
fun add(other: A): A
|
|
fun sub(other: A): A
|
|
fun mul(other: A): A
|
|
fun div(other: A): A
|
|
fun mod(other: A): A
|
|
fun eq(other: A): Bool
|
|
fun ne(other: A): Bool
|
|
fun lt(other: A): Bool
|
|
fun le(other: A): Bool
|
|
fun ge(other: A): Bool
|
|
fun gt(other: A): Bool
|
|
fun shl(other: A): A
|
|
fun shr(other: A): A
|
|
fun op_and(other:A): A
|
|
fun op_or(other: A): A
|
|
fun op_xor(othr: A): A
|
|
|
|
class Test
|
|
fun alpha() =>
|
|
"""
|
|
"""
|
|
|
|
let dice: Array[U32] = [1; 2; 3
|
|
4
|
|
5
|
|
6
|
|
]
|
|
|
|
actor Main
|
|
fun foo(n:U32): <beginfold id='2'>{</beginfold id='2'>ref(U32): U32<endfold id='2'>}</endfold id='2'> =>
|
|
var s: Array[U32] = Array[U32].init(n, 1)
|
|
<beginfold id='2'>{</beginfold id='2'>ref(i:U32)(s): U32 =>
|
|
<beginfold id='1'>try</beginfold id='1'>
|
|
s(0) = s(0) + i
|
|
s(0)
|
|
<endfold id='1'></endfold id='1'><beginfold id='1'>else</beginfold id='1'>
|
|
0
|
|
<endfold id='1'>end</endfold id='1'>
|
|
<endfold id='2'>}</endfold id='2'>
|
|
|
|
new create(env:Env) =>
|
|
var f = foo(5)
|
|
env.out.print(f(10).string())
|
|
env.out.print(f(20).string())
|
|
|
|
<beginfold id='3'>/*</beginfold id='3'> nested <beginfold id='3'>/*</beginfold id='3'> commentary <endfold id='3'>*/</endfold id='3'> <endfold id='3'>*/</endfold id='3'>
|
|
// single comment
|
|
|
|
class A
|
|
class _A
|
|
x'
|
|
x''
|
|
x'.string()
|
|
'\uaaaa'
|
|
'\Ubbbbbb'
|
|
'\xcc'
|
|
'\''
|
|
'\n'
|
|
"\uaaaaa"
|
|
"\Ubbbbbbb"
|
|
"\xccc"
|
|
"\""
|
|
"\n"
|
|
34.4
|
|
34.4e43
|
|
43e4
|
|
0x3040
|
|
0xaF
|
|
0b01
|
|
3_43_4
|
|
0x0_4
|
|
|
|
fun create(): U32 => 0
|
|
fun iso create(): U32 => 0
|
|
fun \\ abc \\ iso create(): U32 => 0
|
|
class \\ packet, blah \\ iso Xyz
|
|
<beginfold id='1'>if</beginfold id='1'> \\ likely \\ a then
|
|
<endfold id='1'>end</endfold id='1'>
|
|
|
|
a.endnormal
|
|
|
|
print();print()
|
|
|
|
<beginfold id='3'>/*</beginfold id='3'> syntactically false: <endfold id='3'>*/</endfold id='3'>
|
|
|
|
class _aA
|
|
class _a
|
|
class a
|
|
0b2332
|
|
0b
|
|
0x
|
|
0xgf
|
|
0f00
|
|
3.
|
|
.3
|
|
3.e3
|
|
3_
|
|
3__43_4
|
|
''
|
|
'\u'
|
|
'\ua'
|
|
'\uaaa'
|
|
'\uaaaaa'
|
|
'\uyyyy'
|
|
"\u"
|
|
"\ua"
|
|
"\uaaa"
|
|
"\uyyyy"
|
|
a'a
|
|
|
|
class badType
|
|
print();
|