/source/core/ast/Type.ooc
http://github.com/nddrylliog/oc · Unknown · 52 lines · 27 code · 25 blank · 0 comment · 0 complexity · 519d6db7341ccd5e807dba88960158d8 MD5 · raw file
- import Node, FuncDecl
- import middle/Resolver
- Type: abstract class extends Node {
- void?: func -> Bool { false }
- }
- BaseType: class extends Type {
- resolved := false
- name: String { get set }
- init: func (=name) {}
- resolve: func (task: Task) {
- resolved = true
- }
-
- toString: func -> String { name }
- }
- VoidType: class extends BaseType {
-
- init: func {
- super("void")
- }
-
- void?: func -> Bool { true }
-
- }
- FuncType: class extends Type {
-
- proto: FuncDecl { get set }
-
- init: func (=proto) {}
-
- // well, nothing to do
- resolve: func (task: Task) {}
-
- toString: func -> String { "Func " + proto toString() }
-
- }