//Método que verifica as escritas public bool instrucao_escrita(Instrucao_escrita inst_escrita) { Instrucao_escrita_a inst_esc_a = new Instrucao_escrita_a(); Instrucao_escrita_b inst_esc_b = new Instrucao_escrita_b(); if (compare("IMPRIMA")) { index++; if (tokens[index].nome.ToString() == "Texto") { inst_esc_a.text = tokens[index].valor.ToString(); index++; if (compare(";")) { index++; inst_escrita = inst_esc_a; return(true); } else { throw new System.Exception("Declaracao: \';\' esperado!"); } } Expressao expr = new Expressao(); if (expressao(expr)) { inst_esc_b.expr = expr; if (compare(";")) { index++; inst_escrita = inst_esc_b; return(true); } else { throw new System.Exception("Declaracao: \';\' esperado!"); } } else { throw new System.Exception("Declaracao: \';\' esperado!"); } } return(false); }
public bool instrucao(Instrucao inst) { guarda = index; Atribuicao atr = new Atribuicao(); if (atribuicao(atr)) { inst = atr; if (notPrinted(guarda)) { AtrReduce(guarda); } return(true); } index = guarda; Instrucao_leitura inst_leitura = new Instrucao_leitura(); if (instrucao_leitura(inst_leitura)) { if (notPrinted(guarda)) { AtrRead(guarda); } inst = inst_leitura; return(true); } index = guarda; Instrucao_escrita inst_escrita = new Instrucao_escrita(); if (instrucao_escrita(inst_escrita)) { if (notPrinted(guarda)) { AtrPrint(guarda); } inst = inst_escrita; return(true); } return(false); }