Java 소스 코드 표절 탐지기 용 렉서를 작성해야합니다. 다음은 내가 달성하고자하는 예입니다."Class brackets"과 "Method bracket"을 구별하는 JFlex Lexer
//Java code Tokens:
public class Count { Begin Class
public static void main(String[] args) Var Def, Begin Method
throws java.io.IOException {
int count = 0; Var Def, Assign
while (System.in.read() != -1) Apply, Begin While
count++; Assign, End While
System.out.println(count+" chars."); Apply
} End Method
} End Class
필자는 Jflex가 렉서를 생성하는 데 적합한 도구라고 생각합니다. 그러나 몇 가지 예를 살펴 보았습니다. 클래스 대괄호와 메서드 대괄호를 구별 할 수있는 방법을 찾을 수 없습니다. 대부분의 토큰 화가들은 동일한 토큰으로 인식합니다. 또한 변수 식별자에서 메소드 적용을 구별하는 방법은 무엇입니까?
설명해 주셔서 감사합니다. 기존 방식의 코드 또는 도구가 내 방식으로 코드를 구문 분석하기위한 수식어가 될 수 있습니까? –
@ Y.Zhao 다양한 파서 연결자에 대한 예제 Java 문법이 있지만 JFlex와 함께 사용할 수있는 현재 문법을 찾을 수 없습니다. 나는 JFlex + Cup이나 JFlex + BYaccJ 또는 대중적인 조합을 더 이상 생각하지 않는다. JFlex와 결혼하지 않았다면 Antlr의 현재 Java 문법을 쉽게 찾을 수 있습니다. – sepp2k