public ParamFormal(SimboloAbstracto tipo, SimboloAbstracto id, bool esDireccion, int linea, int columna) : base(linea, columna) { this.tipo = tipo; this.id = id; this.esDireccion = esDireccion; }
public void agregarId(SimboloAbstracto id, Object info) { if (tbl.IsEmpty()) { Utilidades.fatalError("agregarId: no se puede agregar id sin un ámbito."); } tbl.Peek()[id] = info; }
public FuncionDef(SimboloAbstracto nombre, ListaParamFormal parametros, int linea, int columna, Action<Emit.ILGenerator, ListaParametros> cuerpoDelMetodo) : base(linea, columna) { this.nombre = nombre; this.parametros = parametros; this.cuerpoDelMetodo = cuerpoDelMetodo; }
public Object buscarAmbitoActual(SimboloAbstracto sym) { if (tbl.IsEmpty()) { Utilidades.fatalError("explorar: no existen ámbitos en la tabla."); } if(tbl.Peek().ContainsKey(sym)) return tbl.Peek()[sym]; return null; }
public Object buscar(SimboloAbstracto sym) { if (tbl.IsEmpty()) { Utilidades.fatalError("buscar: no existen ámbitos en la tabla."); } for (int i = tbl.Count - 1; i >= 0; i--) { if(tbl[i].ContainsKey(sym)){ return tbl[i][sym]; } } return null; }
public Object buscarAmbitoActual(SimboloAbstracto sym) { if (tbl.IsEmpty()) { Utilidades.fatalError("explorar: no existen ámbitos en la tabla."); } if (tbl.Peek().ContainsKey(sym)) { return(tbl.Peek()[sym]); } return(null); }
public Object buscar(SimboloAbstracto sym) { if (tbl.IsEmpty()) { Utilidades.fatalError("buscar: no existen ámbitos en la tabla."); } for (int i = tbl.Count - 1; i >= 0; i--) { if (tbl[i].ContainsKey(sym)) { return(tbl[i][sym]); } } return(null); }
public SimboloAbstracto agregarSimbolo(String texto, int tam, int linea, int columna) { SimboloAbstracto sym = null; texto = (texto.Length <= TAM_MAX_SYMB) ? texto : texto.Substring(0, TAM_MAX_SYMB); if (!tabla.ContainsKey(texto)) { sym = getNuevoSimbolo(texto, idx++, linea, columna); tabla.Add(texto, sym); } else { sym = (SimboloAbstracto)tabla[texto].clone(); sym.Linea = linea; sym.Columna = columna; } return(sym); }
protected void dump_SimboloAbstracto(System.IO.TextWriter cout, int n, SimboloAbstracto sym) { cout.Write(Utilidades.pad(n)); cout.WriteLine(sym.Texto); }
public Expresion(int linea, int columna) : base(linea, columna) { tipo_expr = null; }
public Variable(SimboloAbstracto variable, int linea, int columna) : base(linea, columna) { this.nombre = variable; }
public void setNombreArchivo(string nombre) { nombreArchivo = TablaAbstracta.texTabla.agregarSimbolo(nombre, getLinea(), getColumna()); }
public LLamadaFuncion(SimboloAbstracto id, ListaParametros lparams, int linea, int columna) : base(linea, columna) { this.id = id; this.lparams = lparams; }
public NumeroEntero(SimboloAbstracto token, int linea, int columna) : base(linea, columna) { this.token = token; }