는 I는최고의 현대 텍스트 파싱? 일명 Lex와 Yacc는 언제 사용합니까?
XYZ ARG1,ARG2,ARG3,...,ARGN
같은 명령과 인수 행당 하나의 텍스트로서 입력 블록을하고 난 XYZ
의 인자가 아니라 특정 명령에 대해 형성되는 것을 확인하고 정확한 블록을 실행할 있다면 코드. ~ 100 개의 명령과 같은 것이 있습니다. 그 중 일부는 가변 개수의 인수와 다른 관계를 가지고 있습니다 (즉, XYZ
명령이 호출 된 경우 ABC
이라는 명령이 필요합니다).
COMMAND
XYZ ARG1
BEF ARG1 ARG2
ENDCOMMAND
텍스트가 COMMAND
및 ENDCOMMAND
에 포함하는 것이 중요합니다 :
또한 명령과 같은 존재한다.
일반적으로 정규식이 아닌 Lex와 Yacc를 사용하지만, 더 현대적인 것이 있습니까? 이 코드는 C#으로 작성되었습니다. MSDN에 오래된 학교 C Lex와 Yacc보다는이 일을하는 것이 있습니까?
흠 나는 틀렸다고 생각합니다. 필자는 C 파싱 라이브러리, C# 래퍼 라이브러리 및 C# 응용 프로그램을 가지고 있습니다. –
작동하지 않습니까?답장을 보내 주셔서 감사합니다. 그러나 이것이 왜 작동하지 않는지 말해주십시오. 다시 한번 감사드립니다. –
아, 예, 실제로 파서를 C로 만들어서 C#으로 감쌀 수 있습니다. LEX/YACC의 VisualStudio 호환 버전을 찾을 수 있다고 가정합니다. Gnu의 prebuilts는 일반적으로 Gnu 라이브러리 형식을 사용하며 Gnu 링커 (ld)가 필요합니다. –