간단한 ANTLR 예제가 있습니까?
4연산 계산기가 포함된 간단한 ANTLR 예제를 만들려면 문법을 ANTLR로 변환하는 과정을 이해해야 합니다. Java 소스 코드.
문법 작성 파일
"Exp.g"와 같은 문법 파일로 시작하세요.
grammar Exp; eval : additionExp EOF ; additionExp : multiplyExp(+ multiplyExp | - multiplyExp )* ; multiplyExp : atomExp(* atomExp | / atomExp )* ; atomExp : Number | '(' additionExp ')' ; Number : ('0'..'9')+ ('.' ('0'..'9')+)? ; WS : (' ' | '\t' | '\r'| '\n') {$channel=HIDDEN;} ;
렉서 및 파서 생성
다음을 사용하세요. 아래 명령을 사용하여 어휘 분석기를 생성하고 파서:
java -cp antlr-3.2.jar org.antlr.Tool Exp.g
테스트 클래스 생성
"ANTLRDemo.java"와 같은 테스트 클래스 생성:
import org.antlr.runtime.*; public class ANTLRDemo { public static void main(String[] args) throws Exception { ANTLRStringStream in = new ANTLRStringStream("12*(5-6)"); ExpLexer lexer = new ExpLexer(in); CommonTokenStream tokens = new CommonTokenStream(lexer); ExpParser parser = new ExpParser(tokens); parser.eval(); } }
문법에 Java 코드 추가
활성화하려면 작업을 수행하는 파서, {...} 블록 내에 Java 코드 추가:
grammar Exp; eval returns [double value] : additionExp { System.out.println("value equals: "+$value); } ; // ...
예제 실행
클래스 컴파일, 렉서 및 파서 생성 , 그리고 ANTLRDemo를 실행하여 "12*(5-6)" 표현식을 평가합니다.
이 예는 기본 문법을 보여줍니다. 간단한 4연산 계산기의 경우 문법 정의, 필요한 구성 요소 생성, 파서 동작 제어를 위한 Java 코드 추가 과정을 보여줍니다.
위 내용은 ANTLR을 사용하여 간단한 4가지 연산 계산기를 어떻게 만들 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!