ocamllex

    0

    1답변

    내가 OCaml의 내 렉서를 컴파일 경고 데 으로 감소하지 : File "lexer.mll", line 42, characters 26-57: Warning 10: this expression should have type unit. 을 그리고 문자열을 구문 분석 원하고 나는 렉서가 견적을 읽을 때 종료 될 때 시작하는 특별한 규칙을 나는 다른 인용문

    1

    1답변

    (here에 설명 된대로) 내 렉서의 정의 부분에 약간의 식별자를 정의 할 때, 난 형태의 뭔가를 쓰기 위해 노력하고있어 : let op_char = ['+' '-' '*' '/'] let id_char = [^ ' ' '\r' '\n' '\t' op_char] 모든으로 숯불 없다는를 id_char 정의하려면 공백 문자 또는 op_char. 그

    6

    1답변

    나는 Appel의 "Modern Compiler Implementation in ML"을 따르고 있으며 Ocamllex를 사용하여 렉서를 작성하려고합니다. 사양은 후 이스케이프 시퀀스 변환 후 렉서가 문자열을 반환하도록 요청합니다. rule tiger = parse ... | '"' { let buffer = Buffer.create 1 in

    0

    1답변

    에 의해 생성 된 파일은 lex tool (나는 ocamllex를 읽는다)에 대해 DFA (실제로 NFA와 NFA2DFA에서)를위한 C (OCaml) 코드로 정규 표현식 모음을 변환 할 것이라고 말한다. DFA M의 공식 정의는 5 개의 튜플 M = {Q, Sigma, transition_function, q0, F}입니다. 레코드가 렉싱 모듈 재귀 함수

    0

    1답변

    ocamllex 및 ocamlyacc 코드를 스캔하여 간단한 언어를 구문 분석하려고합니다. 동일한 추상 구문을 정의했지만 복잡한 규칙을 검색하는 데 어려움을 겪고 있습니다. 여기 내 코드가 { type exp = B of bool | Const of float | Iszero of exp | Diff of exp*exp | If of ex

    3

    1답변

    ocamllex를 사용하여 OCaml에서 장난감 프로그래밍 언어를 작성하는 것을 망설이고, 파이썬 스타일의 들여 쓰기 변경에 민감한 언어를 만들려고했지만 ocamllex의 정규식 규칙을 사용하여 줄의 시작과 일치하는 문제가 발생했습니다. 나는 ^을 사용하여 줄의 시작을 일치시키는 데 익숙하지만, 문자열 연결 연산자 인 OCaml에서 사용되었습니다. 구글 검

    1

    1답변

    내 언어의 모든 키워드를 저장하는 해시 테이블 keyword_table을 정의했습니다. 키워드가 많이 있기 때문에 (* parser.mly *) %token CALL CASE CLOSE CONST ... reserved_identifier: | CALL { "Call" } | CASE { "Case" } | CLOSE { "Close" } |

    2

    1답변

    { } rule translate = parse | "current_directory" { print_string (Sys.getcwd()) } | _ as c { print_char c } | eof { exit 0 } { let main() = let lexbuf = Lexing.from_channel stdin in while true

    5

    4답변

    여기 내 로프 끝에 있습니다. 나는 ocamllex에서 일할 수있는 어떤 것도 얻을 수 없으며, 그것은 나를 미치게합니다. 내가 컴파일하고 일을 실행할 때, 나는 매우에 오류가 발생, 그러나 a=b; : 여기 { open Parser } rule next = parse | (['a'-'z'] ['a'-'z']*) as id { Ide

    3

    2답변

    일부 문자열을 토큰에 매핑하는 keyword_table을 정의하고이 테이블을 parser.mly 및 lexer.mll에 대해 표시하고 싶습니다. 테이블 parser.mly에 정의되어야한다는 것, %{ open Utility (* where hash_table is defined to make a table from a list *) let