如何使用 Scala 解析 Python 中的 If 语句?
现在我有这样的事情:
import fastparse.all._
val ifStatement : P[Stmt] = P (
("if " ~ expr ~ ":" ~ ("\n".rep.? ~ "\t".rep.?) ~ stmt ~ ("\n".rep.? ~ "\t".rep.?) ~ "else:" ~ stmt).map {
case (e, st1, st2) => If (e, st1, st2)
}
)
stmt 基本上是一个带有语句的 val:
val stmt: Parser[StatementStuff] = P ("\n".rep.? ~ "\t".rep.? ~
( returnStatement | statement | assignStatement |
forLoop | blockBody | print | printString |
ifStatement )
)
我希望能够解析 Python 的 Fizzbuzz:
def main():
count = 0
for count in range(1, 101):
if count % 5 == 0 and count % 3 == 0:
print "FizzBuzz"
elif count % 3 == 0:
print "Fizz"
elif count % 5 == 0:
print "Buzz"
else:
print count
count = count + 1
现在我可以处理这样的 if 语句:
if x==0:
return poo
但我想处理类似的事情: 如果计数 % 5 == 0 且计数 % 3 == 0:
任何帮助都会很棒,提前谢谢您!
解析器库:http://www.lihaoyi.com/fastparse/
我是一名优秀的程序员,十分优秀!