Jakie szczególne zalety i wady każdego sposobu pracy z gramatyką języka programowania? Dlaczego / Kiedy powinienem wyrzucić własny? Dlaczego / Kiedy powinienem używać
Analizowanie (nie) ustrukturyzowanych danych w celu przekształcenia ich w ustrukturyzowany, znormalizowany format.
Jakie szczególne zalety i wady każdego sposobu pracy z gramatyką języka programowania? Dlaczego / Kiedy powinienem wyrzucić własny? Dlaczego / Kiedy powinienem używać
Niedawno zanurzyłem się w świat parserów, chcąc stworzyć własny język programowania. Odkryłem jednak, że istnieją dwa nieco odmienne podejścia do pisania parserów: Parser Generators i Parser Combinators. Co ciekawe, nie udało mi się znaleźć żadnego zasobu, który wyjaśniłby, w jakich przypadkach...
Myślę, że rozumiem cel AST i zbudowałem już kilka struktur drzewiastych, ale nigdy AST. Jestem w większości zdezorientowany, ponieważ węzły są tekstem, a nie liczbą, więc nie mogę wymyślić dobrego sposobu na wprowadzenie tokena / łańcucha, gdy parsuję jakiś kod. Na przykład, kiedy patrzyłem na...
Często zastanawiałem się, dlaczego podczas tworzenia HTML nie wybrano ścisłego analizowania. Przez większość historii Internetu przeglądarki zaakceptowały każdy rodzaj znaczników i starały się je przeanalizować. Proces ten obniża wydajność, umożliwia pisanie bełkotów i utrudnia zaprzestanie...
Szukałem na temat pakietu kompilator gcc Wikipedia tutaj , kiedy to pojawiły się: GCC zaczęło od użycia parserów LALR wygenerowanych za pomocą Bison, ale stopniowo przestawiło się na ręcznie pisane parsery rekurencyjnego opadania; dla C ++ w 2004 r. oraz dla C i Objective-C w 2006 r. Obecnie...
Z radością zauważyłem, że C ++ 11 ma std::sto@rodzinę funkcji do łatwego rozpakowywania ints / floats / longs cokolwiek z ciągów. Dziwi mnie jednak fakt, że przeciwieństwo nie zostało wdrożone. Dlaczego komitet normalizacyjny nie zawiera std::itosrodziny funkcji do przechodzenia od ints / floats /...
Jak ogólnie traktuje się komentarze w językach programowania i znacznikach? Piszę parser dla jakiegoś niestandardowego języka znaczników i chcę przestrzegać zasady najmniejszego zaskoczenia , więc staram się ustalić ogólną konwencję. Na przykład, czy komentarz osadzony w tokenie powinien...
Był zafascynowany czytaniem o tekstowej grze przygodowej Hobbit, która zawierała niezwykle solidny parser o nazwie „Inglish”: ... Inglish pozwolił pisać zaawansowane zdania, takie jak: „zapytaj Gandalfa o ciekawą mapę, a następnie weź miecz i zabij nim trolla”. Analizator składni był złożony i...
Konwencjonalne analizatory składniowe zużywają cały wkład i tworzą pojedyncze drzewo analizy. Szukam takiego, który zużywa ciągły strumień i tworzy parsowany las [ edytuj: zobacz dyskusję w komentarzach na temat tego, dlaczego takie użycie tego terminu może być niekonwencjonalne ]. Moje przeczucie...
Pamięć (i blokady zasobów) są zwracane do systemu operacyjnego w deterministycznych punktach podczas wykonywania programu. Przepływ sterujący programu sam w sobie wystarczy, aby wiedzieć, gdzie z pewnością dany zasób może zostać zwolniony. Dokładnie tak, jak ludzki programista wie, gdzie pisać,...
Przydzielono mi zadanie wdrożenia języka specyficznego dla domeny dla narzędzia, które może stać się dość ważne dla firmy. Język jest prosty, ale nie trywialny, pozwala już na zagnieżdżanie pętli, łączenie łańcuchów itp. I jest praktycznie pewne, że wraz z postępem projektu zostaną dodane inne...
Próbuję zrozumieć kompilację i interpretację, krok po kroku, zastanawiając się nad całkowitym obrazem. Podszedłem więc do pytania podczas czytania http://www.cs.man.ac.uk/~pjj/farrell/comp3.html tego artykułu To mówi : Kolejny etap kompilatora nosi nazwę Parser. Ta część kompilatora rozumie...
Jestem w trakcie tworzenia własnego języka programowania, który robię do celów edukacyjnych. Napisałem już leksyk i parser rekurencyjnego zapisu dla podzbioru mojego języka (obecnie obsługuję wyrażenia matematyczne, takie jak + - * /i nawiasy). Analizator składni oddaje mi Streszczenie Drzewo...
To pytanie zostało przeniesione z przepełnienia stosu, ponieważ można na nie odpowiedzieć w programie Software Engineering Stack Exchange. Migrował 7 lat temu . Problem: uruchamiaj polecenia w postaci łańcucha. przykład polecenia: /user/files/ list
Współpracownik i ja ostatnio spieraliśmy się o to, czy czysty regex jest w stanie w pełni enkapsulować format csv, tak że jest w stanie parsować wszystkie pliki za pomocą dowolnego znaku zmiany znaczenia, znaku cytowania i znaku separatora. Wyrażenie regularne nie musi być zdolne do zmiany tych...
Chcę zbudować ogólny parser reguł dla systemów RPG typu długopis i papier. Reguła może zwykle obejmować od 1 do N jednostek 1 do N ról kostki i obliczanie wartości na podstawie wielu atrybutów jednostki. Na przykład: Gracz ma STR 18, jego obecnie wyposażona broń daje mu premię +1 STR, ale minus...
Kiedy zacząłem używać parseratorów, moją pierwszą reakcją było poczucie wyzwolenia z czegoś, co wydawało się sztuczną różnicą między analizą składniową a leksyką. Nagle wszystko zaczęło się przetwarzać! Ostatnio jednak natknąłem się na ten post na codereview.stackexchange ilustrujący kogoś...
Jeśli dobrze pamiętam kurs mojego kompilatora, typowy kompilator ma następujący uproszczony zarys: Analizator leksykalny skanuje (lub wywołuje funkcję skanowania) kod źródłowy znak po znaku Ciąg znaków wejściowych jest sprawdzany pod kątem poprawności ze słownikiem leksemów Jeśli leksem jest...
Piszę parser dla utworzonego przeze mnie języka znaczników (piszę w Pythonie, ale to nie jest tak naprawdę istotne w przypadku tego pytania - w rzeczywistości, jeśli wydaje się to złym pomysłem, chętnie zaproponuję lepszą ścieżkę) . Czytam o parserach tutaj: http://www.ferg.org/parsing/index.html...
Jakich testów należy użyć do testowania jednostkowego analizatora składni csv? Mam prosty parser csv w języku C # i chcę mieć pewność, że mam dobry zasięg testu wszystkich wspólnych (i nietypowych) przypadków krawędzi. Jakie testy należy zastosować, aby zidentyfikować potencjalne problemy i...