«lexer» 태그된 질문

4
파서 조합기를 언제 사용해야합니까? 파서 생성기를 언제 사용합니까?
나는 최근에 나만의 프로그래밍 언어를 만들고 싶어 파서 세계에 대해 심도있게 뛰어 들었다. 그러나 파서 작성에는 두 가지 방법이 있습니다. 파서 생성기 및 파서 조합기. 흥미롭게도, 어떤 경우에 어떤 접근 방식이 더 나은지 설명하는 자료를 찾을 수 없었습니다. 오히려, 많은 자원 (과 사람들은) 나는 주제 만 설명하는 다른 방법을 알고하지 …

6
왜 렉서를 2D 어레이와 거대한 스위치로 구현해야합니까?
나는 학위를 마치기 위해 천천히 노력하고 있으며 이번 학기는 Compilers 101입니다. 우리는 Dragon Book을 사용 하고 있습니다. 과정을 시작하면서 어휘 분석과 결정 론적 유한 오토마타 (이하 DFA)를 통해이를 분석하는 방법에 대해 이야기합니다. 다양한 렉서 상태를 설정하고 그 사이의 전환을 정의하십시오. 그러나 교수와 책은 거대한 2 차원 배열 (1 차원의 다양한 …

3
렉서가 파서에 반환하는 토큰의 데이터 유형은 무엇입니까?
제목에서 말했듯이, 어휘 분석기는 어떤 데이터 타입을 파서에 반환 / 주어야합니까? Wikipedia 의 어휘 분석 기사를 읽을 때 다음과 같이 진술했습니다. 컴퓨터 과학에서 어휘 분석은 일련의 문자 (예 : 컴퓨터 프로그램 또는 웹 페이지)를 일련의 토큰 ( 식별 된 "의미"가있는 문자열 )으로 변환하는 프로세스입니다 . 그러나 위의 진술과 완전히 모순되어 …
21 data-types  lexer  flex 

5
파서 결합기와 함께 별도의 파싱 및 렉싱 패스가 모범 사례입니까?
파서 결합기를 사용하기 시작했을 때 나의 첫 번째 반응은 파싱과 렉싱 사이의 인공적인 구별과 같은 느낌에서 해방 된 느낌이었습니다. 갑자기 모든 것이 파싱되었습니다! 그러나 최근 에이 구별을 복원하는 사람을 보여주는 codereview.stackexchange 에서이 게시물을 발견했습니다. 처음에는 이것이 매우 어리석은 일이라고 생각했지만 Parsec 에이 동작을 지원하기 위해 함수가 존재한다는 사실은 나 자신에게 …

4
C ++로 어휘 분석기 작성
C ++에서 렉서를 작성하는 방법 (책, 튜토리얼, 문서)에 대한 유용한 자료는 무엇이며 좋은 기술과 실습은 무엇입니까? 나는 인터넷을 보았고 모두가 lex와 같은 lexer 생성기를 사용한다고 말합니다. 나는 그것을하고 싶지 않습니다. 나는 손으로 렉서를 작성하고 싶습니다.
18 c++  compiler  lexer 

5
어휘 분석기를위한 토큰 제공
내가 만든 마크 업 언어에 대한 파서를 작성하고 있습니다 (파이썬으로 작성하지만 실제로는이 질문과 관련이 없습니다. 사실 이것이 나쁜 생각처럼 보인다면 더 나은 길에 대한 제안을 좋아합니다) . 파서에 대해 읽고 있습니다 : http://www.ferg.org/parsing/index.html , 나는 lexer를 작성하고 있는데, 올바르게 이해하면 내용을 토큰으로 분할해야합니다. 내가 이해하는 데 어려움이있는 것은 사용해야하는 토큰 …
14 python  parsing  lexer 

1
문법에 따라 어휘 분석기를 작성할 때 따라야 할 절차는 무엇입니까?
Grammars, Lexers and Parsers에 대한 설명 이라는 질문에 대한 답변을 읽으 면서 다음과 같이 대답했습니다. [...] BNF 문법에는 어휘 분석 및 구문 분석에 필요한 모든 규칙이 포함되어 있습니다. 지금까지 나는 어휘 분석기가 문법에 전혀 근거한 것이 아니라 파서가 문법에 크게 의존 한다고 생각했기 때문에 다소 이상하게 들렸다 . 나는 렉서 …

5
정규 표현식이없는 어휘 분석
다양한 고급 언어 ( Python , PHP , Javascript 등) 의 몇 가지 어휘 분석기를 살펴 보았으며 모두 정규식을 한 형태 또는 다른 형태로 사용하는 것 같습니다. 정규식이 아마도 이것을 수행하는 가장 좋은 방법이라고 확신하지만 정규 표현식없이 기본적인 어휘를 얻을 수있는 방법이 있는지 궁금합니다. 예, 어떤 형태의 정규 표현식을 사용하지 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.