pollen
pollen copied to clipboard
Currently unparseable parts of Pollen programs
This issue serves as a way to keep track of parts of Pollen programs (see #134) that are not currently parsed correctly. To remedy this, either the Pollen language or the Pollen parser should be changed.
- [ ] Declaring a graph with
graph my_graph - [ ] Declaring an output set for a graph with
parset ... - [ ] For loops:
for x in y - [ ] Initializing variables without a type annotation (i.e.,
my_bool: bool = false;parses, butmy_bool = false;fails) - [ ] Conditional statements: both
ifandif ... else ... - [ ] Methods for data structures (i.e.,
pushforStrands andlengthforList<...>s, etc. - [ ] Instantiating an empty
StrandwithStrand(), i.e.,x: Strand = Strand(); - [ ] Declaring an output set for a graph analysis with
outset ...(or whatever word we end up using)
This list may not be complete, but it should be enough for us to get the ball rolling and we can update as we go!
Great; thanks! One minor question:
- Initializing variables without a type annotation (i.e.,
my_bool: bool = false;parses, butmy_bool = false;fails)- Parsing a new Strand: syntax in the example programs is currently
x = Strand();, but the parser only parsesx: Strand = Strand;
These sound like the same issue to me: i.e., all variable declarations need a type. So the syntax only supports <ident>: <type> = <expr> but not <ident> = <expr>. Is that right? (And separately, if so, can we work around this for now by just adding explicit types everywhere?)
The second bullet point was meant to capture that instantiating a Strand using the Strand() syntax (with parens) doesn't work. In particular, we can parse x: Strand = Strand, but not x: Strand = Strand(). I see how that's a bit unclear with the current wording. I will reword that point so that it's more clearly about that specific issue!
Got it!