Сравнение генераторов парсеров

редактировать

Это список известных генераторов лексера и генераторов парсеров для различных языковые классы.

Содержание
  • 1 Регулярные языки
  • 2 Детерминированные контекстно-свободные языки
  • 3 Анализ грамматик выражений, детерминированные логические грамматики
  • 4 Общие контекстно-свободные, конъюнктивные или логические языки
  • 5 Контекст- чувствительные грамматики
  • 6 См. также
  • 7 Примечания
  • 8 Ссылки
  • 9 Внешние ссылки
Обычные языки

Обычные языки - это категория языков (иногда называемая Тип Хомского 3 ), которому может соответствовать конечный автомат (более конкретно, детерминированный конечный автомат или недетерминированный конечный автомат ), построенный из регулярного выражения . В частности, обычный язык может сопоставлять такие конструкции, как «A следует за B», «Либо A, либо B», «A, за которым следует ноль или более экземпляров B», но не может сопоставлять конструкции, которые требуют согласованности между несмежными элементами, например как «несколько экземпляров A, за которыми следует такое же количество экземпляров B», а также не могут выражать концепцию рекурсивной «вложенности» («за каждым A в конечном итоге следует соответствующий B»). Классическим примером проблемы, которую не может решить обычная грамматика, является вопрос о том, содержит ли данная строка правильно вложенные скобки. (Обычно это обрабатывается грамматикой Хомского типа 2, также называемой контекстно-свободной грамматикой.)

Имяалгоритм лексераЯзыки вывода Грамматика, кодПлатформа разработкиЛицензия
AlexDFA Haskell MixedAllFree, BSD
AnnoFlexDFA Java СмешаннаяВиртуальная машина Java Бесплатно, BSD
AstirDFA с управлением таблицей, с ветвлениемC ++ Только грамматика (задействована)ВсеБесплатно, MIT
AustenXDFA Java ОтдельноВсеБесплатно, BSD
C # FlexDFA C# Смешанное.NET CLR Бесплатно, GNU GPL
C # LexDFA C# Смешанный.NET CLR ?
CookCCDFA Java Смешанныйвиртуальная машина Java Бесплатно, Apache 2.0
DolphinDFA C ++ ОтдельноВсеСобственный
Flex DFA управляемый таблицейC, C ++ СмешанныйВсеБесплатно, BSD
gelexDFA Eiffel MixedEiffel Free, MIT
golexDFA Go MixedGo Free, BSD -style
gplexDFA C# Mixed.NET CLR Free, BSD -подобный
JFlexDFA Java MixedJava virtual machine Free, BSD
JLexDFA Java смешанныйвиртуальная машина Java бесплатно, BSD -подобный
lex DFA C смешанныйPOSIX частичный, проприетарный, CDDL
lexertlDFA C++ ?Всебесплатно, GNU LGPL
QuexDFA прямой кодC, C ++ СмешанныйВсеБесплатно, GNU LGPL
Ragel DFA Go, C, C ++, сборка MixedAllFree, GNU GPL, MIT [1]
RE / flex DFA прямой код, управляемые таблицей DFA и NFA библиотеки регулярных выраженийC ++ СмешанноеВсеБесплатно, BSD
re2c DFA прямой кодC СмешанныйВсеБесплатно, общественное достояние
Детерминированные контекстно-свободные языки

Контекстно-свободные языки - это категория языков (иногда называемый Тип 2 Хомского ), которому может соответствовать последовательность правил замены, каждое из которых по существу отображает каждый нетерминальный элемент на последовательность конечных элементов и / или других нетерминальных элементов. Грамматики этого типа могут соответствовать чему угодно, чему может соответствовать обычная грамматика, и, кроме того, могут обрабатывать концепцию рекурсивного "вложения" ("за каждым A в конечном итоге следует соответствующее B"), например вопрос о том, содержит ли данная строка правильно вложенные скобки. Однако правила контекстно-свободных грамматик являются чисто локальными и поэтому не могут обрабатывать вопросы, требующие нелокального анализа, такие как «Существует ли объявление для каждой переменной, которая используется в функции?». Для этого технически потребуется более сложная грамматика, такая как грамматика Хомского типа 1, также называемая контекстно-зависимой грамматикой. Однако генераторы парсеров для контекстно-свободных грамматик часто поддерживают возможность написанного пользователем кода вводить ограниченное количество контекстной чувствительности. (Например, обнаружив объявление переменной, написанный пользователем код может сохранить имя и тип переменной во внешней структуре данных, чтобы их можно было проверить на соответствие более поздним ссылкам на переменные, обнаруженным анализатором.)

