The StaDyn Programming Language
Source code documentation of StaDyn, a hybrid static and dynamic typing language.
Package AST

Representation of the StaDyn Abstract Syntax Tree (AST). More...

Namespaces

package  Operations
 Provides double dispatch over types and operations.
 

Classes

class  ArgumentExpression
 Encapsulates a argument expression of our programming language. More...
 
class  ArithmeticExpression
 Encapsulates arithmetic binary expressions. More...
 
class  ArrayAccessExpression
 Encapsulates the array expression to access the concrete position. More...
 
class  AssertStatement
 Encapsulates a Assert statement of our programming languages. More...
 
class  AssignmentExpression
 Encapsulates assignment binary expressions. More...
 
class  AstNode
 Abstract class for all nodes that compounds the abstract syntax tree. More...
 
class  BaseCallExpression
 Encapsulates a invocation expression to base class. More...
 
class  BaseExpression
 Encapsulates a 'base' expression. More...
 
class  BinaryExpression
 Encapsulates a binary expression of our programming language. More...
 
class  BitwiseExpression
 Encapsulates a bitwise binary expression. More...
 
class  Block
 Encapsulates a block of statements. More...
 
class  BoolLiteralExpression
 Encapsulates a boolean literal expression. More...
 
class  BreakStatement
 Encapsulates a Break statement of our programming languages. More...
 
class  CastExpression
 Encapsulates a cast expression. More...
 
class  CatchStatement
 Encapsulates a Catch statement of our programming languages. More...
 
class  CharLiteralExpression
 
class  ClassDefinition
 Encapsulates a definition of a concrete class. More...
 
class  CompoundExpression
 Encapsulates a set of expressions. More...
 
class  ConstantDefinition
 Encapsulates a constant definition. More...
 
class  ConstantFieldDefinition
 Encapsulates a constant field definition. More...
 
class  ConstructorDefinition
 Encapsulates a definition of a concrete constructor. More...
 
class  ContinueStatement
 Encapsulates a Continue statement of our programming languages. More...
 
class  Declaration
 Encapsulates a declaration of a concrete type. More...
 
class  DeclarationSet
 Encapsulates a statement with several declarations. More...
 
class  Definition
 Encapsulates a definition. More...
 
class  DoStatement
 Encapsulates a Do statement of our programming language. More...
 
class  DoubleLiteralExpression
 Encapsulates a string literal expression. More...
 
class  ExceptionManagementStatement
 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. More...
 
class  Expression
 Abstract class encapsulate a programming language expression. More...
 
class  FieldAccessExpression
 Encapsulates the expression to access a field. More...
 
class  FieldDeclaration
 Encapsulates a declaration of a concrete field. More...
 
class  FieldDeclarationSet
 Encapsulates a set of field declarations. More...
 
class  FieldDefinition
 Encapsulates a definition of a concrete field. More...
 
class  ForeachStatement
 Encapsulates a Foreach statement of our programming languages. More...
 
class  ForStatement
 Encapsulates a For statement of our programming languages. More...
 
class  IdDeclaration
 Encapsulates a declaration. More...
 
class  IdentifierExpression
 Encapsulates a name expression of our programming language. More...
 
class  IfElseStatement
 Encapsulates a If-Else statement of our programming language. More...
 
class  InterfaceDefinition
 Encapsulates a definition of a concrete interface. More...
 
class  IntLiteralExpression
 Encapsulates a integer literal expression. More...
 
class  InvocationExpression
 Encapsulates a invocation expression. More...
 
class  IsExpression
 Encapsulates a Is expression. More...
 
class  LogicalExpression
 Encapsulates a logical binary expression. More...
 
class  MethodDeclaration
 Encapsulates a declaration of a concrete method. More...
 
class  MethodDefinition
 Encapsulates a definition of a concrete method. More...
 
class  MoveStatement
 Encapsulates a Move instruction to use in SSA algorithm More...
 
class  Namespace
 Encapsulates a namespace definition. More...
 
class  NewArrayExpression
 Encapsulates a new array expression. More...
 
class  NewExpression
 Encapsulates a new expression. More...
 
class  NullExpression
 Encapsulates a null expression. More...
 
struct  Parameter
 Encapsulates a parameter declaration. More...
 
class  PropertyDefinition
 Encapsulates a property definition. More...
 
class  QualifiedIdentifierExpression
 Encapsulates the qualified name expression. More...
 
class  RelationalExpression
 Encapsulates a relational binary expression. More...
 
class  ReturnStatement
 Encapsulates a Return statement of our programming languages. More...
 
class  SingleIdentifierExpression
 Encapsulates a identifier expression of our programming language. More...
 
class  SourceFile
 Encapsulates the source code. More...
 
class  Statement
 Abstract class represents a programming language statement. More...
 
class  StringLiteralExpression
 Encapsulates a string literal expression. More...
 
class  SwitchLabel
 Encapsulates a switch label (Case + condition or Default section). More...
 
class  SwitchSection
 Encapsulates a Case statement of our programming languages. More...
 
class  SwitchStatement
 Encapsulates a Switch statement of our programming languages. More...
 
class  TernaryExpression
 Encapsulates a ternary expression of our programming language. More...
 
class  ThetaStatement
 Encapsulates a Theta function to use in SSA algorithm. More...
 
class  ThisExpression
 Encapsulates a 'this' expression. More...
 
