YREA-SLS/SLS_Tests/cases.yaml

5081 lines
91 KiB
YAML

- name: Empty_Statement
code: ''
tokens: []
- name: Integer Default Decimal 0
code: '0'
tokens:
- type: i64
value: 0
operations:
- function: push
type: i64
value: 0
stack_final:
- type: i64
value: 0
- name: Integer Default Decimal -1
code: '-1'
tokens:
- type: i64
value: -1
operations:
- function: push
type: i64
value: -1
stack_final:
- type: i64
value: -1
- name: Integer Default Decimal 42
code: '42'
tokens:
- type: i64
value: 42
operations:
- function: push
type: i64
value: 42
stack_final:
- type: i64
value: 42
- name: Integer Default Decimal Leading Zeros
code: '00042'
tokens:
- type: i64
value: 42
operations:
- function: push
type: i64
value: 42
stack_final:
- type: i64
value: 42
- name: Integer Default Hex 0xFF
code: '0xFF'
tokens:
- type: i64
value: 255
operations:
- function: push
type: i64
value: 255
stack_final:
- type: i64
value: 255
- name: Integer Default Hex 0xdeadbeef
code: '0xdeadbeef'
tokens:
- type: i64
value: 3735928559
operations:
- function: push
type: i64
value: 3735928559
stack_final:
- type: i64
value: 3735928559
- name: Integer Default Hex Max
code: '0x7FFFFFFFFFFFFFFF'
tokens:
- type: i64
value: 9223372036854775807
operations:
- function: push
type: i64
value: 9223372036854775807
stack_final:
- type: i64
value: 9223372036854775807
- name: Integer Default Binary 0b1010
code: '0b1010'
tokens:
- type: i64
value: 10
operations:
- function: push
type: i64
value: 10
stack_final:
- type: i64
value: 10
- name: Integer Default Binary All Ones
code: '0b1111111111111111'
tokens:
- type: i64
value: 65535
operations:
- function: push
type: i64
value: 65535
stack_final:
- type: i64
value: 65535
- name: Integer Default Octal 0o755
code: 0o755
tokens:
- type: i64
value: 493
operations:
- function: push
type: i64
value: 493
stack_final:
- type: i64
value: 493
- name: Integer Default Octal Max Three Digits
code: 0o777
tokens:
- type: i64
value: 511
operations:
- function: push
type: i64
value: 511
stack_final:
- type: i64
value: 511
- name: Integer Default Decimal Max i64
code: '9223372036854775807'
tokens:
- type: i64
value: 9223372036854775807
operations:
- function: push
type: i64
value: 9223372036854775807
stack_final:
- type: i64
value: 9223372036854775807
- name: Integer Default Decimal Min i64
code: '-9223372036854775808'
tokens:
- type: i64
value: INT64_MIN
operations:
- function: push
type: i64
value: INT64_MIN
stack_final:
- type: i64
value: INT64_MIN
- name: Integer Default Decimal with Underscore
code: '1_000_000'
tokens:
- type: i64
value: 1000000
operations:
- function: push
type: i64
value: 1000000
stack_final:
- type: i64
value: 1000000
- name: Integer Default Underscore End
code: '42_'
tokens:
- type: i64
value: 42
operations:
- function: push
type: i64
value: 42
stack_final:
- type: i64
value: 42
- name: Integer Default Underscore Double
code: '4__2'
tokens:
- type: i64
value: 42
operations:
- function: push
type: i64
value: 42
stack_final:
- type: i64
value: 42
- name: Integer Default Whitespace
code: ' 42 '
tokens:
- type: i64
value: 42
operations:
- function: push
type: i64
value: 42
stack_final:
- type: i64
value: 42
- name: Integer Default Hex Zero
code: '0x0'
tokens:
- type: i64
value: 0
operations:
- function: push
type: i64
value: 0
stack_final:
- type: i64
value: 0
- name: Integer Default Binary Zero
code: '0b0'
tokens:
- type: i64
value: 0
operations:
- function: push
type: i64
value: 0
stack_final:
- type: i64
value: 0
- name: Integer Default Octal Zero
code: 0o0
tokens:
- type: i64
value: 0
operations:
- function: push
type: i64
value: 0
stack_final:
- type: i64
value: 0
- name: Integer Default Decimal with Commas Invalid
code: 1,000,000
tokens:
- type: error
value: 'Invalid decimal literal: unexpected '','' in decimal integer.'
- name: Integer Default Invalid Characters
code: 12a3
tokens:
- type: error
value: 'Invalid decimal literal: unexpected ''a'' in decimal integer.'
- name: Integer Default Invalid Prefix
code: 0b2
tokens:
- type: error
value: 'Invalid binary literal: unexpected ''2'' in binary integer.'
- name: Integer i8 Decimal Positive
code: 42:i8
tokens:
- type: i8
value: 42
operations:
- function: push
type: i8
value: 42
stack_final:
- type: i8
value: 42
- name: Integer i8 Zero
code: 0:i8
tokens:
- type: i8
value: 0
operations:
- function: push
type: i8
value: 0
stack_final:
- type: i8
value: 0
- name: Integer i8 Decimal Negative
code: -100:i8
tokens:
- type: i8
value: -100
operations:
- function: push
type: i8
value: -100
stack_final:
- type: i8
value: -100
- name: Integer i8 Hex
code: 0x7F:i8
tokens:
- type: i8
value: 127
operations:
- function: push
type: i8
value: 127
stack_final:
- type: i8
value: 127
- name: Integer i8 Binary
code: 0b1111:i8
tokens:
- type: i8
value: 15
operations:
- function: push
type: i8
value: 15
stack_final:
- type: i8
value: 15
- name: Integer i8 Octal
code: 0o77:i8
tokens:
- type: i8
value: 63
operations:
- function: push
type: i8
value: 63
stack_final:
- type: i8
value: 63
- name: Integer i8 Max Value
code: 127:i8
tokens:
- type: i8
value: 127
operations:
- function: push
type: i8
value: 127
stack_final:
- type: i8
value: 127
- name: Integer i8 Min Value
code: -128:i8
tokens:
- type: i8
value: -128
operations:
- function: push
type: i8
value: -128
stack_final:
- type: i8
value: -128
- name: Integer i8 Overflow
code: 128:i8
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i8.'
- name: Integer i8 Underflow
code: -129:i8
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i8.'
- name: Integer i16 Decimal Positive
code: 42:i16
tokens:
- type: i16
value: 42
operations:
- function: push
type: i16
value: 42
stack_final:
- type: i16
value: 42
- name: Integer i16 Zero
code: 0:i16
tokens:
- type: i16
value: 0
operations:
- function: push
type: i16
value: 0
stack_final:
- type: i16
value: 0
- name: Integer i16 Decimal Negative
code: -100:i16
tokens:
- type: i16
value: -100
operations:
- function: push
type: i16
value: -100
stack_final:
- type: i16
value: -100
- name: Integer i16 Hex
code: 0xFF:i16
tokens:
- type: i16
value: 255
operations:
- function: push
type: i16
value: 255
stack_final:
- type: i16
value: 255
- name: Integer i16 Binary
code: 0b1111:i16
tokens:
- type: i16
value: 15
operations:
- function: push
type: i16
value: 15
stack_final:
- type: i16
value: 15
- name: Integer i16 Octal
code: 0o77:i16
tokens:
- type: i16
value: 63
operations:
- function: push
type: i16
value: 63
stack_final:
- type: i16
value: 63
- name: Integer i16 Max Value
code: 32767:i16
tokens:
- type: i16
value: 32767
operations:
- function: push
type: i16
value: 32767
stack_final:
- type: i16
value: 32767
- name: Integer i16 Min Value
code: -32768:i16
tokens:
- type: i16
value: -32768
operations:
- function: push
type: i16
value: -32768
stack_final:
- type: i16
value: -32768
- name: Integer i16 Overflow
code: 32768:i16
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i16.'
- name: Integer i16 Underflow
code: -32769:i16
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i16.'
- name: Integer i32 Decimal Positive
code: 42:i32
tokens:
- type: i32
value: 42
operations:
- function: push
type: i32
value: 42
stack_final:
- type: i32
value: 42
- name: Integer i32 Zero
code: 0:i32
tokens:
- type: i32
value: 0
operations:
- function: push
type: i32
value: 0
stack_final:
- type: i32
value: 0
- name: Integer i32 Decimal Negative
code: -100:i32
tokens:
- type: i32
value: -100
operations:
- function: push
type: i32
value: -100
stack_final:
- type: i32
value: -100
- name: Integer i32 Hex
code: 0xFF:i32
tokens:
- type: i32
value: 255
operations:
- function: push
type: i32
value: 255
stack_final:
- type: i32
value: 255
- name: Integer i32 Binary
code: 0b1111:i32
tokens:
- type: i32
value: 15
operations:
- function: push
type: i32
value: 15
stack_final:
- type: i32
value: 15
- name: Integer i32 Octal
code: 0o77:i32
tokens:
- type: i32
value: 63
operations:
- function: push
type: i32
value: 63
stack_final:
- type: i32
value: 63
- name: Integer i32 Max Value
code: 2147483647:i32
tokens:
- type: i32
value: 2147483647
operations:
- function: push
type: i32
value: 2147483647
stack_final:
- type: i32
value: 2147483647
- name: Integer i32 Min Value
code: -2147483648:i32
tokens:
- type: i32
value: -2147483648
operations:
- function: push
type: i32
value: -2147483648
stack_final:
- type: i32
value: -2147483648
- name: Integer i32 Overflow
code: 2147483648:i32
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i32.'
- name: Integer i32 Underflow
code: -2147483649:i32
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i32.'
- name: Integer i32 With Underscores
code: 1_000_000:i32
tokens:
- type: i32
value: 1000000
operations:
- function: push
type: i32
value: 1000000
stack_final:
- type: i32
value: 1000000
- name: Integer i64 Decimal Positive
code: 42:i64
tokens:
- type: i64
value: 42
operations:
- function: push
type: i64
value: 42
stack_final:
- type: i64
value: 42
- name: Integer i64 Zero
code: 0:i64
tokens:
- type: i64
value: 0
operations:
- function: push
type: i64
value: 0
stack_final:
- type: i64
value: 0
- name: Integer i64 Decimal Negative
code: -100:i64
tokens:
- type: i64
value: -100
operations:
- function: push
type: i64
value: -100
stack_final:
- type: i64
value: -100
- name: Integer i64 Hex
code: 0xFF:i64
tokens:
- type: i64
value: 255
operations:
- function: push
type: i64
value: 255
stack_final:
- type: i64
value: 255
- name: Integer i64 Binary
code: 0b1111:i64
tokens:
- type: i64
value: 15
operations:
- function: push
type: i64
value: 15
stack_final:
- type: i64
value: 15
- name: Integer i64 Octal
code: 0o77:i64
tokens:
- type: i64
value: 63
operations:
- function: push
type: i64
value: 63
stack_final:
- type: i64
value: 63
- name: Integer i64 Max Value
code: 9223372036854775807:i64
tokens:
- type: i64
value: 9223372036854775807
operations:
- function: push
type: i64
value: 9223372036854775807
stack_final:
- type: i64
value: 9223372036854775807
- name: Integer i64 Min Value
code: -9223372036854775808:i64
tokens:
- type: i64
value: INT64_MIN
operations:
- function: push
type: i64
value: INT64_MIN
stack_final:
- type: i64
value: INT64_MIN
- name: Integer i64 Overflow
code: 9223372036854775808:i64
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i64.'
- name: Integer i64 Underflow
code: -9223372036854775809:i64
tokens:
- type: error
value: 'Integer overflow: value exceeds range for i64.'
- name: Integer i64 With Underscores
code: 1_000_000:i64
tokens:
- type: i64
value: 1000000
operations:
- function: push
type: i64
value: 1000000
stack_final:
- type: i64
value: 1000000
- name: Integer u8 Decimal Positive
code: 42:u8
tokens:
- type: u8
value: 42
operations:
- function: push
type: u8
value: 42
stack_final:
- type: u8
value: 42
- name: Integer u8 Zero
code: 0:u8
tokens:
- type: u8
value: 0
operations:
- function: push
type: u8
value: 0
stack_final:
- type: u8
value: 0
- name: Integer u8 Hex
code: 0xFF:u8
tokens:
- type: u8
value: 255
operations:
- function: push
type: u8
value: 255
stack_final:
- type: u8
value: 255
- name: Integer u8 Binary
code: 0b1111:u8
tokens:
- type: u8
value: 15
operations:
- function: push
type: u8
value: 15
stack_final:
- type: u8
value: 15
- name: Integer u8 Octal
code: 0o77:u8
tokens:
- type: u8
value: 63
operations:
- function: push
type: u8
value: 63
stack_final:
- type: u8
value: 63
- name: Integer u8 Max Value
code: 255:u8
tokens:
- type: u8
value: 255
operations:
- function: push
type: u8
value: 255
stack_final:
- type: u8
value: 255
- name: Integer u8 Min Value
code: 0:u8
tokens:
- type: u8
value: 0
operations:
- function: push
type: u8
value: 0
stack_final:
- type: u8
value: 0
- name: Integer u8 Overflow
code: 256:u8
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u8.'
- name: Integer u8 Underflow
code: -1:u8
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u8.'
- name: Integer u16 Decimal Positive
code: 42:u16
tokens:
- type: u16
value: 42
operations:
- function: push
type: u16
value: 42
stack_final:
- type: u16
value: 42
- name: Integer u16 Zero
code: 0:u16
tokens:
- type: u16
value: 0
operations:
- function: push
type: u16
value: 0
stack_final:
- type: u16
value: 0
- name: Integer u16 Hex
code: 0xFF:u16
tokens:
- type: u16
value: 255
operations:
- function: push
type: u16
value: 255
stack_final:
- type: u16
value: 255
- name: Integer u16 Binary
code: 0b1111:u16
tokens:
- type: u16
value: 15
operations:
- function: push
type: u16
value: 15
stack_final:
- type: u16
value: 15
- name: Integer u16 Octal
code: 0o77:u16
tokens:
- type: u16
value: 63
operations:
- function: push
type: u16
value: 63
stack_final:
- type: u16
value: 63
- name: Integer u16 Max Value
code: 65535:u16
tokens:
- type: u16
value: 65535
operations:
- function: push
type: u16
value: 65535
stack_final:
- type: u16
value: 65535
- name: Integer u16 Min Value
code: 0:u16
tokens:
- type: u16
value: 0
operations:
- function: push
type: u16
value: 0
stack_final:
- type: u16
value: 0
- name: Integer u16 Overflow
code: 65536:u16
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u16.'
- name: Integer u16 Underflow
code: -1:u16
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u16.'
- name: Integer u32 Decimal Positive
code: 42:u32
tokens:
- type: u32
value: 42
operations:
- function: push
type: u32
value: 42
stack_final:
- type: u32
value: 42
- name: Integer u32 Zero
code: 0:u32
tokens:
- type: u32
value: 0
operations:
- function: push
type: u32
value: 0
stack_final:
- type: u32
value: 0
- name: Integer u32 Hex
code: 0xFF:u32
tokens:
- type: u32
value: 255
operations:
- function: push
type: u32
value: 255
stack_final:
- type: u32
value: 255
- name: Integer u32 Binary
code: 0b1111:u32
tokens:
- type: u32
value: 15
operations:
- function: push
type: u32
value: 15
stack_final:
- type: u32
value: 15
- name: Integer u32 Octal
code: 0o77:u32
tokens:
- type: u32
value: 63
operations:
- function: push
type: u32
value: 63
stack_final:
- type: u32
value: 63
- name: Integer u32 Max Value
code: 4294967295:u32
tokens:
- type: u32
value: 4294967295
operations:
- function: push
type: u32
value: 4294967295
stack_final:
- type: u32
value: 4294967295
- name: Integer u32 Min Value
code: 0:u32
tokens:
- type: u32
value: 0
operations:
- function: push
type: u32
value: 0
stack_final:
- type: u32
value: 0
- name: Integer u32 Overflow
code: 4294967296:u32
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u32.'
- name: Integer u32 Underflow
code: -1:u32
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u32.'
- name: Integer u32 With Underscores
code: 1_000_000:u32
tokens:
- type: u32
value: 1000000
operations:
- function: push
type: u32
value: 1000000
stack_final:
- type: u32
value: 1000000
- name: Integer u64 Decimal Positive
code: 42:u64
tokens:
- type: u64
value: 42
operations:
- function: push
type: u64
value: 42
stack_final:
- type: u64
value: 42
- name: Integer u64 Zero
code: 0:u64
tokens:
- type: u64
value: 0
operations:
- function: push
type: u64
value: 0
stack_final:
- type: u64
value: 0
- name: Integer u64 Hex
code: 0xFF:u64
tokens:
- type: u64
value: 255
operations:
- function: push
type: u64
value: 255
stack_final:
- type: u64
value: 255
- name: Integer u64 Binary
code: 0b1111:u64
tokens:
- type: u64
value: 15
operations:
- function: push
type: u64
value: 15
stack_final:
- type: u64
value: 15
- name: Integer u64 Octal
code: 0o77:u64
tokens:
- type: u64
value: 63
operations:
- function: push
type: u64
value: 63
stack_final:
- type: u64
value: 63
- name: Integer u64 Max Value
code: 18446744073709551615:u64
tokens:
- type: u64
value: UINT64_MAX
operations:
- function: push
type: u64
value: UINT64_MAX
stack_final:
- type: u64
value: UINT64_MAX
- name: Integer u64 Min Value
code: 0:u64
tokens:
- type: u64
value: 0
operations:
- function: push
type: u64
value: 0
stack_final:
- type: u64
value: 0
- name: Integer u64 Overflow
code: 18446744073709551616:u64
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u64.'
- name: Integer u64 Underflow
code: -1:u64
tokens:
- type: error
value: 'Integer overflow: value exceeds range for u64.'
- name: Integer u64 With Underscores
code: 1_000_000:u64
tokens:
- type: u64
value: 1000000
operations:
- function: push
type: u64
value: 1000000
stack_final:
- type: u64
value: 1000000
- name: Integer i8 Hex Max
code: 0x7F:i8
tokens:
- type: i8
value: 127
operations:
- function: push
type: i8
value: 127
stack_final:
- type: i8
value: 127
- name: Integer i8 Binary Max
code: 0b01111111:i8
tokens:
- type: i8
value: 127
operations:
- function: push
type: i8
value: 127
stack_final:
- type: i8
value: 127
- name: Integer i8 Octal Max
code: 0o177:i8
tokens:
- type: i8
value: 127
operations:
- function: push
type: i8
value: 127
stack_final:
- type: i8
value: 127
- name: Integer i8 Negative Hex
code: -0x80:i8
tokens:
- type: i8
value: -128
operations:
- function: push
type: i8
value: -128
stack_final:
- type: i8
value: -128
- name: Integer u8 Hex Max
code: 0xFF:u8
tokens:
- type: u8
value: 255
operations:
- function: push
type: u8
value: 255
stack_final:
- type: u8
value: 255
- name: Integer u8 Binary Max
code: 0b11111111:u8
tokens:
- type: u8
value: 255
operations:
- function: push
type: u8
value: 255
stack_final:
- type: u8
value: 255
- name: Integer u8 Octal Max
code: 0o377:u8
tokens:
- type: u8
value: 255
operations:
- function: push
type: u8
value: 255
stack_final:
- type: u8
value: 255
- name: Integer i16 Hex Sample
code: 0x1234:i16
tokens:
- type: i16
value: 4660
operations:
- function: push
type: i16
value: 4660
stack_final:
- type: i16
value: 4660
- name: Integer i16 Binary Sample
code: 0b1111111100000000:i16
tokens:
- type: i16
value: -256
operations:
- function: push
type: i16
value: -256
stack_final:
- type: i16
value: -256
- name: Integer i16 Octal Sample
code: 0o1234:i16
tokens:
- type: i16
value: 668
operations:
- function: push
type: i16
value: 668
stack_final:
- type: i16
value: 668
- name: Integer u16 Hex Max
code: 0xFFFF:u16
tokens:
- type: u16
value: 65535
operations:
- function: push
type: u16
value: 65535
stack_final:
- type: u16
value: 65535
- name: Integer u16 Binary Max
code: 0b1111111111111111:u16
tokens:
- type: u16
value: 65535
operations:
- function: push
type: u16
value: 65535
stack_final:
- type: u16
value: 65535
- name: Integer u16 Octal Max
code: 0o177777:u16
tokens:
- type: u16
value: 65535
operations:
- function: push
type: u16
value: 65535
stack_final:
- type: u16
value: 65535
- name: Integer u16 Decimal Mid
code: 50000:u16
tokens:
- type: u16
value: 50000
operations:
- function: push
type: u16
value: 50000
stack_final:
- type: u16
value: 50000
- name: Integer i32 Hex Sample
code: 0xABCD:i32
tokens:
- type: i32
value: 43981
operations:
- function: push
type: i32
value: 43981
stack_final:
- type: i32
value: 43981
- name: Integer i32 Binary Sample
code: 0b11110000:i32
tokens:
- type: i32
value: 240
operations:
- function: push
type: i32
value: 240
stack_final:
- type: i32
value: 240
- name: Integer u32 Hex Max
code: 0xFFFFFFFF:u32
tokens:
- type: u32
value: 4294967295
operations:
- function: push
type: u32
value: 4294967295
stack_final:
- type: u32
value: 4294967295
- name: Integer u32 Binary Sample
code: 0b11111111000000001111111100000000:u32
tokens:
- type: u32
value: 4278255360
operations:
- function: push
type: u32
value: 4278255360
stack_final:
- type: u32
value: 4278255360
- name: Integer u32 Octal Max
code: 0o37777777777:u32
tokens:
- type: u32
value: 4294967295
operations:
- function: push
type: u32
value: 4294967295
stack_final:
- type: u32
value: 4294967295
- name: Integer u32 Decimal Mid
code: 1000000:u32
tokens:
- type: u32
value: 1000000
operations:
- function: push
type: u32
value: 1000000
stack_final:
- type: u32
value: 1000000
- name: Integer i64 Decimal Positive 42
code: 42:i64
tokens:
- type: i64
value: 42
operations:
- function: push
type: i64
value: 42
stack_final:
- type: i64
value: 42
- name: Integer i64 Hex 0xFF
code: 0xFF:i64
tokens:
- type: i64
value: 255
operations:
- function: push
type: i64
value: 255
stack_final:
- type: i64
value: 255
- name: Integer i64 Binary 0b1010
code: 0b1010:i64
tokens:
- type: i64
value: 10
operations:
- function: push
type: i64
value: 10
stack_final:
- type: i64
value: 10
- name: Integer i64 Octal 0o755
code: 0o755:i64
tokens:
- type: i64
value: 493
operations:
- function: push
type: i64
value: 493
stack_final:
- type: i64
value: 493
- name: Integer u64 Hex Max
code: 0xFFFFFFFFFFFFFFFF:u64
tokens:
- type: u64
value: UINT64_MAX
operations:
- function: push
type: u64
value: UINT64_MAX
stack_final:
- type: u64
value: UINT64_MAX
- name: Integer u64 Binary Sample
code: 0b1010101010101010:u64
tokens:
- type: u64
value: 43690
operations:
- function: push
type: u64
value: 43690
stack_final:
- type: u64
value: 43690
- name: Integer u64 Octal Sample
code: 0o7777:u64
tokens:
- type: u64
value: 4095
operations:
- function: push
type: u64
value: 4095
stack_final:
- type: u64
value: 4095
- name: Integer u64 Decimal
code: 42:u64
tokens:
- type: u64
value: 42
operations:
- function: push
type: u64
value: 42
stack_final:
- type: u64
value: 42
- name: Integer Hex With Underscores
code: 0xDEAD_BEEF:i64
tokens:
- type: i64
value: 3735928559
operations:
- function: push
type: i64
value: 3735928559
stack_final:
- type: i64
value: 3735928559
- name: Integer Binary With Underscores
code: 0b1111_0000_1010_0101:i32
tokens:
- type: i32
value: 61605
operations:
- function: push
type: i32
value: 61605
stack_final:
- type: i32
value: 61605
- name: Integer Octal With Underscores
code: 0o7_7_7:i16
tokens:
- type: i16
value: 511
operations:
- function: push
type: i16
value: 511
stack_final:
- type: i16
value: 511
- name: Float Default Simple
code: '3.14'
tokens:
- type: f64
value: 3.14
operations:
- function: push
type: f64
value: 3.14
stack_final:
- type: f64
value: 3.14
- name: Float Default Zero
code: '0.0'
tokens:
- type: f64
value: 0.0
operations:
- function: push
type: f64
value: 0.0
stack_final:
- type: f64
value: 0.0
- name: Float Default Negative
code: '-2.5'
tokens:
- type: f64
value: -2.5
operations:
- function: push
type: f64
value: -2.5
stack_final:
- type: f64
value: -2.5
- name: Float Default One
code: '1.0'
tokens:
- type: f64
value: 1.0
operations:
- function: push
type: f64
value: 1.0
stack_final:
- type: f64
value: 1.0
- name: Float f32 Simple
code: 3.14:f32
tokens:
- type: f32
value: 3.14
operations:
- function: push
type: f32
value: 3.14
stack_final:
- type: f32
value: 3.14
- name: Float f64 Simple
code: 2.718:f64
tokens:
- type: f64
value: 2.718
operations:
- function: push
type: f64
value: 2.718
stack_final:
- type: f64
value: 2.718
- name: Float Default Leading Zeros
code: '00042.5'
tokens:
- type: f64
value: 42.5
operations:
- function: push
type: f64
value: 42.5
stack_final:
- type: f64
value: 42.5
- name: Float Default Leading Zero Decimal
code: '0.5'
tokens:
- type: f64
value: 0.5
operations:
- function: push
type: f64
value: 0.5
stack_final:
- type: f64
value: 0.5
- name: Float Default Trailing Zeros
code: '3.1400'
tokens:
- type: f64
value: 3.14
operations:
- function: push
type: f64
value: 3.14
stack_final:
- type: f64
value: 3.14
- name: Float Default No Leading Digit
code: '.5'
tokens:
- type: f64
value: 0.5
operations:
- function: push
type: f64
value: 0.5
stack_final:
- type: f64
value: 0.5
- name: Float Default No Leading Digit Negative
code: -.25
tokens:
- type: f64
value: -0.25
operations:
- function: push
type: f64
value: -0.25
stack_final:
- type: f64
value: -0.25
- name: Float Default No Trailing Digits
code: '42.'
tokens:
- type: f64
value: 42.0
operations:
- function: push
type: f64
value: 42.0
stack_final:
- type: f64
value: 42.0
- name: Float Default No Trailing Digits Negative
code: '-7.'
tokens:
- type: f64
value: -7.0
operations:
- function: push
type: f64
value: -7.0
stack_final:
- type: f64
value: -7.0
- name: Float Default Very Small
code: '0.000001'
tokens:
- type: f64
value: 1.0e-06
operations:
- function: push
type: f64
value: 1.0e-06
stack_final:
- type: f64
value: 1.0e-06
- name: Float Default Very Large
code: '1000000.0'
tokens:
- type: f64
value: 1000000.0
operations:
- function: push
type: f64
value: 1000000.0
stack_final:
- type: f64
value: 1000000.0
- name: Float Default Underscore Integer Part
code: '1_000_000.5'
tokens:
- type: f64
value: 1000000.5
operations:
- function: push
type: f64
value: 1000000.5
stack_final:
- type: f64
value: 1000000.5
- name: Float Default Underscore Decimal Part
code: '3.141_592_653'
tokens:
- type: f64
value: 3.141592653
operations:
- function: push
type: f64
value: 3.141592653
stack_final:
- type: f64
value: 3.141592653
- name: Float Default Underscore Both Parts
code: '1_234.567_89'
tokens:
- type: f64
value: 1234.56789
operations:
- function: push
type: f64
value: 1234.56789
stack_final:
- type: f64
value: 1234.56789
- name: Float Default Underscore Trailing
code: '42.5_'
tokens:
- type: f64
value: 42.5
operations:
- function: push
type: f64
value: 42.5
stack_final:
- type: f64
value: 42.5
- name: Float Default Underscore Double
code: '4__2.5'
tokens:
- type: f64
value: 42.5
operations:
- function: push
type: f64
value: 42.5
stack_final:
- type: f64
value: 42.5
- name: Float f32 With Underscores
code: 1_234.567_89:f32
tokens:
- type: f32
value: 1234.56789
operations:
- function: push
type: f32
value: 1234.56789
stack_final:
- type: f32
value: 1234.56789
- name: Float f32 Precision Limit
code: 1.2345678:f32
tokens:
- type: f32
value: 1.2345678
operations:
- function: push
type: f32
value: 1.2345678
stack_final:
- type: f32
value: 1.2345678
- name: Float f32 High Precision
code: 3.141592653589793:f32
tokens:
- type: f32
value: 3.141592653589793
operations:
- function: push
type: f32
value: 3.141592653589793
stack_final:
- type: f32
value: 3.141592653589793
- name: Float f64 Precision Limit
code: 1.234567890123456:f64
tokens:
- type: f64
value: 1.234567890123456
operations:
- function: push
type: f64
value: 1.234567890123456
stack_final:
- type: f64
value: 1.234567890123456
- name: Float f64 High Precision
code: 3.141592653589793238:f64
tokens:
- type: f64
value: 3.141592653589793
operations:
- function: push
type: f64
value: 3.141592653589793
stack_final:
- type: f64
value: 3.141592653589793
- name: Float f64 Close Numbers 1
code: 1.0000000000000001:f64
tokens:
- type: f64
value: 1.0
operations:
- function: push
type: f64
value: 1.0
stack_final:
- type: f64
value: 1.0
- name: Float f64 Close Numbers 2
code: 1.0000000000000002:f64
tokens:
- type: f64
value: 1.0000000000000002
operations:
- function: push
type: f64
value: 1.0000000000000002
stack_final:
- type: f64
value: 1.0000000000000002
- name: Float Invalid Multiple Decimal Points
code: 3.14.159
tokens:
- type: error
value: 'Invalid float literal: unexpected ''.'' in float.'
- name: Float Invalid Characters
code: 3.1a4
tokens:
- type: error
value: 'Invalid float literal: unexpected ''a'' in float.'
- name: Float Invalid Type Annotation
code: 3.14:i32
tokens:
- type: error
value: 'Invalid float type: must be of type ''f64'' or ''f32''.'
- name: Float Invalid Type Name
code: 3.14:f16
tokens:
- type: error
value: 'Invalid float type: must be of type ''f64'' or ''f32''.'
- name: Float Invalid Comma Separator
code: 1,234.56
tokens:
- type: error
value: 'Invalid decimal literal: unexpected '','' in decimal integer.'
- name: Float Default Leading Whitespace
code: ' 3.14'
tokens:
- type: f64
value: 3.14
operations:
- function: push
type: f64
value: 3.14
stack_final:
- type: f64
value: 3.14
- name: Float Default Trailing Whitespace
code: '3.14 '
tokens:
- type: f64
value: 3.14
operations:
- function: push
type: f64
value: 3.14
stack_final:
- type: f64
value: 3.14
- name: Float Default Both Whitespace
code: ' 3.14 '
tokens:
- type: f64
value: 3.14
operations:
- function: push
type: f64
value: 3.14
stack_final:
- type: f64
value: 3.14
- name: Float f32 With Whitespace
code: ' 2.718:f32 '
tokens:
- type: f32
value: 2.718
operations:
- function: push
type: f32
value: 2.718
stack_final:
- type: f32
value: 2.718
- name: Float Default Pi Approximate
code: '3.141592653589793'
tokens:
- type: f64
value: 3.141592653589793
operations:
- function: push
type: f64
value: 3.141592653589793
stack_final:
- type: f64
value: 3.141592653589793
- name: Float f32 Pi Approximate
code: 3.1415927:f32
tokens:
- type: f32
value: 3.1415927
operations:
- function: push
type: f32
value: 3.1415927
stack_final:
- type: f32
value: 3.1415927
- name: Float Default Euler Approximate
code: '2.718281828459045'
tokens:
- type: f64
value: 2.718281828459045
operations:
- function: push
type: f64
value: 2.718281828459045
stack_final:
- type: f64
value: 2.718281828459045
- name: Float f32 Euler Approximate
code: 2.7182817:f32
tokens:
- type: f32
value: 2.7182817
operations:
- function: push
type: f32
value: 2.7182817
stack_final:
- type: f32
value: 2.7182817
- name: Float Default Golden Ratio
code: '1.618033988749895'
tokens:
- type: f64
value: 1.618033988749895
operations:
- function: push
type: f64
value: 1.618033988749895
stack_final:
- type: f64
value: 1.618033988749895
- name: Float Default Sqrt2
code: '1.4142135623730951'
tokens:
- type: f64
value: 1.4142135623730951
operations:
- function: push
type: f64
value: 1.4142135623730951
stack_final:
- type: f64
value: 1.4142135623730951
- name: Float Default Positive Zero
code: '0.0'
tokens:
- type: f64
value: 0.0
operations:
- function: push
type: f64
value: 0.0
stack_final:
- type: f64
value: 0.0
- name: Float Default Negative Zero
code: '-0.0'
tokens:
- type: f64
value: -0.0
operations:
- function: push
type: f64
value: -0.0
stack_final:
- type: f64
value: -0.0
- name: Float f32 Positive Zero
code: 0.0:f32
tokens:
- type: f32
value: 0.0
operations:
- function: push
type: f32
value: 0.0
stack_final:
- type: f32
value: 0.0
- name: Float f32 Negative Zero
code: -0.0:f32
tokens:
- type: f32
value: -0.0
operations:
- function: push
type: f32
value: -0.0
stack_final:
- type: f32
value: -0.0
- name: Char Simple Letter A
code: '''A'''
tokens:
- type: char
value: A
operations:
- function: push
type: char
value: A
stack_final:
- type: char
value: A
- name: Char Simple Letter a
code: '''a'''
tokens:
- type: char
value: a
operations:
- function: push
type: char
value: a
stack_final:
- type: char
value: a
- name: Char Simple Letter Z
code: '''Z'''
tokens:
- type: char
value: Z
operations:
- function: push
type: char
value: Z
stack_final:
- type: char
value: Z
- name: Char Simple Letter z
code: '''z'''
tokens:
- type: char
value: z
operations:
- function: push
type: char
value: z
stack_final:
- type: char
value: z
- name: Char Digit 0
code: '''0'''
tokens:
- type: char
value: '0'
operations:
- function: push
type: char
value: '0'
stack_final:
- type: char
value: '0'
- name: Char Digit 5
code: '''5'''
tokens:
- type: char
value: '5'
operations:
- function: push
type: char
value: '5'
stack_final:
- type: char
value: '5'
- name: Char Digit 9
code: '''9'''
tokens:
- type: char
value: '9'
operations:
- function: push
type: char
value: '9'
stack_final:
- type: char
value: '9'
- name: Char Space
code: ''' '''
tokens:
- type: char
value: ' '
operations:
- function: push
type: char
value: ' '
stack_final:
- type: char
value: ' '
- name: Char Exclamation
code: '''!'''
tokens:
- type: char
value: '!'
operations:
- function: push
type: char
value: '!'
stack_final:
- type: char
value: '!'
- name: Char Question Mark
code: '''?'''
tokens:
- type: char
value: '?'
operations:
- function: push
type: char
value: '?'
stack_final:
- type: char
value: '?'
- name: Char Period
code: '''.'''
tokens:
- type: char
value: .
operations:
- function: push
type: char
value: .
stack_final:
- type: char
value: .
- name: Char Comma
code: ''','''
tokens:
- type: char
value: ','
operations:
- function: push
type: char
value: ','
stack_final:
- type: char
value: ','
- name: Char Semicolon
code: ''';'''
tokens:
- type: char
value: ;
operations:
- function: push
type: char
value: ;
stack_final:
- type: char
value: ;
- name: Char Colon
code: ''':'''
tokens:
- type: char
value: ':'
operations:
- function: push
type: char
value: ':'
stack_final:
- type: char
value: ':'
- name: Char Plus
code: '''+'''
tokens:
- type: char
value: +
operations:
- function: push
type: char
value: +
stack_final:
- type: char
value: +
- name: Char Minus
code: '''-'''
tokens:
- type: char
value: '-'
operations:
- function: push
type: char
value: '-'
stack_final:
- type: char
value: '-'
- name: Char Asterisk
code: '''*'''
tokens:
- type: char
value: '*'
operations:
- function: push
type: char
value: '*'
stack_final:
- type: char
value: '*'
- name: Char Slash
code: '''/'''
tokens:
- type: char
value: /
operations:
- function: push
type: char
value: /
stack_final:
- type: char
value: /
- name: Char Equals
code: '''='''
tokens:
- type: char
value: '='
operations:
- function: push
type: char
value: '='
stack_final:
- type: char
value: '='
- name: Char Less Than
code: '''<'''
tokens:
- type: char
value: <
operations:
- function: push
type: char
value: <
stack_final:
- type: char
value: <
- name: Char Greater Than
code: '''>'''
tokens:
- type: char
value: '>'
operations:
- function: push
type: char
value: '>'
stack_final:
- type: char
value: '>'
- name: Char Left Paren
code: '''('''
tokens:
- type: char
value: (
operations:
- function: push
type: char
value: (
stack_final:
- type: char
value: (
- name: Char Right Paren
code: ''')'''
tokens:
- type: char
value: )
operations:
- function: push
type: char
value: )
stack_final:
- type: char
value: )
- name: Char Left Bracket
code: '''['''
tokens:
- type: char
value: '['
operations:
- function: push
type: char
value: '['
stack_final:
- type: char
value: '['
- name: Char Right Bracket
code: ''']'''
tokens:
- type: char
value: ']'
operations:
- function: push
type: char
value: ']'
stack_final:
- type: char
value: ']'
- name: Char Left Brace
code: '''{'''
tokens:
- type: char
value: '{'
operations:
- function: push
type: char
value: '{'
stack_final:
- type: char
value: '{'
- name: Char Right Brace
code: '''}'''
tokens:
- type: char
value: '}'
operations:
- function: push
type: char
value: '}'
stack_final:
- type: char
value: '}'
- name: Char Escape Tab
code: '''\\t'''
tokens:
- type: char
value: "\t"
operations:
- function: push
type: char
value: "\t"
stack_final:
- type: char
value: "\t"
- name: Char Escape Backslash
code: '''\\\\'''
tokens:
- type: char
value: \
operations:
- function: push
type: char
value: \
stack_final:
- type: char
value: \
- name: Char Escape Null character
code: '''\\0'''
tokens:
- type: char
value: "\0"
operations:
- function: push
type: char
value: "\0"
stack_final:
- type: char
value: "\0"
- name: Char Escape Single quote
code: '''\\'''''
tokens:
- type: char
value: ''''
operations:
- function: push
type: char
value: ''''
stack_final:
- type: char
value: ''''
- name: Char Escape Carriage return
code: '''\\r'''
tokens:
- type: char
value: "\r"
operations:
- function: push
type: char
value: "\r"
stack_final:
- type: char
value: "\r"
- name: Char Escape Newline
code: '''\\n'''
tokens:
- type: char
value: '
'
operations:
- function: push
type: char
value: '
'
stack_final:
- type: char
value: '
'
- name: Char With Leading Whitespace
code: ' ''A'''
tokens:
- type: char
value: A
operations:
- function: push
type: char
value: A
stack_final:
- type: char
value: A
- name: Char With Trailing Whitespace
code: '''A'' '
tokens:
- type: char
value: A
operations:
- function: push
type: char
value: A
stack_final:
- type: char
value: A
- name: Char With Both Whitespace
code: ' ''A'' '
tokens:
- type: char
value: A
operations:
- function: push
type: char
value: A
stack_final:
- type: char
value: A
- name: Char Tab Before
code: \t'B'
tokens:
- type: char
value: B
operations:
- function: push
type: char
value: B
stack_final:
- type: char
value: B
- name: Char Newline Before
code: \n'C'
tokens:
- type: char
value: C
operations:
- function: push
type: char
value: C
stack_final:
- type: char
value: C
- name: Char Empty Literal
code: ''''''
tokens:
- type: error
value: 'Invalid character literal: empty character literal.'
- name: Char Multiple Characters
code: '''AB'''
tokens:
- type: error
value: 'Invalid character literal: unexpected ''B'' in character.'
- name: Char Unclosed Quote
code: '''A'
tokens:
- type: error
value: 'Invalid character literal: unclosed character literal.'
- name: Char Unescaped Newline
code: '''\n'''
tokens:
- type: error
value: 'Invalid character literal: unclosed character literal.'
- name: Char Invalid Escape
code: '''\\q'''
tokens:
- type: error
value: 'Invalid character literal: unknown escape sequence ''\\q''.'
- name: Identifier Simple Lowercase
code: hello
tokens:
- type: identifier
value: hello
operations:
- function: push
type: identifier
value: hello
stack_final:
- type: identifier
value: hello
- name: Identifier Simple Uppercase
code: HELLO
tokens:
- type: identifier
value: HELLO
operations:
- function: push
type: identifier
value: HELLO
stack_final:
- type: identifier
value: HELLO
- name: Identifier Mixed Case
code: HelloWorld
tokens:
- type: identifier
value: HelloWorld
operations:
- function: push
type: identifier
value: HelloWorld
stack_final:
- type: identifier
value: HelloWorld
- name: Identifier Single Letter
code: x
tokens:
- type: identifier
value: x
operations:
- function: push
type: identifier
value: x
stack_final:
- type: identifier
value: x
- name: Identifier Single Letter Upper
code: X
tokens:
- type: identifier
value: X
operations:
- function: push
type: identifier
value: X
stack_final:
- type: identifier
value: X
- name: Identifier With Numbers
code: var123
tokens:
- type: identifier
value: var123
operations:
- function: push
type: identifier
value: var123
stack_final:
- type: identifier
value: var123
- name: Identifier Numbers End
code: myVar2
tokens:
- type: identifier
value: myVar2
operations:
- function: push
type: identifier
value: myVar2
stack_final:
- type: identifier
value: myVar2
- name: Identifier Mixed Numbers
code: a1b2c3
tokens:
- type: identifier
value: a1b2c3
operations:
- function: push
type: identifier
value: a1b2c3
stack_final:
- type: identifier
value: a1b2c3
- name: Identifier With Underscore
code: hello_world
tokens:
- type: identifier
value: hello_world
operations:
- function: push
type: identifier
value: hello_world
stack_final:
- type: identifier
value: hello_world
- name: Identifier Leading Underscore
code: _private
tokens:
- type: identifier
value: _private
operations:
- function: push
type: identifier
value: _private
stack_final:
- type: identifier
value: _private
- name: Identifier Multiple Underscores
code: my_long_var_name
tokens:
- type: identifier
value: my_long_var_name
operations:
- function: push
type: identifier
value: my_long_var_name
stack_final:
- type: identifier
value: my_long_var_name
- name: Identifier Double Underscore
code: my__var
tokens:
- type: identifier
value: my__var
operations:
- function: push
type: identifier
value: my__var
stack_final:
- type: identifier
value: my__var
- name: Identifier Trailing Underscore
code: var_
tokens:
- type: identifier
value: var_
operations:
- function: push
type: identifier
value: var_
stack_final:
- type: identifier
value: var_
- name: Identifier Only Underscores
code: ___
tokens:
- type: identifier
value: ___
operations:
- function: push
type: identifier
value: ___
stack_final:
- type: identifier
value: ___
- name: Identifier Snake Case
code: my_variable_name
tokens:
- type: identifier
value: my_variable_name
operations:
- function: push
type: identifier
value: my_variable_name
stack_final:
- type: identifier
value: my_variable_name
- name: Identifier Camel Case
code: myVariableName
tokens:
- type: identifier
value: myVariableName
operations:
- function: push
type: identifier
value: myVariableName
stack_final:
- type: identifier
value: myVariableName
- name: Identifier Pascal Case
code: MyClassName
tokens:
- type: identifier
value: MyClassName
operations:
- function: push
type: identifier
value: MyClassName
stack_final:
- type: identifier
value: MyClassName
- name: Identifier All Caps
code: MY_CONSTANT
tokens:
- type: identifier
value: MY_CONSTANT
operations:
- function: push
type: identifier
value: MY_CONSTANT
stack_final:
- type: identifier
value: MY_CONSTANT
- name: Identifier With Dash
code: my-var
tokens:
- type: identifier
value: my-var
operations:
- function: push
type: identifier
value: my-var
stack_final:
- type: identifier
value: my-var
- name: Identifier Literal Simple
code: ::hello
tokens:
- type: identifier_literal
value: hello
operations:
- function: push
type: identifier_literal
value: hello
stack_final:
- type: identifier_literal
value: hello
- name: Identifier Literal Uppercase
code: ::Point
tokens:
- type: identifier_literal
value: Point
operations:
- function: push
type: identifier_literal
value: Point
stack_final:
- type: identifier_literal
value: Point
- name: Identifier Literal Snake Case
code: ::my_var
tokens:
- type: identifier_literal
value: my_var
operations:
- function: push
type: identifier_literal
value: my_var
stack_final:
- type: identifier_literal
value: my_var
- name: Identifier Literal Type i64
code: ::i64
tokens:
- type: identifier_literal
value: i64
operations:
- function: push
type: identifier_literal
value: i64
stack_final:
- type: identifier_literal
value: i64
- name: Identifier Literal Type String
code: ::String
tokens:
- type: identifier_literal
value: String
operations:
- function: push
type: identifier_literal
value: String
stack_final:
- type: identifier_literal
value: String
- name: Identifier Literal Type Point
code: ::Point
tokens:
- type: identifier_literal
value: Point
operations:
- function: push
type: identifier_literal
value: Point
stack_final:
- type: identifier_literal
value: Point
- name: Identifier Literal Trait Addable
code: ::Addable
tokens:
- type: identifier_literal
value: Addable
operations:
- function: push
type: identifier_literal
value: Addable
stack_final:
- type: identifier_literal
value: Addable
- name: Identifier Literal Trait Drawable
code: ::Drawable
tokens:
- type: identifier_literal
value: Drawable
operations:
- function: push
type: identifier_literal
value: Drawable
stack_final:
- type: identifier_literal
value: Drawable
- name: Identifier Literal Field x
code: ::x
tokens:
- type: identifier_literal
value: x
operations:
- function: push
type: identifier_literal
value: x
stack_final:
- type: identifier_literal
value: x
- name: Identifier Literal Field width
code: ::width
tokens:
- type: identifier_literal
value: width
operations:
- function: push
type: identifier_literal
value: width
stack_final:
- type: identifier_literal
value: width
- name: Identifier Literal With Underscore
code: ::_private
tokens:
- type: identifier_literal
value: _private
operations:
- function: push
type: identifier_literal
value: _private
stack_final:
- type: identifier_literal
value: _private
- name: Identifier Literal Multiple Underscores
code: ::my_long_name
tokens:
- type: identifier_literal
value: my_long_name
operations:
- function: push
type: identifier_literal
value: my_long_name
stack_final:
- type: identifier_literal
value: my_long_name
- name: Identifier Literal With Numbers
code: ::var123
tokens:
- type: identifier_literal
value: var123
operations:
- function: push
type: identifier_literal
value: var123
stack_final:
- type: identifier_literal
value: var123
- name: Identifier Leading Whitespace
code: ' hello'
tokens:
- type: identifier
value: hello
operations:
- function: push
type: identifier
value: hello
stack_final:
- type: identifier
value: hello
- name: Identifier Trailing Whitespace
code: 'hello '
tokens:
- type: identifier
value: hello
operations:
- function: push
type: identifier
value: hello
stack_final:
- type: identifier
value: hello
- name: Identifier Both Whitespace
code: ' hello '
tokens:
- type: identifier
value: hello
operations:
- function: push
type: identifier
value: hello
stack_final:
- type: identifier
value: hello
- name: Identifier Tab Before
code: \thello
tokens:
- type: identifier
value: hello
operations:
- function: push
type: identifier
value: hello
stack_final:
- type: identifier
value: hello
- name: Identifier Literal Leading Whitespace
code: ' ::hello'
tokens:
- type: identifier_literal
value: hello
operations:
- function: push
type: identifier_literal
value: hello
stack_final:
- type: identifier_literal
value: hello
- name: Identifier Literal Trailing Whitespace
code: '::hello '
tokens:
- type: identifier_literal
value: hello
operations:
- function: push
type: identifier_literal
value: hello
stack_final:
- type: identifier_literal
value: hello
- name: Identifier Literal Both Whitespace
code: ' ::hello '
tokens:
- type: identifier_literal
value: hello
operations:
- function: push
type: identifier_literal
value: hello
stack_final:
- type: identifier_literal
value: hello
- name: Identifier Moderate Length
code: thisIsAReasonablyLongVariableName
tokens:
- type: identifier
value: thisIsAReasonablyLongVariableName
operations:
- function: push
type: identifier
value: thisIsAReasonablyLongVariableName
stack_final:
- type: identifier
value: thisIsAReasonablyLongVariableName
- name: Identifier Very Long
code: this_is_a_very_long_identifier_name_that_someone_might_use_for_some_reason
tokens:
- type: identifier
value: this_is_a_very_long_identifier_name_that_someone_might_use_for_some_reason
operations:
- function: push
type: identifier
value: this_is_a_very_long_identifier_name_that_someone_might_use_for_some_reason
stack_final:
- type: identifier
value: this_is_a_very_long_identifier_name_that_someone_might_use_for_some_reason
- name: Identifier Long With Numbers
code: variable_with_many_numbers_123_456_789_000
tokens:
- type: identifier
value: variable_with_many_numbers_123_456_789_000
operations:
- function: push
type: identifier
value: variable_with_many_numbers_123_456_789_000
stack_final:
- type: identifier
value: variable_with_many_numbers_123_456_789_000
- name: Identifier Starting With Number
code: 123abc
tokens:
- type: error
value: 'Invalid decimal literal: unexpected ''a'' in decimal integer.'
- name: Identifier With Octothorpe
code: my#var
tokens:
- type: identifier
value: my
operations:
- function: push
type: identifier
value: my
stack_final:
- type: identifier
value: my
- name: Identifier With Colon
code: my:var
tokens:
- type: error
value: 'Invalid identifier: '':'' is not allowed in identifiers.'
- name: Identifier Double Colon Inside
code: my::var
tokens:
- type: error
value: 'Invalid identifier: '':'' is not allowed in identifiers.'
- name: Identifier Only Numbers
code: '123'
tokens:
- type: i64
value: 123
operations:
- function: push
type: i64
value: 123
stack_final:
- type: i64
value: 123
- name: Identifier Literal Empty
code: '::'
tokens:
- type: error
value: 'Invalid identifier literal: empty identifier after ''::''.'
- name: Identifier Case Lower
code: variable
tokens:
- type: identifier
value: variable
operations:
- function: push
type: identifier
value: variable
stack_final:
- type: identifier
value: variable
- name: Identifier Case Upper
code: VARIABLE
tokens:
- type: identifier
value: VARIABLE
operations:
- function: push
type: identifier
value: VARIABLE
stack_final:
- type: identifier
value: VARIABLE
- name: Identifier Case Mixed
code: Variable
tokens:
- type: identifier
value: Variable
operations:
- function: push
type: identifier
value: Variable
stack_final:
- type: identifier
value: Variable
- name: Identifier Case Camel
code: variableName
tokens:
- type: identifier
value: variableName
operations:
- function: push
type: identifier
value: variableName
stack_final:
- type: identifier
value: variableName
- name: Identifier Case Pascal
code: VariableName
tokens:
- type: identifier
value: VariableName
operations:
- function: push
type: identifier
value: VariableName
stack_final:
- type: identifier
value: VariableName
- name: Identifier Reserved Word if
code: if
tokens:
- type: identifier
value: if
operations:
- function: push
type: identifier
value: if
stack_final:
- type: identifier
value: if
- name: Identifier Reserved Word while
code: while
tokens:
- type: identifier
value: while
operations:
- function: push
type: identifier
value: while
stack_final:
- type: identifier
value: while
- name: Identifier Reserved Word for
code: for
tokens:
- type: identifier
value: for
operations:
- function: push
type: identifier
value: for
stack_final:
- type: identifier
value: for
- name: Identifier Reserved Word match
code: match
tokens:
- type: identifier
value: match
operations:
- function: push
type: identifier
value: match
stack_final:
- type: identifier
value: match
- name: Identifier Reserved Word break
code: break
tokens:
- type: identifier
value: break
operations:
- function: push
type: identifier
value: break
stack_final:
- type: identifier
value: break
- name: Identifier Reserved Word continue
code: continue
tokens:
- type: identifier
value: continue
operations:
- function: push
type: identifier
value: continue
stack_final:
- type: identifier
value: continue
- name: Identifier Reserved Word fn
code: fn
tokens:
- type: identifier
value: fn
operations:
- function: push
type: identifier
value: fn
stack_final:
- type: identifier
value: fn
- name: Identifier Reserved Word struct
code: struct
tokens:
- type: identifier
value: struct
operations:
- function: push
type: identifier
value: struct
stack_final:
- type: identifier
value: struct
- name: Identifier Reserved Word union
code: union
tokens:
- type: identifier
value: union
operations:
- function: push
type: identifier
value: union
stack_final:
- type: identifier
value: union
- name: Identifier Reserved Word enum
code: enum
tokens:
- type: identifier
value: enum
operations:
- function: push
type: identifier
value: enum
stack_final:
- type: identifier
value: enum
- name: Identifier Reserved Word trait
code: trait
tokens:
- type: identifier
value: trait
operations:
- function: push
type: identifier
value: trait
stack_final:
- type: identifier
value: trait
- name: Identifier Reserved Word impl
code: impl
tokens:
- type: identifier
value: impl
operations:
- function: push
type: identifier
value: impl
stack_final:
- type: identifier
value: impl
- name: Identifier Reserved Word inher
code: inher
tokens:
- type: identifier
value: inher
operations:
- function: push
type: identifier
value: inher
stack_final:
- type: identifier
value: inher
- name: Identifier Reserved Word dup
code: dup
tokens:
- type: identifier
value: dup
operations:
- function: push
type: identifier
value: dup
stack_final:
- type: identifier
value: dup
- name: Identifier Reserved Word drop
code: drop
tokens:
- type: identifier
value: drop
operations:
- function: push
type: identifier
value: drop
stack_final:
- type: identifier
value: drop
- name: Identifier Reserved Word swap
code: swap
tokens:
- type: identifier
value: swap
operations:
- function: push
type: identifier
value: swap
stack_final:
- type: identifier
value: swap
- name: Identifier Reserved Word over
code: over
tokens:
- type: identifier
value: over
operations:
- function: push
type: identifier
value: over
stack_final:
- type: identifier
value: over
- name: Identifier Reserved Word rot
code: rot
tokens:
- type: identifier
value: rot
operations:
- function: push
type: identifier
value: rot
stack_final:
- type: identifier
value: rot
- name: Identifier Reserved Word pick
code: pick
tokens:
- type: identifier
value: pick
operations:
- function: push
type: identifier
value: pick
stack_final:
- type: identifier
value: pick
- name: Identifier Reserved Word roll
code: roll
tokens:
- type: identifier
value: roll
operations:
- function: push
type: identifier
value: roll
stack_final:
- type: identifier
value: roll
- name: Identifier Reserved Word depth
code: depth
tokens:
- type: identifier
value: depth
operations:
- function: push
type: identifier
value: depth
stack_final:
- type: identifier
value: depth
- name: Bool True
code: 'true'
tokens:
- type: bool
value: true
operations:
- function: push
type: bool
value: true
stack_final:
- type: bool
value: true
- name: Bool False
code: 'false'
tokens:
- type: bool
value: false
operations:
- function: push
type: bool
value: false
stack_final:
- type: bool
value: false
- name: Bool True Leading Whitespace
code: ' true'
tokens:
- type: bool
value: true
operations:
- function: push
type: bool
value: true
stack_final:
- type: bool
value: true
- name: Bool True Trailing Whitespace
code: 'true '
tokens:
- type: bool
value: true
operations:
- function: push
type: bool
value: true
stack_final:
- type: bool
value: true
- name: Bool True Both Whitespace
code: ' true '
tokens:
- type: bool
value: true
operations:
- function: push
type: bool
value: true
stack_final:
- type: bool
value: true
- name: Bool True Tab Before
code: \ttrue
tokens:
- type: bool
value: true
operations:
- function: push
type: bool
value: true
stack_final:
- type: bool
value: true
- name: Bool False Leading Whitespace
code: ' false'
tokens:
- type: bool
value: false
operations:
- function: push
type: bool
value: false
stack_final:
- type: bool
value: false
- name: Bool False Trailing Whitespace
code: 'false '
tokens:
- type: bool
value: false
operations:
- function: push
type: bool
value: false
stack_final:
- type: bool
value: false
- name: Bool False Both Whitespace
code: ' false '
tokens:
- type: bool
value: false
operations:
- function: push
type: bool
value: false
stack_final:
- type: bool
value: false
- name: Bool False Tab Before
code: \tfalse
tokens:
- type: bool
value: false
operations:
- function: push
type: bool
value: false
stack_final:
- type: bool
value: false
- name: Bool True Capitalized
code: 'True'
tokens:
- type: identifier
value: 'True'
operations:
- function: push
type: identifier
value: 'True'
stack_final:
- type: identifier
value: 'True'
- name: Bool False Capitalized
code: 'False'
tokens:
- type: identifier
value: 'False'
operations:
- function: push
type: identifier
value: 'False'
stack_final:
- type: identifier
value: 'False'
- name: Bool True All Caps
code: 'TRUE'
tokens:
- type: identifier
value: 'TRUE'
operations:
- function: push
type: identifier
value: 'TRUE'
stack_final:
- type: identifier
value: 'TRUE'
- name: Bool False All Caps
code: 'FALSE'
tokens:
- type: identifier
value: 'FALSE'
operations:
- function: push
type: identifier
value: 'FALSE'
stack_final:
- type: identifier
value: 'FALSE'
- name: Bool True Mixed Case
code: tRuE
tokens:
- type: identifier
value: tRuE
operations:
- function: push
type: identifier
value: tRuE
stack_final:
- type: identifier
value: tRuE
- name: Bool False Mixed Case
code: fAlSe
tokens:
- type: identifier
value: fAlSe
operations:
- function: push
type: identifier
value: fAlSe
stack_final:
- type: identifier
value: fAlSe
- name: Bool Numeric 1
code: '1'
tokens:
- type: i64
value: 1
operations:
- function: push
type: i64
value: 1
stack_final:
- type: i64
value: 1
- name: Bool Numeric 0
code: '0'
tokens:
- type: i64
value: 0
operations:
- function: push
type: i64
value: 0
stack_final:
- type: i64
value: 0
- name: Bool Yes
code: 'yes'
tokens:
- type: identifier
value: 'yes'
operations:
- function: push
type: identifier
value: 'yes'
stack_final:
- type: identifier
value: 'yes'
- name: Bool No
code: 'no'
tokens:
- type: identifier
value: 'no'
operations:
- function: push
type: identifier
value: 'no'
stack_final:
- type: identifier
value: 'no'
- name: Bool Typo Ture
code: ture
tokens:
- type: identifier
value: ture
operations:
- function: push
type: identifier
value: ture
stack_final:
- type: identifier
value: ture
- name: Bool Typo Flase
code: flase
tokens:
- type: identifier
value: flase
operations:
- function: push
type: identifier
value: flase
stack_final:
- type: identifier
value: flase
- name: Bool Multiple True False
code: true false
tokens:
- type: bool
value: true
- type: bool
value: false
operations:
- function: push
type: bool
value: true
- function: push
type: bool
value: false
stack_final:
- type: bool
value: true
- type: bool
value: false
- name: Bool Multiple Same
code: true true
tokens:
- type: bool
value: true
- type: bool
value: true
operations:
- function: push
type: bool
value: true
- function: push
type: bool
value: true
stack_final:
- type: bool
value: true
- type: bool
value: true
- name: Bool Three Values
code: true false true
tokens:
- type: bool
value: true
- type: bool
value: false
- type: bool
value: true
operations:
- function: push
type: bool
value: true
- function: push
type: bool
value: false
- function: push
type: bool
value: true
stack_final:
- type: bool
value: true
- type: bool
value: false
- type: bool
value: true
- name: TokenString Empty
code: '{ }'
tokens:
- type: token_string
value: []
operations:
- function: push
type: token_string
value:
tokens: []
stack_final:
- type: token_string
value:
tokens: []
- name: TokenString Single Integer
code: '{ 42 }'
tokens:
- type: token_string
value:
- type: i64
value: 42
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 42
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 42
- name: TokenString Single Identifier
code: '{ dup }'
tokens:
- type: token_string
value:
- type: identifier
value: dup
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- name: TokenString Two Integers
code: '{ 2 3 }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- name: TokenString Simple Expression
code: '{ 2 3 + }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Stack Ops
code: '{ dup * }'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
- name: TokenString Integer Literals
code: '{ 0 42 -10 1000 }'
tokens:
- type: token_string
value:
- type: i64
value: 0
- type: i64
value: 42
- type: i64
value: -10
- type: i64
value: 1000
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 0
- type: i64
value: 42
- type: i64
value: -10
- type: i64
value: 1000
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 0
- type: i64
value: 42
- type: i64
value: -10
- type: i64
value: 1000
- name: TokenString Float Literals
code: '{ 3.14 -2.5 0.0 }'
tokens:
- type: token_string
value:
- type: f64
value: 3.14
- type: f64
value: -2.5
- type: f64
value: 0.0
operations:
- function: push
type: token_string
value:
tokens:
- type: f64
value: 3.14
- type: f64
value: -2.5
- type: f64
value: 0.0
stack_final:
- type: token_string
value:
tokens:
- type: f64
value: 3.14
- type: f64
value: -2.5
- type: f64
value: 0.0
- name: TokenString Char Literal
code: '{ ''A'' }'
tokens:
- type: token_string
value:
- type: char
value: A
operations:
- function: push
type: token_string
value:
tokens:
- type: char
value: A
stack_final:
- type: token_string
value:
tokens:
- type: char
value: A
- name: TokenString Boolean Literals
code: '{ true false }'
tokens:
- type: token_string
value:
- type: bool
value: true
- type: bool
value: false
operations:
- function: push
type: token_string
value:
tokens:
- type: bool
value: true
- type: bool
value: false
stack_final:
- type: token_string
value:
tokens:
- type: bool
value: true
- type: bool
value: false
- name: TokenString Multiple Identifiers
code: '{ dup swap over }'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: swap
- type: identifier
value: over
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: swap
- type: identifier
value: over
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: swap
- type: identifier
value: over
- name: TokenString Identifier Literals
code: '{ ::x ::y }'
tokens:
- type: token_string
value:
- type: identifier_literal
value: x
- type: identifier_literal
value: y
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier_literal
value: x
- type: identifier_literal
value: y
stack_final:
- type: token_string
value:
tokens:
- type: identifier_literal
value: x
- type: identifier_literal
value: y
- name: TokenString Mixed Identifiers
code: '{ ::Point get x swap }'
tokens:
- type: token_string
value:
- type: identifier_literal
value: Point
- type: identifier
value: get
- type: identifier
value: x
- type: identifier
value: swap
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier_literal
value: Point
- type: identifier
value: get
- type: identifier
value: x
- type: identifier
value: swap
stack_final:
- type: token_string
value:
tokens:
- type: identifier_literal
value: Point
- type: identifier
value: get
- type: identifier
value: x
- type: identifier
value: swap
- name: TokenString Nested Single
code: '{ { 2 3 + } }'
tokens:
- type: token_string
value:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Nested With Others
code: '{ x { dup * } }'
tokens:
- type: token_string
value:
- type: identifier
value: x
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: x
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: x
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
- name: TokenString Multiple Nested
code: '{ { 2 3 + } { 4 5 * } }'
tokens:
- type: token_string
value:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- type: token_string
value:
- type: i64
value: 4
- type: i64
value: 5
- type: identifier
value: '*'
operations:
- function: push
type: token_string
value:
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- type: token_string
value:
- type: i64
value: 4
- type: i64
value: 5
- type: identifier
value: '*'
stack_final:
- type: token_string
value:
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- type: token_string
value:
- type: i64
value: 4
- type: i64
value: 5
- type: identifier
value: '*'
- name: TokenString Double Nested
code: '{ { { 42 } } }'
tokens:
- type: token_string
value:
- type: token_string
value:
- type: token_string
value:
- type: i64
value: 42
operations:
- function: push
type: token_string
value:
tokens:
- type: token_string
value:
- type: token_string
value:
- type: i64
value: 42
stack_final:
- type: token_string
value:
tokens:
- type: token_string
value:
- type: token_string
value:
- type: i64
value: 42
- name: TokenString Complex Nesting
code: '{ 1 { 2 { 3 } 4 } 5 }'
tokens:
- type: token_string
value:
- type: i64
value: 1
- type: token_string
value:
- type: i64
value: 2
- type: token_string
value:
- type: i64
value: 3
- type: i64
value: 4
- type: i64
value: 5
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 1
- type: token_string
value:
- type: i64
value: 2
- type: token_string
value:
- type: i64
value: 3
- type: i64
value: 4
- type: i64
value: 5
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 1
- type: token_string
value:
- type: i64
value: 2
- type: token_string
value:
- type: i64
value: 3
- type: i64
value: 4
- type: i64
value: 5
- name: TokenString No Whitespace
code: '{2 3 +}'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Extra Whitespace
code: '{ 2 3 + }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Leading Whitespace Outside
code: ' { 2 3 + }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Trailing Whitespace Outside
code: '{ 2 3 + } '
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString With Tabs
code: '{\t2\t3\t+\t}'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Multiline Simple
code: '{\n 2 3 +\n}'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Multiline Multiple
code: '{\n dup\n *\n 2\n +\n}'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
- type: i64
value: 2
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
- type: i64
value: 2
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
- type: i64
value: 2
- type: identifier
value: +
- name: TokenString Mixed Line Breaks
code: '{ 1 2\n3 4\n\n5 6 }'
tokens:
- type: token_string
value:
- type: i64
value: 1
- type: i64
value: 2
- type: i64
value: 3
- type: i64
value: 4
- type: i64
value: 5
- type: i64
value: 6
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 1
- type: i64
value: 2
- type: i64
value: 3
- type: i64
value: 4
- type: i64
value: 5
- type: i64
value: 6
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 1
- type: i64
value: 2
- type: i64
value: 3
- type: i64
value: 4
- type: i64
value: 5
- type: i64
value: 6
- name: TokenString Indented Multiline
code: '{\n dup 0 >\n { }\n { 0 swap - }\n if\n}'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: i64
value: 0
- type: identifier
value: '>'
- type: token_string
value: []
- type: token_string
value:
- type: i64
value: 0
- type: identifier
value: swap
- type: identifier
value: '-'
- type: identifier
value: if
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: i64
value: 0
- type: identifier
value: '>'
- type: token_string
value: []
- type: token_string
value:
- type: i64
value: 0
- type: identifier
value: swap
- type: identifier
value: '-'
- type: identifier
value: if
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: i64
value: 0
- type: identifier
value: '>'
- type: token_string
value: []
- type: token_string
value:
- type: i64
value: 0
- type: identifier
value: swap
- type: identifier
value: '-'
- type: identifier
value: if
- name: TokenString Comment End Of Line
code: '{ 2 3 + // add them\n}'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Multiple Comments
code: '{ 2 // first\n3 // second\n+ // add\n}'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Comment Own Line
code: '{\n // This is a comment\n 2 3 +\n}'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Comment At Start
code: '{ // comment\n2 3 + }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Multiple Comment Lines
code: '{\n // First comment\n // Second comment\n 2 3 +\n}'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Comments Nested
code: '{ { 2 3 + // inner comment\n} // outer comment\n}'
tokens:
- type: token_string
value:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- name: TokenString Unclosed
code: '{ 2 3 +'
tokens:
- type: error
value: 'Unclosed token string: missing closing brace ''}''.'
- name: TokenString Unclosed Nested
code: '{ { 2 3 + }'
tokens:
- type: error
value: 'Unclosed token string: missing closing brace ''}''.'
- name: TokenString Extra Closing Brace
code: '{ 2 3 + } }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: i64
value: 3
- type: identifier
value: +
- type: error
value: Unexpected closing brace '}' without matching opening brace.
- name: TokenString Only Closing Brace
code: '}'
tokens:
- type: error
value: Unexpected closing brace '}' without matching opening brace.
- name: TokenString Error Inside
code: '{ 2 3a + }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: error
value: 'Invalid decimal literal: unexpected ''a'' in decimal integer.'
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: error
value: 'Invalid decimal literal: unexpected ''a'' in decimal integer.'
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: error
value: 'Invalid decimal literal: unexpected ''a'' in decimal integer.'
- type: identifier
value: +
- name: TokenString Function Body
code: '{ dup * }'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
- name: TokenString Loop Body
code: '{ dup print 1 + }'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: print
- type: i64
value: 1
- type: identifier
value: +
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: print
- type: i64
value: 1
- type: identifier
value: +
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: print
- type: i64
value: 1
- type: identifier
value: +
- name: TokenString Struct Fields
code: '{ x: y: }'
tokens:
- type: token_string
value:
- type: identifier
value: x
- type: identifier
value: ':'
- type: identifier
value: y
- type: identifier
value: ':'
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: x
- type: identifier
value: ':'
- type: identifier
value: y
- type: identifier
value: ':'
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: x
- type: identifier
value: ':'
- type: identifier
value: y
- type: identifier
value: ':'
- name: TokenString Lambda
code: '{ 2 * }'
tokens:
- type: token_string
value:
- type: i64
value: 2
- type: identifier
value: '*'
operations:
- function: push
type: token_string
value:
tokens:
- type: i64
value: 2
- type: identifier
value: '*'
stack_final:
- type: token_string
value:
tokens:
- type: i64
value: 2
- type: identifier
value: '*'
- name: TokenString Array Map
code: '{ dup * }'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: identifier
value: '*'
- name: TokenString Conditional Complex
code: '{\n dup 0 >\n { dup * }\n { drop 0 }\n if\n}'
tokens:
- type: token_string
value:
- type: identifier
value: dup
- type: i64
value: 0
- type: identifier
value: '>'
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
- type: token_string
value:
- type: identifier
value: drop
- type: i64
value: 0
- type: identifier
value: if
operations:
- function: push
type: token_string
value:
tokens:
- type: identifier
value: dup
- type: i64
value: 0
- type: identifier
value: '>'
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
- type: token_string
value:
- type: identifier
value: drop
- type: i64
value: 0
- type: identifier
value: if
stack_final:
- type: token_string
value:
tokens:
- type: identifier
value: dup
- type: i64
value: 0
- type: identifier
value: '>'
- type: token_string
value:
- type: identifier
value: dup
- type: identifier
value: '*'
- type: token_string
value:
- type: identifier
value: drop
- type: i64
value: 0
- type: identifier
value: if