eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingDuży kawałek kodu .g
Ilość wypowiedzi w tym wątku: 3

  • 1. Data: 2009-04-29 22:40:26
    Temat: Duży kawałek kodu .g
    Od: Radosław Osiński <r...@g...com>

    Witam,
    piszę właśnie lexer w ANTLR 3.1.2. Lexer operuje na pewnym języku
    skryptowym z zagnieżdżonymi innymi językami np. HTML. W przyszłości
    język ten będzie obsługiwał więcej języków. Wygenerowany lexer w javie
    ma w tej chwili powyżej 28000 linii kodu więc trafiłem na ograniczenie
    związane z maksymalną wielkością klasy (metody/rozmiaru pliku - nie
    istotne) w javie. Rozmiar ten wynika z dużej ilości "potrzebnych"
    predykatów.

    Chciałbym rozbić tą monolityczną strukturę leksera na kilka lekserów
    obsługujących pojedyncze języki w celu uzyskania elastyczności rozwiązania.

    W ANTLR wersji 2.7.7 był mechanizm "TokenStreamSelector" który pozwalał
    w locie przełączać leksery. Niestety w najnowszych wersjach ANTLR
    mechanizm ten zniknął. Nie chciał bym wynajdywać koła dlatego też zadaję
    pytanie do grupy:
    Czy istnieje jakiś mechanizm zastępczy dla "TokenStreamSelector" w nowej
    wersji ANTLR?


    --
    Z poważaniem Radosław Osiński


  • 2. Data: 2009-05-04 23:42:52
    Temat: Re: Duży kawałek kodu .g
    Od: Krzysztof Stachlewski <s...@f...pl>

    Radosław Osiński pisze:

    > ...
    > ma w tej chwili powyżej 28000 linii kodu więc trafiłem na ograniczenie
    > związane z maksymalną wielkością klasy (metody/rozmiaru pliku - nie
    > istotne) w javie.

    Naprawdę jest coś takiego w tej "enterprise" javie?
    Fascynujące. :->

    Stach
    --
    http://stachlewski.info


  • 3. Data: 2009-05-05 08:10:07
    Temat: Re: Duży kawałek kodu .g
    Od: Radosław Osiński <r...@g...com>

    Witam,

    Krzysztof Stachlewski pisze:
    >
    > Naprawdę jest coś takiego w tej "enterprise" javie?
    > Fascynujące. :->
    >
    > Stach

    otrzymuję takie coś:

    [javac] /home/radek/workspace/.../src/...LexerParser/x.java:
    23859:
    code too large
    [javac] public int specialStateTransition(int s, IntStream
    _input) throws NoViableAltException {
    [javac] ^
    [javac] 1 error

    BUILD FAILED

    plik z kodem javy został wygenerowany na podstawie pliku .g poprawnie
    ograniczenie jest z strony javy. Pisząc java myślałem o:
    radek@osator ~ $ java -version
    java version "1.6.0_13"
    Java(TM) SE Runtime Environment (build 1.6.0_13-b03)

    Aktualnie zacząłem radzić sobie w inny sposób. Ale odpowiedź na pytanie:

    "Czy istnieje jakiś mechanizm zastępczy dla "TokenStreamSelector" w
    nowej wersji ANTLR?"

    nadal mnie ciekawi.


    --
    Z poważaniem Radosław Osiński

strony : [ 1 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: