0
FSharp Lexer의 패턴에서 유니 코드 문자를 지정하는 올바른 방법은 무엇입니까? 다음 코드 은 FsLex.exe 유틸리티를 사용하여 컴파일되지 않은 : 내가 잘못 무엇fslex의 패턴에서 유니 코드 문자를 지정하는 방법
let lexeme lexbuf = LexBuffer<char>.LexemeString lexbuf
...
rule tokenize = parse
| ['a'-'z' 'A'-'Z'] { TOKEN1 }
| [\u0100\u0101] { TOKEN2 }
| [\u0102-\u01FF] { TOKEN3 }
...
| [eof] { EOF }
?
P.S : 나는 --unicode 옵션을
감사를 fslex.exe 사용하고, 비탈리
확실하지가 도움이되지만 여기에 파일 lex.fsl'은 F #'을보고 시도 할 수있는 경우 : https://github.com/fsharp/fsharp/blob/master/src/fsharp/lex.fsl –
니스 함께 일하는 예. 실수가없는 인용문을 발견했습니다. 해결책은 '[u0100'- '\ u01FF'] 다음에 사용하는 것입니다. – Vitaliy
@Tomas : 또 다른 관찰 - 너무 넓은 범위 [ '\ u0100'- '\ uFFFF']를 지정하면 컴파일에 더 많은 시간이 걸리고 컴파일 된 lexer.fs 파일은 수십 MB만큼 큽니다. 어떤 경우에는 '\ Ll', '\ Lu'등의 특정 문자를 사용할 수 있습니다. - [msdn] (http://msdn.microsoft.com/en-us/library/20bw873z.aspx#Y11856) – Vitaliy