파서발생기 비교

Comparison of parser generators

이것은 다양한 언어 수업을 위한 주목할 만한 렉서 생성기파서 생성기의 목록입니다.

일반언어

정규 언어는 정규식으로 구성된 상태 기계(구체적으로 결정론적 유한 오토마톤 또는 비결정론적 유한 오토마톤)에 의해 일치할 수 있는 언어 범주(때로는 촘스키 유형 3이라고도 함)입니다.특히, 일반 언어는 "A는 B를 따른다", "A 또는 B 중 하나", "A 다음에 0 또는 그 이상의 B 인스턴스가 있다"와 같은 구문과 일치할 수 있지만, "A의 일부 인스턴스와 B의 인스턴스 수가 같다"와 같이 인접하지 않은 요소 간의 일관성을 요구하는 구문과 일치할 수는 없습니다.그리고 또한 재귀적 "네스팅"의 개념을 표현할 수 없습니다("모든 A는 결국 일치하는 B 뒤에 온다").정규 문법이 다룰 수 없는 문제의 전형적인 예는 주어진 문자열에 정확하게 내포된 괄호가 포함되어 있는지의 문제입니다.(이것은 일반적으로 맥락이 없는 문법이라고도 불리는 촘스키 타입 2 문법으로 다루어집니다.)

이름. 렉서 알고리즘 출력 언어 문법,코드 개발플랫폼 면허증.
알렉스야. DFA 해스켈 혼합된 모든. 무료, BSD
아노플렉스 DFA 자바 혼합된 자바 가상 머신 무료, BSD
애스티르 DFA 테이블 구동(브랜치 포함) C++ 문법만(동작) 모든. 무료, MIT
오스틴X DFA 자바 분리된 모든. 무료, BSD
C# 플렉스 DFA C# 혼합된 .NET CLR 무료, GNU GPL
C# 렉스 DFA C# 혼합된 .NET CLR ?
카르부레타 DFA C, C++ 혼합된 모든. 무료, Apache 2.0
쿡씨씨 DFA 자바 혼합된 자바 가상 머신 무료, Apache 2.0
DFA DFA 압축 행렬 C, C++ 분리된 윈도우, 비주얼 스튜디오 BSD
돌고래. DFA C++ 분리된 모든. 사유지
플렉스 DFA 테이블 구동 C, C++ 혼합된 모든. 무료, BSD
겔렉스 DFA 에펠 혼합된 에펠 무료, MIT
골렉스 DFA 가세요 혼합된 가세요 무료 BSD 스타일
gplex DFA C# 혼합된 .NET CLR 무료, BSD같은
제이플렉스 DFA 자바 혼합된 자바 가상 머신 무료, BSD
제이렉스 DFA 자바 혼합된 자바 가상 머신 무료, BSD같은
렉스 DFA C 혼합된 포식스 부분, 독점 CDDL
렉서틀 DFA C++ ? 모든. 무료, GNU LGPL
퀼스 DFA 다이렉트 코드 C, C++ 혼합된 모든. 무료, GNU LGPL
라젤 DFA 이동, C, C++ 어셈블리 혼합된 모든. 무료, GNU GPL, MIT[1][2]
RE/flex DFA 직접 코드, DFA 테이블 구동 및 NFA regex 라이브러리 C++ 혼합된 모든. 무료, BSD
re2c DFA 다이렉트 코드 C, C++, Go, Rust 혼합된 모든. 무료 퍼블릭 도메인

결정론적 문맥 자유 언어

