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

c2

parent 9241bfbe
No related branches found
No related tags found
No related merge requests found
package lexer
import scala.annotation.tailrec
object Test {
def main(args:Array[String]) {
test1
test2
}
def test1 = {
val lex = new Lexer
val testString = "lala:=la22=l34++l44".toList
val answer = List(Token("lala","identificador"),
Token(":=","operador"),
Token("la22","identificador"),
Token("=","operador"),
Token("l34","identificador"),
Token("++","operador"),
Token("l44","identificador")
)
val result = answer.corresponds(lex.getTokens(testString)) { _==_ }
println("Test 1: "+(if (result) "Success" else "Fail"))
}
def test2 = {
val lex = new Lexer
val testString = simplePascalProgram.toList
val answer = List(
Token("program","reservada"),Token("exemplo12","identificador"),Token("(","controle"),Token("input","identificador"),Token(",","controle"),Token("output","identificador"),Token(")","controle"),Token(";","controle"),
Token("var","reservada"),Token("x","identificador"),Token(":","dois pontos"),Token("integer","reservada"),
Token(";","controle"),Token("procedure","reservada"),Token("p","identificador"),Token("(","controle"),
Token("var","reservada"),Token("t","identificador"),Token(":","dois pontos"),Token("integer","reservada"),
Token(")","controle"),Token(";","controle"),Token("begin","reservada"),Token("read","reservada"),
Token("(","controle"),Token("x","identificador"),Token(")","controle"),Token(";","controle"),Token("t","identificador"),Token(":=","operador"),
Token("x","identificador"),Token("end","reservada"),Token(";","controle"),Token("begin","reservada"),
Token("p","identificador"),Token("(","controle"),Token("x","identificador"),Token(")","controle"),
Token(";","controle"),Token("write","reservada"),Token("(","controle"),Token("x","identificador"),
Token(")","controle"),Token("end","reservada"),Token(".","controle"))
val result = answer.corresponds(lex.getTokens(testString)) { _==_ }
println("Test 2: "+(if (result) "Success" else "Fail"))
}
val words = "Hello my nice words"
val simplePascalProgram =
"""program exemplo12 (input,output);
var x: integer;
procedure p(var t: integer);
begin
read(x);
t := x
end;
begin
p(x);
write(x)
end.
"""
val complexPascalProgram =
"""program exemplo12 (input,output);
var x: integer;
procedure p(var t: integer);
label 100,200;
var s : integer;
function f(z:integer):integer;
begin (* f *)
if z<0 then goto 200
else if z=0 then f:=2
else f:=f(z-2)*z+1
end; (* f *)
begin (* p *)
100: s:=f(t); t:=s
if t<x then goto 100;
200: x:=x-1
end;
procedure r;
procedure q;
var y:integer;
begin read(y); p(y); write(y) end; (* q *)
begin q end; (* r *)
begin read(x); r end.
"""
}
\ 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