// 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] for colour in ColourList().values() do end 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)) if x_dpy.is_null() then env.out.print("XOpenDisplay failed") end let e_dpy = @eglGetDisplay[Pointer[_EGLDisplayHandle]](x_dpy) if e_dpy.is_null() then env.out.print("eglGetDisplay failed") end primitive _EGLConfigHandle let a = Array[U16](8) a.push(0x3040) a.push(0b01011) let config = Pointer[_EGLConfigHandle] if @eglChooseConfig[U32](e_dpy, a, config, U32(1), Pointer[U32]) == 0 then env.out.print("eglChooseConfig failed") end actor Main new create(env: Env) => // The no of arguments env.out.print(env.args.size().string()) for value in env.args.values() do env.out.print(value) end // Access the arguments the first one will always be the the appication name try env.out.print(env.args(0)?) end actor Main new create(env: Env) => var options = Options(env) options .add("output", "o", StringArgument) env.out.print(options.has_argument()) for option in options do match 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. """ ) end end 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): {ref(U32): U32} => var s: Array[U32] = Array[U32].init(n, 1) {ref(i:U32)(s): U32 => try s(0) = s(0) + i s(0) else 0 end } new create(env:Env) => var f = foo(5) env.out.print(f(10).string()) env.out.print(f(20).string()) /* nested /* commentary */ */ // 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 if \\ likely \\ a then end a.endnormal print();print() /* syntactically false: */ 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();