Skip to content

Instantly share code, notes, and snippets.

@cobalthex
Created October 16, 2015 09:00
Show Gist options
  • Select an option

  • Save cobalthex/4d8a78c7e34b969db152 to your computer and use it in GitHub Desktop.

Select an option

Save cobalthex/4d8a78c7e34b969db152 to your computer and use it in GitHub Desktop.
Plang test
//comment
/* also a comment */
//defines a custom binary operator
//with left-associativity and precidence of 15
//prefix and postfix are both urnary operators
//ternary operators can be emulated with tuples
#operator =!= infix left 15
vあr = 3 + 5.0 * 4;
str = "test 不確かな text";
z = .5;
noq = zee.5;
floq = (1).3;
prop = 4000.5.5;
proq = 'string';
a::b;
foo_bar = baz.bonk;
z4d = 1'000'000;
quux = (1, "2", 3); //tuple
floop = 4, '3', 6; //tuple
nugget = [7, 8, 9]; //list
donk = [| a, b, c |] //array
gork = x, y, z; //tuple
a = (x: 1, y: 2, z: 3); //named tuple
b = u: 4, v: 5, w: 6; //named tuple
dotted = lal..lol;
more = zoo...mop * 5;
b13 = (jello)
{
x = 10.5;
x.5 =!= 'fuck';
}
zzz = true;
eor =
{
a3sdfm: 5;
z3fsdf: "6";
}
if (x == 5)
{
v313;
}
zoop = !5 + 3;
(1), 2, 3;
!5, 6, 7;
!(8 9 10);
!(8, 9, 10);
nest = ()
{
deeper: ()
{
deepest: 5;
}
otherd:
{
otherst: "blah";
}
}
back = out;
Comment //comment
Comment /* also a comment */
Comment //defines a custom binary operator
Comment //with left-associativity and precidence of 15
Comment //prefix and postfix are both urnary operators
Comment //ternary operators can be emulated with tuples
PreprocessCmd operator
PreprocessArg =!=
PreprocessArg infix
PreprocessArg left
PreprocessArg 15
Identifier vあr
Identifier =
Number 3
Identifier +
Number 5.0
Identifier *
Number 4
Terminator ;
Identifier str
Identifier =
String "test 不確かな text"
Terminator ;
Identifier z
Identifier =
Number .5
Terminator ;
Identifier noq
Identifier =
Identifier zee
Accessor .
Number 5
Terminator ;
Identifier floq
Identifier =
RegionOpen (
Number 1
RegionClose )
Accessor .
Number 3
Terminator ;
Identifier prop
Identifier =
Number 4000.5
Accessor .
Number 5
Terminator ;
Identifier proq
Identifier =
String 'string'
Terminator ;
Identifier a
Identifier ::
Identifier b
Terminator ;
Identifier foo_bar
Identifier =
Identifier baz
Accessor .
Identifier bonk
Terminator ;
Identifier z4d
Identifier =
Number 1'000'000
Terminator ;
Identifier quux
Identifier =
RegionOpen (
Number 1
Separator ,
String "2"
Separator ,
Number 3
RegionClose )
Terminator ;
Comment //tuple
Identifier floop
Identifier =
Number 4
Separator ,
String '3'
Separator ,
Number 6
Terminator ;
Comment //tuple
Identifier nugget
Identifier =
RegionOpen [
Number 7
Separator ,
Number 8
Separator ,
Number 9
RegionClose ]
Terminator ;
Comment //list
Identifier donk
Identifier =
RegionOpen [|
Identifier a
Separator ,
Identifier b
Separator ,
Identifier c
RegionClose |]
Comment //array
Identifier gork
Identifier =
Identifier x
Separator ,
Identifier y
Separator ,
Identifier z
Terminator ;
Comment //tuple
Identifier a
Identifier =
RegionOpen (
Identifier x
Identifier :
Number 1
Separator ,
Identifier y
Identifier :
Number 2
Separator ,
Identifier z
Identifier :
Number 3
RegionClose )
Terminator ;
Comment //named tuple
Identifier b
Identifier =
Identifier u
Identifier :
Number 4
Separator ,
Identifier v
Identifier :
Number 5
Separator ,
Identifier w
Identifier :
Number 6
Terminator ;
Comment //named tuple
Identifier dotted
Identifier =
Identifier lal
Accessor .
Accessor .
Identifier lol
Terminator ;
Identifier more
Identifier =
Identifier zoo
Accessor .
Accessor .
Accessor .
Identifier mop
Identifier *
Number 5
Terminator ;
Identifier b13
Identifier =
RegionOpen (
Identifier jello
RegionClose )
RegionOpen {
Identifier x
Identifier =
Number 10.5
Terminator ;
Identifier x
Accessor .
Number 5
Identifier =!=
String 'fuck'
Terminator ;
RegionClose }
Identifier zzz
Identifier =
Identifier true
Terminator ;
Identifier eor
Identifier =
RegionOpen {
Identifier a3sdfm
Identifier :
Number 5
Terminator ;
Identifier z3fsdf
Identifier :
String "6"
Terminator ;
RegionClose }
Identifier if
RegionOpen (
Identifier x
Identifier ==
Number 5
RegionClose )
RegionOpen {
Identifier v313
Terminator ;
RegionClose }
Identifier zoop
Identifier =
Identifier !
Number 5
Identifier +
Number 3
Terminator ;
RegionOpen (
Number 1
RegionClose )
Separator ,
Number 2
Separator ,
Number 3
Terminator ;
Identifier !
Number 5
Separator ,
Number 6
Separator ,
Number 7
Terminator ;
Identifier !
RegionOpen (
Number 8
Number 9
Number 10
RegionClose )
Terminator ;
Identifier !
RegionOpen (
Number 8
Separator ,
Number 9
Separator ,
Number 10
RegionClose )
Terminator ;
Identifier nest
Identifier =
RegionOpen (
RegionClose )
RegionOpen {
Identifier deeper
Identifier :
RegionOpen (
RegionClose )
RegionOpen {
Identifier deepest
Identifier :
Number 5
Terminator ;
RegionClose }
Identifier otherd
Identifier :
RegionOpen {
Identifier otherst
Identifier :
String "blah"
Terminator ;
RegionClose }
RegionClose }
Identifier back
Identifier =
Identifier out
Terminator ;
Program
Identifier vあr
Identifier =
Integer 3
Identifier +
Float 5
Identifier *
Integer 4
Identifier str
Identifier =
String test 不確かな text
Identifier z
Identifier =
Float 0.5
Identifier noq
Identifier =
Accessor
Identifier zee
Integer 5
Identifier floq
Identifier =
Accessor
Tuple
Integer 1
Integer 3
Identifier prop
Identifier =
Accessor
Float 4000.5
Integer 5
Identifier proq
Identifier =
String string
Identifier a
Identifier ::
Identifier b
Identifier foo_bar
Identifier =
Accessor
Identifier baz
Identifier bonk
Identifier z4d
Identifier =
Integer 1000000
Identifier quux
Identifier =
Tuple
Integer 1
String 2
Integer 3
Identifier floop
Identifier =
Tuple
Integer 4
String 3
Identifier nugget
Identifier =
List
Integer 7
Integer 8
Integer 9
Identifier donk
Identifier =
Array
Identifier a
Identifier b
Identifier c
Identifier gork
Identifier =
Tuple
Identifier x
Identifier y
Identifier a
Identifier =
Tuple
Identifier x
Identifier :
Integer 1
Identifier y
Identifier :
Integer 2
Identifier z
Identifier :
Integer 3
Identifier b
Identifier =
Identifier u
Identifier :
Tuple
Integer 4
Identifier v
Integer 5
Identifier w
Identifier :
Integer 6
Identifier dotted
Identifier =
Accessor
Identifier lal
Identifier
Identifier lol
Identifier more
Identifier =
Accessor
Identifier zoo
Identifier
Identifier
Identifier mop
Identifier *
Integer 5
Identifier b13
Identifier =
Expression
Tuple
Identifier jello
Block
Identifier x
Identifier =
Float 10.5
Accessor
Identifier x
Integer 5
Identifier =!=
String fuck
Identifier zzz
Identifier =
Identifier true
Identifier eor
Identifier =
Block
Identifier a3sdfm
Identifier :
Integer 5
Identifier z3fsdf
Identifier :
String 6
Identifier if
Expression
Tuple
Identifier x
Identifier ==
Integer 5
Block
Identifier v313
Identifier zoop
Identifier =
Call !
Integer 5
Identifier +
Integer 3
Tuple
Tuple
Integer 1
Integer 2
Tuple
Call !
Integer 5
Integer 6
Call !
Tuple
Integer 8
Integer 9
Integer 10
Call !
Tuple
Tuple
Integer 8
Integer 9
Identifier nest
Identifier =
Expression
Tuple
Block
Identifier deeper
Identifier :
Expression
Tuple
Block
Identifier deepest
Identifier :
Integer 5
Identifier otherd
Identifier :
Block
Identifier otherst
Identifier :
String blah
Identifier back
Identifier =
Identifier out
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment