title: مرجعُ قواعدِ النحو description: كلُّ قاعدةٍ مُعلَنةٍ في مصدرِ حقيقةِ اللغة، ومرساتُها وتنزيلُها
مرجعُ قواعدِ النحو
صفحةٌ مولَّدةٌ من language-truth/grammar/ — لا تُحرَّرُ بيد.
| المقيس | القيمة |
|---|---|
| قواعدُ مُعلَنة | 107 |
لها مجلَّدُ مرساةٍ في rules_matrix | 103 |
تنزيلُها مشتقٌّ بالتنفيذ (derived) | 105 |
🔑 عمودُ «مرساة» هو الأهمُّ في هذا الجدول. مجلَّدُ البذورِ يحملُ معرّفَ القاعدةِ حرفًا، فالقاعدةُ بلا مجلَّدٍ قاعدةٌ غيرُ محروسة — يُقاسُ ذلك ولا يُفترَض.
العمودُ «تنزيل»:
derivedتعني أنّ ما تُنزَّلُ إليه القاعدةُ اشتُقَّ بتشغيلِ المترجِّم لا كُتِبَ باليد — والسجلُّ يحملُ أسماءَ البذورِ التي اشتُقَّ منها شاهدًا.
أعِدْ إنتاجَ الأرقامِ أعلاه:
python scripts/gen_tracks.py --fetch sadlangالبنية العليا — البرنامج، التصريح الأعلى، الجملة، الكتلة
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.program.program | برنامج | ✅ | derived | 6 |
gr.program.declaration | تصريح | ✅ | derived | 17 |
gr.program.statement | جملة | ✅ | derived | 8 |
gr.program.block | كتلة | ✅ | derived | 15 |
صيغُ EBNF لهذه الطبقة
gr.program.program — برنامج
Program = { Declaration } EOF ;gr.program.declaration — تصريح
Declaration = FunctionDecl | ClassDecl | StructDecl | EnumDecl
| TraitDecl | ImplDecl | ImportDecl | ExportDecl
| VarDecl | Statement ;gr.program.statement — جملة
Statement = IfStatement | WhileStatement | ForStatement | MatchStatement
| TryStatement | ReturnStatement | BreakStatement | ContinueStatement
| BlockStatement | ExpressionStatement ;gr.program.block — كتلة
Block = { Statement } 'نهاية' ;الجمل التنفيذية — إذا/بينما/لكل/طابق/حاول/ارمي/ارجع/توقف/استمر/تعبير
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.stmt.if | جملة إذا | ✅ | derived | 2 |
gr.stmt.while | جملة بينما | ✅ | derived | 8 |
gr.stmt.for | جملة لكل | ✅ | derived | 14 |
gr.stmt.match | جملة طابق | ✅ | derived | 6 |
gr.stmt.try | جملة حاول | ✅ | derived | 12 |
gr.stmt.throw | جملة ارمي | ✅ | derived | 9 |
gr.stmt.return | جملة ارجع | ✅ | derived | 17 |
gr.stmt.break | جملة توقف | ✅ | derived | 15 |
gr.stmt.continue | جملة استمر | ✅ | derived | 16 |
gr.stmt.expression | جملة تعبير | ✅ | derived | 2 |
gr.stmt.switch | جملة حالة | ✅ | derived | 8 |
صيغُ EBNF لهذه الطبقة
gr.stmt.if — جملة إذا
IfStatement = 'إذا' '(' Expression ')' Block
{ 'وإلا' 'إذا' '(' Expression ')' Block }
[ 'وإلا' Block ] ;gr.stmt.while — جملة بينما
WhileStatement = 'بينما' '(' Expression ')' Block ;gr.stmt.for — جملة لكل
ForStatement = 'لكل' Identifier [ ',' Identifier ] 'في' Expression Block
| 'لكل' Identifier 'من' Expression 'الى' Expression Block ;gr.stmt.match — جملة طابق
MatchStatement = 'طابق' [ '(' ] Expression [ ')' ]
{ 'عندما' Pattern [ 'إذا' Expression ] [ ':' ] { Statement } }
[ 'افتراضي' [ ':' ] { Statement } ] 'نهاية' ;gr.stmt.try — جملة حاول
TryStatement = 'حاول' Block
{ 'امسك' Identifier Block }
[ 'أخيراً' Block ] 'نهاية' ;gr.stmt.throw — جملة ارمي
ThrowStatement = 'ارمي' Expression ;gr.stmt.return — جملة ارجع
ReturnStatement = 'ارجع' [ Expression ] ;gr.stmt.break — جملة توقف
BreakStatement = 'توقف' ;gr.stmt.continue — جملة استمر
ContinueStatement = 'استمر' ;gr.stmt.expression — جملة تعبير
ExpressionStatement = Expression [ '؛' | ';' ] ;gr.stmt.switch — جملة حالة
SwitchStatement = 'حالة' Expression
{ 'عندما' Expression [ ':' ] { Statement } }
[ 'افتراضي' [ ':' ] { Statement } ] 'نهاية' ;التصريحات — متغير/ثابت/ساكن، دالة، معاملات، استيراد، تصدير، خارجي
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.decl.variable | تصريح متغير | ✅ | derived | 4 |
gr.decl.type_ref | إشارة نوع | ✅ | derived | 8 |
gr.decl.function | تصريح دالة | ✅ | derived | 18 |
gr.decl.parameters | المعاملات | ✅ | derived | 17 |
gr.decl.import | تصريح استيراد | ✅ | derived | 2 |
gr.decl.export | تصريح تصدير | ✅ | derived | 17 |
gr.decl.reexport | تصريح إعادة تصدير | ✅ | derived | 17 |
gr.decl.extern | تصريح خارجي | ✅ | derived | 2 |
gr.decl.arg_list | قائمة وسائط | ✅ | derived | 17 |
صيغُ EBNF لهذه الطبقة
gr.decl.variable — تصريح متغير
VarDeclaration = ( ('متغير' | 'ثابت' | 'ساكن') [ 'متطاير' ] { Modifier } [ Type ]
| 'متطاير' [ Type ] | Type ) Identifier [ '=' Expression ] ;gr.decl.type_ref — إشارة نوع
TypeRef = ('رقم' | 'رقم8' | 'رقم16' | 'رقم32'
| 'طبيعي' | 'طبيعي8' | 'طبيعي16' | 'طبيعي32'
| 'عشري' | 'عشري32'
| 'نص' | 'منطقي' | 'مصفوفة' | 'خريطة' | 'أي'
| 'فراغ' | 'عدم' | Identifier) ;gr.decl.function — تصريح دالة
FunctionDeclaration = 'دالة' [ 'لا_ترجع' ] [ 'مقاطعة' ] [ Type ] Identifier
'(' [ Parameters ] ')' [ 'غير_متزامن' ] Block ;gr.decl.parameters — المعاملات
Parameters = Parameter { ',' Parameter } ; Parameter = [ Type ] Identifier [ '=' Expression ] ;gr.decl.import — تصريح استيراد
ModuleRef = Identifier { '.' Identifier }
| StringLiteral ;
SourcePath = ModuleRef
| ( '.' | '..' ) Identifier { '.' Identifier } ;
ImportItem = Identifier [ 'كـ' Identifier ] ; ImportItems = '*' | ImportItem { ( '،' | ',' ) ImportItem } ; ImportDeclaration = 'استورد' ModuleRef [ 'كـ' Identifier ]
| 'استورد' ImportItems 'من' SourcePath
| 'من' SourcePath 'استورد' ImportItems ;gr.decl.export — تصريح تصدير
ExportDeclaration = 'صدّر' Declaration ;gr.decl.reexport — تصريح إعادة تصدير
ReExportDeclaration = 'صدّر' '*'
| 'صدّر' '*' 'من' SourcePath
| 'صدّر' ImportItem { ( '،' | ',' ) ImportItem } 'من' SourcePath ;
(* ImportItem و SourcePath معرَّفتان في gr.decl.import *)gr.decl.extern — تصريح خارجي
ExternDeclaration = 'دالة' 'خارجية' [ '(' StringLiteral ')' ] [ Type ] Identifier '(' [ Parameters ] ')' ;gr.decl.arg_list — قائمة وسائط
ArgList = [ Expression { ( ',' | '،' ) Expression } ] ;البرمجة الكائنية — صنف/أعضاء/حقل/طريقة/باني/هادم/خاصية/سمة/تنفيذ/امتداد/جديد/هذا/الأساس
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.oop.class | تصريح صنف | ✅ | derived | 8 |
gr.oop.enum | تصريح تعداد | ✅ | derived | 3 |
gr.oop.struct | تصريح بنية | ✅ | derived | 6 |
gr.oop.member | عضو صنف | ✅ | derived | 7 |
gr.oop.field | حقل | ✅ | derived | 7 |
gr.oop.method | طريقة | ✅ | derived | 7 |
gr.oop.constructor | باني | ✅ | derived | 5 |
gr.oop.destructor | هادم | ✅ | derived | 6 |
gr.oop.property | خاصيّة | ✅ | derived | 8 |
gr.oop.operator | تحميل عامل | ✅ | derived | 9 |
gr.oop.modifiers | معدّلات وصول | ✅ | derived | 8 |
gr.oop.trait | تصريح سمة | ✅ | derived | 5 |
gr.oop.impl | كتلة تنفيذ | ✅ | derived | 8 |
gr.oop.extension | كتلة امتداد | ✅ | derived | 9 |
gr.oop.new | إنشاء كائن | ✅ | derived | 5 |
gr.oop.this_super | هذا/الأساس | ✅ | derived | 9 |
صيغُ EBNF لهذه الطبقة
gr.oop.class — تصريح صنف
ClassDecl = 'صنف' { 'مجرد' | 'محكم' } Identifier
[ 'يرث' Identifier { ',' Identifier } ]
[ 'نفّذ' Identifier { ',' Identifier } ]
{ ClassMember } 'نهاية' ;gr.oop.enum — تصريح تعداد
EnumDecl = 'تعداد' Identifier EnumMember { [ ',' ] EnumMember } 'نهاية' ; EnumMember = Identifier [ Payload | '=' Expression ] ; Payload = '(' [ Field { ( ',' | '،' ) Field } ] ')' ; Field = [ Type ] Identifier ;gr.oop.struct — تصريح بنية
StructDecl = 'بنية' Identifier [ LifetimeParams ] { [ AccessMod ] ( Field | Constructor | Method ) } 'نهاية' ;gr.oop.member — عضو صنف
ClassMember = Property | Method | Constructor | Destructor | Operator | Field ;gr.oop.field — حقل
FieldDecl = ( 'متغير' | 'ثابت' ) Modifiers [ Type ] Identifier [ '=' Expression ] ;gr.oop.method — طريقة
MethodDecl = 'دالة' Modifiers [ 'غير_متزامن' ] [ ReturnType ] Identifier '(' Parameters ')' Block ;gr.oop.constructor — باني
ConstructorDecl = 'باني' Modifiers '(' Parameters ')' [ ':' 'الأساس' '(' ArgList ')' ] Block ;gr.oop.destructor — هادم
DestructorDecl = 'هدم' Modifiers '(' ')' Block ;gr.oop.property — خاصيّة
PropertyDecl = 'خاصية' Modifiers [ Type ] Identifier
{ ( 'احصل' '(' ')' Block | 'عيّن' '(' Identifier ')' Block ) }
'نهاية' ;gr.oop.operator — تحميل عامل
OperatorDecl = 'عامل' Modifiers Operator '(' Parameters ')' Block ;gr.oop.modifiers — معدّلات وصول
Modifiers = { 'عام' | 'خاص' | 'محمي' | 'ساكن' | 'مجرد' } ;gr.oop.trait — تصريح سمة
TraitDecl = 'سمة' Identifier [ 'يرث' Identifier { ',' Identifier } ]
{ 'دالة' [ 'مجرد' ] [ ReturnType ] Identifier '(' Parameters ')' [ DefaultBody 'نهاية' ] }
'نهاية' ;gr.oop.impl — كتلة تنفيذ
ImplDecl = 'نفّذ' ( Identifier 'لـ' Identifier | Identifier ) { 'دالة' FunctionDecl } 'نهاية' ;gr.oop.extension — كتلة امتداد
ExtensionDecl = 'امتداد' Identifier { 'دالة' FunctionDecl } 'نهاية' ;gr.oop.new — إنشاء كائن
NewExpr = ClassName '(' ArgList ')' [ 'جديد' ] ;gr.oop.this_super — هذا/الأساس
ThisSuper = 'هذا' | 'الأساس' '.' Member ;التعابير وسلسلة الأسبقية — أنبوب/إسناد/ثلاثي/منطقي/بتّي/مقارنة/مدى/حسابي/أحادي/أس/لاحقي/أوّلي
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.expr.expression | تعبير | ✅ | derived | 2 |
gr.expr.pipeline | أنبوب | ✅ | derived | 8 |
gr.expr.assignment | إسناد | ✅ | derived | 6 |
gr.expr.ternary | شرطي ثلاثي | ✅ | derived | 7 |
gr.expr.null_coalesce | تجميع فارغ | ✅ | derived | 7 |
gr.expr.logical_or | أو المنطقي | ✅ | derived | 8 |
gr.expr.logical_and | و المنطقي | ✅ | derived | 8 |
gr.expr.bitwise_or | أو البتّي | ✅ | derived | 2 |
gr.expr.bitwise_xor | XOR البتّي | ✅ | derived | 2 |
gr.expr.bitwise_and | و البتّي | ✅ | derived | 2 |
gr.expr.equality | مساواة | ✅ | derived | 2 |
gr.expr.comparison | مقارنة | ✅ | derived | 22 |
gr.expr.range | مدى | ✅ | derived | 9 |
gr.expr.term | حد جمعي | ✅ | derived | 2 |
gr.expr.factor | حد ضربي | ✅ | derived | 2 |
gr.expr.unary | أحادي | ✅ | derived | 6 |
gr.expr.power | أس | ✅ | derived | 3 |
gr.expr.postfix | لاحقي | ✅ | derived | 10 |
gr.expr.primary | أوّلي | ✅ | derived | 11 |
gr.expr.lambda | لامدا | ✅ | derived | 10 |
gr.expr.fstring | نص منسَّق | ✅ | derived | 6 |
gr.expr.decorator | مُزخرِف | ✅ | derived | 16 |
gr.expr.directive | تعبير توجيه | ✅ | derived | 4 |
gr.expr.array_literal | مصفوفة حرفيّة | ✅ | derived | 6 |
gr.expr.map_literal | خريطة حرفيّة | ✅ | derived | 7 |
صيغُ EBNF لهذه الطبقة
gr.expr.expression — تعبير
Expression = Pipeline ;gr.expr.pipeline — أنبوب
Pipeline = Assignment { '|>' Assignment } ;gr.expr.assignment — إسناد
Assignment = Ternary [ ( ':=' | '=' | '+=' | '-=' | '*=' | '/=' | '//=' | '%=' ) Assignment ] ;gr.expr.ternary — شرطي ثلاثي
Ternary = NullCoalesce [ '؟' Expression ':' Ternary ] ;gr.expr.null_coalesce — تجميع فارغ
NullCoalesce = LogicalOr { '؟؟' LogicalOr } ;gr.expr.logical_or — أو المنطقي
LogicalOr = LogicalAnd { ( '||' | 'أو' ) LogicalAnd } ;gr.expr.logical_and — و المنطقي
LogicalAnd = BitwiseOr { ( '&&' | 'و' ) BitwiseOr } ;gr.expr.bitwise_or — أو البتّي
BitwiseOr = BitwiseXor { '|' BitwiseXor } ;gr.expr.bitwise_xor — XOR البتّي
BitwiseXor = BitwiseAnd { '^' BitwiseAnd } ;gr.expr.bitwise_and — و البتّي
BitwiseAnd = Equality { '&' Equality } ;gr.expr.equality — مساواة
Equality = Comparison { ( '==' | '!=' ) Comparison } ;gr.expr.comparison — مقارنة
Comparison = Range { ( '<' | '<=' | '>' | '>=' | 'في' ) Range } ;gr.expr.range — مدى
Range = Term [ '..' [ Term ] ] ;gr.expr.term — حد جمعي
Term = Factor { ( '+' | '-' ) Factor } { ( '<<' | '>>' ) Factor } ;gr.expr.factor — حد ضربي
Factor = Unary { ( '*' | '/' | '//' | '%' ) Unary } ;gr.expr.unary — أحادي
Unary = '&' [ Lifetime ] [ 'متغير' | 'mut' ] Identifier
| ( '!' | '-' | '++' | '--' | '~' ) Unary
| Power ;gr.expr.power — أس
Power = Postfix [ '**' Power ] ;gr.expr.postfix — لاحقي
Postfix = Primary { PostfixOp } ; PostfixOp = Identifier '!' '(' ArgList ')' | '(' ArgList ')' [ 'جديد' ]
| '.' Member [ '(' ArgList ')' ] | '؟.' Member [ '(' ArgList ')' ]
| '[' IndexOrSlice ']' | ( '++' | '--' ) | '؟' '[' Expression ']' ;gr.expr.primary — أوّلي
Primary = 'إذا' '(' Expression ')' [ 'ثم' ] Expression 'وإلا' Expression
| 'انتظر' Expression | 'انشر' Expression | 'هذا' | 'الأساس' '.' Member
| DirectiveExpr | Lambda | Literal | FString | '|' Expression '|'
| 'اعرض' Widget | Identifier [ '<' TemplateArgs '>' ]
| '(' [ Expression { ',' Expression } ] ')' [ '=>' Expression ]
| ArrayLiteral | MapLiteral | BuiltinType | SoftKeywordAsName ;gr.expr.lambda — لامدا
Lambda = 'لامدا' '(' Parameters ')' ( '=>' Expression | '=>' Block 'نهاية' | Block 'نهاية' ) ;gr.expr.fstring — نص منسَّق
FString = FSTRING_TOKEN ;gr.expr.decorator — مُزخرِف
Decorator = '@' Identifier [ '(' ArgList ')' ] ;gr.expr.directive — تعبير توجيه
DirectiveExpr = '@' Name '(' ArgList ')' ;gr.expr.array_literal — مصفوفة حرفيّة
ArrayLiteral = '[' [ ListComprehension | Expression { ( ',' | '،' ) Expression } ] ']' ;gr.expr.map_literal — خريطة حرفيّة
MapLiteral = '{' [ DictComprehension | SetComprehension | Expression ( ':' | '=' ) Expression { ',' ... } ] '}' ;أنماط المطابقة — شامل/حرفيّ/متغيّر/نطاق (حصريّ وشامل)/عضو تعداد مؤهَّل (unit وADT)/باني غير مؤهَّل (ConstructorPattern)/قائمة/بنية/ربط/بدائل
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.pattern.pattern | نمط | ✅ | derived | 6 |
gr.pattern.primary | نمط أوّليّ | ✅ | derived | 9 |
gr.pattern.list | نمط قائمة | ✅ | derived | 15 |
gr.pattern.struct | نمط بنية | ✅ | derived | 12 |
gr.pattern.binding | نمط ربط | ✅ | derived | 8 |
gr.pattern.or | نمط بدائل | ✅ | derived | 7 |
صيغُ EBNF لهذه الطبقة
gr.pattern.pattern — نمط
Pattern = '_' | StructPattern | ListPattern
| PrimaryPattern [ '@' Pattern ] | PrimaryPattern { '|' PrimaryPattern } ;gr.pattern.primary — نمط أوّليّ
PrimaryPattern = [ '-' ] Number [ ( '..' | '..=' ) [ '-' ] Number ]
| String | BoolLit | NullLit
| Identifier ( '.' Identifier [ CtorArgs ] | CtorArgs )? ;
CtorArgs = '(' [ Pattern { ( ',' | '،' ) Pattern } ] ')' ;gr.pattern.list — نمط قائمة
ListPattern = '[' [ Pattern { ( ',' | '،' ) Pattern } [ ( ',' | '،' ) '*' Identifier ]
| '*' Identifier ] ']' ;gr.pattern.struct — نمط بنية
StructPattern = '{' [ Field { ( ',' | '،' ) Field } ] '}' ; Field = Identifier [ ':' Pattern ] ;gr.pattern.binding — نمط ربط
BindingPattern = Identifier '@' Pattern ;gr.pattern.or — نمط بدائل
OrPattern = PrimaryPattern '|' PrimaryPattern { '|' PrimaryPattern } ;بنيات متقدمة — أنواع/قوالب/عمر/قيود + أنتج/باستخدام/أجّل/أطلق/اختر + استيعاب/ماكرو/اختبار/عقد/FFI/واجهة
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.adv.type | نوع | ✅ | derived | 17 |
gr.adv.lifetime_params | معاملات عمر | ✅ | derived | 17 |
gr.adv.template_decl | تصريح قالب | ✅ | derived | 5 |
gr.adv.template_params | معاملات قالب | ✅ | derived | 5 |
gr.adv.template_args | وسائط قالب | ✅ | derived | 5 |
gr.adv.where_clause | جملة حيث | ✅ | derived | 5 |
gr.adv.yield | جملة أنتج | ✅ | derived | 17 |
gr.adv.with | جملة باستخدام | ✅ | derived | 7 |
gr.adv.defer | جملة أجّل | ✅ | derived | 16 |
gr.adv.go | جملة أطلق | ✅ | derived | 7 |
gr.adv.select | جملة اختر | ✅ | derived | 10 |
gr.adv.list_comprehension | استيعاب قائمة | ✅ | derived | 17 |
gr.adv.set_comprehension | استيعاب مجموعة | ✅ | derived | 17 |
gr.adv.dict_comprehension | استيعاب قاموس | ✅ | derived | 18 |
gr.adv.macro | تصريح ماكرو | ✅ | derived | 6 |
gr.adv.property_test | اختبار خصائص | — | not_derived | — |
gr.adv.await | تعبير انتظر | ✅ | derived | 2 |
gr.adv.contract | عقد ذكيّ | ✅ | derived | 6 |
gr.adv.ffi_extern_block | كتلة خارجي | — | derived | 2 |
gr.adv.ffi_linkage | اتفاقيّة ربط | — | derived | 2 |
gr.adv.ffi_ctype | نوع C | — | not_derived | — |
gr.adv.inline_asm | تجميع مضمَّن | ✅ | derived | 2 |
gr.adv.asm_dialect | كتلة لهجة التجميع | ✅ | derived | 15 |
gr.adv.ui_decl | تصريح واجهة | ✅ | derived | 7 |
gr.adv.ui_state | تصريح حالة واجهة | ✅ | derived | 16 |
gr.adv.widget | تعبير عنصر واجهة | ✅ | derived | 2 |
gr.adv.ui_modifier_chain | سلسلة معدّلات | ✅ | derived | 2 |
gr.adv.ui_event | معالج حدث | ✅ | derived | 2 |
صيغُ EBNF لهذه الطبقة
gr.adv.type — نوع
Type = TypeCore [ '؟' | ( 'عدمي' | 'عدمية' ) Identifier<lookahead, same-line> ] ; TypeCore = 'رقم' | 'عشري' | 'نص' | 'منطقي' | 'فراغ' | 'عدم' | 'أي'
| ( 'مصفوفة' | 'خريطة' ) [ '<' Type [ ',' Type ] '>' ] | Identifier ;gr.adv.lifetime_params — معاملات عمر
LifetimeParams = '<' Lifetime { ( ',' | '،' ) Lifetime } '>' ;gr.adv.template_decl — تصريح قالب
TemplateDecl = 'قالب' TemplateParams ( FunctionDecl | ClassDecl ) ;gr.adv.template_params — معاملات قالب
TemplateParams = '<' TParam { ( ',' | '،' ) TParam } '>' ; TParam = 'ثابت' Type Identifier [ '=' Expression ] | 'نوع' Identifier [ ':' Constraint { '+' Constraint } ] ;gr.adv.template_args — وسائط قالب
TemplateArgs = ( Type | Expression ) { ',' ( Type | Expression ) } ;gr.adv.where_clause — جملة حيث
WhereClause = 'حيث' ConstraintItem { ( ',' | '،' ) ConstraintItem } ;gr.adv.yield — جملة أنتج
YieldStatement = 'أنتج' [ 'from' ] [ Expression ] ;gr.adv.with — جملة باستخدام
WithStatement = 'باستخدام' Expression [ 'كـ' Identifier ] { Statement } 'نهاية' ;gr.adv.defer — جملة أجّل
DeferStatement = 'أجّل' ( Statement | { Statement } 'نهاية' ) ;gr.adv.go — جملة أطلق
GoStatement = 'أطلق' ( Expression | { Declaration } 'نهاية' ) ;gr.adv.select — جملة اختر
SelectStatement = 'اختر' { 'عندما' Expression ':' { Statement } } [ 'افتراضي' ':' { Statement } ] 'نهاية' ;gr.adv.list_comprehension — استيعاب قائمة
ListComprehension = 'لكل' Identifier [ '،' Identifier ] 'في' Expression [ 'إذا' Expression ] 'أنتج' Expression ;gr.adv.set_comprehension — استيعاب مجموعة
SetComprehension = 'لكل' Identifier [ '،' Identifier ] 'في' Expression [ 'إذا' Expression ] 'أنتج' Expression ;gr.adv.dict_comprehension — استيعاب قاموس
DictComprehension = 'لكل' Identifier [ '،' Identifier ] 'في' Expression [ 'إذا' Expression ] 'أنتج' Expression ( ':' | '=' ) Expression ;gr.adv.macro — تصريح ماكرو
MacroDecl = 'ماكرو' Identifier '(' [ Parameters [ '...' Identifier ] ] ')' { Statement } 'نهاية' ;gr.adv.property_test — اختبار خصائص
TestDecl = 'اختبر' '(' STRING ')' [ 'تكرارات' Number ] [ 'بذرة' Number ] { Statement } 'نهاية' ;gr.adv.await — تعبير انتظر
AwaitExpr = 'انتظر' Expression ;gr.adv.contract — عقد ذكيّ
ContractDecl = 'عقد' Identifier [ 'يرث' Identifier { ',' Identifier } ] { ClassMember } 'نهاية' ;gr.adv.ffi_extern_block — كتلة خارجي
ExternBlock = 'خارجي' StringLiteral { 'دالة' [ Type ] Identifier '(' [ Parameters ] ')' } 'نهاية' ;gr.adv.ffi_linkage — اتفاقيّة ربط
Linkage = 'خارجي' StringLiteral | 'خارجية' '(' StringLiteral ')' ;gr.adv.ffi_ctype — نوع C
CType = BasicCType { '*' } [ '[' Number ']' ] ;gr.adv.inline_asm — تجميع مضمَّن
InlineAsm = '@تجميع' '(' STRING { ',' ( STRING | 'متطاير' ) } ')' ;gr.adv.asm_dialect — كتلة لهجة التجميع
AsmBlock = 'تجميع' [ 'متطاير' ] { AsmLabel | AsmInstruction | AsmClobber } 'نهاية' ; AsmInstruction = MNEMONIC [ Operand { '،' Operand } ] ; AsmLabel = IDENT ':' ; AsmClobber = 'يلوّث' '(' Target { '،' Target } ')' ; Operand = REGISTER | INTEGER | '[' MemExpr ']' | '{' IDENT '}' | LABEL ;gr.adv.ui_decl — تصريح واجهة
UIDeclaration = 'واجهة' Identifier [ 'يرث' Identifier ] { UIStateDecl | 'دالة' FunctionDecl } 'نهاية' ;gr.adv.ui_state — تصريح حالة واجهة
UIStateDecl = '@' ( 'حالة' | 'ربط' | 'بيئة' | 'محسوب' ) Identifier [ ':' Type ] [ '=' Expression ] ;gr.adv.widget — تعبير عنصر واجهة
WidgetExpr = WidgetName [ '(' [ Arg { ',' Arg } ] ')' ] ModifierChain [ ChildrenBlock 'نهاية' ] ;gr.adv.ui_modifier_chain — سلسلة معدّلات
ModifierChain = { '.' Identifier '(' [ ArgList ] ')' | UIEventHandler } ;gr.adv.ui_event — معالج حدث
UIEventHandler = '.' EventName '=>' ( Expression | Block 'نهاية' ) ;القواعد المعجمية — معرّف/عدد صحيح/عشري/نص/نص خام/نص منسَّق/عمر/تعليق
| القاعدة | الاسم | مرساة | تنزيل | أوپكودات |
|---|---|---|---|---|
gr.lex.identifier | مُعرّف | ✅ | derived | 4 |
gr.lex.integer | عدد صحيح | ✅ | derived | 2 |
gr.lex.double | عدد عشريّ | ✅ | derived | 2 |
gr.lex.string | نص حرفيّ | ✅ | derived | 2 |
gr.lex.raw_string | نص خام | ✅ | derived | 2 |
gr.lex.fstring | رمز نص منسَّق | ✅ | derived | 6 |
gr.lex.lifetime | تعليق عمر | ✅ | derived | 7 |
gr.lex.comment | تعليق | ✅ | derived | 4 |
صيغُ EBNF لهذه الطبقة
gr.lex.identifier — مُعرّف
Identifier = ( Letter | '_' | ArabicLetter ) { Letter | Digit | '_' | ArabicLetter } ;gr.lex.integer — عدد صحيح
IntegerLiteral = Digit { Digit | '_' } ;gr.lex.double — عدد عشريّ
DoubleLiteral = Digit { Digit } '.' Digit { Digit } [ ( 'e' | 'E' ) [ '+' | '-' ] Digit { Digit } ] ;gr.lex.string — نص حرفيّ
StringLiteral = '"' { Char | Escape } '"' ;gr.lex.raw_string — نص خام
RawString = 'r' '"' { Char } '"' ;gr.lex.fstring — رمز نص منسَّق
FStringToken = 'f' '"' { Char | '{' ... '}' } '"' ;gr.lex.lifetime — تعليق عمر
Lifetime = '\'' Identifier ;gr.lex.comment — تعليق
Comment = '#' { Char } NEWLINE | '#*' { Char } '*#' | '##' { Char } NEWLINE | '#**' { Char } '**#' ;