3
이것은 터미널 내부에서 프로토 타입을 만들 때 나는이 작업을 할 수 있기 때문에 묻는 것은 멍청한 질문입니다. 하지만 다음과 같은 특정 모듈을 사용하는 경우 :Ocaml 유형에서 필드 추출하기
http://caml.inria.fr/pub/docs/manual-ocaml/libref/Lexing.html
이 코드 :
(*Identifiers*)
let ws = [' ' '\t']*
let id = ['A'-'Z' 'a'-'z'] +
let map = id ws ':' ws id
let feed = '{' ws map+ ws '}'
let feeds = '[' ws feed + ws ']'
(*Entry Points *)
rule token = parse
[' ' '\t'] { token lexbuf } (* skip blanks *)
| ['\n' ] { EOL }
| feeds as expr { Feeds(expr) }
| id as expr { Id(expr) }
| feed as expr {
let pos = Lexing.lexeme_start_p lexbuf in
let pos_bol = pos.pos_bol in
print_string (string_of_int pos_bol);
print_string "\n";
Feed(expr) }
나는 다음과 같은 오류가 점점 오전 :
Error: Unbound record field label pos_bol
을 내가 가지 난처한에 대한 생각을 왜 이런 일이 일어 났습니까? 위에서 링크 된 문서에서 pos_bol은 Lexing 유형의 필드라고 말합니다.
죄송합니다. 답변을 받았을 때 오히려 분명한 답변을 드릴 것입니다.