문맥이 없는 언어는 일련의 대체 규칙에 의해 매칭될 수 있는 언어의 범주(때로는 촘스키 유형 2라고도 함)이며, 각 언어는 본질적으로 각 비단자 요소를 일련의 터미널 요소 및/또는 기타 비단자 요소에 매핑합니다.이 유형의 문법은 정규 문법과 일치할 수 있는 모든 것과 일치할 수 있으며, 또한 주어진 문자열에 정확하게 내포된 괄호가 포함되어 있는지의 문제와 같은 재귀적 "네스팅"("모든 A에는 결국 일치하는 B"가 뒤따른다)의 개념을 처리할 수 있습니다.그러나 컨텍스트 프리 문법의 규칙은 순수하게 로컬이므로 "함수에 사용되는 모든 변수에 대해 선언이 존재합니까?"와 같이 로컬이 아닌 분석이 필요한 질문은 처리할 수 없습니다.기술적으로 그렇게 하기 위해서는 상황에 민감한 문법이라고 불리는 촘스키 타입 1 문법과 같은 더 정교한 문법이 필요할 것입니다.그러나 문맥이 없는 문법을 위한 파서 생성기는 종종 사용자가 작성한 코드가 제한된 양의 문맥 민감도를 도입하는 기능을 지원합니다. (예를 들어, 변수 선언을 접했을 때, 사용자가 작성한 코드는 변수의 이름과 유형을 외부 데이터 구조에 저장할 수 있습니다.파서에 의해 탐지된 이후의 변수 참조와 대조할 수 있도록 합니다.)

결정론적 문맥 자유 언어는 결정론적 푸시다운 오토마타에 의해 효율적으로 파싱될 수 있는 문맥 자유 언어의 적절한 하위 집합입니다.

