2012-02-11 3 views
0

이 속성 문법을 작성하는 방법은 무엇입니까?정규 표현식의 속성 문법

별의 제작에 대해서는 잘 모르겠습니다.

정규 표현식에 대한 문맥 자유 문법을 디자인합니다. 이것을 기본 문법으로 표현한 언어 (문자열 집합) 인 시작 기호에 첨부 된 값이 설정된 속성 문법을 정규식 표현으로 지정합니다. 정규 표현식은 공백, 기호, 두 개의 정규 표현식의 결합, 세로 막대로 구분 된 두 개의 정규식, 별표 다음에 오는 정규 표현식, 또는 괄호 안의 정규 표현식 일 수 있습니다. 예를 들어, 정규 표현식 'l (l | d) *'에 대해 귀하의 속성 문법은 l과 d 중 하나 이상이 나오는의 l로 구성된 모든 문자열의 (유한 한) 집합을 구성해야합니다.

감사합니다.

+0

내 부분적인 대답 : RE :: = E {RE. = (RE2) : RE1} = 공집합 {RE1.set = RE2.set} RE :: = 기호 {RE.set = {기호}} RE1 :: = RE2 + RE3 {RE1. set = RE2.set union RE3.set} RE1 :: = RE2 {RE1 = RE2.set} | RE3 {RE1 = RE3.set} RE1 :: = RE2 * {*** 여기에 아무 생각이 없습니다 !! ***} RE1 :: = (RE2) {RE1.set = RE2.set} – NoviceCai

답변

0

힌트 : 색인 세트와 색인을 포함하는 값을 가진 표현식을 포함하는 일반화 된 양식 union이 있습니다. I에서

U 내가 F (I) 예를 들어

은, 유리수의 집합 Z에서

U 난 같다 {I/J : 그것은 다음과 같은 것을 쓰여 | ! Z에서 J, J = 0}

(일반적으로 "칠판 굵게"로 작성 Z, 모든 정수의 집합입니다.)

+0

반복 할 기호를 선택하려면? – NoviceCai