diff --git a/Parsers/PascalABCParserNewSaushkin/Keywords.cs b/Parsers/PascalABCParserNewSaushkin/Keywords.cs index 03a4e1522..4d060849c 100644 --- a/Parsers/PascalABCParserNewSaushkin/Keywords.cs +++ b/Parsers/PascalABCParserNewSaushkin/Keywords.cs @@ -119,10 +119,85 @@ namespace Languages.Pascal.Frontend.Core CreateNewKeyword("break"); CreateNewKeyword("exit"); CreateNewKeyword("continue"); + + // πŸ‡·πŸ‡Ί Π Π£Π‘Π‘ΠšΠ˜Π• БИНОНИМЫ + // ЛогичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ + CreateNewKeyword("ΠΈΠ»ΠΈ", Tokens.tkOr); + CreateNewKeyword("ΠΈ", Tokens.tkAnd); + CreateNewKeyword("Π½Π΅", Tokens.tkNot); + CreateNewKeyword("ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‰Π΅Π΅_ΠΈΠ»ΠΈ", Tokens.tkXor); + CreateNewKeyword("Π΄ΠΈΠ²", Tokens.tkDiv); + CreateNewKeyword("остаток", Tokens.tkMod); + + // Условия ΠΈ Ρ†ΠΈΠΊΠ»Ρ‹ + CreateNewKeyword("Ссли", Tokens.tkIf); + CreateNewKeyword("Ρ‚ΠΎ", Tokens.tkThen); + CreateNewKeyword("ΠΈΠ½Π°Ρ‡Π΅", Tokens.tkElse); + CreateNewKeyword("Π²Ρ‹Π±ΠΎΡ€", Tokens.tkCase); + CreateNewKeyword("для", Tokens.tkFor); + CreateNewKeyword("ΠΎΡ‚", Tokens.tkTo); + CreateNewKeyword("Π²Π½ΠΈΠ·_Π΄ΠΎ", Tokens.tkDownto); + CreateNewKeyword("шаг", Tokens.tkStep); + CreateNewKeyword("ΠΏΠΎΠΊΠ°", Tokens.tkWhile); + CreateNewKeyword("ΠΏΠΎΠ²Ρ‚ΠΎΡ€", Tokens.tkRepeat); + CreateNewKeyword("Π΄ΠΎ", Tokens.tkUntil); + CreateNewKeyword("Ρ†ΠΈΠΊΠ»", Tokens.tkLoop); + CreateNewKeyword("для_ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ", Tokens.tkForeach); + + // Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ + CreateNewKeyword("Π½Π°Ρ‡", Tokens.tkBegin); + CreateNewKeyword("ΠΊΠΎΠ½", Tokens.tkEnd); + CreateNewKeyword("Π°Π»Π³", Tokens.tkFunction, KeywordKind.Function, true); + CreateNewKeyword("ΠΏΡ€ΠΎΡ†", Tokens.tkProcedure, KeywordKind.Function, true); + CreateNewKeyword("ΠΏΠ΅Ρ€Π΅ΠΌ", Tokens.tkVar, KeywordKind.Var); + CreateNewKeyword("конст", Tokens.tkConst, KeywordKind.Const); + CreateNewKeyword("Ρ‚ΠΈΠΏ", Tokens.tkType, KeywordKind.Type); + CreateNewKeyword("ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ", Tokens.tkUses, KeywordKind.Uses); + CreateNewKeyword("ΠΌΠΎΠ΄ΡƒΠ»ΡŒ", Tokens.tkUnit, KeywordKind.Unit); + CreateNewKeyword("ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°", Tokens.tkProgram, KeywordKind.Program); + + // ООП + CreateNewKeyword("класс", Tokens.tkClass, isTypeKeyword: true); + CreateNewKeyword("запись", Tokens.tkRecord, isTypeKeyword: true); + CreateNewKeyword("конструктор", Tokens.tkConstructor, KeywordKind.Constructor); + CreateNewKeyword("дСструктор", Tokens.tkDestructor, KeywordKind.Destructor); + CreateNewKeyword("свойство", Tokens.tkProperty); + CreateNewKeyword("наслСдованный", Tokens.tkInherited, KeywordKind.Inherited); + CreateNewKeyword("Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ", Tokens.tkVirtual); + CreateNewKeyword("ΠΏΠ΅Ρ€Π΅ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ", Tokens.tkOverride); + CreateNewKeyword("абстрактный", Tokens.tkAbstract); + CreateNewKeyword("ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½Ρ‹ΠΉ", Tokens.tkPrivate); + CreateNewKeyword("Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΉ", Tokens.tkProtected); + CreateNewKeyword("ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹ΠΉ", Tokens.tkPublic); + + // ΠœΠ°ΡΡΠΈΠ²Ρ‹ ΠΈ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ + CreateNewKeyword("массив", Tokens.tkArray, isTypeKeyword: true); + CreateNewKeyword("мноТСство", Tokens.tkSet, isTypeKeyword: true); + CreateNewKeyword("Ρ„Π°ΠΉΠ»", Tokens.tkFile, isTypeKeyword: true); + + // Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ + CreateNewKeyword("ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°", Tokens.tkTry); + CreateNewKeyword("ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅", Tokens.tkExcept); + CreateNewKeyword("ΠΊΠΎΠ½Π΅Ρ†_ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ", Tokens.tkFinally); + CreateNewKeyword("Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ", Tokens.tkRaise, KeywordKind.Raise); + + // ΠŸΡ€ΠΎΡ‡Π΅Π΅ + CreateNewKeyword("ΠΌΠ΅Ρ‚ΠΊΠ°", Tokens.tkLabel); + CreateNewKeyword("ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ", Tokens.tkGoto); + CreateNewKeyword("с", Tokens.tkWith); + CreateNewKeyword("Π²", Tokens.tkIn); + CreateNewKeyword("являСтся", Tokens.tkIs); + CreateNewKeyword("ΠΊΠ°ΠΊ", Tokens.tkAs); + CreateNewKeyword("Π½ΠΎΠ²Ρ‹ΠΉ", Tokens.tkNew, KeywordKind.New); + CreateNewKeyword("пусто", Tokens.tkNil); + CreateNewKeyword("Ρ€Π°Π·ΠΌΠ΅Ρ€", Tokens.tkSizeOf, treatAsFunction: true); + CreateNewKeyword("Ρ‚ΠΈΠΏ_ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°", Tokens.tkTypeOf, treatAsFunction: true); + + #endregion } protected override int GetIdToken() => (int)Tokens.tkIdentifier; } -} +} \ No newline at end of file