Advertisement
Guest User

Untitled

a guest
May 10th, 2023
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.59 KB | None | 0 0
  1. grammar YapComplete;
  2.  
  3. // ФАЙЛ ОБЪХЕКТА Oglavleniye
  4. probelniy: Probel | Tabylaciya | Probelniy;
  5.  
  6. // ФАЙЛ ОБЪХЕКТА Chisla2
  7. binarnoyeChislo: BINARNIYE_CHISLA;
  8. tritichnoye: Tritichnoye;
  9. chetverichnoye: Chetverichnoye;
  10. pyaterichnoye: Pyaterichnoye;
  11. shesterichnoyeChislo: ShesterichnoyeChislo;
  12. semirichnoye: Semirichnoye;
  13. vosmerichnnoye: Vosmerichnnoye;
  14. devyaterichnoyeChislo: DevyaterichnoyeChislo;
  15. desyaterichnoyeChislo: NOMER_NOL | DesyaterichnoyeChisloNachinausheeusyaNa1;
  16. shestnadcatirichnoye: SHESNADCATIRICHNIY_PREFIX SHESHNADTCATIRICHNOYE_CHISLO;
  17. znakChisla: Minus | Plus;
  18. chislo: znakChisla? (desyaterichnoyeChislo | (binarnoyeChislo
  19. | tritichnoye
  20. | chetverichnoye
  21. | pyaterichnoye
  22. | shesterichnoyeChislo
  23. | semirichnoye
  24. | vosmerichnnoye
  25. | devyaterichnoyeChislo
  26. | shestnadcatirichnoye
  27. ));
  28. epsilonChastChisla: Probel? ZNAK_EPSILON chislo;
  29. chisloSPlavaysheyTochkoy: chislo? Tochka chislo epsilonChastChisla?;
  30. polniyVidChisla: chislo | chisloSPlavaysheyTochkoy;
  31.  
  32. // ФАЙЛ ОБЪХЕКТА StrokaFailovyPut
  33. fragmentputi: ('\\ ' | ~(' ' | '/' | '.'))+ rashireniyeFaila?;
  34. rashireniyeFaila: Tochka fragmentputi;
  35. failovyPut: '@' '/'? fragmentputi ('/' fragmentputi)*;
  36.  
  37. // ФАЙЛ ОБЪХЕКТА Stroki
  38. shestnadcatirichnayaStroka: HEX_PREFIX SHESHNADTCATIRICHNOYE_CHISLO;
  39. lineynayaStroka: LineynayaStroka1 | LineynayaStroka2;
  40. mnogostrochnayaStroka: MnogostrochieStroka1 | MnogostrochieStroka2;
  41. stroka: (shestnadcatirichnayaStroka
  42. | lineynayaStroka
  43. | mnogostrochnayaStroka
  44. | failovyPut
  45. );
  46. cheredaStrok: stroka (COMMA stroka)*;
  47.  
  48. // ФАЙЛ ОБЪХЕКТА Peremenniye
  49. bulevoZnacheniye: TOKEN_BULEVA_ZNACHENIYA_LOJI | TOKEN_BULEVA_ZNACHENIYA_ISTINY;
  50. strokoviyIdentifikator: ZNAKI_A_Z_ | ZNAKI_A_YA | KVANTIFIKATOR_IDENTIFIKATORA | KVANTIFIKATOR_IDENTIFIKATORA_POLN;
  51. strokovayaIndeksaciya: strokoviyIdentifikator (Tochka strokoviyIdentifikator)+;
  52. ssilkaNaObiekt: strokoviyIdentifikator | strokovayaIndeksaciya;
  53.  
  54. // ФАЙЛ ОБЪХЕКТА TokenModificatorVidimosti
  55. modifikatorVidimostiPublichniy: TOKEN_OUBLICHNIY_POLN;
  56. modifikatorVidimostiPrivatniy: TOKEN_PRIVATNIY_POLN;
  57. modifikatorVidimosti: modifikatorVidimostiPublichniy
  58. | modifikatorVidimostiPrivatniy;
  59.  
  60. // ФАЙЛ ОБЪХЕКТА TokenTipPeremennoy
  61. tipChislo: TOKEN_TIPA_CHISLA;
  62. tipStroka: TOKEN_TIPA_STROKA;
  63. tipFunkciya: TOKEN_TIPA_FUNCIYA;
  64. tipBulevo: TOKEN_TIPA_BULEVO_ZNACHENIYE;
  65. tipAvtomaticheskiy: TOKEN_TIPA_AVTOMAT;
  66. tipPeremennoi: tipStroka
  67. | tipChislo
  68. | tipBulevo
  69. | tipFunkciya
  70. | tipAvtomaticheskiy;
  71. perechisleniyeTipovPremennyh: tipPeremennoi (',' probelniy? tipPeremennoi)*;
  72.  
  73. // ФАЙЛ ОБЪХЕКТА Virajeniya
  74. virajeniye: virajeniye operaciya=(Umnojeniye | Deleniye | Stepenn) virajeniye // умножение / деление
  75. | virajeniye operaciya=(Plus | Minus) virajeniye // сложение / вычитание
  76. | LevayaSkobka virajeniye ParavayaSkobka
  77. | ssilkaNaObiekt
  78. | polniyVidChisla;
  79.  
  80. // ФАЙЛ ОБЪХЕКТА TokenModifikatorKonstantnosti
  81. modificatorKonstanty: TOKEN_MODIFIKATOR_KONSTANT_0 | TOKEN_MODIFIKATOR_KONSTANT_1;
  82.  
  83. // ФАЙЛ ОБЪХЕКТА TokenModifikatory
  84. modifikatorVidimostiKonstantnosti: (modifikatorVidimosti probelniy)? modificatorKonstanty?;
  85.  
  86. // ФАЙЛ ОБЪХЕКТА Yap
  87. konstantnoyeZnacheniye: stroka | polniyVidChisla | bulevoZnacheniye;
  88. znacheniye: konstantnoyeZnacheniye | strokovayaIndeksaciya | virajeniye;
  89. prisvoyeniyeZnacheniya: probelniy? '=' probelniy? znacheniye (',' probelniy znacheniye)*;
  90. opredeleniyeObjyavleniyePeremennoy:
  91. (modifikatorVidimostiKonstantnosti probelniy)? tipPeremennoi probelniy strokoviyIdentifikator
  92. prisvoyeniyeZnacheniya?;
  93.  
  94. // ФАЙЛ ОБЪХЕКТА Oglavleniye
  95. Probel: ' ';
  96. Tochka: '.';
  97. NL: '\n';
  98. COMMA: ',';
  99. Tabylaciya: '\t';
  100. ProbelniyOdin: Probel | Tabylaciya;
  101. Probelniy: (' ' | '\t')+;
  102.  
  103. // ФАЙЛ ОБЪХЕКТА Chisla2
  104. NOMER_NOL: '0';
  105. BINARNIYE_CHISLA: '0' ('b' | 'B') ' '? ('0' | '1')+;
  106. Tritichnoye: '03 ' ('0' .. '2')+;
  107. Chetverichnoye: '04 ' ('0' .. '3')+;
  108. Pyaterichnoye: '05 ' ('0' .. '4')+;
  109. ShesterichnoyeChislo: '06 ' ('0' .. '5')+;
  110. Semirichnoye: '07 ' ('0' .. '6')+;
  111. Vosmerichnnoye: '08 ' ('0' .. '7')+;
  112. DevyaterichnoyeChislo: '09 ' ('0' .. '8')+;
  113. fragment
  114. DesyaterichniyeChisla: '0'..'9';
  115. fragment
  116. N19: '1'..'9';
  117. DesyaterichnoyeChisloNachinausheeusyaNa1: N19 DesyaterichniyeChisla*;
  118. ZNAK_EPSILON: ('e' | 'E');
  119. ZNAKI_A_F: [a-fA-F];
  120. SHESHNADTCATIRICHNOYE_CHISLO: (DesyaterichniyeChisla | ZNAKI_A_F)+;
  121. SHESNADCATIRICHNIY_PREFIX: '0' ('x' | 'X') ' '?;
  122. Minus: '-';
  123. Plus: '+';
  124.  
  125. // ФАЙЛ ОБЪХЕКТА StrokaFailovyPut
  126.  
  127. // ФАЙЛ ОБЪХЕКТА Stroki
  128. LineynayaStroka1: '"' (~('"') | '\\"')* '"';
  129. LineynayaStroka2: '\'' (~('\'') | '\\\'')* '\'';
  130. MnogostrochieStroka1: '[[' .*? ']]';
  131. MnogostrochieStroka2 : '![' .*? ']!';
  132. HEX_PREFIX: 'hex!';
  133.  
  134. // ФАЙЛ ОБЪХЕКТА Peremenniye
  135. TOKEN_BULEVA_ZNACHENIYA_ISTINY: '\u0418\u0441\u0442\u0438\u043d\u0430';
  136. TOKEN_BULEVA_ZNACHENIYA_LOJI: '\u041b\u043e\u0436\u044c';
  137. ZNAKI_A_Z_: [a-zA-Z_];
  138. ZNAKI_A_YA: [\u0400-\u04FF];
  139. KVANTIFIKATOR_IDENTIFIKATORA: ZNAKI_A_Z_ | ZNAKI_A_YA;
  140. KVANTIFIKATOR_IDENTIFIKATORA_POLN: KVANTIFIKATOR_IDENTIFIKATORA (DesyaterichniyeChisla | KVANTIFIKATOR_IDENTIFIKATORA)*;
  141.  
  142. // ФАЙЛ ОБЪХЕКТА TokenModificatorVidimosti
  143. OKONCHANIYA: ('ый' | 'ая' | 'ое');
  144. TOKEN_VIDIMOSTI_PUBLICHNIY_1: 'публичн' OKONCHANIYA;
  145. TOKEN_VIDIMOSTI_PRIVATNIY_1: 'приватн' OKONCHANIYA;
  146. TOKEN_VIDIMOSTI_PUBLIC_ENG: 'public';
  147. TOKEN_VIDIMOSTI_PRIVATE_ENG: 'private';
  148. TOKEN_OUBLICHNIY_POLN: TOKEN_VIDIMOSTI_PUBLICHNIY_1 | TOKEN_VIDIMOSTI_PUBLIC_ENG;
  149. TOKEN_PRIVATNIY_POLN: TOKEN_VIDIMOSTI_PRIVATNIY_1 | TOKEN_VIDIMOSTI_PRIVATE_ENG;
  150.  
  151. // ФАЙЛ ОБЪХЕКТА TokenTipPeremennoy
  152. TOKEN_TIPA_CHISLA: ('число' ('вой' | 'вое')? ' значение'?) | 'number';
  153. TOKEN_TIPA_STROKA: ('строк' ('а' | 'о' ( 'в' OKONCHANIYA ) )) | 'string';
  154. TOKEN_TIPA_FUNCIYA: ('функци' ('я' | 'ональный') | 'метод') | 'function' | 'method';
  155. TOKEN_TIPA_AVTOMAT: ('авто' 'матический'?) | 'auto';
  156. TOKEN_TIPA_BULEVO_ZNACHENIYE: ('булев' (('о' | 'ое') | OKONCHANIYA) ' значение'?) | 'boolean';
  157.  
  158. // ФАЙЛ ОБЪХЕКТА Virajeniya
  159. Deleniye: '/';
  160. Umnojeniye: '*';
  161. Stepenn: '^';
  162. LevayaSkobka: '(';
  163. ParavayaSkobka: ')';
  164.  
  165. // ФАЙЛ ОБЪХЕКТА TokenModifikatorKonstantnosti
  166. TOKEN_MODIFIKATOR_KONSTANT_0: 'константн' OKONCHANIYA;
  167. TOKEN_MODIFIKATOR_KONSTANT_1: 'konstant' | 'constant';
  168.  
  169. // ФАЙЛ ОБЪХЕКТА TokenModifikatory
  170.  
  171. // ФАЙЛ ОБЪХЕКТА Yap
  172. TOKEN_RAVNO: '=';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement