menhir

    1

    1답변

    다음은 Andrew Appel의 Tiger 언어 (ocaml)에 대한 현재 lexer 및 parser입니다. 나는 현재 상호 재귀 기능을 지원하기 위해 노력하고있어,하지만 다음 파서 코드가 작동하지 않습니다 decs : | l = list(dec) { l } dec : | t = nonempty_list(loc(tydec)) { S.T

    0

    1답변

    편집 : 내 아래의 질문은 여전히 ​​유효하지만 난 그게 코드의 더미를 통해 선별하지 않고 대답하기 어렵다 것을 감사드립니다. 따라서 다소 유사한 질문을하기 위해 누구나 ASH를 구현하는 데 Menhir을 사용하는 예가 있습니까? 계산기와 같은 "장난감"프로젝트가 아닌 것이 좋지만 도움을 얻을 수 있으면 감사하겠습니다. 원래 질문 : 나는 선돌을 사용하여

    0

    1답변

    의 시퀀스를 줄이기위한 연관성 규칙, data expr = Symbol of string | Lambda of string * expr | App of expr * expr .mly 파일을 작성은 어떻게 생각을 표현할 수있는 표현의 순서 e1 e2 e3 e4 해야 규칙을 사용 App ((App (App e1 e2) e3) e4) 로서 해석 할 수

    0

    1답변

    MLY 에 식별자 :이 recursive_def: | f = term_variable ty_args = multiple(formal_type_arguments) te_args = multiple(term_arguments) codomain = preceded(COLON,typ) EQ t = loc(term) {

    0

    1답변

    에 conflits을 줄일 나는 다음 파서 있습니다 %{ open t open Lexer %} %token <int> INT %token <float> FLOAT %token <char> CHAR %token <bool> BOOL %token PLUS Menos Mult Div Bigger Smaller MINUS TIMES

    0

    1답변

    나는 다음과 같은 코드를 가지고 있는데 expr과 비슷하다. int {} | BOOL {} 등하지만 내가이 파서의 형식으로 작성해야하는 형식이 무엇인지 모르겠다. int와 함께 작동하는 계산기 예제가 있고 형식은 int이지만 내 프로그램에서는 float char 등의 문자열이 있습니다. 감사합니다. 당신이 구문 분석 할 표현이기 때문에 %{ dont kn

    2

    1답변

    menhir의 출력 결과를 다음과 같이 변경하고 싶습니다. 모든의 문법적 대안을 찾은 다음 목록에 넣고이 ambiguus 해석을 돌려 받길 원합니다. 충돌을 줄이거 나 저장하지 않습니다. menhir의 소스 코드에서 "Engine.ml"을 살펴 봐야 할 것 같습니다. 결과 구문 론적으로 결정된 토큰은 문법 자동화의 체크 포인트 상태로 "Accepted v"

    2

    1답변

    (+, -, *,/연산자)를 사용하여 매우 간단한 식 구문 분석기를 생성하기 위해 Menhir을 테스트하고 있지만 스트림 충돌이 끝납니다. %token <int> INT %token ADD %token SUB %token MUL %token DIV %token EOF %token LPAREN %token RPAREN %start <Expr.

    4

    2답변

    menhir에서 사용하지 않은 우선 순위 경고를 억제 할 수 있습니까? 배경 : 내가 몇 가지 규칙을 핵심 파서 Lib.mly이 별도로, Lib.mly에서 정의를 사용하여 추가 파서 (A.mly, B.mly, ...)의 호스트. 모든 언어에 대해 단일 렉서 사용을 지원하려면 모든 토큰이 Lib.mly에 정의되어 있으며 _tags에 external_token

    0

    2답변

    --compile-errors의 기능을 menhir으로 사용하고 있습니다. 매우 만족합니다. 또한 ocamlbuild을 사용하여 프로젝트 편집을 관리합니다. 프로젝트가 매우 기본이기 때문에 빌드 인프라는 지금까지 사소한 것으로 남아 있습니다. 프로젝트의 루트에는 _tags 파일 하나와 간단한 Makefile 파일이 있습니다. myocamlbuild.ml 파