eyg/parser/parser

Types

pub type Match =
  #(
    #(String, #(Int, Int)),
    option.Option(#(#(Int, Int), #(String, #(Int, Int)))),
  )
pub type Pattern {
  Assign(String)
  Destructure(
    List(
      #(
        #(String, #(Int, Int)),
        option.Option(#(#(Int, Int), #(String, #(Int, Int)))),
      ),
    ),
  )
}

Constructors

  • Assign(String)
  • Destructure(
      List(
        #(
          #(String, #(Int, Int)),
          option.Option(#(#(Int, Int), #(String, #(Int, Int)))),
        ),
      ),
    )
pub type Reason {
  UnexpectEnd
  UnexpectedToken(token: token.Token, position: Int)
}

Constructors

  • UnexpectEnd
  • UnexpectedToken(token: token.Token, position: Int)
pub type Span =
  #(Int, Int)

Values

pub fn block(
  tokens: List(#(token.Token, Int)),
) -> Result(
  #(
    #(tree.Expression(#(Int, Int)), #(Int, Int)),
    List(#(token.Token, Int)),
  ),
  Reason,
)
pub fn build_list(
  reversed: List(
    #(Int, #(tree.Expression(#(Int, Int)), #(Int, Int))),
  ),
  acc: #(tree.Expression(#(Int, Int)), #(Int, Int)),
) -> #(tree.Expression(#(Int, Int)), #(Int, Int))
pub fn build_overwrite(
  reversed: List(
    #(#(a, b), String, #(tree.Expression(#(a, b)), #(a, b))),
  ),
  acc: #(tree.Expression(#(a, b)), #(a, b)),
) -> #(tree.Expression(#(a, b)), #(a, b))
pub fn build_record(
  reversed: List(
    #(#(a, b), String, #(tree.Expression(#(a, b)), #(a, b))),
  ),
  acc: #(tree.Expression(#(a, b)), #(a, b)),
) -> #(tree.Expression(#(a, b)), #(a, b))
pub fn describe_reason(reason: Reason) -> String
pub fn destructured(
  matches: List(
    #(
      #(String, #(Int, Int)),
      option.Option(#(#(Int, Int), #(String, #(Int, Int)))),
    ),
  ),
  term: #(tree.Expression(#(Int, Int)), #(Int, Int)),
) -> #(tree.Expression(#(Int, Int)), #(Int, Int))
pub fn do_patterns(
  tokens: List(#(token.Token, Int)),
  acc: List(Pattern),
) -> Result(#(List(Pattern), List(#(token.Token, Int))), Reason)
pub fn expression(
  tokens: List(#(token.Token, Int)),
) -> Result(
  #(
    #(tree.Expression(#(Int, Int)), #(Int, Int)),
    List(#(token.Token, Int)),
  ),
  Reason,
)
Search Document