내 접근 방식. 코어 - 엔진. - 페이지 13

 
Vasiliy Sokolov :

글쎄, 왜 그렇게 말했어? 이제 Peter는 그것을 읽고 그것을 하기로 결정할 것입니다. 그는 몇 년 동안 다시 폐쇄될 것입니다.

좋은 사람을 응원합니다.)

 
Aliaksandr Hryshyn :

이것은 정보의 가독성이 매우 낮은 표현입니다. 이러한 데이터로 완전히 자동으로 작업하는 것이 좋습니다. 자동 생성(비주얼 에디터), 사용, 편집. 비주얼 에디터는 꼭!

프로토타입 배열의 데이터 표현이 명확하지 않다는 것을 알고 있습니다. 나는 모든 것이 명확한 더 간단한 예를 들었습니다.

 int P_CORE[ 3 ][ 10 ] = {
//Основание кнопки.-----------------------------
//
//NAME     TYPE   ELEMENT     X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{ 100001 ,  base,  button,     100 , 100 ,     200 ,     50 ,     C'245,245,245' },
//---------------------------------------------- 
//Текст кнопки.---------------------------------
//
//NAME    TYPE   ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
//----------------------------------------------
{ 100002 ,  text,  button,   120 , 120 ,     0 ,       0 ,       C'245,0,0' },
//---------------------------------------------- 
//Иконка кнопки.-------------------------------- 
//
//NAME    TYPE     ELEMENT   X    Y     X_SIZE  Y_SIZE       COLOR 
{ 100003 ,   icon ,    button,   140 , 140 ,     16 ,     16 ,           0 },
//---------------------------------------------- 
};

비주얼 편집기는 거의 현실입니다. 그것은 할 수 있습니다. 시도 할 것이다.

 
Реter Konow :

비주얼 편집기는 거의 현실입니다. 그것은 할 수 있습니다. 시도 할 것이다.

필요 없음! 피터, 마감일이 코앞이다. 곧 엔진을 공개하겠다고 약속하셨습니다. 당신의 계획에 충실하십시오. 마침내 당신의 기적을 풀어 놓으십시오. 그러면 여유로운 분위기에서 또 다른 걸작을 만들 것입니다.

 
모든 컨트롤에 동일한 수의 속성이 있으며 일반적 으로 속성 집합이 동일합니까?
 
Vasiliy Sokolov :

필요 없음! 피터, 마감일이 코앞이다. 당신은 곧 엔진을 공개하겠다고 약속했습니다. 당신의 계획에 충실하십시오. 마침내 당신의 기적을 풀어 놓으십시오. 그러면 여유로운 분위기에서 또 다른 걸작을 만들 것입니다.

좋은.

 
Реter Konow :

프로토타입 배열의 데이터 표현이 명확하지 않다는 것을 알고 있습니다. 나는 모든 것이 명확한 더 간단한 예를 들었습니다.

비주얼 편집기는 거의 현실입니다. 그것은 할 수 있습니다. 시도 할 것이다.

형식은 간단하지만 작동하지 않습니다. 객체에 많은 속성이 있는 경우를 의미합니다.

