1
Ragel을 사용하여 간단한 Lexer를 작성하고 Java 유효한 코드로 출력하려고하지만 생성 된 코드가 컴파일되지 않습니다.Ragel에서 생성 된 Java 코드를 컴파일하는 중 오류가 발생했습니다. 12.
public class Lexer {
%%{
machine simple_lexer;
integer = ('+'|'-')?[0-9]+;
float = ('+'|'-')?[0-9]+'.'[0-9]+;
assignment = '=';
identifier = [a-zA-Z][a-zA-Z_]+;
main := |*
integer => { emit("integer"); };
float => { emit("float"); };
assignment => { emit("assignment"); };
identifier => { emit("identifier"); };
space => { emit("space"); };
*|;
}%%
%% write data;
public static void emit(String token) {
System.out.println(token);
}
public static void main(String[] args) {
%% write init;
%% write exec;
}
}
생성 된 파일과 오류 출력에 있습니다 : 내가 사용하는
가 여기에 Lexer.rl있어 https://gist.github.com/3495276 (이 여기에 붙여 너무 커서 때문에 = S)
그래서, 내가 도대체 뭘 잘못하고있는 겁니까?
당신이 Ragel의 어떤 버전을 사용합니까해야 하는가? 143 번 줄이 이상하게 보입니다. '4'. 최신 ragel을 사용할 때이 "4"를 얻지 못합니다. 6.7 –
현재 Ragel 6.2를 사용하고 있습니다. –