boolean sjekkProg() { String symbol = nesteSymb(); boolean korrekt = true; while (! symbol.equals("EOF")) { if (symbol.equals("{")) { /* * Kr?llparenteser m? ikke komme inne i vanlige parenteser. * Venstre kr?llparentes m? kunne parres med en h?yre * kr?llparentes, og pushes derfor p? stakken. */ if (isEmpty() || !top().equals("(")) { push(symbol); } else { System.out.println("Feil: "+"{ etter ("); korrekt = false; } } else if (symbol.equals("(")) { /* Venstreparentes m? parres med en h?yreparentes */ push(symbol); } else if (symbol.equals("}")) { /* * H?yre kr?llparentes m? parres med en venstre kr?llparentes som * n? ligger ?verst p? stakken. */ if (isEmpty() || !pop().equals("{")) { System.out.println("Feil: "+"} finner ikke {"); korrekt = false; } } else if (symbol.equals(")")) { /* H?yreparentes m? parres med venstreparentes ?verst p? stakken */ if (isEmpty() || !pop().equals("(")) { System.out.println("Feil: "+") finner ikke ("); korrekt = false; } } else if (symbol.equals(";")) { /* Semikolon skal ikke forekomme inne i vanlige parenteser */ if (!isEmpty() && top.equals("(")) { System.out.println("Feil: "+" ; etter ("); korrekt = false; } } symbol = nesteSymb(); } /* * Hele programkoden er n? lest. Hvis det fortsatt ligger noe p? stakken, * er dette venstre (kr?ll-)parenteser som ikke har f?tt den n?dvendige * h?yre (kr?ll-)parentesen, og programmet er ikke syntaktisk korrekt. */ if (!isEmpty()) { System.out.println("Feil til slutt: "+s.pop()+" mangler partner."); korrekt=false; } return false; }