다음은 귀하의 접근 방식의 예입니다. 실제로 사용되며 원칙은 동일합니다. 텍스트의 어휘 분석, 여기에서 수동으로 무언가를 수행하는 것은 극히 어렵습니다. 자동화만 가능합니다. 그리고 그것이 편리하다고 말하지 마십시오.

 static sLex_state ind_lex_states[ 34 ]={{ 0 , 0 , 0 , 0 },{ 0 , 22 , 0 , 0 },{ 22 , 22 , 0 , 0 },{ 44 , 0 , 0 , 1 },{ 44 , 8 , 1 , 0 },{ 52 , 1 , 1 , 0 },{ 53 , 0 , 1 , 1 },{ 53 , 1 , 2 , 0 },{ 54 , 9 , 2 , 1 },{ 63 , 0 , 3 , 1 },{ 63 , 9 , 4 , 1 },{ 72 , 11 , 5 , 1 },{ 83 , 13 , 6 , 1 },{ 96 , 0 , 7 , 1 },{ 96 , 0 , 8 , 1 },{ 96 , 0 , 9 , 1 },{ 96 , 5 , 10 , 0 },{ 101 , 0 , 10 , 1 },{ 101 , 1 , 11 , 0 },{ 102 , 3 , 11 , 1 },{ 105 , 0 , 12 , 1 },{ 105 , 13 , 13 , 1 },{ 118 , 13 , 14 , 1 },{ 131 , 0 , 15 , 1 },{ 131 , 5 , 16 , 1 },{ 136 , 3 , 17 , 1 },{ 139 , 13 , 18 , 1 },{ 152 , 13 , 19 , 1 },{ 165 , 0 , 20 , 1 },{ 165 , 13 , 21 , 1 },{ 178 , 9 , 22 , 2 },{ 187 , 9 , 24 , 2 },{ 196 , 0 , 26 , 1 },{ 196 , 0 , 27 , 1 }};