이름. 파싱 알고리즘 입력문법표기 출력 언어 문법,코드 렉서 개발플랫폼 IDE 면허증.
ANTLR4 적응형 LL(*)[3] EBNF C#, 자바, 파이썬, 자바스크립트, C++, 스위프트, Go, PHP 분리된 생성된 자바 가상 머신 네. 무료, BSD
ANTLR3 LL(*) EBNF 액션스크립트, Ada95, C, C++, C#, Java, JavaScript, Objective-C, Perl, Python, Ruby 혼합된 생성된 자바 가상 머신 네. 무료, BSD
APG[4] 재귀적 하강, 역추적 ABNF 파이썬, 자바스크립트, C, 자바 분리된 없음. 모든. 아니요. 무료, BSD
비버[5][6] LALR(1) EBNF 자바 혼합된 외부의 자바 가상 머신 아니요. 무료, BSD
들소 LALR(1), LR(1), IELR(1), GLR 야크 C, C++, Java 혼합된 외부의 모든. 아니요. 무료, GNU GPL(예외 제외)
BtYacc 역추적 상향식 ? C++ 혼합된 외부의 모든. 아니요. 무료 퍼블릭 도메인
과오로 LALR(1) 야크 C 혼합된 외부의 모든. 아니요. 무료 퍼블릭 도메인
CL-Yacc[7][8] LALR(1) 리스프 커먼 리스프 혼합된 외부의 모든. 아니요. 무료, MIT
코코/R LL(1) EBNF C, C++, C#, F#, 자바, 에이다, 오브젝트 파스칼, 델파이, Modula-2, 오베론, 루비, 스위프트, 유니콘, Visual Basic .NET 혼합된 생성된 Java 가상 시스템, .NET 프레임워크, Windows, POSIX(출력 언어에 따라 다름) 아니요. 무료, GNU GPL
CppCC[9][10] LL(k) ? C++ 혼합된 생성된 포식스 아니요. 무료, GNU GPL
[11][12] LALR(1) ? 자바 혼합된 외부의 자바 가상 머신 아니요. 무료, BSD같은
일라이[13][14] LALR(1) ? C 혼합된 생성된 포식스 아니요. 무료, GNU GPL, GNU LGPL
에센스[15] LR(?) ? 도식 48 혼합된 외부의 모든. 아니요. 무료, BSD
eyapp[16] LALR(1) ? 혼합된 외부 또는 생성된 모든. 아니요. 자유, 예술성
찡그린 얼굴 LALR(k) ? 해스켈 98 혼합된 외부의 모든. 아니요. 무료, GNU GPL
게이악 LALR(1) ? 에펠 혼합된 외부의 모든. 아니요. 무료, MIT
골드 LALR(1) BNF x86 어셈블리 언어, ANSIC, C#, D, 자바, 파스칼, 오브젝트 파스칼, 파이썬, 비주얼 베이직 6, 비주얼 베이직NET, 비주얼 C++ 분리된 생성된 창문들 네. 자유, zlib 수정
GPPG LALR(1) 야크 C# 분리된 외부의 창문들 네. 무료, BSD
그라마티카 LL(k) BNF 방언 C#, 자바 분리된 생성된 자바 가상 머신 아니요. 무료, BSD
하이렉시드 LL(*) EBNF for Java 자바 분리된 내부의 자바 가상 머신 아니요. 무료, GNU LGPL
히메 파서 발생기 LALR(1), GLR BNF 방언 C#, 자바, 분리된 생성된 .NET 프레임워크, Java 가상 시스템 아니요. 무료, GNU LGPL
히악 LR(1), LALR(1), LR(0) 야크 C 혼합된 외부의 모든. 아니요. 무료, GNU GPL
iyacc LALR(1) 야크 아이콘 혼합된 외부의 모든. 아니요. 무료, GNU LGPL
재크 LALR(1) ? 자바 혼합된 외부의 자바 가상 머신 아니요. 무료, BSD
자바CC LL(k) EBNF 자바, C++, 자바스크립트 (GWT [17]컴파일러 경유) 혼합된 생성된 자바 가상 머신 네. 무료, BSD
제이 LALR(1) 야크 C#, 자바 혼합된 없음. 자바 가상 머신 아니요. 무료, BSD
제이플랩 LL(1), LALR(1) ? 자바 ? ? 자바 가상 머신 네. ?
제트파그 LL(k) ? C++ 혼합된 생성된 모든. 아니요. 무료, GNU GPL
JS/CC LALR(1) EBNF 자바스크립트, J스크립트, ECMA스크립트 혼합된 내부의 모든. 네. 무료, BSD
K개발-PG-Qt LL(1), 역추적, 션트 야드 ? C++ 혼합된 생성 또는 외부 모두, KDE 아니요. 무료, GNU LGPL
켈트 역추적 LALR(1) ? C++ 혼합된 생성된 포식스 아니요. 무료, GNU GPL
kmyacc LALR(1) ? C, 자바, , 자바스크립트 혼합된 외부의 모든. 아니요. 무료, GNU GPL
라프그 LALR(1) ? C, C++, C#, 자바, 자바스크립트 혼합된 생성된 자바 가상 머신 아니요. 무료, GNU GPL
종달새 LALR(1) EBNF 파이썬, 자바스크립트 혼합된 생성된 모든. 네. 무료, MIT
레몬 LALR(1) ? C 혼합된 외부의 모든. 아니요. 무료 퍼블릭 도메인
라임 LALR(1) ? PHP 혼합된 외부의 모든. 아니요. 무료, GNU GPL
리사 LR(?), LL(?), LALR(?), SLR(?) ? 자바 혼합된 생성된 자바 가상 머신 네. 무료 퍼블릭 도메인
LLgen LL(1) ? C 혼합된 외부의 포식스 아니요. 무료, BSD
LL넥스트젠 LL(1) ? C 혼합된 외부의 모든. 아니요. 무료, GNU GPL
LLLPG LL(k) + 구문 및 의미 술어 ANTLR같은 C# 혼합된 생성된(?) .NET 프레임워크, Mono 비주얼 스튜디오 무료, GNU LGPL
LPG 역추적 LALR(k) ? 자바 혼합된 생성된 자바 가상 머신 아니요. 무료, EPL
LRSTAR LALR(1), LALR(*) YACC, ANTLR, EBNF C++ 분리된 생성된 창문들 비주얼 스튜디오 무료, BSD
멘히르 LR(1) ? OCaml 혼합된 생성된 모든. 아니요. 무료, QPL
ML-야크 LALR(1) ? ML 혼합된 외부의 모든. 아니요. ?
몽키 LR(1) ? 자바 분리된 생성된 자바 가상 머신 아니요. 무료, GNU GPL
엠스타 LALR(k), LR(k) YACC, EBNF C, C++ 혼합된 외부 또는 생성된 포식스, 시그윈 아니요. 무료, GNU GPL
MTP(파싱 이상) LL(1) ? 자바 분리된 생성된 자바 가상 머신 아니요. 무료, GNU GPL
마이파서 LL(*) 마크다운 C++11 분리된 내부의 표준 C++11 컴파일러를 사용하는 모든 기능 아니요. 무료, MIT
NLT GLR C#/BNF같은 C# 혼합된 혼혈의 .NET 프레임워크 아니요. 무료, MIT
냉담하게 LALR(1) ? OCaml 혼합된 외부의 모든. 아니요. 무료, QPL
올렉스 LL(1) ? C++ 혼합된 생성된 모든. 아니요. 무료, GNU GPL
파섹 LL, 역추적 해스켈 해스켈 혼합된 없음. 모든. 아니요. 무료, BSD
[16] LALR(1) ? 혼합된 외부의 모든. 아니요. 무료, GNU GPL
파서 개체 LL(k) ? 자바 혼합된 ? 자바 가상 머신 아니요. 프리, zlib
PCCTS LL ? C, C++ ? ? 모든. 아니요. ?
PLY LALR(1) BNF 파이썬 혼합된 생성된 모든. 아니요. 무료, MIT
플라이플러스 LALR(1) EBNF 파이썬 분리된 생성된 모든. 아니요. 무료, MIT
PRECC LL(k) ? C 분리된 생성된 도스, 포식스 아니요. 무료, GNU GPL
라크[18] LALR(1) BNF같은 yacc같은[19] 루비 혼합된 ? Windows, Linux, macOS, FreeBSD, NetBSD 아니요. LGPL
QLALR LALR(1) ? C++ 혼합된 외부의 모든. 아니요. 무료, GNU GPL
세이블CC LALR(1) ? C, C++, C#, Java, OCaml, Python 분리된 생성된 자바 가상 머신 아니요. 무료, GNU LGPL
SLK[20] LL(k) LR(k) LALR(k) EBNF C, C++, C#, 자바, 자바스크립트 분리된 외부의 모든. 아니요. SLK[21]
슬리[22] LALR(1) BNF 파이썬 혼합된 생성된 모든. 아니요. 무료, MIT
SP(심플파서) 재귀적 하강 파이썬 파이썬 분리된 생성된 모든. 아니요. 무료, GNU LGPL
정신 재귀적 하강 ? C++ 혼합된 내부의 모든. 아니요. 무료, 부스트
스틱스 LALR(1) ? C, C++ 분리된 생성된 모든. 아니요. 무료, GNU LGPL
스위트 파서 LALR(1) ? C++ 분리된 생성된 창문들 아니요. 프리, zlib
톡톡 두드리다 LL(1) ? C++ 혼합된 생성된 모든. 아니요. 무료, GNU GPL
문자 변환기 LL(k) ? C++ 혼합된 생성된 창문들 네. 사유지
타이니PG LL(1) ? C#, 비주얼 베이직 ? ? 창문들 네. 부분, CPOL 1.0
토이 파서 발생기 재귀적 하강 ? 파이썬 혼합된 생성된 모든. 아니요. 무료, GNU LGPL
TP Yacc LALR(1) ? 터보 파스칼 혼합된 외부의 모든. 네. 무료, GNU GPL
트리시터[23] LR(1), GLR 자바스크립트 DSL, JSON C, 바인딩(Rust, WebAssembly, JavaScript, Python 등) 분리된 생성된 + 외부 모든. 네오빔, 비주얼 스튜디오 코드 무료, MIT
터널 문법 스튜디오 터널 파싱 ABNF C++ 분리된 생성된 창문들 네. 사유지
울트라그램 LALR(1), LR(1), GLR BNF C++, Java, C#, Visual Basic .NET 분리된 외부의 창문들 네. 무료 퍼블릭 도메인
유니씨씨 LALR(1) EBNF C, C++, 파이썬, 자바스크립트, JSON, XML 혼합된 생성된 포식스 아니요. 무료, BSD
어친CC LL(1) ? 자바 ? 생성된 자바 가상 머신 아니요. ?
Yacc AT&T/선 LALR(1) 야크 C 혼합된 외부의 포식스 아니요. 무료, CPL & CDDL
Yacc++ LR(1), LALR(1) 야크 C++, C# 혼합된 생성 또는 외부 모든. 아니요. 사유지
얍스 LL(1) ? 파이썬 혼합된 생성된 모든. 아니요. 무료, MIT
yecc LALR(1) ? 얼랑 분리된 생성된 모든. 아니요. 무료, Apache 2.0
비주얼 BNF LR(1), LALR(1) ? C# 분리된 생성된 .NET 프레임워크 네. 사유지
유파르 LR(1), LALR(1) ? C++ 혼합된 외부의 모든. 아니요. 무료, MIT
파싱[24] LR(1) C++타입의 BNF ? ? 없음. C++11 표준 컴파일러 아니요. 무료, MIT
GGLL LL(1) 그래프 자바 혼합된 생성된 창문들 네. 무료, MIT
제품. 파싱 알고리즘 입력문법표기 출력 언어 문법,코드 렉서 개발플랫폼 IDE 면허증.

