파숙(자바)

Parboiled (Java)
데친 도서관
개발자마티아스 도니츠
초기 릴리즈2009년 11월 12일; 12년(2009-11-12)
안정적 해제
1.3.1 / 2019년 6월 24일; 2년(2019-06-24)[1]
리포지토리
기록 위치자바
운영 체제크로스 플랫폼
면허증아파치 라이선스 2.0
웹사이트parboiled.org

parboilled아파치 라이선스로 발매된 오픈 소스 자바 라이브러리다.자바 소스 코드에 직접 PEG 파서를 정의하기 위한 지원을 제공한다.

파보일드(parboiled)는 일반적으로 정규식 또는 파서 생성기(예: ANTLR 또는 JavaCC)의 대안으로 사용되며, 특히 중소형 애플리케이션에서는 더욱 그러하다.

문법 정의 구문 분석의 구조 제공 외에도 추상 구문 트리 구성, 구문 오류 보고 및 구문 분석 오류 복구를 지원하는 완전한 재귀적 하강 파서를 구현한다.

파보기로 파싱하는 것은 별도의 렉싱 단계가 필요 없고 문법 정의 파보빙에 대해 배울 특별한 구문이 없기 때문에 비교적 쉽게 맞춤 파서를 만들 수 있다.

간단한 의사 표기법으로 다음과 같은 고전적인 "계산기"의 예를 생각해 보십시오.

표현  용어 (('+' / '-') 용어)* 용어  요인 (('*' / '/') 요인)* 요인  숫자 / '(' 표현 ')' 숫자  [0-9]+ 

구문 분석 기능을 사용하면 이 규칙 설명을 다음 Java 코드로 직접 변환할 수 있다.

수입하다 org.parved베이스파서;  공중의 계급 계산기파서 연장하다 베이스파서<오브젝트> {      공중의 규칙 표현() {         돌아오다 순서(                 용어(),                 제로오모어(                         순서(                                 퍼스트오프('+', '-'),                                 용어()                         )                 )         );     }      공중의 규칙 용어() {         돌아오다 순서(                 요인(),                 제로오모어(                         순서(                                 퍼스트오프('*', '/'),                                 요인()                         )                 )         );     }      공중의 규칙 요인() {         돌아오다 퍼스트오프(                 숫자(),                 순서('(', 표현(), ')')         );     }      공중의 규칙 숫자() {         돌아오다 원오모어(샤랑주('0', '9'));     }  } 

클래스는 다음과 같은 코드로 실제 입력을 구문 분석하는 데 사용될 수 있는 언어에 대한 파서 규칙을 정의한다.

 입력하다 = "1+2"; 계산기파서 파서 = 반숙.createParser(계산기파서.계급); 파싱 결과<?> 결과 = 보고파스러너.달리다(파서.표현(), 입력하다);  parseTreePrintOut = ParseTreeUtils.printNodeTree(결과);  시스템.밖으로.인쇄하다(parseTreePrintOut); 

참고 항목

참조

  1. ^ "Changelog". Parboiled. June 24, 2019. Retrieved January 7, 2020.

외부 링크