Permalink
Find file
Fetching contributors…
Cannot retrieve contributors at this time
3834 lines (3833 sloc) 90.5 KB
<?xml version="1.0" encoding="UTF-8"?>
<xns1:grammar xmlns:xns1="http://planet-sl.org/bgf">
<xns1:production>
<nonterminal>Class_name</nonterminal>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Class_declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Notes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Class_header</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Formal_generics</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Obsolete</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Inheritance</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Creators</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Converters</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Features</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Invariant</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Notes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Notes</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>note</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Note_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Note_list</nonterminal>
<xns1:expression>
<sepliststar>
<xns1:expression>
<nonterminal>Note_entry</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sepliststar>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Note_entry</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Note_name</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Note_values</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Note_name</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Note_values</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Note_item</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Note_item</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_constant</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Class_header</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Header_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>class</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Class_name</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Header_mark</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>deferred</terminal>
</xns1:expression>
<xns1:expression>
<terminal>expanded</terminal>
</xns1:expression>
<xns1:expression>
<terminal>frozen</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Obsolete</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>obsolete</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Message</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Message</nonterminal>
<xns1:expression>
<nonterminal>Manifest_string</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Features</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<nonterminal>Feature_clause</nonterminal>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_clause</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>feature</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Clients</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Header_comment</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_declaration_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_declaration_list</nonterminal>
<xns1:expression>
<sepliststar>
<xns1:expression>
<nonterminal>Feature_declaration</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sepliststar>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Header_comment</nonterminal>
<xns1:expression>
<nonterminal>Comment</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_declaration</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>New_feature_list</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Declaration_body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Declaration_body</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Formal_arguments</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Query_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Feature_value</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Query_mark</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Type_mark</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Assigner_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Type_mark</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_value</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Explicit_value</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Obsolete</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Header_comment</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Attribute_or_routine</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Explicit_value</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_constant</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>New_feature_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>New_feature</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>New_feature</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>frozen</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Extended_feature_name</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Attribute_or_routine</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Precondition</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Local_declarations</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_body</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Postcondition</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Rescue</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Deferred</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Effective_routine</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Attribute</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Extended_feature_name</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Alias</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_name</nonterminal>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Alias</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>alias</terminal>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Alias_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>convert</terminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Alias_name</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Operator</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Bracket</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Bracket</nonterminal>
<xns1:expression>
<terminal>[]</terminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Operator</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Unary</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Binary</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Unary</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>not</terminal>
</xns1:expression>
<xns1:expression>
<terminal>+</terminal>
</xns1:expression>
<xns1:expression>
<terminal>-</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Free_unary</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Binary</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>+</terminal>
</xns1:expression>
<xns1:expression>
<terminal>-</terminal>
</xns1:expression>
<xns1:expression>
<terminal>*</terminal>
</xns1:expression>
<xns1:expression>
<terminal>/</terminal>
</xns1:expression>
<xns1:expression>
<terminal>//</terminal>
</xns1:expression>
<xns1:expression>
<terminal>\\</terminal>
</xns1:expression>
<xns1:expression>
<terminal>^</terminal>
</xns1:expression>
<xns1:expression>
<terminal>..</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&lt;=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>and</terminal>
</xns1:expression>
<xns1:expression>
<terminal>or</terminal>
</xns1:expression>
<xns1:expression>
<terminal>xor</terminal>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>and</terminal>
</xns1:expression>
<xns1:expression>
<terminal>then</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>or</terminal>
</xns1:expression>
<xns1:expression>
<terminal>else</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
<xns1:expression>
<terminal>implies</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Free_binary</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Assigner_mark</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>assign</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Inheritance</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<nonterminal>Inherit_clause</nonterminal>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Inherit_clause</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>inherit</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Non_conformance</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Parent_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Non_conformance</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<terminal>NONE</terminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Parent_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Parent</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Parent</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Class_type</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Feature_adaptation</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_adaptation</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Undefine</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Redefine</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Rename</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>New_exports</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Select</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Rename</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>rename</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Rename_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Rename_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Rename_pair</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Rename_pair</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>as</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Extended_feature_name</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Clients</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Class_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Class_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Class_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>New_exports</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>export</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>New_export_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>New_export_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>New_export_item</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>New_export_item</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Clients</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Header_comment</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_set</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_set</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Feature_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>all</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Feature_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Formal_arguments</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Entity_declaration_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Entity_declaration_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Entity_declaration_group</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Entity_declaration_group</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Identifier_list</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type_mark</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Identifier_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Deferred</nonterminal>
<xns1:expression>
<terminal>deferred</terminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Effective_routine</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Internal</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>External</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Internal</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Routine_mark</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Routine_mark</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>do</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Once</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Once</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>once</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Key_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Key_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Manifest_string</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Local_declarations</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>local</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Entity_declaration_list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Compound</nonterminal>
<xns1:expression>
<sepliststar>
<xns1:expression>
<nonterminal>Instruction</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sepliststar>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Instruction</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Creation_instruction</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Call</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Assignment</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Assigner_call</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Conditional</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Multi_branch</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Loop</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Debug</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Precursor</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Check</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Retry</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Precondition</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>require</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>else</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Assertion</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Postcondition</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>ensure</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>then</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Assertion</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Only</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Invariant</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>invariant</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Assertion</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Assertion</nonterminal>
<xns1:expression>
<sepliststar>
<xns1:expression>
<nonterminal>Assertion_clause</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>;</terminal>
</xns1:expression>
</sepliststar>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Assertion_clause</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Tag_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Unlabeled_assertion_clause</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Unlabeled_assertion_clause</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Boolean_expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Comment</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Tag_mark</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Tag</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Tag</nonterminal>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Old</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>old</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Only</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>only</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Feature_list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Check</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>check</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Assertion</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Notes</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Variant</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>variant</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Tag_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Precursor</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Precursor</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Parent_qualification</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Actuals</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Parent_qualification</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Class_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Redefine</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>redefine</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Undefine</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>undefine</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Class_or_tuple_type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Formal_generic_name</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Anchored</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Class_or_tuple_type</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Class_type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Tuple_type</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Class_type</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Attachment_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Class_name</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Actual_generics</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Attachment_mark</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>?</terminal>
</xns1:expression>
<xns1:expression>
<terminal>!</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Anchored</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Attachment_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>like</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Anchor</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Anchor</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>Current</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Actual_generics</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Type_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Formal_generics</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Formal_generic_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Formal_generic_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Formal_generic</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Formal_generic</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>frozen</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Formal_generic_name</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Constraint</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Formal_generic_name</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>?</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Constraint</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>-&gt;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Constraining_types</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Constraint_creators</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Constraining_types</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Single_constraint</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Multiple_constraint</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Single_constraint</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Type</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Renaming</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Renaming</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Rename</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Multiple_constraint</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Constraint_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Constraint_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Single_constraint</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Constraint_creators</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>create</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Tuple_type</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>TUPLE</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Tuple_parameter_list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Tuple_parameter_list</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Tuple_parameters</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Tuple_parameters</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Type_list</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Entity_declaration_list</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Manifest_tuple</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Expression_list</nonterminal>
<xns1:expression>
<sepliststar>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</sepliststar>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Converters</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>convert</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Converter_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Converter_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Converter</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Converter</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Conversion_procedure</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Conversion_query</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Conversion_procedure</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>({</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>})</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Conversion_query</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Select</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>select</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Feature_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Conditional</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>if</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Then_part_list</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Else_part</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Then_part_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Then_part</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>elseif</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Then_part</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Boolean_expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>then</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Else_part</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>else</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Multi_branch</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>inspect</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>When_part_list</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Else_part</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>When_part_list</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<nonterminal>When_part</nonterminal>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>When_part</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>when</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Choices</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>then</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Choices</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Choice</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Choice</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_type</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Constant_interval</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type_interval</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Constant_interval</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Constant</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>..</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Constant</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Type_interval</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Manifest_type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>..</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_type</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Loop</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Initialization</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Invariant</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Exit_condition</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Loop_body</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Variant</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Initialization</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>from</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Exit_condition</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>until</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Boolean_expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Loop_body</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>loop</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Debug</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>debug</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Key_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>end</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Attribute</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>attribute</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Entity</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Variable</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Read_only</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Variable</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Variable_attribute</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Local</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Variable_attribute</nonterminal>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Local</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>Result</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Read_only</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Formal</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Constant_attribute</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>Current</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Formal</nonterminal>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Constant_attribute</nonterminal>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Creators</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<nonterminal>Creation_clause</nonterminal>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Creation_clause</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>create</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Clients</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Header_comment</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Creation_procedure_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Creation_procedure_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Creation_procedure</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Creation_procedure</nonterminal>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Creation_instruction</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>create</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Explicit_creation_type</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Creation_call</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Explicit_creation_type</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Creation_call</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Variable</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Explicit_creation_call</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Explicit_creation_call</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Unqualified_call</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Creation_expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>create</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Explicit_creation_type</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Explicit_creation_call</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Equality</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Comparison</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Comparison</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>/=</terminal>
</xns1:expression>
<xns1:expression>
<terminal>~</terminal>
</xns1:expression>
<xns1:expression>
<terminal>/~</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Assignment</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Variable</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Assigner_call</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:=</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Call</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Object_call</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Non_object_call</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Object_call</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Target</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>.</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Unqualified_call</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Unqualified_call</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Actuals</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Target</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Local</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Read_only</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Call</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Parenthesized_target</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Parenthesized_target</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(|</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>|)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Non_object_call</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}.</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Unqualified_call</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Actuals</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Actual_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Actual_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Object_test</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Rescue</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>rescue</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Compound</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Retry</nonterminal>
<xns1:expression>
<terminal>retry</terminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Agent</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Call_agent</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Inline_agent</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Call_agent</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>agent</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Call_agent_body</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Inline_agent</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>agent</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Formal_arguments</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Type_mark</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Attribute_or_routine</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Agent_actuals</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Call_agent_body</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Agent_qualified</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Agent_unqualified</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Agent_qualified</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Agent_target</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>. </terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Agent_unqualified</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Agent_unqualified</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Feature_name</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Agent_actuals</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Agent_target</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Entity</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Parenthesized</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_type</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Agent_actuals</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Agent_actual_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Agent_actual_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Agent_actual</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Agent_actual</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Placeholder</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Placeholder</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Manifest_type</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>?</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Basic_expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Special_expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Basic_expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Read_only</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Local</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Call</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Precursor</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Equality</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Parenthesized</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Old</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Operator_expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Bracket_expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Creation_expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Special_expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Manifest_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_tuple</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Agent</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Object_test</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Once_string</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Address</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Parenthesized</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Address</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>$</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Variable</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Once_string</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>once</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_string</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Boolean_expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Basic_expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Boolean_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Object_test</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Operator_expression</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Unary_expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Binary_expression</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Unary_expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Unary</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Binary_expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Binary</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Expression</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Bracket_expression</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Bracket_target</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Actuals</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Bracket_target</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Target</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Once_string</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_tuple</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Constant</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Manifest_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Constant_attribute</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Manifest_constant</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Manifest_type</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_value</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Manifest_type</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Manifest_value</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Boolean_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Character_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Integer_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Real_constant</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_string</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_type</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Sign</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>+</terminal>
</xns1:expression>
<xns1:expression>
<terminal>-</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Integer_constant</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Sign</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Integer</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Character_constant</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>'</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Character</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>'</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Boolean_constant</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>True</terminal>
</xns1:expression>
<xns1:expression>
<terminal>False</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Real_constant</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Sign</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Real</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Manifest_string</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Basic_manifest_string</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Verbatim_string</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Basic_manifest_string</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>String_content</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>String_content</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Line_wrapping_part</nonterminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Verbatim_string</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Verbatim_string_opener</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Line_sequence</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Verbatim_string_closer</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Verbatim_string_opener</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Open_bracket</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Verbatim_string_closer</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>Close_bracket</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Open_bracket</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>[</terminal>
</xns1:expression>
<xns1:expression>
<terminal>{</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Close_bracket</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>]</terminal>
</xns1:expression>
<xns1:expression>
<terminal>}</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>external</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>External_language</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_name</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_language</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>Unregistered_language</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Registered_language</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Unregistered_language</nonterminal>
<xns1:expression>
<nonterminal>Manifest_string</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_name</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>alias</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Manifest_string</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Registered_language</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>C_external</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>CPP_external</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>DLL_external</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_signature</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>signature</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_argument_types</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>:</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>External_type</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</optional>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_argument_types</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>(</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>External_type_list</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>)</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_type_list</nonterminal>
<xns1:expression>
<sepliststar>
<xns1:expression>
<nonterminal>External_type</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</sepliststar>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_type</nonterminal>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_file_use</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>use</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>External_file_list</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_file_list</nonterminal>
<xns1:expression>
<seplistplus>
<xns1:expression>
<nonterminal>External_file</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>,</terminal>
</xns1:expression>
</seplistplus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_file</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<nonterminal>External_user_file</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>External_system_file</nonterminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_user_file</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>External_system_file</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>&lt;</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
<xns1:expression>
<terminal>&gt;</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>C_external</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>’"</terminal>
</xns1:expression>
<xns1:expression>
<terminal>C</terminal>
</xns1:expression>
<xns1:expression>
<terminal>’</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>inline</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_signature</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_file_use</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>CPP_external</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
<xns1:expression>
<terminal>C++</terminal>
</xns1:expression>
<xns1:expression>
<terminal>inline</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_signature</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_file_use</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>DLL_external</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
<xns1:expression>
<terminal>dll</terminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<terminal>windows</terminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>DLL_identifier</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>DLL_index</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_signature</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>External_file_use</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>"</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>DLL_identifier</nonterminal>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>DLL_index</nonterminal>
<xns1:expression>
<nonterminal>Integer</nonterminal>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Comment</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>- -</terminal>
</xns1:expression>
<xns1:expression>
<sepliststar>
<xns1:expression>
<nonterminal>Simple_string</nonterminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Comment_break</nonterminal>
</xns1:expression>
</sepliststar>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Comment_break</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<nonterminal>New_line</nonterminal>
</xns1:expression>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Blanks_or_tabs</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<terminal>--</terminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Integer</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<optional>
<xns1:expression>
<nonterminal>Integer_base</nonterminal>
</xns1:expression>
</optional>
</xns1:expression>
<xns1:expression>
<nonterminal>Digit_sequence</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Integer_base</nonterminal>
<xns1:expression>
<sequence>
<xns1:expression>
<terminal>0</terminal>
</xns1:expression>
<xns1:expression>
<nonterminal>Integer_base_letter</nonterminal>
</xns1:expression>
</sequence>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Integer_base_letter</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>b</terminal>
</xns1:expression>
<xns1:expression>
<terminal>c</terminal>
</xns1:expression>
<xns1:expression>
<terminal>x</terminal>
</xns1:expression>
<xns1:expression>
<terminal>B</terminal>
</xns1:expression>
<xns1:expression>
<terminal>C</terminal>
</xns1:expression>
<xns1:expression>
<terminal>X</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Digit_sequence</nonterminal>
<xns1:expression>
<plus>
<xns1:expression>
<nonterminal>Digit</nonterminal>
</xns1:expression>
</plus>
</xns1:expression>
</xns1:production>
<xns1:production>
<nonterminal>Digit</nonterminal>
<xns1:expression>
<choice>
<xns1:expression>
<terminal>0</terminal>
</xns1:expression>
<xns1:expression>
<terminal>1</terminal>
</xns1:expression>
<xns1:expression>
<terminal>2</terminal>
</xns1:expression>
<xns1:expression>
<terminal>3</terminal>
</xns1:expression>
<xns1:expression>
<terminal>4</terminal>
</xns1:expression>
<xns1:expression>
<terminal>5</terminal>
</xns1:expression>
<xns1:expression>
<terminal>6</terminal>
</xns1:expression>
<xns1:expression>
<terminal>7</terminal>
</xns1:expression>
<xns1:expression>
<terminal>8</terminal>
</xns1:expression>
<xns1:expression>
<terminal>9</terminal>
</xns1:expression>
<xns1:expression>
<terminal>a</terminal>
</xns1:expression>
<xns1:expression>
<terminal>b</terminal>
</xns1:expression>
<xns1:expression>
<terminal>c</terminal>
</xns1:expression>
<xns1:expression>
<terminal>d</terminal>
</xns1:expression>
<xns1:expression>
<terminal>e</terminal>
</xns1:expression>
<xns1:expression>
<terminal>f</terminal>
</xns1:expression>
<xns1:expression>
<terminal>A</terminal>
</xns1:expression>
<xns1:expression>
<terminal>B</terminal>
</xns1:expression>
<xns1:expression>
<terminal>C</terminal>
</xns1:expression>
<xns1:expression>
<terminal>D</terminal>
</xns1:expression>
<xns1:expression>
<terminal>E</terminal>
</xns1:expression>
<xns1:expression>
<terminal>F</terminal>
</xns1:expression>
<xns1:expression>
<terminal>_</terminal>
</xns1:expression>
</choice>
</xns1:expression>
</xns1:production>
</xns1:grammar>