2010-06-08 5 views
1

(A, B, C)와 같은 괄호 안에 문자열을 구문 분석해야합니다. 여기서 A, B 및 C는 유효한 JavaScript 코드를 포함 할 수있는 문자열입니다. 예를 들어 B는 (A, B, C)와 비슷한 중첩 구조가있는 매우 긴 문자열 일 수 있습니다. 그러한 문자열을 파싱하는 가장 좋은 방법은 무엇입니까?자바 스크립트 구문 괄호

파서 문자열의 예는 함수를 호출한다 : 모든 세 개의 파라미터는 다른 함수 정의 될 수

FUNC (파라미터 1, 파라미터 2, 파라미터 3)

.

+0

실제 사례를 제공해 줄 수 있습니까? – dcp

+0

JSON으로 전달 된 문자열을 가져올 수 없다니 너무 좋지 않습니다! 하지만 예, 샘플 문자열을 볼 수 있다면 도움이 될 것입니다. – Funka

답변

1

이러한 파서를 만드는 가장 간단한 방법 중 하나는 recursive descent parser을 쓰는 것입니다. 이 유형의 파서는 상대적으로 생성하기 쉽고 더 복잡한 파서 생성기 (예 : "yacc"등)보다 확실히 이해하기 쉽습니다.

+0

JavaScript에서 구현 된 파서가 있습니까? – Paul

+0

@Paul : "javascript recursive descent"에 대한 Google 검색으로 몇 가지를 발견했습니다. 그러나 일반적으로 재귀 적 파서는 특정 문법에 대해 작성하는 것입니다. 문법의 구조는 파서 자체의 구조를 밀접하게 반영합니다 (Wikipedia의 예제에서 볼 수 있듯이). –

+1

@Paul : 실제 JavaScript 소스 코드를 구문 분석해야하는 경우 모든 사례를 처리하는 파서를 작성하는 것이 그 자체로 매우 중요한 프로젝트 일 수 있습니다. 입력을 자바 스크립트의 하위 집합으로 제한 할 수 있다면 상당히 쉬울 수 있습니다. 또한 정규식과 관련하여 : 정규식은 공식 언어 이론의 특정 용어 인 [정규 언어] (http://en.wikipedia.org/wiki/Regular_language)를 구문 분석 할 수 있습니다. 임의로 깊게 중첩 된 구조를 가진 모든 언어 (예 : JavaScript)는 일반 언어가 아닙니다. –