pollen icon indicating copy to clipboard operation
pollen copied to clipboard

Currently unparseable parts of Pollen programs

Open priyasrikumar opened this issue 2 years ago • 3 comments
trafficstars

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, but my_bool = false; fails)
  • [ ] Conditional statements: both if and if ... else ...
  • [ ] Methods for data structures (i.e., push for Strands and length for List<...>s, etc.
  • [ ] Instantiating an empty Strand with Strand(), 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!

priyasrikumar avatar Aug 01 '23 17:08 priyasrikumar

Great; thanks! One minor question:

  • Initializing variables without a type annotation (i.e., my_bool: bool = false; parses, but my_bool = false; fails)
  • Parsing a new Strand: syntax in the example programs is currently x = Strand();, but the parser only parses x: 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?)

sampsyo avatar Aug 02 '23 00:08 sampsyo

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!

priyasrikumar avatar Aug 02 '23 19:08 priyasrikumar

Got it!

sampsyo avatar Aug 03 '23 02:08 sampsyo