The StaDyn Programming Language
Source code documentation of StaDyn, a hybrid static and dynamic typing language.
|
![]() ![]() | Representation of the StaDyn Abstract Syntax Tree (AST). |
![]() ![]() ![]() | Provides double dispatch over types and operations. |
![]() ![]() ![]() ![]() | This class represent the entry wnen sending a message to an operation object. derived from AstNode |
![]() ![]() ![]() | Encapsulates a argument expression of our programming language. |
![]() ![]() ![]() | Encapsulates arithmetic binary expressions. |
![]() ![]() ![]() | Encapsulates the array expression to access the concrete position. |
![]() ![]() ![]() | Encapsulates a Assert statement of our programming languages. |
![]() ![]() ![]() | Encapsulates assignment binary expressions. |
![]() ![]() ![]() | Abstract class for all nodes that compounds the abstract syntax tree. |
![]() ![]() ![]() | Encapsulates a invocation expression to base class. |
![]() ![]() ![]() | Encapsulates a 'base' expression. |
![]() ![]() ![]() | Encapsulates a binary expression of our programming language. |
![]() ![]() ![]() | Encapsulates a bitwise binary expression. |
![]() ![]() ![]() | Encapsulates a block of statements. |
![]() ![]() ![]() | Encapsulates a boolean literal expression. |
![]() ![]() ![]() | Encapsulates a Break statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a cast expression. |
![]() ![]() ![]() | Encapsulates a Catch statement of our programming languages. |
![]() ![]() ![]() | |
![]() ![]() ![]() | Encapsulates a definition of a concrete class. |
![]() ![]() ![]() | Encapsulates a set of expressions. |
![]() ![]() ![]() | Encapsulates a constant definition. |
![]() ![]() ![]() | Encapsulates a constant field definition. |
![]() ![]() ![]() | Encapsulates a definition of a concrete constructor. |
![]() ![]() ![]() | Encapsulates a Continue statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a declaration of a concrete type. |
![]() ![]() ![]() | Encapsulates a statement with several declarations. |
![]() ![]() ![]() | Encapsulates a definition. |
![]() ![]() ![]() | Encapsulates a Do statement of our programming language. |
![]() ![]() ![]() | Encapsulates a string literal expression. |
![]() ![]() ![]() | Encapsulates a Try-Catch-finally statement of our programming languages. As C# states catch blcok and finally block can be optional, but not at the same time. |
![]() ![]() ![]() | Abstract class encapsulate a programming language expression. |
![]() ![]() ![]() | Encapsulates the expression to access a field. |
![]() ![]() ![]() | Encapsulates a declaration of a concrete field. |
![]() ![]() ![]() | Encapsulates a set of field declarations. |
![]() ![]() ![]() | Encapsulates a definition of a concrete field. |
![]() ![]() ![]() | Encapsulates a Foreach statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a For statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a declaration. |
![]() ![]() ![]() | Encapsulates a name expression of our programming language. |
![]() ![]() ![]() | Encapsulates a If-Else statement of our programming language. |
![]() ![]() ![]() | Encapsulates a definition of a concrete interface. |
![]() ![]() ![]() | Encapsulates a integer literal expression. |
![]() ![]() ![]() | Encapsulates a invocation expression. |
![]() ![]() ![]() | Encapsulates a Is expression. |
![]() ![]() ![]() | Encapsulates a logical binary expression. |
![]() ![]() ![]() | Encapsulates a declaration of a concrete method. |
![]() ![]() ![]() | Encapsulates a definition of a concrete method. |
![]() ![]() ![]() | Encapsulates a Move instruction to use in SSA algorithm |
![]() ![]() ![]() | Encapsulates a namespace definition. |
![]() ![]() ![]() | Encapsulates a new array expression. |
![]() ![]() ![]() | Encapsulates a new expression. |
![]() ![]() ![]() | Encapsulates a null expression. |
![]() ![]() ![]() | Encapsulates a parameter declaration. |
![]() ![]() ![]() | Encapsulates a property definition. |
![]() ![]() ![]() | Encapsulates the qualified name expression. |
![]() ![]() ![]() | Encapsulates a relational binary expression. |
![]() ![]() ![]() | Encapsulates a Return statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a identifier expression of our programming language. |
![]() ![]() ![]() | Encapsulates the source code. |
![]() ![]() ![]() | Abstract class represents a programming language statement. |
![]() ![]() ![]() | Encapsulates a string literal expression. |
![]() ![]() ![]() | Encapsulates a switch label (Case + condition or Default section). |
![]() ![]() ![]() | Encapsulates a Case statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a Switch statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a ternary expression of our programming language. |
![]() ![]() ![]() | Encapsulates a Theta function to use in SSA algorithm. |
![]() ![]() ![]() | Encapsulates a 'this' expression. |
![]() ![]() ![]() | Encapsulates a Throw statement of our programming languages. |
![]() ![]() ![]() | Encapsulates a definition of a concrete class or interface. |
![]() ![]() ![]() | Encapsulates a unary expression of our programming language. |
![]() ![]() ![]() | Encapsulates a While statement of our programming languages. |
![]() ![]() | The code generation phase. |
![]() ![]() ![]() | Encapsulates the IL code to throw runtime exceptions. |
![]() ![]() ![]() ![]() | This class encapsulates the IL code to generate a dynamic exception. |
![]() ![]() ![]() ![]() | This class encapsulates the IL code to generate an exception produced when the type on the top of the stack is incorrect. |
![]() ![]() ![]() | TO DO: PASAR AL "CODEGENERATION.OPERATIONS" |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() | Operations for generating code depending on the type of the arguments. |
![]() ![]() ![]() ![]() | It typechecks the runtime arguments, embeded in a method call, with the parametes of this method. |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | It typechecks the runtime arguments, embeded in a method call, with the parametes of this method. |
![]() ![]() ![]() ![]() | It tries to convert the top of the stack to a Type Expression indicated by operand. Firstly it duplicates the top of the stack Next check if the top of he stack is the same type of argument 'operand'. If the conversion is wrong. In a execution context we'd've finished so it's necessary to write an opcode jump, brfalse, to the end of this code (endLabel). Next it unboxes the result the top of the stack to the desired type. If a Convertion to double is requested, (member this.toDouble), it generates convToDouble If it success it jumps to the rest of code else it generates the label to jump if isinst fails. |
![]() ![]() ![]() ![]() | Converts a fresh type variable on the stack (object) to another type |
![]() ![]() ![]() ![]() | Checks if the type variable on the stack is a specified type or can be to promotion |
![]() ![]() ![]() ![]() | Tries a promotion where the top of the stack contains a union type. |
![]() ![]() ![]() ![]() | This class represent the entry wnen sending a message to an operation object derived from TypeExpression. |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() | This class encapsulates the IL CLR code generator IL. |
![]() ![]() ![]() | This class encapsulates the instruction used to generate the code. |
![]() ![]() ![]() | Implementation of a table of constants. |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | This class encapsulates several inherited attributes used in code generation process. |
![]() ![]() ![]() | This class encapsulates the IL CLR code generator IL. |
![]() ![]() ![]() | This class encapsulates several inherited attributes used in code generation process. |
![]() ![]() ![]() | Implementation of a table of variables. thist tables search for an id according to its string type representation |
![]() ![]() ![]() | Offers the mappings between different representations of types in IL. |
![]() ![]() ![]() | This class walks the AST to obtain the IL code. |
![]() ![]() ![]() | This class walks the AST to obtain the IL code. |
![]() ![]() ![]() | This class walks the AST to obtain the field and localinit directives. |
![]() ![]() ![]() | This class walks the AST to to obtain intermediate code Thisis a layer adapter class and is the base classBy means of thisi class we're able to perform covariance in certain attributes between visitor and codegeneration clases |
![]() ![]() ![]() | This class walks the AST to obtain the IL code. |
![]() ![]() ![]() | This class walks the AST to obtain the translation to IL code over the Reflective extension of the SSCLI (Rrotor). |
![]() ![]() | Command line argument parser. |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() | Facade of the language compiler. |
![]() ![]() | A visitor for to facilitate tracing the AST. |
![]() ![]() ![]() | This class shows the information of the abstract syntax tree. |
![]() ![]() | To manage the dynamism of var references. |
![]() ![]() ![]() | The parent class for all exceptions related to DynVars |
![]() ![]() ![]() | When the associated file is not found |
![]() ![]() ![]() | When the XML syntax of the associated file is not valid. |
![]() ![]() ![]() | When a dynVar, a block(DynVars object), class or namespace is not found in the associated info. |
![]() ![]() ![]() | New implementation of DynVarManagement: -Ignores "block" elements: not used anymore. -Provides wider interface: -Dynamic method return (dynreturn attribute in method elements) -Interface elements Includes set of old fields, properties and methods for retro-compatibility reasons. |
![]() ![]() ![]() | |
![]() ![]() ![]() | Offers the global options of the dynamic behaviour configuration. |
![]() ![]() | Different compile-time errors of the language processor. |
![]() ![]() ![]() | Represents a error produced when the argument and parameter number is different. |
![]() ![]() ![]() | Represents the error occurred when the argument value is out of range. |
![]() ![]() ![]() | Represents the error occurred when the assembler is not capable of assembling an IL file. |
![]() ![]() ![]() | Represents a error produced when the attribute identifier is not defined. |
![]() ![]() ![]() | Represents a error produced when a MethodType has class information and tries to assign other class information. |
![]() ![]() ![]() | Represents a error produced when a MethodType has class information and tries to assign other class information. |
![]() ![]() ![]() | Represents the error occurred when the command line arguments specified are incorrect. |
![]() ![]() ![]() | Represents a error produced when a constraint has not been satisfied |
![]() ![]() ![]() | Represents a error produced when the declaration already exists. |
![]() ![]() ![]() | Represents a error produced when the defined type already exists. |
![]() ![]() ![]() | Represents a error produced in a wrong invocation of the dispatchers |
![]() ![]() ![]() | Represents a error produced when source code has more the one entry point defined. |
![]() ![]() ![]() | Represents a error produced when source code has not any entry point. |
![]() ![]() ![]() | Represents an adapter of existing features in every error. |
![]() ![]() ![]() | Class to allow the management of all different error types happened. |
![]() ![]() ![]() | Represents a error produced when the defined type already exists. |
![]() ![]() ![]() | Represents the error occurred when compiled application has been executed. |
![]() ![]() ![]() | Represents a error produced when the used type is not defined. |
![]() ![]() ![]() | Represents a error produced when the expression is not a lvalue. |
![]() ![]() ![]() | Represents the error occurred when the file specified does not exist. |
![]() ![]() ![]() | Interfaz for the different error types. |
![]() ![]() ![]() | Represents a error produced when a specified array size isnt an integer or an expression that contains a integer value. |
![]() ![]() ![]() | Represents a error produced when an instance method is called from a static one, whithout using an object. |
![]() ![]() ![]() | |
![]() ![]() ![]() | Represents the error occurred while the source code is lexing. |
![]() ![]() ![]() | Represents the error occurred when dynamic variable are loaded. |
![]() ![]() ![]() | This class encapsulates a location in a specific file. Implements an Inmutable pattern. So it can be used in any context, that is his internal fields never change. |
![]() ![]() ![]() | Represents a error produced when the expression is not a lvalue. |
![]() ![]() ![]() | Represents a error produced when member type is expected but do not found. |
![]() ![]() ![]() | Represents the error occurred when a class has multiple base classes. |
![]() ![]() ![]() | Represents a error produced when a dynamic union type has no valid type to be applied an operation |
![]() ![]() ![]() | Represents a error produced when a dynamic union type has no valid type to be applied an operation |
![]() ![]() ![]() | Represents a error produced when tries to make an operation not allowed for the specified type. |
![]() ![]() ![]() | Represents a error produced when the ternary expression can not be applied to specified expressions |
![]() ![]() ![]() | Represents the error occurred while the source code is parsing. |
![]() ![]() ![]() | Represents a error produced when an property without write permisses is assigned a value. |
![]() ![]() ![]() | Represents a error produced when a member cannot be access due to its protection level. |
![]() ![]() ![]() | Represents a error produced when the expression is not a lvalue. |
![]() ![]() ![]() | Represents a error produced when the specified symbol does not exist. |
![]() ![]() ![]() | Represents a error produced when the ternary expression can not be applied to specified expressions |
![]() ![]() ![]() | Represents a error produced when the this reserved word is used in a static method |
![]() ![]() ![]() | Represents a error produced when a type cast can not be applied to specified expressions. |
![]() ![]() ![]() | Represents a error produced when the type promotion can not be applied to specified expressions. different. |
![]() ![]() ![]() | Represents a error produced when the attribute identifier is not defined. |
![]() ![]() ![]() | Represents a error produced when the attribute identifier is not defined. |
![]() ![]() ![]() | Represents a error produced when the attribute identifier is not defined. |
![]() ![]() ![]() | Represents a error produced when the used type is not defined. |
![]() ![]() ![]() | Represents a error produced when user type is expected but do not found. |
![]() ![]() | TO DO: PASAR AL "COMPILER" |
![]() ![]() ![]() | TO DO: PASAR AL "COMPILER" |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | Parsing of a set of files |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() | Properties of the Inference assembly (the StaDyn compiler DLL). |
![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | TO DO: PASAR A CODEGENERATION |
![]() ![]() ![]() ![]() ![]() | |
![]() ![]() | TO DO: PASAR A CODEGENERATION |
![]() ![]() | / A Parser for the C# language (including preprocessors directives). / |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | A sub-class of antlr.CommonHiddenStreamToken that can be used to track the file from which a token was created |
![]() ![]() ![]() ![]() | |
![]() ![]() | The semantic analysis phase (type load, type definition, symbol identification and type inference). |
![]() ![]() ![]() | To transform the AST to a Single Static Assignment AST representation. |
![]() ![]() ![]() ![]() | This class stores the information to use in SSA map and allows to create a new declarations. |
![]() ![]() ![]() ![]() | This class stores the information to use in SSA algorithm |
![]() ![]() ![]() ![]() | Implementation of a map to use in static single assignment algorithm. |
![]() ![]() ![]() ![]() | This class makes the static single assignment algorithm in which every variable is assigned exactly once. |
![]() ![]() ![]() ![]() | This class makes the second part of static single assignment algorithm in which every variable is assigned exactly once. |
![]() ![]() ![]() | This class visits the AST to assign symbol information to identifier expression. |
![]() ![]() ![]() | This class visits the AST to store the type of each declaration. Includes methods, fields and inheritance. |
![]() ![]() ![]() | This class visits the AST to make the type inference of all expressiones in the source code. |
![]() ![]() ![]() | This class visits the AST to store the type of each defined class or inteface. |
![]() ![]() | The symbol table. |
![]() ![]() ![]() | This class represents a symbol associated with its identifier. |
![]() ![]() ![]() | Implementation of a symbol table. |
![]() ![]() | The different target platforms supported. |
![]() ![]() ![]() | |
![]() ![]() | Different utility classes used in other packages. |
![]() ![]() ![]() | Generic pair of objects |
![]() ![]() ![]() | Abstract class to define different visits over the abstract syntax tree. |
![]() ![]() ![]() | Abstract class to define different visits over the abstract syntax tree. It makes a deep walker. |
![]() ![]() | The implementation of the StaDyn type system rules. |
![]() ![]() ![]() | Constraints used in by the type system. |
![]() ![]() ![]() ![]() | It represents constraints of the form: ret := op1 op op2 Where op is an arithmetic operator |
![]() ![]() ![]() ![]() | It represents constraints of the form: ret := ret := op1 [ op2 ] |
![]() ![]() ![]() ![]() | It represents constraints of the form (op1)op2 (op2 might be converted int a op1) |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | A set of constraints |
![]() ![]() ![]() ![]() | It represents constraints of the form: ret := op1 . memberName |
![]() ![]() ![]() ![]() | It represents constraints of the form: alpha := beta, being alpha a field type |
![]() ![]() ![]() ![]() | It represents constraints of the form: alpha.memberName := beta being alpha a type variable |
![]() ![]() ![]() ![]() | It represents constraints of the form: ret := op1(implicitObj, param*) where op1 is a method, implicitObj is the actual object used to pass the message and param* is a sequence of parameters |
![]() ![]() ![]() ![]() | It represents constraints of the form op1 <= op2 (op1 is a subtype of op2) |
![]() ![]() ![]() ![]() | It represents constraints of the form: ret := op1 op op2 where op is an relational operator (== != >= <= > <) |
![]() ![]() ![]() ![]() | It represents constraints of the form: ret := ret := op1 [ op2 ] |
![]() ![]() ![]() | Operations encapsulate each type rule that can be included as a constraint in a method type. |
![]() ![]() ![]() ![]() | This class instantiates elements of type UnaryArithmeticalOperation, and BinaryArithmeticalOperation, according to the Create method called. Implements a factory methos(virtual constructor) Role: factory |
![]() ![]() ![]() ![]() | Implements Double dispatcher Pattern. The class encapsulates encapsulates all it's needed to perform an assigment operationt, except the first argument that is passed as argument with the message AcceptOperation() and done in the proper method. |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | Implements bracket operation of a type expression. Implments double dispatcher pattern. |
![]() ![]() ![]() ![]() | These clase implements cast operation over a type expression that is encapsulated in a message pass to AcceptOperation. Tels if the caller can cast to CastType Implements Double dispatcher pattern |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | This class generatess constraits, and raises error if something is wrong. Implements a double dispatcher pattern Implements a factory method. Role: Product |
![]() ![]() ![]() ![]() | Implements a factory method pattern. Virtual constructor. Role: factory Implements a double dispatcher pattern Role: |
![]() ![]() ![]() ![]() | Implemeents a double dispatcher pattern Role: |
![]() ![]() ![]() ![]() | No location information is provided within this class, because the exec methods invoked by the proper messages always return a boolean type. A |
![]() ![]() ![]() ![]() | Represents an operation to return all the members in a type |
![]() ![]() ![]() ![]() | Implements Double Dispatch Pattern Role: |
![]() ![]() ![]() ![]() | Its operation AcceptOperation() returns an integer value that indicates a promotion level between two types. That is the number of gaps represented as levels between two types The static behaviour is T1\/T2 <= X iff T1<=X and T2<=X The dynamic behaviour is T1\/T2 <= X iff T1<=X or T2<=X |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() ![]() | This class represent the entry wnen sending a message to an operation object derived from TypeExpression. |
![]() ![]() ![]() ![]() | Class Unary AritmethicalOperation Implements: Factory method Role: |
![]() ![]() ![]() ![]() | |
![]() ![]() ![]() | Association Class between ClassType and MethodType (or Fields). Represents the access modifier information about a concrete attribute and its class. |
![]() ![]() ![]() | Representa an array type. |
![]() ![]() ![]() | |
![]() ![]() ![]() | |
![]() ![]() ![]() | WriteType of a namespace |
![]() ![]() ![]() | Represent a bool type. |
![]() ![]() ![]() | Represent a character type. |
![]() ![]() ![]() | Represents a class type. |
![]() ![]() ![]() | Represents a proxy of a class type. It implements the unfold operatations of theoretical type systes. |
![]() ![]() ![]() | Implementation of a table of declarations. |
![]() ![]() ![]() | Represents a double type. |
![]() ![]() ![]() | |
![]() ![]() ![]() | Representa a field type. |
![]() ![]() ![]() | |
![]() ![]() ![]() | Representa a class attribute (fields or methods). |
![]() ![]() ![]() | Represents a type obtained using introspection. |
![]() ![]() ![]() | Represents a interface type. |
![]() ![]() ![]() | A class that makes possible to have intersection types as class members (overload) |
![]() ![]() ![]() | Representa an intersection type. |
![]() ![]() ![]() | Represent a integer type. |
![]() ![]() ![]() | Representa a method type. |
![]() ![]() ![]() | WriteType of a namespace |
![]() ![]() ![]() | Represent a null type. |
![]() ![]() ![]() | Representa a property type. |
![]() ![]() ![]() | Represent a string type. |
![]() ![]() ![]() | Abstract class that represents all different types. |
![]() ![]() ![]() | Implementation of a table of types. |
![]() ![]() ![]() | Represents a generic type expression |
![]() ![]() ![]() | Representa a union type. |
![]() ![]() ![]() | Represents a class or interface type. |
![]() ![]() ![]() | Represents a void type. |