2013-10-23 2 views
-1

다른 질문이 있으면 내 목표를 향상시킬 수 있습니다. 다음을보십시오 : https://stackoverflow.com/questions/19510039/from-regex-to-parser-generators.javacc testing Simple1.jj

나는 좋은 소년이되기 위해 노력하고 있으므로 README (https://java.net/projects/javacc/sources/svn/show/tags/release_60/examples/SimpleExamples?rev=555 참조)를 읽고 있습니다.

JavaCC에 Simple1.jj를

  • : 문법 입력 파일에

    1. 실행 JavaCC에 파서와 어휘 분석기 (또는 토큰
      관리자)를 구현 자바 파일들을 생성

      이제 결과 Java 프로그램을 컴파일하십시오.

      javac * .java

    2. 파서가 이제 사용할 준비가되었습니다. 파서 입력 실행하려면 :

      자바의 Simple1

    내 시도 :

    D:\tests\javacc\simple1>javacc ..\Simple1.jj 
    Java Compiler Compiler Version 6.0_beta (Parser Generator) 
    (type "javacc" with no arguments for help) 
    Reading from file ..\Simple1.jj . . . 
    File "TokenMgrError.java" does not exist. Will create one. 
    File "ParseException.java" does not exist. Will create one. 
    File "Token.java" does not exist. Will create one. 
    File "SimpleCharStream.java" does not exist. Will create one. 
    Parser generated successfully. 
    
    D:\tests\javacc\simple1>javac *.java 
    SimpleCharStream.java:474: error: non-static variable this cannot be referenced from a static context 
        static void setTrackLineColumn(boolean trackLineColumn) { this.trackLineColumn = trackLineColumn; } 
                      ^
    1 error 
    

    내 자바 버전 :

    java version "1.7.0_45" 
    Java(TM) SE Runtime Environment (build 1.7.0_45-b18) 
    Java HotSpot(TM) Client VM (build 24.45-b08, mixed mode, sharing) 
    

    내가 그 "이러한 확신 "사람들은 그들이하는 일을 알고 있었고, 내가 틀린 일을했다고 확신하지만, 무엇을해야할까요? javacc를 사용한 첫 번째 테스트에서와 같은 간단한 오류가 발생 했습니까?

    어떻게 수정하고 강의를 계속할 수 있습니까?

  • 답변

    1

    지금 버전 5.0을 사용하는 것이 좋습니다. 버전 6에는 많은 변경 사항이 있으며 버그가 있습니다. 곧 버전 6에 대한 업데이트가 있어야합니다. https://java.net/projects/javacc/downloads

    +0

    도움을 주셔서 감사합니다 (이 도구의 개발자 인 것처럼 보입니다!). 5.0, 다시 한번 시도해 보는 모든 것! :) – user2897090

    +0

    좀 더 조사한 결과 JavaCC 6.0의 알려진 버그라는 것을 알았습니다. 나는 6.0을 사용하는 것에 대해 정말로 추천한다. 다음 릴리즈에서는 의심의 여지없이이 버그 및 기타 알려진 버그가 수정되었습니다. –

    -1

    코드를 보거나 전체 통화를 보냅니 까? 나는 그것이 코드 오류이거나 여러분이 나쁜 .java 아카이브를 호출했다고 생각한다. 예 :

    내가 가지고있는 것 : Mytokens.jj 및 javaCode.java ok? 좋은, 당신은 말했다 필요 :

    javacc Mytokens.jj 
    javac javaCode.java 
    java javaCode <test1.txt> 
    

    내가 당신에게 시험에 대한 내 *의 박쥐를 제공합니다. 새 TXT를 생성하고 쓰기 : 당신이 할 때

    CALL javacc nameJJ.jj 
    @pause 
    CALL javac NameJava.java 
    @pause 
    java NameJava <prueba1> salida.txt 
    type salida.txt 
    @pause 
    

    이 당신을 위해 테스트를 더블 클릭하여 JavaCC에서/빈과 연습 디렉토리에 사본이 경우에.