ocamlyacc

    4

    1답변

    OCamlLex에서 여러 토큰을 반환하는 방법이 있습니까? 들여 쓰기 기반 언어에 대해 렉서와 파서를 쓰려고하는데, 들여 쓰기 수준이 이전보다 낮을 때 내 렉서가 DEDENT 토큰을 여러 개 반환하도록합니다. 이렇게하면 여러 블록이 끝났을 때 구문 분석기에 알릴 수 있습니다. 이 방법을 다음, 나는이 두 토큰이 INDENT 및 DEDENT 토큰에 의해 암시

    15

    3답변

    ocamlyacc 및 ocamllex를 사용하고 있습니다. 내 문법에 오류 생성이있어 사용자 지정 예외가 발생했습니다. 지금까지 오류 위치를보고 할 수 있습니다. | error { raise (Parse_failure (string_of_position (symbol_start_pos()))) } 그러나 어떤 토큰을 읽었는지 알고 싶습니다. 방법이 있어

    4

    3답변

    OCamlYacc 생성 구문 분석기에 분석을위한 명시 적 토큰 목록을 제공 할 수 있습니까? OCamlLex를 사용하여 나중에 명시 적으로 Yacc 생성 파서를 사용하여 분석하는 토큰 목록을 생성하고 싶습니다. 그러나 표준 유즈 케이스는 다음 토큰에 대해 렉서를 암묵적으로 호출하는 파서를 생성합니다. 여기서 토큰은 이전보다 yacc 분석 중에 계산됩니다.

    0

    1답변

    나는 완전히 아이디어가 없습니다. 나는 이것에 매일 자유로운 분을 소비한다, 그러나 나는 아이디어에서 완전하게이다. 이 내 Ocamlyacc 문법입니다 : input: /* empty */ { } | input stmt { } stmt: extern { print_endline "Got an extern import" } |

    4

    1답변

    나는 파서와 렉서가 ocamlyacc와 ocamllex로 쓰여졌다. 구문 분석 할 파일이 너무 일찍 끝나면 줄 끝의 세미콜론을 잊어 버린 것처럼 응용 프로그램은 구문 오류를 발생시키지 않습니다. 내가 깨닫고 EOF를 잡아서 렉서가 끝나지 않은 규칙을 무시하게 만들었 기 때문에 그것이 실현되었다. 그러나 어떻게 이이되어야 하는가? 내가 문법 오류를 제기하기