refactor: remove excessive atomics
This commit is contained in:
		@@ -88,38 +88,34 @@ object parser {
 | 
				
			|||||||
  private lazy val `<stmt>`: Parsley[NonEmptyList[Stmt]] =
 | 
					  private lazy val `<stmt>`: Parsley[NonEmptyList[Stmt]] =
 | 
				
			||||||
    sepBy1(`<basic-stmt>`, ";")
 | 
					    sepBy1(`<basic-stmt>`, ";")
 | 
				
			||||||
  private lazy val `<basic-stmt>` =
 | 
					  private lazy val `<basic-stmt>` =
 | 
				
			||||||
    (Skip from atomic("skip"))
 | 
					    (Skip from "skip")
 | 
				
			||||||
      | Read(atomic("read") ~> `<lvalue>`)
 | 
					      | Read("read" ~> `<lvalue>`)
 | 
				
			||||||
      | Free(atomic("free") ~> `<expr>`)
 | 
					      | Free("free" ~> `<expr>`)
 | 
				
			||||||
      | Return(atomic("return") ~> `<expr>`)
 | 
					      | Return("return" ~> `<expr>`)
 | 
				
			||||||
      | Exit(atomic("exit") ~> `<expr>`)
 | 
					      | Exit("exit" ~> `<expr>`)
 | 
				
			||||||
      | Print(atomic("print") ~> `<expr>`, pure(false))
 | 
					      | Print("print" ~> `<expr>`, pure(false))
 | 
				
			||||||
      | Print(atomic("println") ~> `<expr>`, pure(true))
 | 
					      | Print("println" ~> `<expr>`, pure(true))
 | 
				
			||||||
      | If(
 | 
					      | If(
 | 
				
			||||||
        atomic("if") ~> `<expr>` <~ "then",
 | 
					        "if" ~> `<expr>` <~ "then",
 | 
				
			||||||
        `<stmt>` <~ "else",
 | 
					        `<stmt>` <~ "else",
 | 
				
			||||||
        `<stmt>` <~ "fi"
 | 
					        `<stmt>` <~ "fi"
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
      | While(atomic("while") ~> `<expr>` <~ "do", `<stmt>` <~ "done")
 | 
					      | While("while" ~> `<expr>` <~ "do", `<stmt>` <~ "done")
 | 
				
			||||||
      | Block(atomic("begin") ~> `<stmt>` <~ "end")
 | 
					      | Block("begin" ~> `<stmt>` <~ "end")
 | 
				
			||||||
      | VarDecl(atomic(`<type>`), `<ident>` <~ "=", `<rvalue>`)
 | 
					      | VarDecl(`<type>`, `<ident>` <~ "=", `<rvalue>`)
 | 
				
			||||||
      | Assign(`<ident>` <~ "=", `<rvalue>`)
 | 
					      | Assign(`<ident>` <~ "=", `<rvalue>`)
 | 
				
			||||||
  private lazy val `<lvalue>`: Parsley[LValue] =
 | 
					  private lazy val `<lvalue>`: Parsley[LValue] =
 | 
				
			||||||
    atomic(`<pair-elem>`) | atomic(`<ident-or-array-elem>`)
 | 
					    `<pair-elem>` | `<ident-or-array-elem>`
 | 
				
			||||||
  private lazy val `<rvalue>`: Parsley[RValue] =
 | 
					  private lazy val `<rvalue>`: Parsley[RValue] =
 | 
				
			||||||
    atomic(`<array-liter>`) |
 | 
					    `<array-liter>` |
 | 
				
			||||||
      atomic(
 | 
					 | 
				
			||||||
      NewPair(
 | 
					      NewPair(
 | 
				
			||||||
        "newpair" ~> "(" ~> `<expr>` <~ ",",
 | 
					        "newpair" ~> "(" ~> `<expr>` <~ ",",
 | 
				
			||||||
        `<expr>` <~ ")"
 | 
					        `<expr>` <~ ")"
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
      ) |
 | 
					      ) |
 | 
				
			||||||
      atomic(`<pair-elem>`) |
 | 
					      `<pair-elem>` |
 | 
				
			||||||
      atomic(
 | 
					 | 
				
			||||||
      Call(
 | 
					      Call(
 | 
				
			||||||
        "call" ~> `<ident>` <~ "(",
 | 
					        "call" ~> `<ident>` <~ "(",
 | 
				
			||||||
        sepBy(`<expr>`, ",") <~ ")"
 | 
					        sepBy(`<expr>`, ",") <~ ")"
 | 
				
			||||||
        )
 | 
					 | 
				
			||||||
      ) | `<expr>`
 | 
					      ) | `<expr>`
 | 
				
			||||||
  private lazy val `<pair-elem>` =
 | 
					  private lazy val `<pair-elem>` =
 | 
				
			||||||
    Fst("fst" ~> `<lvalue>`) | Snd("snd" ~> `<lvalue>`)
 | 
					    Fst("fst" ~> `<lvalue>`) | Snd("snd" ~> `<lvalue>`)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user