детерминированные контекстно-свободные языки представляют собой надлежащее подмножество контекстно-свободных языков, которые могут быть эффективно проанализированы детерминированными автоматами выталкивания.

ИмяПарсинг алгоритмомВходная нотация грамматикиЯзыки вывода Грамматика, кодLexer Платформа разработкиIDE Лицензия
AGLGLR EBNF Java, JavaScript, (другие цели Kotlin)ОтдельнонетЛюбая целевая платформа KotlinNoБесплатно, Apache 2.0
ANTLR 4Адаптивный LL (*)EBNF C#, Java, Python, JavaScript, C ++, Swift, Go, PHP Отдельнаясгенерированнаявиртуальная машина Java ДаБесплатно, BSD
ANTLR 3LL (*)EBNF ActionScript, Ada95, C, C ++, C#, Java, JavaScript, Objective-C, Perl, Python, Ruby Mixedсгенерированныйвиртуальная машина Java ДаБесплатно, BSD
APGРекурсивный спуск, возврат ABNF C, C ++, JavaScript, Java ОтдельныйнетВсеNoБесплатно, GNU GPL
AstirLL (k), LL (конечный), LL (*)Иерархическая грамматика AstirC ++ Только грамматика (задействована)сгенерированаВсеКод Visual Studio Бесплатно, MIT
AXРекурсивный спуск AX / C ++C ++ 17, C++11 MixednoneAny со стандартным компилятором C ++ 17 или C ++ 11 NoFree, Boost
BeaverLALR (1)EBNF Java Смешаннаявнешняявиртуальная машина Java NoFree, BSD
BelrРекурсивный спуск ABNF C ++ 17, C++11 Отдельновключая dedPOSIX NoPartial, GNU GPL, проприетарный
Bison LALR (1), LR (1), ( 1), GLR Yacc C, C ++, Java MixedexternalAllNoFree, GNU GPL с исключением
Bison++LALR (1)?C++ MixedexternalPOSIX NoFree, GNU GPL
Bisonc ++LALR (1)?C ++ MixedexternalPOSIX NoFree, GNU GPL
BtYacc Отслеживание с возвратом Внизу-вверх ?C++ СмешанноевнешнееВсеNoБесплатно, общественное достояние
byacc LALR (1)Yacc C СмешанныйвнешнийВсеNoБесплатно, общественное достояние
BYACC / JLALR (1)Yacc C, Java MixedexternalAllNoFree, public domain
CL-YaccLALR (1)Lisp Common Lisp MixedexternalAllNoFree, MIT
Coco / R LL (1)EBNF C, C ++, C#, F#, Java, Ada, Object Pascal, Delphi, Modula-2, Oberon, Ruby, Swift, Unicon, Visual Basic.NET смешанныйсгенерированнаявиртуальная машина Java, .NET Framework, Windows, POSIX (зависит от языка вывода)NoБесплатно, GNU GPL
CookCCLALR (1)Аннотации JavaJava Смешанныесгенерированныевиртуальные Java машина Noбесплатно, Apache 2.0
CppCCLL (k)?C++ MixedсгенерированоPOSIX Noбесплатно, GNU GPL
CSPLR (1)?C ++ ОтдельныйсгенерированныйPOSIX NoFree, Apache 2.0
CUPLALR (1)?Java Смешаннаявнешняявиртуальная машина Java NoБесплатная, BSD -подобная
DragonLR (1), LALR (1)?C ++, Java ОтдельносгенерированоВсеNoБесплатно, GNU GPL
eliLALR (1)?C СмешанныйсгенерированныйPOSIX NoFree, GNU GPL, GNU LGPL
СущностьLR (?)?Схема 48 СмешаннаявнешнийВсеNoБесплатно, BSD
eyappLALR (1)?Perl Mixedвнешний или сгенерированныйВсеNoСвободный, Художественный
FrownLALR (k)?Haskell 98 СмешанныйexternalВсеNoБесплатно, GNU GPL
geyaccLALR (1)?Eiffel MixedexternalВсеNoБесплатно, MIT
GOLD LALR (1)BNFассемблер x86, ANSI C, C#, D, Java, Pascal, Object Pascal, Python, Visual Basic 6, Visual Basic.NET, Visual C ++ ОтдельносгенерированоWindows ДаБесплатно, zlib изменено
GPPGLALR (1)Yacc C# ОтдельновнешнееWindows ДаБесплатно, BSD
Grammatica LL (k)Диалект BNFC#, Java Отдельносгенерированныйвиртуальная машина Java NoБесплатно, BSD
HiLexedLL (*)EBNF или JavaJava ОтдельновнутреннийВиртуальная машина Java NoБесплатно, GNU LGPL
Генератор парсера HimeLALR (1), GLR диалект BNFC#, Java, Rust Отдельныйсгенерированный.NET Framework, виртуальная машина Java NoБесплатно, GNU LGPL
HyaccLR (1), LALR (1), LR (0)Yacc C СмешанныйвнешнийВсеNoБесплатно, GNU GPL
iyaccLALR (1)Yacc Icon MixedexternalAllNoFree, GNU LGPL
jaccLALR (1)?Java MixedexternalJava virtual machine NoFree, BSD
JavaCC LL (k)EBNF Java, C ++, JavaScript (через GWT compiler)Смешанныйсгенерированавиртуальная машина Java ДаБесплатно, BSD
jayLALR (1)Yacc C#, Java Mixedнетвиртуальная машина Java NoБесплатно, BSD
JFLAP LL (1), LALR (1)?Java ??Виртуальная машина Java Да?
JetPAG LL (k)?C ++ СмешанныйсгенерированоВсеNoБесплатно, GNU GPL
JS / CCLALR (1)EBNF JavaScript, JScript, ECMAScript MixedinternalAllДаFree, BSD
KDevelop-PG-QtLL (1), backtracking, shunting-yard ?C++ Mixedсгенерированный или внешнийВсе, KDE NoБесплатно, GNU LGPL
KelbtОтслеживание с возвратом LALR (1)?C ++ СмешанноесгенерированоPOSIX Noбесплатно, GNU GPL
kmyaccLALR (1)?C, Java, Perl, JavaScript СмешанныйвнешнийВсеNoБесплатно, GNU GPL
LapgLALR (1)?C, C ++, C#, Java, JavaScript Mixedсгенерированныйвиртуальная машина Java NoFree, GNU GPL
Lemon LALR (1)?C СмешанныйвнешнийВсеNoБесплатно, общественное достояние
LimeLALR (1)?PHP СмешанныйвнешнийВсеNoБесплатно, GNU GPL
LISALR (?), LL ( ?), LALR (?), SLR (?)?Java Mixedсгенерированныйвиртуальная машина Java Дабесплатно, общественное достояние
LLgenLL (1)?C смешанноевнешнееPOSIX Noбесплатно, BSD
LLnextgenLL (1)?C MixedexternalAllNoFree, GNU GPL
LLLPGLL (k) + синтаксис и семантические предикатыANTLR-подобныеC# Смешанныесгенерированные (?).NET Framework, Mono Visual Studio Бесплатно, GNU LGPL
LPGОтслеживание с возвратом LALR (k)?Java Смешанноесгенерированноевиртуальная машина Java NoБесплатно, EPL
LRSTARLALR (*), LR (*)YACC, ANTLR, EBNFC ++ разделенныйсгенерированныйWindowsVisual Studio BSD
MenhirLR (1)?OCaml смешанныйсгенерированныйВсеNoБесплатно, QPL
ML-YaccLALR (1)?ML MixedexternalВсеNo?
MonkeyLR (1)?Java ОтдельныйсгенерированоВиртуальная машина Java NoБесплатно, GNU GPL
MstaLALR (k), LR (k)YACC, EBNF C, C ++ Смешанныйвнешний или сгенерированныйPOSIX, Cygwin NoFree, GNU GPL
MTP (больше, чем парсинг)LL (1)?Java Отдельнаясгенерированнаявиртуальная машина Java NoБесплатно, GNU GPL
MyParserLL (*)Markdown C ++ 11 ОтдельныйвнутреннийЛюбой со стандартным компилятором C ++ 11NoFree, MIT
NLTGLR C# /BNF -likeC# Mixedmixed.NET Framework NoFree, MIT
ocamlyaccLALR (1)?OCaml СмешанныйвнешнийВсеNoСвободный, QPL
olexLL (1)?C ++ СмешанныйсгенерированоВсеNoБесплатно, GNU GPL
ParsecLL, с возвратом Haskell Haskell СмешанноенетВсеNoБесплатно, BSD
Parse::YappLALR (1)?Perl MixedexternalВсеNoБесплатно, GNU GPL
Объекты синтаксического анализатораLL (k)?Ja va Смешанная?виртуальная машина Java NoБесплатно, zlib
PCCTSLL ?C, C ++ ??ВсеNo?
PLY LALR (1)BNFPython СмешанныйсгенерированныйВсеNoБесплатно, MIT
PlyPlusLALR (1)EBNFPython ОтдельносгенерированоВсеNoБесплатно, MIT
PRECCLL (k)?C ОтдельносгенерированоDOS, POSIX NoFree, GNU GPL
QLALRLALR (1)?C ++ СмешанныйвнешнийВсеNoБесплатно, GNU GPL
SableCC LALR (1)?C, C ++, C#, Java, OCaml, Python Отдельныйсгенерированныйвиртуальная машина Java NoБесплатно, GNU LGPL
SLKLL (k) LR (k) LALR (k)EBNF C, C ++, C#, Java, JavaScript ОтдельныйвнешнийВсеNoSLK
SLY LALR (1)BNFPython СмешанныйсгенерированныйВсеNoБесплатно, MIT
SP (Simple Parser)Рекурсивный спуск Python Python ОтдельноgeneratedAllNoFree, GNU LGPL
Spirit Рекурсивный спуск ?C ++ СмешанныйвнутреннийВсеNoБесплатно, Boost
StyxLALR (1)?C, C++ SeparategeneratedВсеNoБесплатно, GNU LGPL
Sweet ParserLALR (1)?C ++ ОтдельносгенерированоWindows NoБесплатно, zlib
НажмитеLL (1)?C ++ СмешанныйсгенерированныйВсеNoБесплатно, GNU GPL
TextTransformerLL (k)?C ++ СмешанныйсгенерированныйWindows ДаСобственный
TinyPGLL (1)?C#, Visual Basic ??Windows ДаЧастичный, CPOL 1.0
Рекурсивный спуск ?Python СмешанныйсгенерированныйВсеNoБесплатно, GNU LGPL
TP YaccLALR (1)?Turbo Pascal СмешанныйвнешнийВсеДаБесплатно, GNU GPL
Tunnel Grammar StudioРекурсивный спуск, с возвратом ABNF C ++ ОтдельносгенерированоWindows ДаСобственный
UltraGramLALR (1), LR (1), GLR BNF C ++, Java, C #, Visual Basic.NETОтдельновнешняяWindows ДаБесплатно, общественное достояние
UniCCLALR (1)EBNF C, C ++, Python, JavaScript, JSON, XML смешанныйсгенерированоPOSIX Noбесплатно, BSD
LL (1)?Java?сгенерировановиртуальная машина Java No?
WhaleLR (?), Некоторая конъюнктивная прочее, см. Whale Calf?C ++ MixedexternalAllNoProprietary
wisentLALR (1)?C ++, Java MixedexternalAllNoFree, GNU GPL
Yacc ATT / Sun LALR (1)Yacc C MixedexternalPOSIX NoFree, CPL CDDL
Yacc ++LR (1), LALR (1)Yacc C++, C# Mixedсгенерированный или внешнийВсеNoСобственный
YappsLL (1)?Python СмешанныйсгенерированныйВсеNoБесплатно, MIT
yeccLALR (1)?Erlang ОтдельносгенерированоВсеNoБесплатно, Apache 2.0
LR (1), LALR (1)?C# Отдельныйсгенерированный.NET Framework ДаСобственный
YooParseLR (1), LALR (1)?C++ MixedexternalAllNoFree, MIT
Анализировать LR (1)BNF в C++ типах??нетстандартный компилятор C ++ 11NoБесплатно, MIT
GGLLLL (1)GraphJava MixedgeneratedWindows ДаБесплатно, MIT
ПродуктПарсинг алгоритмНотация грамматики вводаЯзыки вывода Грамматика, кодLexer Платформа разработкиIDE Лицензия
Анализ грамматик выражений, детерминированные логические грамматики