구문 분석 식 문법, 결정론적 부울 문법

이 표에서는 파서 생성기를 파싱문법, 결정론적 부울 문법과 비교합니다.

이름. 파싱 알고리즘 출력 언어 문법,코드 개발플랫폼 면허증.
오스틴X 팩쥐(수정) 자바 분리된 모든. 무료, BSD
오록스 팩쥐 C, OCaml, 자바 혼합된 모든. 무료, GNU GPL
BN플라이트 재귀적 하강 C++ 혼합된 모든. 무료, MIT
캐노피 팩쥐 자바, 자바스크립트, 파이썬, 루비 분리된 모든. 무료, GNU GPL
CL-peg 팩쥐 커먼 리스프 혼합된 모든. 무료, MIT
똥꼬! 팩쥐 D 혼합된 모든. 무료, GNU GPL
프리즈비 팩쥐 해스켈 혼합된 모든. 무료, BSD
문법::peg 팩쥐 Tcl 혼합된 모든. 무료, BSD
그라코 포장 쥐 + 자르기 + 왼쪽 재귀 파이썬, C++ (베타) 분리된 모든. 무료, BSD
아이언 메타 팩쥐 C# 혼합된 창문들 무료, BSD
라자 2상 스캐너리스 하향식 역추적 + 런타임 지원 자바 분리된 모든. 무료, GNU GPL
lars::파서 Packrat(좌측 재귀 및 문법 모호성 지원) C++ 동일한 모든. 무료, BSD
엘피그 파싱기 루아 혼합된 모든. 무료, MIT
러그 파싱기 C++17 혼합된 모든. 무료, MIT
마우스 재귀적 하강 자바 분리된 자바 가상 머신 무료, Apache 2.0
나르왈 팩쥐 C 혼합된 POSIX, 윈도우 무료, BSD
니얼리 얼리 자바스크립트 혼합된 모든. 무료, MIT
네메를레.페그 재귀적 하강 + Pratt 네메를레 분리된 모든. 무료, BSD
신토종 팩쥐 얼랑 분리된 모든. 무료, MIT
NPEG 재귀적 하강 C# 혼합된 모든. 무료, MIT
오메타 Packrat(수정, 부분 메모) 자바스크립트, 스퀴크, 파이썬 혼합된 모든. 무료, MIT
팩CC Packrat(수정된, 왼쪽 재귀 지원) C 혼합된 모든. 무료, MIT
팩쥐 팩쥐 스킴 혼합된 모든. 무료, MIT
패피 팩쥐 해스켈 혼합된 모든. 무료, BSD
데친 재귀적 하강 자바, 스칼라 혼합된 자바 가상 머신 무료, Apache 2.0
람다 PEG 재귀적 하강 자바 혼합된 자바 가상 머신 무료, Apache 2.0
파셉 재귀적 하강 C++ 혼합된 모든. 무료 퍼블릭 도메인
파르스닙 팩쥐 C++ 혼합된 창문들 무료, GNU GPL
패턴 파싱기 스위프트 동일한 모든. 무료, MIT
못을 박다 재귀적 하강 C 혼합된 모든. 무료, MIT
PEG.js 팩래트(부분 메모) 자바스크립트 혼합된 모든. 무료, MIT
페기[25] 팩래트(부분 메모) 자바스크립트 혼합된 모든. 무료, MIT
페가수스 재귀적 하강, Packrat(선택적) C# 혼합된 창문들 무료, MIT
페그크 재귀적 하강 C 혼합된 모든. 무료 퍼블릭 도메인
해충의 재귀적 하강 분리된 모든. 무료, MIT, Apache 2.0
쁘띠파서 팩쥐 스몰토크, 자바, 다트 혼합된 모든. 무료, MIT
PEGTL 재귀적 하강 C++11, C++17 혼합된 모든. 무료, 부스트
파서 문법 엔진(PGE) 하이브리드 재귀적 강하/연산자[26] 우선 순위 패럿 바이트코드 혼합된 가상 머신 패럿 무료, 아티스틱 2.0
파이필립 팩쥐 파이썬 혼합된 모든. 무료, MIT
쥐들아! 팩쥐 자바 혼합된 자바 가상 머신 무료, GNU LGPL
레멕스 재귀적 하강 자바 혼합된 자바 가상 머신 무료, Apache 2.0
정령2 재귀적 하강 C++ 혼합된 모든. 무료, 부스트
나무꼭대기 재귀적 하강 루비 혼합된 모든. 무료, MIT
마당 재귀적 하강 C++ 혼합된 모든. 무료, MIT 또는 퍼블릭 도메인
왁스아이 파싱기 C, 자바, 자바스크립트, 파이썬, 라켓, 루비 분리된 모든. 무료, MIT
PHP PEG PEG 파서? PHP 혼합된 모든. 무료, BSD

