pascalinterpreter.analysis
Class Code

java.lang.Object
  extended bypascalinterpreter.analysis.Code

public class Code
extends java.lang.Object


Field Summary
private static int ASCII__
           
private static int ASCII_0
           
private static int ASCII_9
           
private static int ASCII_a
           
private static int ASCII_POINT
           
private static int ASCII_POINTER
           
private static int ASCII_QUOTE
           
private static int ASCII_SPACE
           
private static int ASCII_z
           
private static char CHAR__
           
private static char CHAR_ASSIGN
           
private static char CHAR_GREATER
           
private static char CHAR_MINUS
           
private static char CHAR_POINT
           
private static char CHAR_POINTER
           
private static char CHAR_QUOTE
           
private static char CHAR_SPACE
           
private  java.lang.String EMPTY_CHARS
           
private  char LINE_DELIMITER
           
private  java.util.ArrayList lines
           
private  int newLineCounter
           
private  int readCounter
           
 
Constructor Summary
(package private) Code(java.lang.String code)
          Konstruktor obiektu Code.
 
Method Summary
private  void checkStructure()
          Metoda sprawdza, czy w programie pewnw słowa kluczowe wystąpiły tylko raz, we właściwych miejscach.
private  java.lang.String formatLine(java.lang.String text)
          Metoda formatuje linie, tzn. usuwa niepotrzebna spacje, usuwa komentarze, każdy identyfikator, operator, znak specjalny... odzielony jest spacją, występują tylko małe litery
 int getLinesCount()
          Metoda podaje liczbę linii w obiekcie typu Code (liczba linii kodu po usunięciu komentarzy i linii pustych.
(package private)  Line getNextLine()
          Każde wywołanie metody powoduje odczytanie kolejnej linii kodu.
(package private) static boolean isDigit(char c)
          Metoda sprawdza, czy znak jest cyfrą.
(package private) static boolean isDigitOrLetter(char c)
          Metoda sprawdza, czy znak jest literą, znakiem _ lub cyfrą.
(package private) static boolean isLetter(char c)
          Metoda sprawdza, czy znak jest literą lub znakiem _.
private  java.lang.String remComments(java.lang.String text)
          Metoda usuwa komentarze z tekstu (pomiędzy znakami { }).
private  void removeEmptyLines()
          Metoda usuwa puste linie.
private  java.lang.String remRedundantEmptyChars(java.lang.String text)
          Metoda usuwa niepotrzebne i nadmiarowe znaki puste z tekstu.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CHAR_SPACE

private static final char CHAR_SPACE
See Also:
Constant Field Values

CHAR__

private static final char CHAR__
See Also:
Constant Field Values

CHAR_POINTER

private static final char CHAR_POINTER
See Also:
Constant Field Values

CHAR_MINUS

private static final char CHAR_MINUS
See Also:
Constant Field Values

CHAR_ASSIGN

private static final char CHAR_ASSIGN
See Also:
Constant Field Values

CHAR_GREATER

private static final char CHAR_GREATER
See Also:
Constant Field Values

CHAR_QUOTE

private static final char CHAR_QUOTE
See Also:
Constant Field Values

CHAR_POINT

private static final char CHAR_POINT
See Also:
Constant Field Values

ASCII_a

private static final int ASCII_a
See Also:
Constant Field Values

ASCII_z

private static final int ASCII_z
See Also:
Constant Field Values

ASCII_0

private static final int ASCII_0
See Also:
Constant Field Values

ASCII_9

private static final int ASCII_9
See Also:
Constant Field Values

ASCII__

private static final int ASCII__
See Also:
Constant Field Values

ASCII_SPACE

private static final int ASCII_SPACE
See Also:
Constant Field Values

ASCII_POINTER

private static final int ASCII_POINTER
See Also:
Constant Field Values

ASCII_QUOTE

private static final int ASCII_QUOTE
See Also:
Constant Field Values

ASCII_POINT

private static final int ASCII_POINT
See Also:
Constant Field Values

LINE_DELIMITER

private final char LINE_DELIMITER
See Also:
Constant Field Values

EMPTY_CHARS

private final java.lang.String EMPTY_CHARS
See Also:
Constant Field Values

newLineCounter

private int newLineCounter

readCounter

private int readCounter

lines

private java.util.ArrayList lines
Constructor Detail

Code

Code(java.lang.String code)
throws AnalyseException
Konstruktor obiektu Code. Dzieli przekazany w argumencie kod programu na linie.

Parameters:
code - Kod programu.
Method Detail

getNextLine

Line getNextLine()
           throws InternalException
Każde wywołanie metody powoduje odczytanie kolejnej linii kodu.

Returns:
Linia kodu programu.
Throws:
InternalException - Wyjątek generowany jesli metoda zostala wywolana po osiagnieciu konca programu.

getLinesCount

public int getLinesCount()
Metoda podaje liczbę linii w obiekcie typu Code (liczba linii kodu po usunięciu komentarzy i linii pustych.

Returns:
liczba linii

removeEmptyLines

private void removeEmptyLines()
Metoda usuwa puste linie.


formatLine

private java.lang.String formatLine(java.lang.String text)
                             throws AnalyseException
Metoda formatuje linie, tzn. usuwa niepotrzebna spacje, usuwa komentarze, każdy identyfikator, operator, znak specjalny... odzielony jest spacją, występują tylko małe litery

Parameters:
text - Tekst do sformatowania.
Returns:
Sformatowany tekst.
Throws:
AnalyseException - Wyjątek generowany, jeżeli komentarz został otworzony, ale nie został zamknięty, lub odwrotnie.

isDigit

static boolean isDigit(char c)
Metoda sprawdza, czy znak jest cyfrą.

Parameters:
c - Sprawdzany znak.
Returns:
True, jeżeli jast cyfrą. Jeżeli nie, to false.

isLetter

static boolean isLetter(char c)
Metoda sprawdza, czy znak jest literą lub znakiem _.

Parameters:
c - Sprawdzany znak.
Returns:
True, jeżeli jast literą, lub znakiem _. Jeżeli nie, to false.

isDigitOrLetter

static boolean isDigitOrLetter(char c)
Metoda sprawdza, czy znak jest literą, znakiem _ lub cyfrą.

Parameters:
c - Sprawdzany znak.
Returns:
True, jeżeli jast literą, znakiem _, lub cyfrą. Jeżeli nie, to false.

remComments

private java.lang.String remComments(java.lang.String text)
                              throws AnalyseException
Metoda usuwa komentarze z tekstu (pomiędzy znakami { }).

Parameters:
text - Obrabiany tekst.
Returns:
Tekst z usuniętymi komentarzami.
Throws:
AnalyseException - Wyjątek generowany, jeżeli komentarz został otworzony, ale nie został zamknięty, lub odwrotnie.

remRedundantEmptyChars

private java.lang.String remRedundantEmptyChars(java.lang.String text)
Metoda usuwa niepotrzebne i nadmiarowe znaki puste z tekstu.

Parameters:
text - Obrabiany tekst.
Returns:
Tekst bez nadmiarowych znaków pustych.

checkStructure

private void checkStructure()
                     throws AnalyseException
Metoda sprawdza, czy w programie pewnw słowa kluczowe wystąpiły tylko raz, we właściwych miejscach. Sprawdza także, czy każdy rozpoczęty słowem BEGIN blok, został zakończony i odwrotnie.

Throws:
AnalyseException - Wyjątek generowany w przypadku jakiejś niepoprawności w strukturze kodu.