В этой таблице сравниваются генераторы синтаксического анализатора с грамматиками синтаксического анализа, детерминированными логическими грамматиками.

ИмяРазбор алгоритмЯзыки вывода Грамматика, кодПлатформа разработкиЛицензия
AustenXPackrat (измененная)Java ОтдельноВсеБесплатно, BSD
AurochsPackratC, OCaml, Java MixedAllFree, GNU GPL
BNFliteРекурсивный спускC ++ СмешанныйВсеБесплатно, MIT
CanopyPackratJava, JavaScript, Python, Ruby ОтдельноВсебесплатно, GNU GPL
CL-pegPackratCommon Lisp MixedAllFree, MIT
Drat!PackratD MixedAllFree, GNU GPL
FrisbyPackratHaskell MixedВсебесплатно, BSD
грамма::peg PackratTcl MixedВсебесплатно, BSD
GrakoPackrat + Cut + Left RecursionPython, C++ (beta)ОтдельноВсеБесплатно, BSD
IronMetaPackratC# СмешанноеWi ndows Бесплатно, BSD
Laja2-фазный без сканирования сверху вниз с возвратом + поддержка времени выполненияJava ОтдельноВсеБесплатно, GNU GPL
lars :: ParserPackrat (с поддержкой левой рекурсии и двусмысленности грамматики)C ++ ИдентичныйВсеБесплатно, BSD
LPegМашина синтаксического анализаLua СмешанноеВсеБесплатно, MIT
lugМашина синтаксического анализаC ++ 17 СмешанноеВсеБесплатно, MIT
МышьРекурсивный спускJava Отдельнаявиртуальная машина Java Бесплатно, Apache 2.0
НарвалPackratC СмешанныйPOSIX, Windows Free, BSD
NearleyEarley JavaScript MixedВсеБесплатно, MIT
Nemerle.PegРекурсивный спуск + PrattNemerle ОтдельноВсеБесплатно, BSD
neotomaPackratErlang SeparateAllFree, MIT
NPEGRecur sive descentC# MixedAllFree, MIT
OMeta Packrat (модифицированный, частичная мемоизация)JavaScript, Squeak, Python MixedAllFree, MIT
PackCC Packrat (изменено)C MixedВсеБесплатно, MIT
PackratPackratScheme MixedAllFree, MIT
Pappy PackratHaskell MixedAllFree, BSD
parboiled Рекурсивный спускJava, Scala Смешаннаявиртуальная машина Java Бесплатно, Apache 2.0
Lambda PEGРекурсивный спускJava Смешаннаявиртуальная машина Java Бесплатно, Apache 2.0
parseppРекурсивный спускC ++ СмешаннаяВсеБесплатно, общественное достояние
ParsnipPackratC ++ СмешанноеWindows Бесплатно, GNU GPL
Шаблоны Машина синтаксического анализаSwift ИдентичныйВсеБесплатно, MIT
pegРекурсивный спускC СмешанныйВсеБесплатно, MIT
PEG.jsPackrat (частичная мемоизация)JavaScript СмешанныйВсеБесплатно, MIT
ПегасРекурсивный спуск, Packrat (выборочно)C# СмешанноеWindows Бесплатно, MIT
pegcРекурсивный спускC СмешанныйВсеБесплатно, общественное достояние
pest Рекурсивный спускRust ОтдельноВсеБесплатно, MPL
PetitParserPackratSmalltalk, Java, Dart MixedAllFree, MIT
PEGTLРекурсивный спускC ++ 11 СмешанныйВсеБесплатно, MIT
Parser Grammar Engine (PGE)Гибридный рекурсивный спуск / приоритет операторабайт-код Parrot СмешаннаяВиртуальная машина Parrot Бесплатная, Художественная 2.0
PyPy rlibPackratPython СмешаннаяВсеБесплатно, MIT
Rats!PackratJava MixedJava virtua l машина Бесплатно, GNU LGPL
Spirit2Рекурсивный спускC ++ СмешанноеВсеБесплатно, Boost
Treetop Рекурсивный спускRuby MixedAllFree, MIT
YardРекурсивный спускC ++ СмешанныйВсеБесплатно, MIT или общественное достояние
WaxeyeМашина синтаксического анализаC, Java, JavaScript, Python, Racket, Ruby ОтдельноВсеБесплатно, MIT
PHP PEGPEG Parser?PHP MixedAllFree, BSD
Общие контекстно-свободные, конъюнктивные или логические языки