일반 문맥이 없는 언어, 접속사 또는 부울 언어

이 표에서는 구문 분석기 생성 언어를 일반 문맥이 없는 문법, 연결 문법 또는 부울 문법과 비교합니다.

이름. 파싱 알고리즘 입력문법표기 출력 언어 문법,코드 렉서 개발플랫폼 IDE 면허증.
악센트 얼리 Yacc 변형 C 혼합된 외부의 모든. 아니요. 무료, GNU GPL
APaGeD GLR, LALR(1), LL(k) ? D 혼합된 생성된 모든. 아니요. 자유, 예술성
들소 LALR(1), LR(1), IELR(1), GLR 야크 C, C++, Java, XML XML을 제외하고 혼합됨 외부의 모든. 아니요. 무료, GNU GPL
DMS 소프트웨어 리엔지니어링 툴킷 GLR ? 파란 혼합된 생성된 창문들 아니요. 사유지
디파서 스캐너리스 GLR ? C 혼합된 스캐너가 없는 포식스 아니요. 무료, BSD
디프겐 런타임 확장 가능 GLR ? OCaml 혼합된 생성된 모든. 아니요. 무료, CeCIL-B
E3 얼리 ? OCaml 혼합된 외부 또는 스캐너가 없는 모든. 아니요. ?
엘크하운드 GLR ? C++, OCaml 혼합된 외부의 모든. 아니요. 무료, BSD
GDK LALR(1), GLR ? C, Lex, Haskell, HTML, Java, Object Pascal, Yacc 혼합된 생성된 포식스 아니요. 무료, MIT
행복해 LALR, GLR ? 해스켈 혼합된 외부의 모든. 아니요. 무료, BSD
히메 파서 발생기 GLR ? C#, 자바, 분리된 생성된 .NET 프레임워크, Java 가상 시스템 아니요. 무료, GNU LGPL
철문 라이브러리 LALR(1), GLR C# C# 혼합된 생성 또는 외부 .NET 프레임워크 아니요. 무료, Apache 2.0
지손 LALR(1), LR(0), SLR(1) 야크 자바스크립트, C#, PHP 혼합된 생성된 모든. 아니요. 무료, MIT
구문 LALR(1), LR(0), SLR(1) CLR(1) LL(1) JSON/Yacc 자바스크립트, 파이썬, PHP, 루비, C++, C#, 녹, 자바 혼합된 생성된 모든. 아니요. 무료, MIT
라자 스캐너리스, 2상 라자 자바 분리된 스캐너가 없는 모든. 아니요. 무료, GNU GPL
모델CC 얼리 주석이 달린 클래스 모델 자바 생성됨 생성된 모든. 아니요. 무료, BSD
P3 얼리-콤비네이터 BNF같은 OCaml 혼합된 외부 또는 스캐너가 없는 모든. 아니요. ?
P4 얼리-콤비네이터, 무한 CFG BNF같은 OCaml 혼합된 외부 또는 스캐너가 없는 모든. 아니요. ?
스캐너리스 부울 파서 스캐너리스 GLR(Boolean 문법 ? 해스켈, 자바 분리된 스캐너가 없는 자바 가상 머신 아니요. 무료, BSD
SDF/SGLR 스캐너리스 GLR SDF C, 자바 분리된 스캐너가 없는 모든. 네. 무료, BSD
스마CC GLR(1), LALR(1), LR(1) ? 잡담 혼합된 내부의 모든. 네. 무료, MIT
스파크 얼리 ? 파이썬 혼합된 외부의 모든. 아니요. 무료, MIT
톰. GLR ? C 생성됨 없음. 모든. 아니요. 무료, "라이선스 또는 저작권 제한 없음"
울트라그램 LALR, LR, GLR ? C++, C#, Java, Visual Basic .NET 분리된 생성된 창문들 네. 사유지
웜홀 가지치기, LR, GLR, 스캐너리스 GLR ? C, 파이썬 혼합된 스캐너가 없는 창문들 아니요. 무료, MIT
고래송아지 일반표, SLL(k), 선형 정규형(접속 문법), LR, 이진 정규형(부울 문법) ? C++ 분리된 외부의 모든. 아니요. 사유지
얼리 야크 같은 C 혼합된 외부의 모든. 아니요. 무료, GNU LGPL

문맥에 민감한 문법

이 표는 구문 분석기 생성기와 문맥에 민감한 문법을 비교합니다.

이름. 파싱 알고리즘 입력문법표기 부울 문법 능력 개발플랫폼 면허증.
루즈크[27][28] 델타 사슬 모듈식의 상보적이 아닌 접속적 포식스 사유지
bnf2xml 재귀적 하강(텍스트 필터 출력이 xml임) 단순[clarification needed] BNF 문법(입력 일치), 출력은 xml ? 베타, 전체 EBNF 파서가 아님 무료, GNU GPL

참고 항목

메모들


참고문헌

  1. ^ "Ragel State Machine Compiler".
  2. ^ http://www.colm.net/open-source/ragel/[검증 필요]
  3. ^ "Adaptive LL(*) Parsing: The Power of Dynamic Analysis" (PDF). Terence Parr. Retrieved 2016-04-03.
  4. ^ "Survey on Various Syntax Analyzer Tools". www.ijraset.com. Retrieved 2023-09-16.
  5. ^ Boyland, John; Spiewak, Daniel (2010-09-17). "Tool Paper: ScalaBison Recursive Ascent-Descent Parser Generator". Electronic Notes in Theoretical Computer Science. Proceedings of the Ninth Workshop on Language Descriptions Tools and Applications (LDTA 2009). 253 (7): 65–74. doi:10.1016/j.entcs.2010.08.032. ISSN 1571-0661.
  6. ^ "Beaver - a LALR Parser Generator". beaver.sourceforge.net. Retrieved 2023-09-16.
  7. ^ Newton, Jim E.; Demaille, Akim; Verna, Didier (2016-05-09). "Type-Checking of Heterogeneous Sequences in Common Lisp" (PDF). Proceedings of the 9th European Lisp Symposium on European Lisp Symposium. ELS2016. Kraków, Poland: European Lisp Scientific Activities Association: 13–20. ISBN 978-2-9557474-0-7.
  8. ^ "CL-Yacc — a LALR(1) parser generator for Common Lisp". www.irif.fr. Retrieved 2023-09-16.
  9. ^ Hosseinpour, Sahereh; Alavi Milani, Mir Mohammad Reza; Pehlivan, Hüseyin (July 2018). "A Step-by-Step Solution Methodology for Mathematical Expressions". Symmetry. 10 (7): 285. doi:10.3390/sym10070285. ISSN 2073-8994.
  10. ^ "CppCC's Home Page". cppcc.sourceforge.net. Retrieved 2023-09-16.
  11. ^ "Java Cup". pages.cs.wisc.edu. Retrieved 2023-09-16.
  12. ^ "CUP". www2.cs.tum.edu. Retrieved 2023-09-16.
  13. ^ Thiemann, Peter; Neubauer, Matthias (2004-12-31). "Parameterized LR Parsing". Electronic Notes in Theoretical Computer Science. Proceedings of the Fourth Workshop on Language Descriptions, Tools, and Applications (LDTA 2004). 110: 115–132. doi:10.1016/j.entcs.2004.06.007. ISSN 1571-0661.
  14. ^ Gray, Robert W.; Levi, Steven P.; Heuring, Vincent P.; Sloane, Anthony M.; Waite, William M. "Eli: a complete, flexible compiler construction system". Communications of the ACM. 35 (2): 121–130. doi:10.1145/129630.129637. ISSN 0001-0782.
  15. ^ Owens, Scott; Flatt, M.; Shivers, O.; McMullan, Benjamin (2004-10-01). "Lexer and Parser Generators in Scheme" (PDF). Scheme 2004: Proceedings of the Fifth Workshop on Scheme and Functional Programming.
  16. ^ a b Areias, Hugo; Simões, Alberto; Henriques, P.; Cruz, Daniela Carneiro da (2010-09-01). "Parser generation in Perl : an overview and available tools" (PDF). {{cite journal}}:저널 요구사항 인용 journal=(도움말)
  17. ^ "Building parsers for the web with JavaCC & GWT (Part one)". Chris Ainsley. 14 April 2014. Retrieved 2014-05-04.
  18. ^ "Racc". i.loveruby.net. Retrieved 2021-11-26.
  19. ^ "Racc Grammar File Reference". i.loveruby.net. Retrieved 2021-11-26.
  20. ^ "The SLK Parser Generator supports C, C++, Java, JavaScript, and C#, optional backtracking, free".
  21. ^ http://www.slkpg.site/http.txt[bare URL 일반 텍스트 파일]
  22. ^ "SLY (Sly Lex Yacc)".
  23. ^ "Tree-Sitter - An incremental parsing system for programming tools".
  24. ^ "Parse - Compile time (LR) type safe parser generator for C++". GitHub. 30 December 2021.
  25. ^ PEG.js의 포크 유지
  26. ^ "Parrot: Grammar Engine". The Parrot Foundation. 2011. PGE rules provide the full power of recursive descent parsing and operator precedence parsing.
  27. ^ "LuZ: A context sensitive parser". 2016-10-17. Archived from the original on 2016-10-17. Retrieved 2018-10-17.
  28. ^ "LuZc – A conjunctive context-sensitive parser". luzc.zohosites.com. Archived from the original on 2018-12-21. Retrieved 2018-10-17.

외부 링크