어휘문법

Lexical grammar

컴퓨터 과학에서 어휘 문법토큰구문을 정의하는 공식적인 문법이다.프로그램은 사용되는 언어의 어휘 구조에 의해 정의된 문자를 사용하여 작성된다.문자 집합은 모든 문자 언어에서 사용되는 알파벳과 동일하다.어휘문법은 문자열을 문자의 반복으로 나누는 방법을 지배하는 규칙을 정하는데, 각 부분은 개별 토큰을 나타낸다.이것은 정규 표현식으로 자주 정의된다.[1]

예를 들어, 많은 프로그래밍 언어에 대한 어휘 문법은 문자열 리터럴이 다음과 같이 시작한다고 명시한다." 문자와 일치하는 "가 발견될 때까지 계속되며(이것은 더 복잡하게 만든다), 식별자영숫자 시퀀스(숫자와 숫자, 일반적으로 밑줄도 허용하고 초기 자리도 허용하지 않는다), 정수 리터럴은 자릿수 시퀀스다.따라서 다음의 문자 시퀀스 "abc" xyz1 23에서 토큰은 문자열, 식별자 숫자(더하기 공백 토큰)이다. 공간 문자는 식별자를 형성하는 문자 시퀀스를 종료하기 때문이다.또한, 특정 시퀀스는 키워드로 분류된다. 키워드는 일반적으로 식별자(일반적으로 알파벳 단어)와 동일한 형태를 가지지만 별도로 분류된다. 공식적으로 토큰 유형이 다르다.[2]

일반적인 어휘 규칙에 대한 정규 표현식은 다음과 같다(예: C).

이스케이프되지 않은 문자열 리터럴(따옴표 뒤에 비따옴표, 따옴표로 끝):

"[^"]*"

이스케이프 문자열 리터럴(따옴표 뒤에 이스케이프 문자 또는 비따옴표, 따옴표로 끝):

"(\. [^\"])*"

정수 리터럴:

[0-9]+

십진수 정수 리터럴(선행 0 없음):

[1-9][0-9]* 0

16진수 정수 리터럴:

0[Xx][0-9A-Fa-f]+

8진수 리터럴:

0[0-7]+

식별자:

[A-Za-z_$][A-Za-z0-9_$]*

참고 항목

참조

  1. ^ Buyya (2009). Object-oriented Programming with Java: Essentials and Applications. Tata McGraw-Hill Education. pp. 57–. ISBN 978-0-07-066908-6.
  2. ^ James Gosling (2000). The Java Language Specification. Addison-Wesley Professional. pp. 9–. ISBN 978-0-201-31008-5.

외부 링크