Skip to content
Snippets Groups Projects
Commit d98247b9 authored by Lior Spach's avatar Lior Spach
Browse files

combinators first

parent 20e39468
No related branches found
No related tags found
No related merge requests found
package CombParse
import scala.util.parsing.combinator._
class Arith extends JavaTokenParsers {
def program : Parser[String] = {
def programInOut: Parser[Any] = "(" ~ opt( ident ~ opt(rep("," ~ ident)) ) ~ ")"
"program" ~> ident <~ opt(programInOut) ~ ";"
}
def vars:Parser[List[String]] =
"var" ~ ident ~ opt(rep("," ~> ident)) ~ ":"~"integer"~";" ^^
{
case "var" ~ id ~ optlstId ~ ":" ~ "integer"~";" =>
optlstId match {
case Some(s) =>
id :: s
case None =>
List(id)
}
}
lazy val page = getpage(i.link)
lazy val metadata = i.toMetadata ++ getter.getMetadata(page)
lazy val downLink = metadata.find(_.key == "DownloadLink").get.value
lazy val filename = metadata.find(_.key == "NomeArquivo" ).get.value
def param:Parser[String] =
ident ~ opt(rep("," ~> ident)) ~ ":"~"integer"~";"
// def params:Parser[List[String]] =
// opt("(" ~ param ~ opt(rep("," ~ param)) ~ ")")
// def procedure:Parser[List[String]] =
// "procedure" ~ ident ~ params
}
object MyParser extends Arith {
val input = Seq(
"program lala23(adkwopadw23, faw4ea,aduwh28 ) ;",
"var a,v,b23,sd :integer;"
)
def main(args: Array[String]) {
println(
parseAll(program, input(0)).get
)
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment