2012-11-13 2 views
0

저는 grammar을 사용하여 COBOL 파서를 생성하고 있습니다.javacc + PMD를 사용하는 COBOL 파서

필자는 javacc를 사용하여 파서를 생성하고 Java Tree Builder를 사용하여이 문법에서 AST를 생성했습니다.

PMD이라는 Eclipse 플러그인을 사용자 정의하여 COBOL 파일을 읽고 AST를 생성합니다. 소스 코드에서 AST를 채울 수있는 Designer라는 UI가 있습니다.

나는 소스 코드의 울부 짖는 소리를 사용하려고하면, 나는 오류 메시지가

:

오류 메시지가

net.sourceforge.pmd.PMDException: Error while processing [no filename].cbl 
    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:80) 
    at net.sourceforge.pmd.util.designer.Designer$DFAListener.actionPerformed(Designer.java:502) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$000(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: net.sourceforge.pmd.lang.ast.ParseException: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered "" at line 0, column 0. 
Was expecting one of: 

    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:35) 
    at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:90) 
    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:136) 
    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:75) 
    ... 37 more 
Caused by: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered "" at line 0, column 0. 
Was expecting one of: 

    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.generateParseException(CobolParser.java:43571) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.jj_consume_token(CobolParser.java:43405) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.IdentificationDivision(CobolParser.java:3734) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.ProgramUnit(CobolParser.java:3527) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.CompilationUnit(CobolParser.java:3450) 
    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:33) 
    ... 40 more 
Exception in thread "AWT-EventQueue-0" net.sourceforge.pmd.lang.ast.ParseException: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered "" at line 0, column 0. 
Was expecting one of: 

    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:35) 
    at net.sourceforge.pmd.util.designer.Designer.getCompilationUnit(Designer.java:135) 
    at net.sourceforge.pmd.util.designer.Designer.access$1(Designer.java:132) 
    at net.sourceforge.pmd.util.designer.Designer$ShowListener.actionPerformed(Designer.java:475) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$000(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered "" at line 0, column 0. 
Was expecting one of: 

    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.generateParseException(CobolParser.java:43571) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.jj_consume_token(CobolParser.java:43405) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.IdentificationDivision(CobolParser.java:3734) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.ProgramUnit(CobolParser.java:3527) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.CompilationUnit(CobolParser.java:3450) 
    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:33) 
    ... 39 more 
net.sourceforge.pmd.PMDException: Error while processing [no filename].cbl 
    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:80) 
    at net.sourceforge.pmd.util.designer.Designer$DFAListener.actionPerformed(Designer.java:502) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$000(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: net.sourceforge.pmd.lang.ast.ParseException: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered " "*" "* "" at line 2, column 7. 
Was expecting: 
    "program-id" ... 

    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:35) 
    at net.sourceforge.pmd.SourceCodeProcessor.parse(SourceCodeProcessor.java:90) 
    at net.sourceforge.pmd.SourceCodeProcessor.processSource(SourceCodeProcessor.java:136) 
    at net.sourceforge.pmd.SourceCodeProcessor.processSourceCode(SourceCodeProcessor.java:75) 
    ... 37 more 
Caused by: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered " "*" "* "" at line 2, column 7. 
Was expecting: 
    "program-id" ... 

    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.generateParseException(CobolParser.java:43571) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.jj_consume_token(CobolParser.java:43405) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.ProgramIdParagraph(CobolParser.java:3925) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.IdentificationDivision(CobolParser.java:3741) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.ProgramUnit(CobolParser.java:3527) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.CompilationUnit(CobolParser.java:3450) 
    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:33) 
    ... 40 more 
