added much more code to implement interface. still work in progress

This commit is contained in:
hyunghwan.chung
2018-10-09 15:21:58 +00:00
parent 90ed6d91e3
commit 4ae2ae6f88
8 changed files with 250 additions and 241 deletions

View File

@ -38,8 +38,8 @@ class(#pointer,#limited) Class(Apex)
method nsdic { ^self.nsdic }
}
class(#pointer,#limited) Interface(Class)
class(#pointer,#limited) Interface(Apex)
{
### TODO: fill this class with methods
var name.
var instmthdic, classmthdic, nsup.
}

View File

@ -1,5 +1,11 @@
#include 'Moo.moo'.
interface X11able
{
method(#dual) abc.
method(#dual) def.
}
class X11(Object) from 'x11'
{
## =====================================================================
@ -47,6 +53,21 @@ class X11(Object) from 'x11'
}
}
(*
TODO: TODO: compiler enhancement
class X11(Object)
{
class Rectangl(Object)
{
}
}
class XRect(X11.X11.Rectangl) -> X11 in X11.Rectangl is not the inner X11. as long as a period is found, the search begins at top.
{
}
----> should i support soemthign like ::X11.Rectangle and X11.Rectangle? ::X11.Rectangle alwasy from the top???
-----> or .X11.Rectangle -> to start search from the current name space???
*)
method(#primitive,#liberal) _open_display(name).
method(#primitive) _close_display.
method(#primitive) _get_fd.

View File

@ -45,7 +45,7 @@ class MyObject(Object)
'insufficient data for encoding conversion'
'buffer full'
).
synerrmsgs := #(
'no error'
'illegal character'
@ -76,10 +76,10 @@ class MyObject(Object)
'integer expected'
'primitive: expected'
'wrong directive'
'wrong name'
'duplicate name'
'undefined class'
'duplicate class'
'contradictory class definition'
'wrong class name'
'invalid non-pointer instance size'
'prohibited inheritance'
'variable declaration not allowed'
@ -111,13 +111,12 @@ class MyObject(Object)
'wrong primitive function number'
'wrong primitive function identifier'
'wrong primitive function argument definition'
'wrong module name'
'failed to import module'
'#include error'
'wrong pragma name'
'wrong namespace name'
'wrong pool dictionary name'
'duplicate pool dictionary name'
'wrong pooldicimport name'
'duplicate pooldicimport name'
'literal expected'
'break or continue not within a loop'
'break or continue within a block'