Because
    
    
    1 + 2 * 3
    
    
    Run

will become
    
    
    Infix
      Ident "+"
      IntLit 1
      Infix
        Ident "*"
        IntLit 2
        IntLit 3
    
    
    Run

or alike, while
    
    
    (1 + 2) * 3
    
    
    Run

becomes
    
    
    Infix
      Ident "*"
      Par
        Infix
          Ident "+"
          IntLit 1
          IntLit 2
      IntLit 3
    
    
    Run

or alike.

There's no way to form the AST I provided in the first post, except by using a 
macro to generate it artificially, so I said it's "artificial" or "unnatural." 
But I'm not sure if it's wrong.

Reply via email to