자바 문법 예제

EBNF 문법에서 정의하려는 일반적인 사항은 목록입니다. 목표 기호라고 하는 단일 고유 비터미널로 구성된 문장에서 시작하여 주어진 컨텍스트 없는 문법은 언어를 지정합니다. 비터미널이 왼쪽인 생산의 오른쪽이 있는 시퀀스의 비터미널입니다. 우리는 이러한 모든 예가 구문적으로 올바른 언어를 상상할 수 있습니다, 즉, 그들은 언어의 문법에 따라 구축됩니다. 그러나 언어를 사용하는 방법에 대한 추가 제약 조건을 준수하지 않기 때문에 모두 형식적으로 올바르지 않습니다. 이러한 의미 체계 제약 조건은 언어의 구조가 인식 된 후 문법에 추가하여 사용됩니다. 문법에서 선언과 같은 것들은 특정 키워드와 이름으로 구성되어야하며 의미 체계 적 제약 조건은 두 선언이 같은 이름을 가져야한다고 말할 수 있습니다. 구문 규칙과 의미 체계 규칙을 결합하여 우리는 우리의 언어로 유효한 것을 표현 할 수 있습니다. 앞장(§2.3)에서 단편적으로 제시된 문법은 박람회에 훨씬 더 좋지만 파서의 기초로 는 적합하지 않습니다. 이 장에서 제시된 문법은 참조 구현의 기초입니다. LL(1) 문법은 아니지만 대부분의 경우 미리 필요한 모양을 최소화합니다. 문맥없는 문법은 여러 가지 작품으로 구성됩니다. 각 프로덕션에는 비터미널이라는 추상 기호가 왼쪽으로, 하나 이상의 비터미널 및 터미널 기호의 시퀀스가 오른쪽에 있습니다.

각 문법에 대해 터미널 기호는 지정된 알파벳에서 그려집니다. Java SE 7은 또한 유니 캐치 절 외에 다중 캐치 절을 도입했습니다. 이러한 유형의 catch 절을 사용하면 Java가 서로의 하위 클래스가 아닌 경우 단일 블록에서 다양한 유형의 예외를 처리할 수 있습니다. 가능한 값은 사례 레이블을 사용하여 나열됩니다. Java의 이러한 레이블에는 상수만 포함될 수 있습니다(열거형 상수 및 문자열 상수 포함). 실행은 대괄호 내부의 표현식에 해당하는 레이블 이후에 시작됩니다. 선택적 기본 레이블이 있을 수 있습니다 선언 하는 다음 코드 는 식에 해당 하는 경우 case 레이블이 실행 됩니다. 반복 문은 지정된 조건이 true로 평가될 때 반복적으로 실행되는 명령문입니다. J2SE 5.0 이후 Java에는 네 가지 형태의 문이 있습니다. 식별자는 코드의 요소 이름입니다. 요소의 이름을 선택할 때 따라야 할 특정 표준 명명 규칙이 있습니다. Java의 식별자는 대/소문자를 구분합니다.

우선 순위는 EBNF 문법의 우선 순위(즉, 문법의 순서 연산자가 적용되는 경우)와 EBNF에서 정의한 언어의 우선 순위를 참조할 수 있습니다. Java 프로그래밍 언어의 구문 문법에는 어휘 문법에 의해 터미널 기호로 정의된 토큰이 있습니다. 우리가 논의하지 않은 것들이 있습니다 : 예를 들어 EBNF의 창조또는 Chomsky및 다른 과학자들의 작품에 뿌리를 두는 역사. 우리는 문맥 무료 문법이 무엇인지 논의하지 않았습니다.