В этой таблице сравниваются языки-генераторы синтаксического анализатора с общей контекстно-свободной грамматикой, конъюнктивной грамматикой или логическая грамматика.

ИмяАнализ алгоритмНотация входной грамматикиЯзыки вывода Грамматика, кодLexer Платформа разработкиIDE Лицензия
ACCENTEarley Yacc вариантC СмешанныйвнешнийВсеNoБесплатно, GNU GPL
APaGeDGLR, LALR (1), LL (k)?D MixedgeneratedAllNoFree, Artistic
Bison LALR (1), LR (1), (1), GLR Yacc C, C ++, Java, XML Смешанный, кроме XMLвнешнийВсеNoБесплатно, GNU GPL
DMS Software Reengineering Toolkit GLR ?Parlanse СмешанныйсгенерированоWindows NoСобственное
DParserGLR без сканирования ?C Смешанноебез сканирования POSIX NoБесплатно, BSD
DypgenРасширяемый во время выполнения GLR ?OCaml СмешанныйсгенерированныйВсеNoБесплатно, CeCILL -B
E3Эрли ?OCaml Смешанныйвнешний или без сканераВсеNo?
ElkhoundGLR ?C ++, OCaml СмешанныйвнешнийВсеNoБесплатно, BSD
GDKLALR (1), GLR ?C, Lex, Haskell, HTML, Java, Объект Pascal, Yacc MixedсгенерированоPOSIX NoFree, MIT
HappyLALR, GLR ?Haskell MixedexternalAllNoFree, BSD
Hime Parser GeneratorGLR ?C#, Java, Rust Отдельныйсгенерированный.NET Framework, виртуальная машина Java NoБесплатно, GNU LGPL
Библиотека IronTextLALR (1), GLR C# C# Mixedсгенерированный или внешний.NET Framework NoFree, Apache 2.0
JisonLALR (1), LR (0), SLR (1)Yacc JavaScript, C#, PHP MixedсгенерированоВсеNoСвободно, MIT
СинтаксисLALR (1), LR (0), SLR ( 1) CLR (1) LL (1)JSON / Yacc JavaScript, Python, PHP, Ruby, C#, Rust, Java MixedgeneratedAllNoFree, MIT
LajaБез сканера, двухфазныйLajaJava Отдельныйсканер ess ВсеNoБесплатно, GNU GPL
ModelCCEarley Модель классов с аннотациямиJava СгенерированосгенерированоВсеNoБесплатно, BSD
P3Earley–комбинаторыBNF-likeOCaml Смешанныевнешние или без сканераВсеNo?
P4Комбинаторы Эрли, бесконечные CFGBNF-подобныеOCaml Смешанныевнешние или без сканированияВсеNo?
Булевский синтаксический анализатор без сканирования GLR без сканирования (логические грамматики )?Haskell, Java Отдельнобез сканирования виртуальная машина Java Noбесплатно, BSD
SDF / SGLRБез сканера GLR SDF C, Java Отдельнобез сканера ВсеДаБесплатно, BSD
SmaCCGLR (1), LALR (1), LR (1)?Smalltalk СмешанныйвнутреннийВсеДаБесплатно, MIT
SPARKEarley ?Python MixedвнешнийВсеNoБесплатно, MIT
TomGLR ?C GeneratedнетВсеNoFree, «Отсутствие лицензионных или авторских ограничений»
UltraGramLALR, LR, GLR ?C ++, C#, Java, Visual Basic.NET ОтдельныйсгенерированныйWindows ДаСобственный
WormholeУдаление, LR, GLR, GLR без сканирования ?C, Python Смешанныйбез сканера Windows NoFree, MIT
Whale CalfОбщая табличная, SLL (k), линейная нормальная форма (конъюнктивные грамматики ), LR, двоичная нормальная форма (логические грамматики )?C ++ отдельныевнешниевсеNoпроприетарные
yaepEarley Yacc -подобныйC СмешанныйвнешнийВсеNoБесплатно, GNU LGPL
Контекстно-зависимые грамматики

В этой таблице сравнивается генераторы парсеров с контекстно-зависимыми грамматиками.

ИмяАлгоритм синтаксического анализаНотация входной грамматикиВозможности логической грамматикиПлатформа разработкиЛицензия
LuZcдельта-цепочкамодульнаяКонъюнктивная, а не дополнительнаяPOSIX Собственная
bnf2xml Рекурсивный спуск (вывод текстового фильтра - xml)простая грамматика BNF (входное соответствие), вывод xml?Бета, а не полный анализатор EBNFБесплатно, GNU GPL
См. также
Примечания
  1. ^Bison 1.19 fork
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-15 08:04:43
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте