LL (1), LR (1), LR (0), LALR (1) 문법의 예?
일부 주요 구문 분석 알고리즘 (LL (1), LR (1), LR (0), LALR (1))에 대한 문법 모음이있는 온라인 리소스가 있습니까? 나는 이러한 가족에 속하는 많은 개별 문법을 찾았지만 누군가가 많은 예제 문법 세트를 작성한 좋은 자료를 알지 못합니다.
누구든지 그러한 자원을 알고 있습니까?
구문 분석 기법-실용 가이드 에는 거의 모든 유형의 문법에 대한 몇 가지 예 (예 : 유형 당 6 개 정도)가 있습니다. 두 번째 버전 책을 구입할 수 있지만 첫 번째 버전은 저자의 웹 사이트 에서 PDF 형식 (링크 하단 근처)에서 무료로 사용할 수 있습니다 .
저자는 또한 두 번째 버전의 코드 예제와 함께 번들로 제공되는 몇 가지 테스트 문법을 가지고 있습니다 . 여기 에서 찾을 수 있습니다 .
참고 :이 문법은 모두 출판 된 책이기 때문에 작습니다 (수십 규칙 미만).
위키 백과의 예
LL (1)
문법
S -> F
S -> ( S + F )
F -> a
입력
( a + a )
구문 분석 단계
S -> "(" S "+" F ")"
-> ( "F" + F )
-> ( "a" + F )
-> ( a + "a" )
LR (0)
문법
(1) E → E * B
(2) E → E + B
(3) E → B
(4) B → 0
(5) B → 1
입력
1 + 1
구문 분석 단계
need to build a parser table and traverse through states.
LR (1)
문법
S’ -> S S
S -> C C
C -> c C | d
입력
cd
구문 분석 단계
large table
LALR
문법
A -> C x A | ε
B -> x C y | x C
C -> x B x | z
입력
xxzxx
구문 분석 단계
traverse large parser table
당신은 또한보고 싶을 수 있습니다
나는 당신이 의도적으로 그렇게 구성된 문법 모음을 많이 찾을 것이라고 기대하지 않습니다. 주최자는 그 대가로 무엇을 얻습니까?
What you might have a chance of doing, is to find parser generators that correspond to each family (e.g., LL(1)), and go look for instances of inputs for that parser generator, all of which will be LL(1) by definition. For instance, ANTLR's grammars are all various versions of LL(k) depending on which version of ANTLR you pick (the description of the ANTLR version will tell what k it accepts); Bison grammars are all LALR(1) [ignoring the recent GLR option]. If you go to my website (see bio), you see a list of grammars that are all pretty much context-free (that is, not in any of the classes you describe).
EDIT: Note @Bart Kier's clarification that ANTLR can explicitly mark a grammar as LL(k) for specific k.
ReferenceURL : https://stackoverflow.com/questions/6480634/examples-of-ll1-lr1-lr0-lalr1-grammars
'Development Tip' 카테고리의 다른 글
iPhone에서 UIView 대 UIViewController를 언제 사용합니까? (0) | 2021.01.08 |
---|---|
자바 스크립트로 콘솔 입력을 받으려면 어떻게해야합니까? (0) | 2021.01.08 |
사용자 지정 컨테이너보기 컨트롤러에 포함 된 콘텐츠는 탐색 모음 아래에 있습니다. (0) | 2021.01.08 |
MSBuild에 "VCTargetsPath"속성에 대한 값이 없습니다. (0) | 2021.01.07 |
맞춤 이벤트를 통해 추가 데이터를 전달하는 방법이 있습니까? (0) | 2021.01.07 |