Integrate a bunch of new parser features! Things that didn't parse before but now do include:
2-tuples
Record initialization and field access (e.g., ('RecordType { f1 = v }).field1and{r1 with f1 = v2}`)
Control flow (while, for, if/elif/else)
Object declaration (Strand())
Function and method calls (fun();, strand.push('A');)
Set types (Set<t>)
emit-to statements
Function definition
parset and graph declarations
import statements
Other changes:
Add a testing framework using runt
Types go after identifiers (int i -> i: int)
Add tests for depth.pollen and crush.pollen (I chose .pollen as the pollen file extension because .pol is apparently already a thing, but if no one here has heard of it then it's probably safe to make .pol the cannonical file extension).
Integrate a bunch of new parser features! Things that didn't parse before but now do include:
and
{r1 with f1 = v2}`)while
,for
,if
/elif
/else
)Strand()
)fun();
,strand.push('A');
)Set<t>
)emit-to
statementsparset
andgraph
declarationsOther changes:
runt
int i
->i: int
)depth.pollen
andcrush.pollen
(I chose.pollen
as the pollen file extension because.pol
is apparently already a thing, but if no one here has heard of it then it's probably safe to make.pol
the cannonical file extension).