-
Notifications
You must be signed in to change notification settings - Fork 0
Home
hyp edited this page Aug 13, 2012
·
36 revisions
Welcome to the arpha wiki!
Arpha's command line parameters
End of 2nd week of may - first code review and merge develop with master branch.
- DONE Overloadset resolving
- PARTIALMemory rework - still needs to be worked on
- DONE use extra passes for unresolved nodes
- DONE evaluate compiler.resolve
- DONE fix qualified imports
- PARTIAL Pointer types.
- PARTIAL Macroes - type check for syntaxed macroes. Need to implement syntax correctness checks as well.
- DONE call resolving - parameter type weigh.
- PARTIAL call resolving - dependent parameters. Need to do unresolved and dependent parameters combo.
- DONE call resolving - decide how to handle the generated functions
- correct passing of local pointers to functions.
- DONE constraints.
- DONE Type duplication.
- PARTIAL Type generation functions!
- Function types, Range types.
- Compile-time.
- Move test package.
- refactor packages and split into separate repository.
- Integer types generated and pattern
- Record type pattern
- Object to pointer cast when passing to a function
- Fixes to typesystem
- Test for function overload in arpha
- Union types
- PARTIAL( '=' type and val fields remaining) Basic form - i.e. type name {body|'=' type} where fields ::= var/val names [type]
- Field default initialization and type inferring on initialization.
- DONE Type inheritance.
- KINDA Parametrized types.
- Constructors.
- Type conversion.
- Interfaces.
- DONE Basic form
- DONE Return type inferring
- DONE(is it really?) Generic argument types, their expansion and function duplication
- DONE Constrained arguments
- DONE Function evaluation when given constant arguments
- PARTIAL Inlining (just need to calculate when inlining is needed)
- DONE Errors when no return expression inside and return specified.
- implement infix []
- implement prefix []
- DONE implement assignment
- '.' notation:
- DONE scope.name accessing
- DONE foo.bar where bar is field of foo
- DONE foo.bar => bar(foo)
- DONE foo.bar() => bar(foo)
- DONE foo.bar(2) => bar(foo,2)
- DONE foo.bar = 2 => bar(foo,2)
- constraint declaration
- DONE block parser
- lexer rework
- PARTIAL match expression
- DONE while statement
- PARTIAL Operators other operators
- DONE Operators.precedence
- STARTED Arithmetic functions
- PARTIAL Node.duplicate
- evaluate constant arithmetic
- memory block + lexer unittest
- scope unittests
- Compiling and running the tests.
- def pi = 3.14 -> val pi = 3.14 / const pi = 3.14
- const type node -> typeref node??