diff --git a/compiler/Definicoes.scala b/compiler/Definicoes.scala new file mode 100644 index 0000000000000000000000000000000000000000..7258671cd23e232691f4a07faf968aa1ffe512bb --- /dev/null +++ b/compiler/Definicoes.scala @@ -0,0 +1,23 @@ + +package lexer + +trait Definicoes { + //Conjuntos + val palavrasReservadas = List("begin", "end", "function", "procedure", "var", "program", + "label","integer","goto","if","then","else","read","write", + "while","do") + val letras = List.concat('a' to 'z', 'A' to 'Z', "_") + val numeros = ('0' to '9').toList + val separadores = List(' ', '\t', '\n', ';',',',':') + val operadores = + "+ - * / += -= *= /= ++ -- = < > <= >= <> :=".split(" ").toList + + //Funcoes booleanas + val operadorValido = (s: String) => operadores.contains(s) + val ehNum = (c: Char) => numeros.contains(c) + val ehOp = (c: Char) => "+-*/=:><".contains(c) + val ehLetra = (c: Char) => letras.contains(c) + val ehEspacoLinTab = (c: Char) => c == ' ' || c == '\t' || c == '\n' || c == 13 + val ehSeparador = (c: Char) => separadores.contains(c) + val ehPalavraReservada = (s: String) => palavrasReservadas.contains(s) +} \ No newline at end of file