Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- grammar YapComplete;
- // ФАЙЛ ОБЪХЕКТА Oglavleniye
- probelniy: Probel | Tabylaciya | Probelniy;
- // ФАЙЛ ОБЪХЕКТА Chisla2
- binarnoyeChislo: BINARNIYE_CHISLA;
- tritichnoye: Tritichnoye;
- chetverichnoye: Chetverichnoye;
- pyaterichnoye: Pyaterichnoye;
- shesterichnoyeChislo: ShesterichnoyeChislo;
- semirichnoye: Semirichnoye;
- vosmerichnnoye: Vosmerichnnoye;
- devyaterichnoyeChislo: DevyaterichnoyeChislo;
- desyaterichnoyeChislo: NOMER_NOL | DesyaterichnoyeChisloNachinausheeusyaNa1;
- shestnadcatirichnoye: SHESNADCATIRICHNIY_PREFIX SHESHNADTCATIRICHNOYE_CHISLO;
- znakChisla: Minus | Plus;
- chislo: znakChisla? (desyaterichnoyeChislo | (binarnoyeChislo
- | tritichnoye
- | chetverichnoye
- | pyaterichnoye
- | shesterichnoyeChislo
- | semirichnoye
- | vosmerichnnoye
- | devyaterichnoyeChislo
- | shestnadcatirichnoye
- ));
- epsilonChastChisla: Probel? ZNAK_EPSILON chislo;
- chisloSPlavaysheyTochkoy: chislo? Tochka chislo epsilonChastChisla?;
- polniyVidChisla: chislo | chisloSPlavaysheyTochkoy;
- // ФАЙЛ ОБЪХЕКТА StrokaFailovyPut
- fragmentputi: ('\\ ' | ~(' ' | '/' | '.'))+ rashireniyeFaila?;
- rashireniyeFaila: Tochka fragmentputi;
- failovyPut: '@' '/'? fragmentputi ('/' fragmentputi)*;
- // ФАЙЛ ОБЪХЕКТА Stroki
- shestnadcatirichnayaStroka: HEX_PREFIX SHESHNADTCATIRICHNOYE_CHISLO;
- lineynayaStroka: LineynayaStroka1 | LineynayaStroka2;
- mnogostrochnayaStroka: MnogostrochieStroka1 | MnogostrochieStroka2;
- stroka: (shestnadcatirichnayaStroka
- | lineynayaStroka
- | mnogostrochnayaStroka
- | failovyPut
- );
- cheredaStrok: stroka (COMMA stroka)*;
- // ФАЙЛ ОБЪХЕКТА Peremenniye
- bulevoZnacheniye: TOKEN_BULEVA_ZNACHENIYA_LOJI | TOKEN_BULEVA_ZNACHENIYA_ISTINY;
- strokoviyIdentifikator: ZNAKI_A_Z_ | ZNAKI_A_YA | KVANTIFIKATOR_IDENTIFIKATORA | KVANTIFIKATOR_IDENTIFIKATORA_POLN;
- strokovayaIndeksaciya: strokoviyIdentifikator (Tochka strokoviyIdentifikator)+;
- ssilkaNaObiekt: strokoviyIdentifikator | strokovayaIndeksaciya;
- // ФАЙЛ ОБЪХЕКТА TokenModificatorVidimosti
- modifikatorVidimostiPublichniy: TOKEN_OUBLICHNIY_POLN;
- modifikatorVidimostiPrivatniy: TOKEN_PRIVATNIY_POLN;
- modifikatorVidimosti: modifikatorVidimostiPublichniy
- | modifikatorVidimostiPrivatniy;
- // ФАЙЛ ОБЪХЕКТА TokenTipPeremennoy
- tipChislo: TOKEN_TIPA_CHISLA;
- tipStroka: TOKEN_TIPA_STROKA;
- tipFunkciya: TOKEN_TIPA_FUNCIYA;
- tipBulevo: TOKEN_TIPA_BULEVO_ZNACHENIYE;
- tipAvtomaticheskiy: TOKEN_TIPA_AVTOMAT;
- tipPeremennoi: tipStroka
- | tipChislo
- | tipBulevo
- | tipFunkciya
- | tipAvtomaticheskiy;
- perechisleniyeTipovPremennyh: tipPeremennoi (',' probelniy? tipPeremennoi)*;
- // ФАЙЛ ОБЪХЕКТА Virajeniya
- virajeniye: virajeniye operaciya=(Umnojeniye | Deleniye | Stepenn) virajeniye // умножение / деление
- | virajeniye operaciya=(Plus | Minus) virajeniye // сложение / вычитание
- | LevayaSkobka virajeniye ParavayaSkobka
- | ssilkaNaObiekt
- | polniyVidChisla;
- // ФАЙЛ ОБЪХЕКТА TokenModifikatorKonstantnosti
- modificatorKonstanty: TOKEN_MODIFIKATOR_KONSTANT_0 | TOKEN_MODIFIKATOR_KONSTANT_1;
- // ФАЙЛ ОБЪХЕКТА TokenModifikatory
- modifikatorVidimostiKonstantnosti: (modifikatorVidimosti probelniy)? modificatorKonstanty?;
- // ФАЙЛ ОБЪХЕКТА Yap
- konstantnoyeZnacheniye: stroka | polniyVidChisla | bulevoZnacheniye;
- znacheniye: konstantnoyeZnacheniye | strokovayaIndeksaciya | virajeniye;
- prisvoyeniyeZnacheniya: probelniy? '=' probelniy? znacheniye (',' probelniy znacheniye)*;
- opredeleniyeObjyavleniyePeremennoy:
- (modifikatorVidimostiKonstantnosti probelniy)? tipPeremennoi probelniy strokoviyIdentifikator
- prisvoyeniyeZnacheniya?;
- // ФАЙЛ ОБЪХЕКТА Oglavleniye
- Probel: ' ';
- Tochka: '.';
- NL: '\n';
- COMMA: ',';
- Tabylaciya: '\t';
- ProbelniyOdin: Probel | Tabylaciya;
- Probelniy: (' ' | '\t')+;
- // ФАЙЛ ОБЪХЕКТА Chisla2
- NOMER_NOL: '0';
- BINARNIYE_CHISLA: '0' ('b' | 'B') ' '? ('0' | '1')+;
- Tritichnoye: '03 ' ('0' .. '2')+;
- Chetverichnoye: '04 ' ('0' .. '3')+;
- Pyaterichnoye: '05 ' ('0' .. '4')+;
- ShesterichnoyeChislo: '06 ' ('0' .. '5')+;
- Semirichnoye: '07 ' ('0' .. '6')+;
- Vosmerichnnoye: '08 ' ('0' .. '7')+;
- DevyaterichnoyeChislo: '09 ' ('0' .. '8')+;
- fragment
- DesyaterichniyeChisla: '0'..'9';
- fragment
- N19: '1'..'9';
- DesyaterichnoyeChisloNachinausheeusyaNa1: N19 DesyaterichniyeChisla*;
- ZNAK_EPSILON: ('e' | 'E');
- ZNAKI_A_F: [a-fA-F];
- SHESHNADTCATIRICHNOYE_CHISLO: (DesyaterichniyeChisla | ZNAKI_A_F)+;
- SHESNADCATIRICHNIY_PREFIX: '0' ('x' | 'X') ' '?;
- Minus: '-';
- Plus: '+';
- // ФАЙЛ ОБЪХЕКТА StrokaFailovyPut
- // ФАЙЛ ОБЪХЕКТА Stroki
- LineynayaStroka1: '"' (~('"') | '\\"')* '"';
- LineynayaStroka2: '\'' (~('\'') | '\\\'')* '\'';
- MnogostrochieStroka1: '[[' .*? ']]';
- MnogostrochieStroka2 : '![' .*? ']!';
- HEX_PREFIX: 'hex!';
- // ФАЙЛ ОБЪХЕКТА Peremenniye
- TOKEN_BULEVA_ZNACHENIYA_ISTINY: '\u0418\u0441\u0442\u0438\u043d\u0430';
- TOKEN_BULEVA_ZNACHENIYA_LOJI: '\u041b\u043e\u0436\u044c';
- ZNAKI_A_Z_: [a-zA-Z_];
- ZNAKI_A_YA: [\u0400-\u04FF];
- KVANTIFIKATOR_IDENTIFIKATORA: ZNAKI_A_Z_ | ZNAKI_A_YA;
- KVANTIFIKATOR_IDENTIFIKATORA_POLN: KVANTIFIKATOR_IDENTIFIKATORA (DesyaterichniyeChisla | KVANTIFIKATOR_IDENTIFIKATORA)*;
- // ФАЙЛ ОБЪХЕКТА TokenModificatorVidimosti
- OKONCHANIYA: ('ый' | 'ая' | 'ое');
- TOKEN_VIDIMOSTI_PUBLICHNIY_1: 'публичн' OKONCHANIYA;
- TOKEN_VIDIMOSTI_PRIVATNIY_1: 'приватн' OKONCHANIYA;
- TOKEN_VIDIMOSTI_PUBLIC_ENG: 'public';
- TOKEN_VIDIMOSTI_PRIVATE_ENG: 'private';
- TOKEN_OUBLICHNIY_POLN: TOKEN_VIDIMOSTI_PUBLICHNIY_1 | TOKEN_VIDIMOSTI_PUBLIC_ENG;
- TOKEN_PRIVATNIY_POLN: TOKEN_VIDIMOSTI_PRIVATNIY_1 | TOKEN_VIDIMOSTI_PRIVATE_ENG;
- // ФАЙЛ ОБЪХЕКТА TokenTipPeremennoy
- TOKEN_TIPA_CHISLA: ('число' ('вой' | 'вое')? ' значение'?) | 'number';
- TOKEN_TIPA_STROKA: ('строк' ('а' | 'о' ( 'в' OKONCHANIYA ) )) | 'string';
- TOKEN_TIPA_FUNCIYA: ('функци' ('я' | 'ональный') | 'метод') | 'function' | 'method';
- TOKEN_TIPA_AVTOMAT: ('авто' 'матический'?) | 'auto';
- TOKEN_TIPA_BULEVO_ZNACHENIYE: ('булев' (('о' | 'ое') | OKONCHANIYA) ' значение'?) | 'boolean';
- // ФАЙЛ ОБЪХЕКТА Virajeniya
- Deleniye: '/';
- Umnojeniye: '*';
- Stepenn: '^';
- LevayaSkobka: '(';
- ParavayaSkobka: ')';
- // ФАЙЛ ОБЪХЕКТА TokenModifikatorKonstantnosti
- TOKEN_MODIFIKATOR_KONSTANT_0: 'константн' OKONCHANIYA;
- TOKEN_MODIFIKATOR_KONSTANT_1: 'konstant' | 'constant';
- // ФАЙЛ ОБЪХЕКТА TokenModifikatory
- // ФАЙЛ ОБЪХЕКТА Yap
- TOKEN_RAVNO: '=';
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement