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