Skip to content

Latest commit

 

History

History
139 lines (127 loc) · 5.02 KB

implemented.md

File metadata and controls

139 lines (127 loc) · 5.02 KB

What is already implemented

This document describes what parts of the alf standard are already implemented. Limitations are listed as subpoints of the chapters.

Lexical Structure (7)

  • 7.1 General (no implementation needed)
  • 7.2 Line Terminators (implemented by MPS Editor)
  • 7.3 Input Elements and Tokens (no implementation needed)
  • 7.4 White Space
    • Entering white space characters is not supported (except line terminator)
    • Separating tokens that would otherwise be considered to be part of a single token by way of the MPS editor
  • 7.5 Comments
    • Comments are only supported on their own line
  • 7.6 Names
  • 7.7 Reserved words
  • 7.8 Primitive Literals
    • only lowercase b and x in prefix for binary and hex naturals
    • only uppercase A-F in value of hex naturals
    • only lowercase e for exponent of reals
  • 7.9 Punctuation (no need to explicitly implement anything here)
  • 7.10 Operators (no need to explicitly implement anything here)

Expressions (8)

  • 8.1 Overview (Local Names and Assigned Sources)
  • 8.2 Qualified Names
    • not DotQualifiedName
    • not Templates
  • 8.3 Primary Expressions
    • 8.3.1 Overview (no implementation needed)
    • 8.3.2 Literal Expressions
    • 8.3.3 Name Expressions
    • 8.3.4 this Expressions
    • 8.3.5 Parenthesized Expressions
    • 8.3.6 Property Access Expressions
    • 8.3.7 Invocation Expressions
    • 8.3.8 Tuples
      • not named Tuples
    • 8.3.9 Behavior Invocation Expressions
    • 8.3.10 Feature Invocation Expressions
    • 8.3.11 Super Invocation Expressions
    • 8.3.12 Instance Creation Expressions
    • 8.3.13 Link Operation Expressions
    • 8.3.14 Class Extent Expressions
    • 8.3.15 Sequence Construction Expressions
    • 8.3.16 Sequence Access Expressions
    • 8.3.17 Sequence Operation Expressions
    • 8.3.18 Sequence Reduction Expressions
    • 8.3.19 Sequence Expansion Expressions
    • 8.3.20 select and reject Expressions
    • 8.3.21 collect and iterate Expressions
    • 8.3.22 forAll, exists and one Expressions
    • 8.3.23 isUnique Expressions
  • 8.4 Increment and Decrement Expressions
  • 8.5 Unary Expressions
    • 8.5.1 Overview (Base abstract syntax)
    • 8.5.2 Boolean Unary Expressions
    • 8.5.3 BitString Unary Expressions
    • 8.5.4 Numeric Unary Expressions
    • 8.5.5 Cast Expressions
    • 8.5.6 Isolation Expressions
  • 8.6 Binary Expressions
    • 8.6.1 Overview (Base abstract syntax)
    • 8.6.2 Arithmetic Expressions
    • 8.6.3 Shift Expressions
    • 8.6.4 Relational Expressions
    • 8.6.5 Classification Expressions
    • 8.6.6 Equality Expressions
    • 8.6.7 Logical Expressions
    • 8.6.8 Conditional Expressions
    • 8.6.9 Null-Coalescing Expressions
  • 8.7 Conditional-Test Expressions
  • 8.8 Assignment Expressions
    • Not indexed left hand side

Statements (9)

  • 9.1 Overview (Block, Statement, DocumentedStatement)
  • 9.2 Annotated Statements
  • 9.3 In-line Statements
  • 9.4 Block Statements
  • 9.5 Empty Statements
  • 9.6 Local Name Declaration Statements
    • Only the let name : type version not the type name one
    • Only normal expressions as initialization not the short variants
  • 9.7 Expression Statements
  • 9.8 if Statements
  • 9.9 switch Statements
  • 9.10 while Statements
  • 9.11 do Statements
  • 9.12 for Statements
  • 9.13 break Statements
  • 9.14 return Statements
  • 9.15 accept Statements
  • 9.16 classify Statements

Units (10)

  • 10.1 Overview
    • no alias for imports
    • no parameters for stereotypes
  • 10.2 Namespaces
  • 10.3 Packages
  • 10.4 Classifiers
    • 10.4.1 Overview
      • not template parameters
      • no editor for abstract
    • 10.4.2 Classes
    • 10.4.3 Active Classes
    • 10.4.4 Data Types
      • only primitive datatypes
    • 10.4.5 Associations
    • 10.4.6 Enumerations
    • 10.4.7 Signals
    • 10.4.8 Activities
      • not template parameters
      • parameters cannot have comments or stereotypes
      • parameters cannot have both the nonunique and ordered flags simultaneously (use the equivalent sequence flag)
  • 10.5 Features

Standard Model Library (11)

The features of the standard model library will not be implemented in the language definition of alfi. Rather, it will be implemented as a model written with/in alfi. All elements marked as primitive must be mapped to some actual implementation When running generated Alf code, the implementation will be provided by the Alf implementation. For target languages, a mapping from these elements to suitable elements in the target language must be defined.

  • 11.1 Overview (no implementation needed)
  • 11.2 ActionLanguage Profile (not implemented in alfi as alfi is not a UML tool)
  • 11.3 Primitive Types
  • 11.4 Primitive Behaviors
    • Only the ToString methods
  • 11.5 Basic Input and Output
    • Only ReadLine and WriteLine and without errorStatus parameter
  • 11.6 Collection Functions
  • 11.7 Collection Classes