Exception in thread "AWT-EventQueue-0" net.sourceforge.pmd.lang.ast.ParseException: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered " "*" "* "" at line 2, column 7. 
Was expecting: 
    "program-id" ... 

    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:35) 
    at net.sourceforge.pmd.util.designer.Designer.getCompilationUnit(Designer.java:135) 
    at net.sourceforge.pmd.util.designer.Designer.access$1(Designer.java:132) 
    at net.sourceforge.pmd.util.designer.Designer$ShowListener.actionPerformed(Designer.java:475) 
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source) 
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source) 
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source) 
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source) 
    at java.awt.Component.processMouseEvent(Unknown Source) 
    at javax.swing.JComponent.processMouseEvent(Unknown Source) 
    at java.awt.Component.processEvent(Unknown Source) 
    at java.awt.Container.processEvent(Unknown Source) 
    at java.awt.Component.dispatchEventImpl(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source) 
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source) 
    at java.awt.Container.dispatchEventImpl(Unknown Source) 
    at java.awt.Window.dispatchEventImpl(Unknown Source) 
    at java.awt.Component.dispatchEvent(Unknown Source) 
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source) 
    at java.awt.EventQueue.access$000(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.awt.EventQueue$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.awt.EventQueue$2.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source) 
    at java.awt.EventDispatchThread.run(Unknown Source) 
Caused by: net.sourceforge.pmd.lang.cpd.cobol.ast.ParseException: Encountered " "*" "* "" at line 2, column 7. 
Was expecting: 
    "program-id" ... 

    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.generateParseException(CobolParser.java:43571) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.jj_consume_token(CobolParser.java:43405) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.ProgramIdParagraph(CobolParser.java:3925) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.IdentificationDivision(CobolParser.java:3741) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.ProgramUnit(CobolParser.java:3527) 
    at net.sourceforge.pmd.lang.cpd.cobol.ast.CobolParser.CompilationUnit(CobolParser.java:3450) 
    at net.sourceforge.pmd.lang.cobol.CobolParser.parse(CobolParser.java:33) 
    ... 39 more 

COBOL 코드

IDENTIFICATION DIVISION. 
    * 
    PROGRAM-ID. GETNUMT. 
    * 
    DATE-WRITTEN. 04/04/90. 
    * 
    * MODIFIED 10/18/97. 
    * 
    *  ******************************* 
    *  *        * 
    *  *  Judson D. McClendon  * 
    *  *  Sun Valley Systems  * 
    *  *  329 37th Court N.E.  * 
    *  *  Birmingham, AL 35215 * 
    *  *  205-853-8440   * 
    *  *        * 
    *  ******************************* 
    * 
    ENVIRONMENT DIVISION. 
    * 
    CONFIGURATION SECTION. 
    * 
    INPUT-OUTPUT SECTION. 
    * 
    FILE-CONTROL. 
    * 
    I-O-CONTROL. 
    * 
    DATA DIVISION. 
    * 
    FILE SECTION. 
    * 
    * 
    WORKING-STORAGE SECTION. 
    * 
    77 WS-ESCAPE-FLAG    PIC 9(01)  COMP VALUE 0. 
    77 WS-ERR-MSG     PIC X(30)   VALUE SPACES. 
    * 
    COPY GETNUMW.COB. 
    * 
    SCREEN SECTION. 
    * 
    * 
    *      I N P U T S C R E E N 
    * 
    01 INPUT-SCREEN 
      FOREGROUND-COLOR 7 
      BACKGROUND-COLOR 0. 
     03 BLANK SCREEN 
      LINE 01 COLUMN 31 VALUE "G E T N U M B E R". 
    * 
     03 LINE 03 COLUMN 01 VALUE "Enter Number: ". 
     03 PIC X(25)   USING NW-WORK-NBR. 
    * 
    * 
    *     O U T P U T S C R E E N 
    * 
    01 OUTPUT-SCREEN 
      FOREGROUND-COLOR 7 
      BACKGROUND-COLOR 0. 
    * 
     03 LINE 05 COLUMN 01 VALUE "  Result: ". 
     03 PIC -(13).9(06) FROM NW-EXTRACTED-NBR. 
     03   COLUMN 41 
      PIC X(30)   FROM WS-ERR-MSG. 
