|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.ranides.assira.lexer.ByteStreamer<UserArgument>
UserArgument - public class ByteStreamer<UserArgument>
Strumień przetwarzający kolejno elementy zbioru przydatny przy pisaniu lexerów ad hoc. Żadna funkcjonalność związana z obsługą gramatyki nie istnieje. Przydatny do przetwarzania sekwencji sterujących, kodów escape'ujących w stringach, wzorców podstawieniowych etc
Bardziej ściśle: do przetwarzania formatów, w których bezkontekstowe symbole nie są zagnieżdżane rekurencyjnie.
| Constructor Summary | |
|---|---|
ByteStreamer(ByteConsumer<UserArgument> consumer)
Tworzy nowy strumień, który przekazuje wyodrębnione fragmenty do podanego konsumenta. |
|
| Method Summary | |
|---|---|
void |
close()
Kończy przetwarzanie danych |
boolean |
end()
Sprawdza, czy przetworzono wszystkie dostępne dane. |
void |
flush()
Odrzuca bieżący fragment i rozpoczyna przetwarzanie nowego od aktualnej pozycji kursora. |
void |
flush(UserArgument extra)
Wysyła bieżący fragment do odbiorcy. |
void |
flush(UserArgument extra,
int lclip,
int rclip)
Wysyła bieżący fragment do odbiorcy, ignorując left pierwszych
znaków oraz right ostatnich. |
byte |
get()
Odczytuje element ze strumienia i przesuwa kursor do przodu. |
void |
open(byte[] input)
Rozpoczyna przetwarzanie kolejnej porcji danych |
byte |
peek()
Odczytuje element ze strumienia nie przesuwając kursora |
boolean |
pending()
Sprawdza,czy przetwarzanie wykorzystało wszystkie przekazane dane |
void |
send(UserArgument extra,
byte... data)
Wysyła do odbiorcy fragment o wskazanej treści |
void |
skip()
Pomija element |
| Methods inherited from class java.lang.Object |
|---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public ByteStreamer(ByteConsumer<UserArgument> consumer)
consumer - | Method Detail |
|---|
public byte get()
public byte peek()
public void skip()
public boolean end()
public void send(UserArgument extra,
byte... data)
extra - data - public void flush()
public void flush(UserArgument extra,
int lclip,
int rclip)
left pierwszych
znaków oraz right ostatnich. Następnie rozpoczyna przetwarzanie
nowego fragmentu rozpoczynającego się od aktualnej pozycji kursora.
extra - lclip - rclip - public void flush(UserArgument extra)
extra - public void open(byte[] input)
input -
IllegalStateException - jeśli strumień jest w trakcie przetwarzania
danych.public void close()
public boolean pending()
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||