파서는 아마 모든 종류의 방식으로 작동하지만 근본적으로 토큰 화의 단계를 거쳐 컴파일러에 결과를 주면 컴파일러가 결과를 프로그램으로 바꿀 수 있습니다. 예를 들어, 주어진 :
function foo(a) {
alert(a);
}
구문 분석기는 공백 문자를 첫 문자 "f"로 제거합니다. 속하지 않는 것을 얻을 때까지 문자를 수집합니다. 공백은 토큰의 끝을 나타냅니다. 그것은 "foo"의 "f"로 시작하여 "(", 그래서 이제는 토큰 "function"과 "foo"를가집니다.) "("은 독자적으로 토큰이므로 3 그런 다음 "a"다음에 ")"을 추가하여 두 번째 토큰을 만들어 5 등을 만든다.
공백은 공백이 필요한 토큰 사이에만 필요하다. 예를 들어 공백 또는 "function"과 "foo"사이의 다른 토큰)
토큰 화 작업이 완료되면 컴파일러가 "function"을 식별자로 간주하고이를 "function"키워드로 해석합니다. 언어 문법이 알 수있는 식별자 인 "foo"는 함수 이름이고, "("는 그룹화 연산자를 열고 따라서 형식 매개 변수 목록의 시작 등을 나타냅니다.
컴파일러는 한 번에 하나씩 토큰을 처리 할 수도 있고, 덩어리로 잡아서도되고, 이상한 것들을 실행하여 빠르게 실행할 수도 있습니다.
How do C/C++ parsers work?을 읽을 수도 있습니다. 단서가 더 있습니다. 또는 Google을 사용하십시오.
JavaScript는 다른 언어와 마찬가지로 구문 분석됩니다. http://en.wikipedia.org/wiki/Parsing. 이 파일은 정의 된 문법과 일치하고 토큰으로 분리됩니다. 그런 다음 해석되어 실행될 수 있습니다. http://en.wikipedia.org/wiki/Interpreter_(computing) – Matt