class  ThrowStatement
 Encapsulates a Throw statement of our programming languages. More...
 
class  TypeDefinition
 Encapsulates a definition of a concrete class or interface. More...
 
class  UnaryExpression
 Encapsulates a unary expression of our programming language. More...
 
class  WhileStatement
 Encapsulates a While statement of our programming languages. More...
 

Enumerations

enum  ArithmeticOperator {
  ArithmeticOperator.Minus = 1, ArithmeticOperator.Plus = 2, ArithmeticOperator.Mult = 3, ArithmeticOperator.Div = 4,
  ArithmeticOperator.Mod = 5
}
 Arithmetic binary operators More...
 
enum  ArrayOperator { ArrayOperator.Indexer }
 Array operators More...
 
enum  AssignmentOperator {
  AssignmentOperator.Assign = 1, AssignmentOperator.PlusAssign, AssignmentOperator.MinusAssign, AssignmentOperator.MultAssign,
  AssignmentOperator.DivAssign, AssignmentOperator.ModAssign, AssignmentOperator.ShiftRightAssign, AssignmentOperator.ShiftLeftAssign,
  AssignmentOperator.BitwiseAndAssign, AssignmentOperator.BitwiseXOrAssign, AssignmentOperator.BitwiseOrAssign
}
 Assignment binary operators More...
 
enum  BitwiseOperator {
  BitwiseOperator.BitwiseOr = 1, BitwiseOperator.BitwiseAnd = 2, BitwiseOperator.BitwiseXOr = 3, BitwiseOperator.ShiftLeft = 4,
  BitwiseOperator.ShiftRight = 5
}
 Bitwise binary operators More...
 
enum  LogicalOperator { LogicalOperator.Or, LogicalOperator.And }
 Logical binary operators More...
 
enum  RelationalOperator {
  RelationalOperator.NotEqual, RelationalOperator.Equal, RelationalOperator.LessThan, RelationalOperator.GreaterThan,
  RelationalOperator.LessThanOrEqual, RelationalOperator.GreaterThanOrEqual
}
 Relational binary operators More...
 
enum  IdentifierMode { IdentifierMode.Instance, IdentifierMode.UserType, IdentifierMode.NameSpace }
 Represents how to use the identifier More...
 
enum  SectionType { SectionType.Case, SectionType.Default }
 Indicates if it is a case statement or a default case. More...
 
enum  TernaryOperator { TernaryOperator.Question }
 Ternary operators More...
 
enum  UnaryOperator {
  UnaryOperator.PrefixIncrement, UnaryOperator.PrefixDecrement, UnaryOperator.PostfixIncrement, UnaryOperator.PostfixDecrement,
  UnaryOperator.Not, UnaryOperator.BitwiseNot, UnaryOperator.Minus, UnaryOperator.Plus
}
 Unary operators More...
 

Detailed Description

Representation of the StaDyn Abstract Syntax Tree (AST).

Enumeration Type Documentation

Arithmetic binary operators

Enumerator
Minus 

a - b

Plus,

Plus 

a + b

Mult 

a * b

Div 

a / b

Mod 

a % b

Definition at line 31 of file ArithmeticExpression.cs.

Array operators

Enumerator
Indexer 

a[b]

Definition at line 31 of file ArrayAccessExpression.cs.

Assignment binary operators

Enumerator
Assign 

a = b

PlusAssign 

a += b

MinusAssign 

a -= b

MultAssign 

a *= b

DivAssign 

a /= b

ModAssign 

a %= b

ShiftRightAssign 

a >>= b

ShiftLeftAssign 

a <<= b

BitwiseAndAssign 

a &= b

BitwiseXOrAssign 

a ^= b

BitwiseOrAssign 

a |= b

Definition at line 31 of file AssignmentExpression.cs.

Bitwise binary operators

Enumerator
BitwiseOr 

a | b

BitwiseAnd 

a & b

BitwiseXOr 

a ^ b

ShiftLeft 

a << b

ShiftRight 

a >> b

Definition at line 32 of file BitwiseExpression.cs.

Represents how to use the identifier

Enumerator
Instance 
UserType 
NameSpace 

Definition at line 36 of file SingleIdentifierExpression.cs.

Logical binary operators

Enumerator
Or 

a || b

And 

a && b

Definition at line 32 of file LogicalExpression.cs.

Relational binary operators

Enumerator
NotEqual 

a != b

Equal 

a == b

LessThan 

a < b

GreaterThan 

a > b

LessThanOrEqual 

a <= b

GreaterThanOrEqual 

a >= b

Definition at line 32 of file RelationalExpression.cs.

Indicates if it is a case statement or a default case.

Enumerator
Case 
Default 

Definition at line 31 of file SwitchLabel.cs.

Ternary operators

Enumerator
Question 

op1 ? op2 : op3

Definition at line 31 of file TernaryExpression.cs.

Unary operators

Enumerator
PrefixIncrement 

Prefix increment operator: ++i

PrefixDecrement 

Prefix decrement operator: –i

PostfixIncrement 

Postfix increment operator: i++

PostfixDecrement 

Postfix decrement operator: i–

Not 

Logical negation operator: !i

BitwiseNot 

Bitwise complement operator: ~i

Minus 

Negation operator: -i

Plus 

Plus operator: +i

Definition at line 32 of file UnaryExpression.cs.