지금 당장 수업을 듣기 위해 ANTLR4를 사용하고 있는데 대부분 이해하고있는 것처럼 보이지만 '+'는 무엇인지 알 수 없습니다. 내가 말할 수있는 것은 보통 대괄호 안에 일련의 문자가있는 것입니다.ANTLR4 '+'operation
0
A
답변
0
플러스는 표현식의 카디널리티를 결정할 수있는 ANTLR의 BNF 연산자 중 하나입니다. 그 중 3 개가 있습니다 : plus, star (일명 kleene 연산자) 및 물음표. 없거나 : 하나 이상의
- 물음표에 대한 스탠드 : 의미는 쉽게 이해할 수있다 더보기
이러한 연산자는 직접 앞에 오는 표현식에 적용됩니다 (예 : ab+
(a
하나 및 하나 이상의 b
) [AB]?
(영 또는 A
또는 B
중 하나) (b
, c
또는 d
중 0 개 이상의 회 발생 하였다 a
) 또는 a + (b | c | d)*
.
ANTLR4는 또한 ungreedy 일치를 나타내는 특수 구조를 사용합니다. 구문은 BNF 연산자와 물음표 (+?
, *?
, ??
) 중 하나입니다. 이 기능은 인트로 듀서 검색, 모든 컨텐츠 및 클로징 토큰과 일치 할 때 유용합니다. 예를 들어 문자열 (quote, any char, quote)을 생각해보십시오. 욕심이 일치하는 ANTLR4는 여러 문자열을 하나로 일치시킵니다 (마지막 인용문까지). 그러나 ungreedy 일치는 처음 발견 된 끝 토큰 (여기서는 quote char)까지만 일치합니다.
사이드 노트 : 하나의 항목과 일치하므로 ??
이 유용 할 수 있습니다. 따라서 욕심은 여기에서 중요한 역할을하지 않습니다.
사실,이 연산자는 전통적인 BNF가 아니라 Extended Backus-Naur Form의 일부입니다. 이것들은 EBNF에서 특정 문법을 문서화하는 것이 이러한 연산자가 부족한 구식 BNF보다 쉽다는 (또는 가능할 수도 있습니다) 이유 중 하나입니다.
관련 문제
- 1. ANTLR4
- 2. Antlr4
- 3. ANTLR4
- 4. ANTLR4
- 5. Define : "Operation"?
- 6. Xtext - Operation
- 7. Python Antlr4 대괄호
- 8. antlr4 - 재귀
- 9. ParseTreeMatch ANTLR4
- 10. Antlr4 처리가
- 11. ANTLR4 렉서는
- 12. 나는 antlr4
- 13. Antlr4 플로트
- 14. Antlr4는 : antlr4
- 15. Antlr4 식별자
- 16. asp.net mvc long operation
- 17. about $ and operation
- 18. android java string operation
- 19. Regex NOT Operation
- 20. OCL function-operation
- 21. Visio Document.Close Operation Disabled
- 22. MVC Crud Operation 편집
- 23. NSOperationQueue operation self
- 24. push operation 배열에서의 연산
- 25. && operation in actionscript
- 26. Hibernate delete operation
- 27. Bypass Cakephp operation
- 28. java-OPeration failed
- 29. Sql DataFrame - Operation
- 30. Heroku 데이터베이스 : Insert operation
고맙습니다. 나는 이것을 게시 한 직후에 나 자신을 알아 냈다. 내가 할 일은 대신 정규 표현식 명령을 찾는 것이 었습니다. 그러나 당신의 예제는 제게 도움이됩니다. – Alex5775
또 하나의 질문입니다. 내 수업 예 중 하나에서 *를 사용 했습니까? 이 경우 *가 중복되는 것을 수정합니까? – Alex5775
아, 그 특별한 경우는 언급하지 않았다. 내 대답을 업데이트하겠습니다. –