/
    PROCEDURE DIVISION. 
    * 
    * 
    *    C O N T R O L S E C T I O N 
    * 
    000000-CONTROL. 
    * 
     MOVE SPACES TO NW-WORK-NBR. 
     DISPLAY INPUT-SCREEN. 
    * 
     PERFORM 000100-PROCESS 
      THRU 000100-EXIT 
      UNTIL (WS-ESCAPE-FLAG = 1). 
    * 
    000000-EXIT. 
     STOP RUN. 
    * 
    *     P R O C E S S 
    * 
    000100-PROCESS. 
    * 
     ACCEPT INPUT-SCREEN 
      ON ESCAPE 
       MOVE 1 TO WS-ESCAPE-FLAG 
       GO TO 000100-EXIT. 
    * 
     PERFORM 003000-GET-NBR 
      THRU 003000-EXIT. 
    * 
     IF (NW-NBR-ERROR-FLAG = 1) 
      MOVE "NUMBER INVALID" TO WS-ERR-MSG 
     ELSE 
      MOVE SPACES   TO WS-ERR-MSG. 
    * 
     DISPLAY OUTPUT-SCREEN. 
    * 
    000100-EXIT. 
     EXIT. 
    * 
    COPY GETNUMP.COB. 

나는 COBOL 아니다 프로그래머와 그 때문에, 나는이 문법에서 잘못된 점을 이해하지 못했다.

어느 한 나를 도와 드릴까요?

답변

3

다수는 적합 COBOL 컴파일러 또는 파서를 작성하는 복잡성을 추정합니다. 이건 입니다. 매우 열심히 건입니다. 대부분의 다른 언어보다 훨씬 많이 입니다.

여기서 기본적인 문제는 사용중인 JavaCC 문법이 게시 "텍스트 조작"단계에서 COBOL 소스를 구문 분석하는 데 적합하다는 것입니다.

일반적인 COBOL 컴파일러에는 주석 및 컴파일러 지정 문이 처리되어 후속 구문 분석에 적합한 소스 텍스트 을 생성하는 사전 단계가 있습니다. "텍스트 조작"단계는 주석 행을 삭제하고 연속 프로세스 인 을 처리하고 COPY 지시문을 처리하고 후속 컴파일을 안내하는 컴파일러 지시문을 작성합니다.

구문 분석하려는 프로그램에 여전히 주석 행 (7 열에 '*'이있는 행)과 (COPY) 지시문이 포함되어 있습니다. 이 중 하나를 제거하거나 사전 컴파일러를 컴파일하여 텍스트 조작 단계 을 완성 할 때까지는 매우 유용한 프로그램이 아니라는 점을 제외하면 매우 유용하지는 않습니다.

정말 나쁜 소식은 게시 텍스트 조작 단계 구문 분석에 적합한 많은 COBOL 문법을 보았지만 실제로 텍스트 조작을 수행하는 데는 아무 것도 유용하지 않다는 것입니다.

참고 : JavaCC에 문법은 CommentLine() 포함되어 있지만, 이들은 일부 오래된 COBOL 프로그램에서 발견되지 않는 코딩 구조이다 COBOL 코멘트 항목에 대한 것입니다. 이것은 COBOL 주석 행 (작성자 또는이 문법의 잘못된 선택)을 구문 분석하지 않습니다. 앞서 언급했듯이 COBOL 주석 행은 텍스트 조작 중에 제거되었을 것입니다.

+0

AST가 있는지 확인하기 위해 주석을 제거하려고 시도 할 것이다. 채우는. 텍사스 –

1

의견에 어려움을 겪고있는 것으로 보입니다.
COBOL 문은 문법이 열 맞춤을 인식 할 수 있는지는 알 수 없지만 "열 구분"입니다.

  • 의견은 7
  • 분열과 섹션 헤더는 "유해성 DIVISION"열 예를 들어 8 시작 열에 *해야
  • 다른 문은 것을 12

그 이상한 열에서 시작 Eclipse에서 구문 분석되는 파일을 저장하지 않았기 때문에 "[no filename] .cbl"에 오류가보고됩니다.

열 정렬 및 주석 제거를 시도하십시오.

+0

답안을위한 Tks. 나는이 문법이 토큰의 위치를 ​​다루지 않는 것 같음// [no filename] .cbl은 단지 PMD의 GUI에서 소스 코드를 복사/붙여 넣기했기 때문에 나타난다 –