public TablaReservada() { palabras = new Reservada[20]; // public String lexema; // public String simbolo; // public int valor; palabras[0] = new Reservada("SELECT", "s", 10); palabras[1] = new Reservada("FROM", "f", 11); palabras[2] = new Reservada("WHERE", "w", 12); palabras[3] = new Reservada("IN", "n", 13); palabras[4] = new Reservada("AND", "y", 14); palabras[5] = new Reservada("OR", "o", 15); palabras[6] = new Reservada("CREATE", "c", 16); palabras[7] = new Reservada("TABLE", "t", 17); palabras[8] = new Reservada("CHAR", "h", 18); palabras[9] = new Reservada("NUMERIC", "u", 19); palabras[10] = new Reservada("NOT", "e", 20); palabras[11] = new Reservada("NULL", "g", 21); palabras[12] = new Reservada("CONSTRAINT", "b", 22); palabras[13] = new Reservada("KEY", "k", 23); palabras[14] = new Reservada("PRIMARY", "p", 24); palabras[15] = new Reservada("FOREING", "j", 25); palabras[16] = new Reservada("REFERENCES", "l", 26); palabras[17] = new Reservada("INSERT", "m", 27); palabras[18] = new Reservada("INTO", "q", 28); palabras[19] = new Reservada("VALUES", "v", 29); }
private static Reservada crearReservada(Registro reg) { Reservada res = null; if (reg != null) { res = new Reservada { Reserva = int.Parse(reg.Get(0)), Fila = int.Parse(reg.Get(1)), Butaca = int.Parse(reg.Get(2)) }; } return(res); }
public TablaLexica(String[] palabras, int[] lineas, TablaIdentificador tablaI, TablaConstante tablaC) { this.palabras = new Token[palabras.Length]; //this.palabras[0].reiniciar(); Token.sNumero = 1; // Creando todos los TOKENS for (int x = 0; x < palabras.Length; x++) { //Regex.IsMatch(palabra, @"\d+") if (palabras[x] != null && !Regex.IsMatch(palabras[x], @"((\W|^)\s+(\W|$))")) { if (palabras[x] != null && Regex.IsMatch(palabras[x], @regexT1)) { // Tipo 1 - Reservadas Reservada apuntador = this.darReservada(palabras[x]); if (apuntador != null) { this.palabras[x] = new Token(lineas[x], palabras[x], 1, apuntador.valor); } } else if (palabras[x] != null && Regex.IsMatch(palabras[x], @regexT6)) { // Tipo 6 - Cosntantes Constante apuntador = this.darConstante(palabras[x], tablaC); if (apuntador != null) { this.palabras[x] = new Token(lineas[x], "Constante", 6, apuntador.valor); } } else if (palabras[x] != null && Regex.IsMatch(palabras[x], regexT5)) { // Tipo 5 - Delimitadores Delimitador apuntador = this.darDelimitador(palabras[x]); if (apuntador != null) { this.palabras[x] = new Token(lineas[x], palabras[x], 5, apuntador.valor); } } else if (palabras[x] != null && Regex.IsMatch(palabras[x], @regexT4)) { // Tipo 4 - Identificador Identificador apuntador = this.darIdentificador(palabras[x], tablaI); if (apuntador != null) { this.palabras[x] = new Token(lineas[x], palabras[x], 4, apuntador.valor); } } else if (palabras[x] != null && Regex.IsMatch(palabras[x], @regexT7)) { // Tipo 7 - Operadores Operador apuntador = this.darOperador(palabras[x]); this.palabras[x] = new Token(lineas[x], palabras[x], 7, apuntador.valor); } else if (palabras[x] != null && Regex.IsMatch(palabras[x], @regexT8)) { // Tipo 8 - Relacionales Relacional apuntador = this.darRelacional(palabras[x]); this.palabras[x] = new Token(lineas[x], palabras[x], 8, apuntador.valor); } else { // Error this.lError = lineas[x]; this.error = true; this.pError = palabras[x]; x = palabras.Length; } } } }