Java Pattern 클래스에서 가능한 모든 유니 코드 문자를 나타 내기 위해 POSIX 클래스 : \ p {L}를 사용할 수 있습니다. 그러나 javacc에서 동일한 정규식 패턴을 사용할 수 없습니다. 내가 < #LET 다음과 같이 토큰을 정의했습니다 : "\ P는 {L}을 (를)"> 그러나 그것은 작동하지 않습니다.
javacc는 java로 작성된 코드를 생성 할 수 있으므로 코드를 분석 할 수 있습니다 (문법을 만드는 언어로 작성). 정말 필요한 것은, 이제 내 문법이 쓰기 가정 해 봅시다, 예를 itself.For 자바 코드를 생성하는 것입니다 show "hello world" (let's say this is in my language)
후, 나는 JavaCC
, 주어진 문자열은 keyword1 AND (keyword2 OR keyword3)이 (keyword1 AND Keyword2) OR (keyword1 AND keyword3)로 확장 할 수 있어야합니다. 가능한 경우이 방법을 제안하십시오. 나는 JavaCC에 초보자입니다.
난 그냥 내 자신의 언어에 대한 JavaCC에 함께 장난, 그리고 난 아래이 코드에 선택의 여지가 충돌 오류가 계속 이유를 알아내는 데 문제가 있어요 , void term() :
{}
{
factor()
(//choice conflict here
(<PLUS> | <MINUS>) factor()
)*
}
void id
javacc 파일 (jjt 및 jj)을 사용하는 이클립스 프로젝트가 있고 내 프로젝트에서 실행 옵션을 구성 할 수있는 방법을 알고 싶습니다. (순서대로) 다음 컴파일 jjt 파일이 JavaCC에서을 (jjtree 명령)에서 생성 위의 컴파일 (JavaCC에 명령) 컴파일 자바 파일에서 만든 컴파일 JJ 파일을 사용하여 JavaCC에서을 (사용 jj 파일)
내 문법에는 원래 간접적 인 왼쪽 재귀가 포함 된 표현식과 단편에 대한 생성 규칙이 있습니다. 이 규칙은 재귀를 제거한 후에 적용됩니다. String expression() #Expression : {String number; Token t;}
{
number = fragment()
(
(t = <Mult_Sign> number
의미 분석을 위해 식별자와 그 유형을 사용자 정의 해시 맵에 넣어야합니다. 그러나 다음과 같은 문법 규칙과 구현을 감안할 때, 아래 ident_list에 의해 선언 된 모든 식별자를 어떻게 기록 할 수 있을지는 모르겠습니다. 문법 규칙 :이 var_decl := var ident_list:type (, ident_list:type)* ;
ident_lis