rsl.syntax.bnf (811085)
Текст из файла
APPENDIX ASyntax Summaryrecord_variant ::=constructor ( component_kind-list )Specificationsspecification ::=module_decl-stringcomponent_kind ::=opt-destructor type_expr opt-reconstructormodule_decl ::=scheme_decl |object_declDeclarationsdecl ::=scheme_decltype_declvariable_declaxiom_decl|object_decl|value_decl|channel_declconstructor ::=id_or_op⎯|||scheme_def ::=opt-comment-stringid opt-formal_scheme_parameter = class_exprformal_scheme_parameter ::=( formal_scheme_argument-list )formal_scheme_argument ::=object_defObject Declarationsobject_decl ::=object object_def-listobject_def ::=opt-comment-stringid opt-formal_array_parameter : class_exprformal_array_parameter ::=[ typing-list ]Type Declarationstype_decl ::=type type_def-list||||Sort Definitionssort_def ::=opt-comment-string idVariant Definitionsvariant_def ::=opt-comment-string id == variant-choicevariant ::=constructor|record_variantdestructor ::=id_or_op :reconstructor ::=↔ id_or_opUnion Definitionsunion_def ::=opt-comment-stringid = name_or_wildcard-cholce2Scheme Declarationsscheme_decl ::=scheme scheme_def-listtype_def ::=sort_defvariant_defunion_defshort_record_defabbreviation_def|name_or_wildcard ::=type-name|⎯Short Record Definitionsshort_record _def ::=opt-comment-stringid :: component_kind-stringAbbreviation Definitionsabbreviation_def ::=opt-comment-string id = type_exprValue Declarationsvalue_decl ::=value value_def-listvalue_def ::=commented_typingexplicit_value_defimplicit_value_defexplicit_function_defimplicit_function_def||||Explicit Value Definitionsexplicit_value_def ::=opt-comment-stringsingle_typing = pure-value_exprImplicit Value Definitionsimplicit_value_def ::=opt-comment-stringsingle_typing pure-restrictionExplicit Function Definitionsexplicit_function_def ::=opt-comment-string single_typingformal_function_application ≡ value_expropt-pre_conditionformal_function_application ::=id_application|prefix_application|infix_applicationid_application ::=value-id formal_function_parameter-stringformal_function_parameter ::=( opt-binding-list )prefix_application ::=prefix_op idinfix_application ::=id infix_op idClass Expressionsclass_expr ::=basic_class_exprextending_class_exprhiding_class_exprrenayming_class_exprscheme_instantiation||||Basic Class Expressionsbasic_class_expr ::=class opt-decl-string endExtending Class Expressionsextending_class_expr ::=extend class_expr with class_exprImplicit Function Definitionsimplicit_function_def ::=opt-comment-stringsingle_typing formal_function_applicationpost_condition opt-pre_conditionHiding Class Expressionshiding_class_expr ::=hide defined_item-list in class_exprVariable Declarationsvariable_decl ::=variable variable_def-listRenaming Class Expressionsrenaming_class_expr ::=use rename_pair-list in class_exprvariable_def ::=single_variable_defmultiple_variable_defScheme Instantiationsscheme_instantiation ::=scheme-name opt-actual_scheme_parameter|single_variable_def ::=opt-comment-stringid : type_expr opt-initialisationinitialisation ::=:= pure-value_exprmultiple_variable_def ::=opt-comment-string id-list2 : type_exprRename Pairsrename_pair ::=defined_item for defined_itemDefined Itemsdefined_item ::=id_or_op|disambiguated_itemChannel Declarationschannel_decl ::=channel channel_def-listchannel_def ::=single_channel_defmultiple_channel_defactual_scheme_parameter ::=( object_expr-list )|single_channel_def ::=opt-comment-string id : type_exprmultiple_channel_def ::=opt-comment-string id-list2 : type_exprdisambiguated_item ::=id_or_op : type_exprObject Expressionsobject_expr ::=object-name|element_object_exprarray_object_exprfitting_object_expr||Axiom Declarationsaxiom_decl ::=axiom opt-axiom_quantificationaxiom_def-listElement Object Expressionselement_object_expr ::=array-object_expr actual_array_parameteraxiom_quantification ::=forall typing-list •actual_array_parameter :: =[ pure-value_expr-list ]axiom_def ::=opt-comment-string opt-axiom_namingreadonly_logical-value_exprArray Object Expressionsarray_object_expr ::=[| typing-list • element-object_expr |]axiom_naming ::=[ id ]Fitting Object Expressionsfitting_object_expr ::=object_expr { rename_pair-list }Bracketed Type Expressionsbracketed_type_expr ::=( type_expr )Type Expressionstype_expr ::=type_literal|type-name|product_type_exprset_type_expr |list_type_expr |map_type_expr |function_type_exprsubtype_expr |bracketed_type_exprAccess Descriptionsaccess_desc ::=access_mode access-listType Literalstype_literal ::=Unit |BoolChar|access_mode ::=read |write |in|access ::=variable_or_channel-nameenumerated_access|completed_access|comprehended_access|outenumerated_access ::={ opt-access-list }|lnt|Nat|RealProduct Type Expressionsproduct_type_expr ::=type_expr-product2Set Type Expressionsset_type_expr ::=finite_set_type_exprinfinite_set_type_expr|finite_set_type_expr ::=type_expr-setinfinite_set_type_expr :: =type_expr-infsetList Type Expressionslist_type_expr ::=finite_list_type_expr|infinite_list_type_exprfinite_list_type_expr ::=type_expr*infinite_list_type_expr ::=type_expr*Map Type Expressionsmap_type_expr ::=type_expr * type_exprFunction Type Expressionsfunction_type_expr ::=type_expr function_arrow result_descfunction_arrow ::=→ |∏ |≅result_desc ::=opt-access_desc-string type_exprSubtype Expressionssubtype_expr ::={| single_typing pure-restriction |}|Text|completed_access ::=opt-qualification anycomprehended_access ::={ access | pure-set_limitation }Value Expressionsvalue_expr ::=value_literal |value_or_variable-name |pre_name|basic_expr|product_expr |set_expr|list_expr|map_expr|function _expr |application_expr|quantified_expr |equivalence_expr|post_expr|disambiguation_expr|bracketed_expr |infix_expr|prefix_expr|comprehended_expr|initialise_expr |assign ment_expr|input_expr|output_expr|structured_exprValue Literalsvalue_literal ::=unit_literalbool_literalint_literalreal_literaltext_literalchar_literalunit_literal ::=()bool_literal ::=true |false||||||Pre Namespre_name ::=variable-nameBasic Expressionsbasic_expr ::=chaos |skip|stopenumerated_map_expr |comprehended_map_exprEnumerated Map Expressionsenumerated_map_expr ::=[ opt-value_expr_pair-list ]|swapProduct Expressionsproduct_expr ::=( value_expr-list2 )Set Expressionsset_expr ::=ranged_set_expr|enumerated_set_expr|comprehended_set_exprRanged Set Expressionsranged_set_expr ::={ readonly_integer-value_expr ..readonly_integer-value_expr }Enumerated Set Expressionsenumerated_set_expr ::={ readonly-opt-value_expr-list }Comprehended Set Expressionscomprehended_set_expr ::={ readonly-value_expr | set_limitation }set_limitation ::=typing-list opt-restrictionrestriction ::=• readonly_logical-value_exprList Expressionslist_expr ::=ranged_list_expr|enumerated_list_expr |comprehended_list_exprRanged List Expressionsranged_list_expr ::=〈 integer-value_expr ..
integer-value_expr 〉value_expr_pair ::=readonly-value_expr |→ readonly-value_exprComprehended Map Expressionscomprehended_map_expr ::=[ value_expr_pair | set_limitation ]Function Expressionsfunction_expr ::=λ lambda_parameter • value_exprlambda_parameter ::=lambda_typing |single_typinglambda_typing ::=( opt-typing-list )Application Expressionsapplication_expr ::=list_or_map_or_function-value_expractual_function_parameter-stringactual_function_parameter ( opt-value_expr-list )Quantified Expressionsquantified_expr ::=quantifier typing-list restrictionquantifier ::=∀ |∃ |∃!Equivalence Expressionsequivalence_expr ::=value_expr ≡ value_expr opt-pre_conditionpre_condition ::=pre readonly_logical-value_exprPost Expressionspost_expr ::=value_expr post_condition opt-pre_conditionpost_condition ::=opt-result_naming post readonly_logical-value_exprEnumerated List Expressionsenumerated_list_expr ::=〈 opt-value_expr-list 〉result_naming ::=as bindingComprehended List Expressionscomprehended_list_expr ::=〈 value_expr | list_limitation 〉Disambiguation Expressionsdisambiguation_expr ::=value_expr : type_exprlist_limitation ::=binding in readonly_list-value_expropt-restrictionBracketed Expressionsbracketed_expr ::=( value_expr )Map Expressionsmap_expr ::=Infix Expressionsinfix_expr ::=stmt_infix_expr |axiom_infix_exprvalue_infix_expr|Statement Infix Expressionsstmt_infix_expr ::=value_expr infix_combinator value_exprAxiom Infix Expressionsaxiom_infix_expr ::=logical-value-expr infix-connectivelogical-value_exprValue Infix Expressionsvalue_infix_expr ::=value_expr infix_op value_exprPrefix Expressionsprefix_expr ::=axiom_prefix_expruniversal_prefix_exprvalue_prefix_exprlocal_exprif_exprwhile_exprfor_expr|let_expr ||case_expr|until_exprLocal Expressionslocal_expr ::=local opt-decl-string in value_expr endLet Expressionslet_expr ::=let let_def-list in value_expr endlet_def ::=typing |explicit_letimplicit_let|explicit_let ::=let_binding = value_exprimplicit_let ::=single_typing restriction||Axiom Prefix Expressionsaxiom_prefix_expr ::=prefix_connective logical-value_exprUniversal Prefix Expressionsuniversal_prefix_expr ::=readonly_logical-value_exprValue Prefix Expressionsvalue_prefix_expr ::=prefix_op value_exprComprehended Expressionscomprehended_expr ::=associative_commutative-infix_combinator{ value_expr | set_limitation }let_binding ::=binding|record_pattern |list_patternIf Expressionsif_expr ::=if logical-value_expr thenvalue_expropt-elsif_branch-stringopt-else_branchendelsif_branch ::=elsif logical-value_expr then value_exprelse_branch ::=else value_exprCase Expressionscase_expr ::=case value_expr of case_branch-list endInitialise Expressionsinitialise_expr ::=opt-qualification initialisecase_branch ::=pattern → value_exprAssignment Expressionsassignment_expr ::=variable-name := value_exprWhile Expressionswhile_expr ::=while logical-value_exprdo unit-value_expr endInput Expressionsinput_expr ::=channel-name ?Output Expressionsoutput_expr ::=channel-name ! value_exprStructured Expressionsstructured_expr ::=||Until Expressionsuntil_expr ::=do unit-value_expruntil logical-value_expr endFor Expressionsfor_expr ::=for list_limitation do unit-value_expr endBindingsbinding ::=id_or_op|product_bindingwildcard_patternproduct_pattern |record_pattern |list_pattern|equality_patternproduct_binding ::=( binding-list2 )Equality Patternsequality_pattern ::== pure_value-nameTypingstyping ::=single_typing |multiple_typingNamesname ::=qualified_idsingle_typing ::=binding : type_exprmultiple_typing ::=binding-list2 : type_exprcommented_typing ::=opt-comment-string typingPatternspattern ::=value_literal |pure_value-namewildcard_patternproduct_pattern |record_pattern |list_pattern|||Wildcard Patternswildcard_pattern ::=⎯Product Patternsproduct_pattern ::=( inner_pattern-llst2 )|qualified_opQualified Identifiersqualified_id ::=opt-qualification idqualification ::=element-object_exprQualified Operatorsqualified_op ::=opt-qualification ( op )Identifiers and Operatorsid_or_op ::=id|opop ::=infix_op|prefix_opInfix Operatorsinfix_op ::==⏐≠ ⏐> |< |≥ |≤ |⊃ |⊂ |⊇ |⊆ |∈ |∉ |+ |− |\ |^ |∪ |† |∗ | / |° |∩ |↑Record Patternsrecord_pattern ::=pure_value-name ( inner_pattern-list )Prefix Operatorsprefix_op ::=abs |int|realelems |hd|tlList Patternslist_pattern ::=enumerated_list_pattern |concatenated_list_patternConnectivesconnective ::=infix_connective |prefix_connectiveEnumerated List Patternsenumerated_list_pattern ::=( opt-inner_pattern-llst )Infix Connectivesinfix_connective ::=⇒|∨|∧Concatenated List Patternsconcatenated_list_pattern ::=enumerated_list_pattern ^ inner_patternPrefix Connectivesprefix_connective ::=∼Inner PatternsInner_pattern ::=value_literal |id_or_op|Infix Combinatorsinfix_combinator ::=|⎡⎢||card|dom|len|rng||;|inds|APPENDIX BPrecedence and Associativity of OperatorsPrec1413121110987654321Value operator precedence - increasingOperator(s)λ ∀ ∃ ∃!≡ post⎡⎢;:=⇒∨∧=≠><≥≤⊂⊆⊃⊇∈∉+−∪†∗/°∩↑:~ prefix_opPrec321Type operator precedence - increasingOperator(s)→×-set -infset * **AssotiativityRightRightRightRightRightRightLeftLeftAssociativityRightAPPENDIX CLexical MattersThis chapter describes lexical matters, i.e.
Характеристики
Тип файла PDF
PDF-формат наиболее широко используется для просмотра любого типа файлов на любом устройстве. В него можно сохранить документ, таблицы, презентацию, текст, чертежи, вычисления, графики и всё остальное, что можно показать на экране любого устройства. Именно его лучше всего использовать для печати.
Например, если Вам нужно распечатать чертёж из автокада, Вы сохраните чертёж на флешку, но будет ли автокад в пункте печати? А если будет, то нужная версия с нужными библиотеками? Именно для этого и нужен формат PDF - в нём точно будет показано верно вне зависимости от того, в какой программе создали PDF-файл и есть ли нужная программа для его просмотра.