static sLex_rule ind_lex_rules[ 196 ]={{ 9 , 13 , 3 },{ 32 , 32 , 3 },{ 34 , 34 , 4 },{ 43 , 43 , 5 },{ 44 , 44 , 6 },{ 45 , 45 , 5 },{ 47 , 47 , 7 },{ 48 , 57 , 8 },{ 59 , 59 , 9 },{ 65 , 69 , 10 },{ 70 , 70 , 11 },{ 71 , 83 , 10 },{ 84 , 84 , 12 },{ 85 , 90 , 10 },{ 95 , 95 , 10 },{ 97 , 101 , 10 },{ 102 , 102 , 11 },{ 103 , 115 , 10 },{ 116 , 116 , 12 },{ 117 , 122 , 10 },{ 123 , 123 , 13 },{ 125 , 125 , 14 },{ 9 , 13 , 3 },{ 32 , 32 , 3 },{ 34 , 34 , 4 },{ 43 , 43 , 5 },{ 44 , 44 , 6 },{ 45 , 45 , 5 },{ 47 , 47 , 7 },{ 48 , 57 , 8 },{ 59 , 59 , 9 },{ 65 , 69 , 10 },{ 70 , 70 , 11 },{ 71 , 83 , 10 },{ 84 , 84 , 12 },{ 85 , 90 , 10 },{ 95 , 95 , 10 },{ 97 , 101 , 10 },{ 102 , 102 , 11 },{ 103 , 115 , 10 },{ 116 , 116 , 12 },{ 117 , 122 , 10 },{ 123 , 123 , 13 },{ 125 , 125 , 14 },{ 32 , 32 , 4 },{ 34 , 34 , 15 },{ 48 , 58 , 4 },{ 63 , 63 , 4 },{ 65 , 90 , 4 },{ 92 , 92 , 4 },{ 95 , 95 , 4 },{ 97 , 122 , 4 },{ 48 , 57 , 8 },{ 47 , 47 , 16 },{ 0 , 45 , 17 },{ 46 , 46 , 18 },{ 47 , 47 , 17 },{ 48 , 57 , 8 },{ 58 , 68 , 17 },{ 69 , 69 , 19 },{ 70 , 100 , 17 },{ 101 , 101 , 19 },{ 102 , 65535 , 17 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 65 , 21 },{ 66 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 97 , 21 },{ 98 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 81 , 10 },{ 82 , 82 , 22 },{ 83 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 113 , 10 },{ 114 , 114 , 22 },{ 115 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 9 , 16 },{ 10 , 10 , 23 },{ 11 , 12 , 16 },{ 13 , 13 , 24 },{ 14 , 65535 , 16 },{ 48 , 57 , 25 },{ 43 , 43 , 18 },{ 45 , 45 , 18 },{ 48 , 57 , 25 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 75 , 10 },{ 76 , 76 , 26 },{ 77 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 107 , 10 },{ 108 , 108 , 26 },{ 109 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 84 , 10 },{ 85 , 85 , 27 },{ 86 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 116 , 10 },{ 117 , 117 , 27 },{ 118 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 9 , 16 },{ 10 , 10 , 23 },{ 11 , 12 , 16 },{ 13 , 13 , 24 },{ 14 , 65535 , 16 },{ 0 , 47 , 28 },{ 48 , 57 , 25 },{ 58 , 65535 , 28 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 82 , 10 },{ 83 , 83 , 29 },{ 84 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 114 , 10 },{ 115 , 115 , 29 },{ 116 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 68 , 10 },{ 69 , 69 , 30 },{ 70 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 100 , 10 },{ 101 , 101 , 30 },{ 102 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 47 , 20 },{ 48 , 57 , 10 },{ 58 , 64 , 20 },{ 65 , 68 , 10 },{ 69 , 69 , 31 },{ 70 , 90 , 10 },{ 91 , 94 , 20 },{ 95 , 95 , 10 },{ 96 , 96 , 20 },{ 97 , 100 , 10 },{ 101 , 101 , 31 },{ 102 , 122 , 10 },{ 123 , 65535 , 20 },{ 0 , 47 , 32 },{ 48 , 57 , 10 },{ 58 , 64 , 32 },{ 65 , 90 , 10 },{ 91 , 94 , 32 },{ 95 , 95 , 10 },{ 96 , 96 , 32 },{ 97 , 122 , 10 },{ 123 , 65535 , 32 },{ 0 , 47 , 33 },{ 48 , 57 , 10 },{ 58 , 64 , 33 },{ 65 , 90 , 10 },{ 91 , 94 , 33 },{ 95 , 95 , 10 },{ 96 , 96 , 33 },{ 97 , 122 , 10 },{ 123 , 65535 , 33 }};
static sLex_action ind_lex_actions[ 28 ]={{match, 1 },{match, 5 },{backup_match, 8 },{match, 6 },{backup_match, 11 },{backup_match, 11 },{backup_match, 11 },{match, 3 },{match, 4 },{match, 12 },{match_and_backup, 8 },{match_and_backup, 8 },{match_and_backup, 11 },{backup_match, 11 },{backup_match, 11 },{match, 2 },{match, 2 },{backup_match, 7 },{backup_match, 11 },{backup_match, 11 },{match_and_backup, 7 },{backup_match, 11 },{backup_match, 9 },{backup_match, 11 },{backup_match, 10 },{backup_match, 11 },{match_and_backup, 9 },{match_and_backup, 10 }};
 
Dmitry Fedoseev :
모든 컨트롤에 동일한 수의 속성이 있으며 일반적 으로 속성 집합이 동일합니까?

+ 질문에 참여합니다.

 
Dmitry Fedoseev :
모든 컨트롤에 동일한 수의 속성이 있으며 일반적 으로 속성 집합이 동일합니까?

네. 더 정확하게는 모든 요소가 아니라 모든 개체에 대한 것입니다. 요소는 개체의 복합체입니다. 각 요소 유형에는 개체 수가 다릅니다 .

Base, Text, Icon, Canvas 등 여러 유형의 개체가 있습니다. 수량 및 속성 집합 - 모든 유형의 개체에 대해 보편적입니다.

속성은 동일하지만 일부 개체는 일부 속성을 사용하지 않습니다. 예를 들어, Base 는 Font 속성을 사용하지 않습니다.

 
Реter Konow :

속성은 동일하지만 일부 개체는 일부 속성을 사용하지 않습니다. 예를 들어 Base 는 Font 속성을 사용하지 않습니다.

저것들. 배열의 차원 을 존중하기 위해 일부 개체에는 가짜 속성이 있습니다. 말할 것도 없이 매우 유연합니다.

 
전부가 아니라...))