Warning, /frameworks/syntax-highlighting/autotests/folding/highlight.pony.fold is written in an unsupported language. File is not indexed.
0001 // Test file for Pony syntax highlighting, released under MIT License
0002
0003 primitive Red fun apply(): U32 => 0xFFFF0000
0004
0005 primitive Colours
0006 fun black(): U32 => 0xFF000000
0007 fun red(): U32 => 0xFFFF0000
0008
0009 primitive Black
0010 primitive Blue
0011
0012 type Colour is (Black | Blue )
0013
0014 primitive ColourList
0015 fun tag apply(): Array[Colour] =>
0016 [Black; Blue]
0017
0018 <beginfold id='1'>for</beginfold id='1'> colour in ColourList().values() do
0019 <endfold id='1'>end</endfold id='1'>
0020
0021 type EGLEvent is (U8, F32, F32)
0022 (var code, var x, var y) = @getEvent[EGLEvent]()
0023
0024 primitive _XDisplayHandle
0025 primitive _EGLDisplayHandle
0026
0027 let x_dpy = @XOpenDisplay[Pointer[_XDisplayHandle]](U32(0))
0028 <beginfold id='1'>if</beginfold id='1'> x_dpy.is_null() then
0029 env.out.print("XOpenDisplay failed")
0030 <endfold id='1'>end</endfold id='1'>
0031
0032 let e_dpy = @eglGetDisplay[Pointer[_EGLDisplayHandle]](x_dpy)
0033 <beginfold id='1'>if</beginfold id='1'> e_dpy.is_null() then
0034 env.out.print("eglGetDisplay failed")
0035 <endfold id='1'>end</endfold id='1'>
0036
0037 primitive _EGLConfigHandle
0038 let a = Array[U16](8)
0039 a.push(0x3040)
0040 a.push(0b01011)
0041 let config = Pointer[_EGLConfigHandle]
0042 <beginfold id='1'>if</beginfold id='1'> @eglChooseConfig[U32](e_dpy, a, config, U32(1), Pointer[U32]) == 0 then
0043 env.out.print("eglChooseConfig failed")
0044 <endfold id='1'>end</endfold id='1'>
0045
0046
0047 actor Main
0048 new create(env: Env) =>
0049 // The no of arguments
0050 env.out.print(env.args.size().string())
0051 <beginfold id='1'>for</beginfold id='1'> value in env.args.values() do
0052 env.out.print(value)
0053 <endfold id='1'>end</endfold id='1'>
0054 // Access the arguments the first one will always be the the appication name
0055 <beginfold id='1'>try</beginfold id='1'> env.out.print(env.args(0)?) <endfold id='1'>end</endfold id='1'>
0056
0057 actor Main
0058 new create(env: Env) =>
0059 var options = Options(env)
0060
0061 options
0062 .add("output", "o", StringArgument)
0063
0064 env.out.print(options.has_argument())
0065
0066 <beginfold id='1'>for</beginfold id='1'> option in options do
0067 <beginfold id='1'>match</beginfold id='1'> option
0068 | ("output", var arg: String) => _outputFileName = arg.string()
0069 | let err: ParseError =>
0070 err.report(env.out)
0071 env.out.print(
0072 """
0073 pony-embed [OPTIONS]
0074 --output name string output filename.
0075 """
0076 )
0077 <endfold id='1'>end</endfold id='1'>
0078 <endfold id='1'>end</endfold id='1'>
0079
0080 use "ponytest"
0081
0082 actor Main is TestList
0083 new create(env: Env) => PonyTest(env, this)
0084 new make() => None
0085
0086 fun tag tests(test: PonyTest) =>
0087 test(_TestAddition)
0088
0089 class iso _TestAddition is UnitTest
0090 """
0091 Adding 2 numbers
0092 """
0093 fun name(): String => "u32/add"
0094
0095 fun apply(h: TestHelper): TestResult =>
0096 h.expect_eq[U32](2 + 2, 4)
0097
0098 fun tag log(msg: String, verbose: Bool = false)
0099 be fail() =>
0100 be assert_failed(msg: String) =>
0101 fun tag assert_true(actual: Bool, msg: String = "") ?
0102 fun tag expect_true(actual: Bool, msg: String = ""): Bool
0103 fun tag expect_eq[A: (Equatable[A] #read & Stringable)]
0104 (expect: A, actual: A, msg: String = ""): Bool
0105 fun tag expect_eq[A: (Equatable[A] #unknown & Stringable)]
0106 (expect: A, actual: A, msg: String = ""): Bool
0107
0108 fun add(other: A): A
0109 fun sub(other: A): A
0110 fun mul(other: A): A
0111 fun div(other: A): A
0112 fun mod(other: A): A
0113 fun eq(other: A): Bool
0114 fun ne(other: A): Bool
0115 fun lt(other: A): Bool
0116 fun le(other: A): Bool
0117 fun ge(other: A): Bool
0118 fun gt(other: A): Bool
0119 fun shl(other: A): A
0120 fun shr(other: A): A
0121 fun op_and(other:A): A
0122 fun op_or(other: A): A
0123 fun op_xor(othr: A): A
0124
0125 class Test
0126 fun alpha() =>
0127 """
0128 """
0129
0130 let dice: Array[U32] = [1; 2; 3
0131 4
0132 5
0133 6
0134 ]
0135
0136 actor Main
0137 fun foo(n:U32): <beginfold id='2'>{</beginfold id='2'>ref(U32): U32<endfold id='2'>}</endfold id='2'> =>
0138 var s: Array[U32] = Array[U32].init(n, 1)
0139 <beginfold id='2'>{</beginfold id='2'>ref(i:U32)(s): U32 =>
0140 <beginfold id='1'>try</beginfold id='1'>
0141 s(0) = s(0) + i
0142 s(0)
0143 <endfold id='1'></endfold id='1'><beginfold id='1'>else</beginfold id='1'>
0144 0
0145 <endfold id='1'>end</endfold id='1'>
0146 <endfold id='2'>}</endfold id='2'>
0147
0148 new create(env:Env) =>
0149 var f = foo(5)
0150 env.out.print(f(10).string())
0151 env.out.print(f(20).string())
0152
0153 <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'>
0154 // single comment
0155
0156 class A
0157 class _A
0158 x'
0159 x''
0160 x'.string()
0161 '\uaaaa'
0162 '\Ubbbbbb'
0163 '\xcc'
0164 '\''
0165 '\n'
0166 "\uaaaaa"
0167 "\Ubbbbbbb"
0168 "\xccc"
0169 "\""
0170 "\n"
0171 34.4
0172 34.4e43
0173 43e4
0174 0x3040
0175 0xaF
0176 0b01
0177 3_43_4
0178 0x0_4
0179
0180 fun create(): U32 => 0
0181 fun iso create(): U32 => 0
0182 fun \\ abc \\ iso create(): U32 => 0
0183 class \\ packet, blah \\ iso Xyz
0184 <beginfold id='1'>if</beginfold id='1'> \\ likely \\ a then
0185 <endfold id='1'>end</endfold id='1'>
0186
0187 a.endnormal
0188
0189 print();print()
0190
0191 <beginfold id='3'>/*</beginfold id='3'> syntactically false: <endfold id='3'>*/</endfold id='3'>
0192
0193 class _aA
0194 class _a
0195 class a
0196 0b2332
0197 0b
0198 0x
0199 0xgf
0200 0f00
0201 3.
0202 .3
0203 3.e3
0204 3_
0205 3__43_4
0206 ''
0207 '\u'
0208 '\ua'
0209 '\uaaa'
0210 '\uaaaaa'
0211 '\uyyyy'
0212 "\u"
0213 "\ua"
0214 "\uaaa"
0215 "\uyyyy"
0216 a'a
0217
0218 class badType
0219 print();