mirror of
https://github.com/iritmaximus/compilers.git
synced 2026-10-12 19:13:35 +03:00
template for parser
This commit is contained in:
@@ -21,12 +21,25 @@ class Parser(tokens: List[Token]):
|
||||
def peek(): Token =
|
||||
return tokens(pos)
|
||||
|
||||
def consume(expected: TokenType | List[TokenType]): Token =
|
||||
def consume(expected: Option[TokenType | List[TokenType]] = None): Token =
|
||||
val token = peek()
|
||||
|
||||
expected match {
|
||||
case Some(types) => types match {
|
||||
case that: TokenType => println("IMPLEMENT TOKENTYPE")
|
||||
case that: List[TokenType] => println("IMPLEMENT LIST[TOKENTYPE]")
|
||||
}
|
||||
case None => println("IMPLEMENT NONE")
|
||||
}
|
||||
|
||||
pos += 1
|
||||
return tokens(pos)
|
||||
|
||||
def handleExpected(token: Token, expected: TokenType): Try[Token] =
|
||||
return Success(token)
|
||||
|
||||
|
||||
object Parser:
|
||||
def parse(tokens: List[Token]): Try[Expression] = return Success(Other())
|
||||
def parse(tokens: List[Token]): Try[Expression] =
|
||||
val parser = Parser(tokens)
|
||||
return Success(Other())
|
||||
|
||||
Reference in New Issue
Block a user