코드에서 RPAREN을 찾는 가장 좋은 방법은 무엇입니까? 내가 처음 LPAREN을 고려한다면, 그것은 마지막 RPAREN (케이스 B)와 일치 할 필요, 예를 들어RPAREN을 올바르게 찾으십시오 (빠른 구문 분석을 가능하게하기 위해)
if(a && (b || "c)"))
| ^---------^| CASE A
^----------------^ CASE B
: 예를 들어 , 나는이 의사 코드가 있습니다. 두 번째 LPAREN을 고려해 보면 마지막 1 RPAREN (사례 A)과 일치해야합니다.
RPAREN이있는 "C)"
문자열이 있지만이 경우에는 무시해야합니다.
음 ... 나는 정규식에 대해 생각하지만 매우 복잡 할 것이라고 생각한다. (문자열, 정규식이 필요하고 정규식이 필요하고 RPAREN 등을 포함 할 수 있다고 생각한다.) 그렇다면 수동 조사 (코드를 통해)를 사용하여 각 부분을 검색하는 방법을 생각해 봅니다 (수동 정규식과 같습니다).
내가 만들고있는 코드 (자체 프로그래밍 언어)를 구문 분석하려면이 코드가 필요합니다. 그리고 나는 더 빨리 그것을 만들기 위해 몇 가지 코드를 읽으려고 무시하고 싶다. 예를 들어
: a()
가 사용되지 않기 때문에이 경우에
function a() { return 1; }
function b() { return 2; }
alert(b());
만 b()
는 구문 분석 할 필요가있다. 따라서 나는 시동기 {
에 의하여 검사하고 진짜 }
까지 (그러나 저장) 묵살 할 것이다. 함수가 사용되면 파싱됩니다.
내 의심 :
- 정규식 또는 수동 코드?
- 좋은 일이나 나쁜 일은 무엇입니까? 코드를 사용하지 않으면 코드를 무시하면 파서의 속도가 향상됩니다.
- 오프 주제 : 파서를 빠르게 수행 할 수있는 팁이 있습니까? 어쩌면 컴퓨터 코드 (opcode ???)로 언어 코드를 저장하는 "미리 파싱 된"파일일까요?
중첩 된 구조를 정규식으로 구문 분석 할 수 없습니다. 어휘 분석기와 구문 분석기를 사용하십시오. – leppie