7

Zalecono użycie generatora analizatora składni do utworzenia analizatora składni dla mojego języka specyficznego dla domeny.Generator analizatora składni dla Celu C?

Idealnie chciałbym wyprowadzić parser obiektyw-C i wziąć wejście BNF, aby opisać język.

Wygląda na to, że wybór jest niewielki. Czy możliwe jest użycie jednego z bardziej popularnych generatorów parsera z obiektywnym C?

Dzięki!

Odpowiedz

8

Generowanie kodu nie jest "prawdziwym sposobem" w językach dynamicznych, takich jak Objective-C. Wszystko, co można osiągnąć za pomocą generatora analizatora składni, można osiągnąć w czasie wykonywania. Sugeruję więc wypróbowanie czegoś takiego jak ParseKit, które zajmie gramatykę podobną do BNF, i da ci różne haczyki delegatów, które możesz zaimplementować, aby skonstruować twój parser.

Aby uzyskać więcej informacji, sprawdź numer this tutorial.

+0

Wygląda świetnie dzięki! Czy wiesz, że gramatyka podobna do BNF dla ParseKit wspiera rekursję? po prostu nie widziałem, żeby to było wspomniane. – FBryant87

+0

Jestem prawie pewny, że tak, ale jeśli w ten sposób kodujesz lewicowo-rekurencyjne gramatyki, skończysz w nieskończonej pętli, chyba że będziesz bardzo ostrożny. Sugeruję więc, abyś spróbował zrekompensować rekursję w powtórzenie, które prawdopodobnie będzie ci lepiej służyć. –

4

Z pewnością można użyć dowolnego z generatorów analizatorów opartych na C, jeśli je znasz. Innym programem wykonawczym środowiska wykonawczego Objective-C jest Hammer przez niepohamowanego Rob Rix.

7

Są (oczywiście) twoje oczekiwane odpowiedzi na takie tematy, jak Bison lub YACC lub cokolwiek innego, ale jeśli chcesz natywnego rozwiązania Objective-C, są już wspomniane pary. (Hammer and ParseKit) Kolejną znaną mi jest "CoreParse": https://github.com/beelsebob/CoreParse

Powiązane problemy