cbc/test
Minero Aoki c2298ffbd2 * net/loveruby/cflat/compiler/TypeChecker.java: check return type.
* net/loveruby/cflat/compiler/JumpResolver.java: set exiting function to ReturnNode.
* net/loveruby/cflat/ast/ReturnNode.java: new method #setExpr.
* net/loveruby/cflat/ast/ReturnNode.java: new method #function.
* net/loveruby/cflat/ast/ReturnNode.java: new method #setFunction.
* net/loveruby/cflat/ast/Function.java: new method #isVoid.
* net/loveruby/cflat/ast/Function.java: new method #returnType.
* net/loveruby/cflat/ast/Function.java: new method #functionType.
* net/loveruby/cflat/type/TypeRef.java: new method #getPointerTypeRef.
* net/loveruby/cflat/type/TypeRef.java: new method #getArrayTypeRef.
* net/loveruby/cflat/type/TypeRef.java: new method #getStructTypeRef.
* net/loveruby/cflat/type/TypeRef.java: new method #getUnionTypeRef.
* net/loveruby/cflat/type/TypeRef.java: new method #getFunctionTypeRef.
* net/loveruby/cflat/type/TypeRef.java: #isFunctionType -> #isFunction.
* net/loveruby/cflat/type/FunctionTypeRef.java: ditto.
* net/loveruby/cflat/type/TypeRef.java: #isVoidTypeRef -> #isVoid.
* net/loveruby/cflat/type/VoidTypeRef.java: ditto.
* net/loveruby/cflat/type/TypeRef.java: #isArrayTypeRef -> #isArray.
* net/loveruby/cflat/type/ArrayTypeRef.java: ditto.
* net/loveruby/cflat/type/Type.java: #isNumeric removed.
* net/loveruby/cflat/type/IntegerType.java: ditto.
* net/loveruby/cflat/type/Type.java: new method #getComplexType.
* net/loveruby/cflat/type/Type.java: new method #getStructType.
* net/loveruby/cflat/type/Type.java: new method #getUnionType.
* net/loveruby/cflat/type/Type.java: new method #getArrayType.
* net/loveruby/cflat/type/Type.java: new method #getPointerType.
* net/loveruby/cflat/type/Type.java: new method #getFunctionType.
* net/loveruby/cflat/type/UserType.java: override them.
* net/loveruby/cflat/type/PointerType.java (equals): reduce instanceof.
* net/loveruby/cflat/type/TypeTable.java: reduce instanceof/cast.
* test/test.sh: invoke following tests.
* test/defun-semcheck2.cb: test returning value from void function.
* test/defun-semcheck3.cb: test returning nothing from non-void function.
* test/defun-semcheck4.cb: test returning struct.
* test/defun-semcheck5.cb: test returning union.
* test/defun-semcheck6.cb: test returning user type, which is union.
* test/defun-semcheck7.cb: test returning user type, which is struct.
* test/defun-semcheck8.cb: test returning array.


git-svn-id: file:///Users/aamine/c/gitwork/public/cbc/trunk@3771 1b9489fe-b721-0410-924e-b54b9192deb8
2008-01-02 10:18:38 +00:00
..
Makefile * net/loveruby/cflat/parser/Parser.jj: 5-1-1 should be 3, not 5. 2007-12-25 17:46:37 +00:00
add.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
aref-semcheck.cb * net/loveruby/cflat/compiler/TypeChecker.java: check aref base expr and index expr. 2008-01-01 15:38:50 +00:00
array.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
assign.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
assoc.cb * net/loveruby/cflat/parser/Parser.jj: 5-1-1 should be 3, not 5. 2007-12-25 17:46:37 +00:00
bitand.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
bitnot.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
bitor.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
bitxor.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
block.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
break-semcheck.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
cast.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
cbc import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
charops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
comm.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
condexpr.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
continue-semcheck.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
dec.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
defun-semcheck.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
defun-semcheck2.cb * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
defun-semcheck3.cb * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
defun-semcheck4.cb * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
defun-semcheck5.cb * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
defun-semcheck6.cb * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
defun-semcheck7.cb * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
defun-semcheck8.cb * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
defvar.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
deref-semcheck1.cb * net/loveruby/cflat/compiler/TypeChecker.java: better error message. 2008-01-01 16:32:15 +00:00
deref-semcheck2.cb * net/loveruby/cflat/compiler/TypeChecker.java: better error message. 2008-01-01 16:32:15 +00:00
deref-semcheck3.cb * net/loveruby/cflat/compiler/TypeChecker.java: better error message. 2008-01-01 16:32:15 +00:00
div.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
dowhile-break.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
dowhile-continue.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
dowhile1.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
dowhile2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
dowhile3.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
eq.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
for-break.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
for-continue.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
for1.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcall-semcheck.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcall-semcheck2.cb * net/loveruby/cflat/compiler/TypeChecker.java: check aref base expr and index expr. 2008-01-01 15:38:50 +00:00
funcall0.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcall1.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcall2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcall3.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcall4.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcall5.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
funcptr.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
gt.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
gteq.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
gvar.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
hello.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
hello2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
hello3.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
hello4.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
if1.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
if2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
inc.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
integer.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
intops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
logicaland.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
logicalnot.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
logicalor.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
longops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
lshift.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
lt.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
lteq.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
lvar1.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
lvar2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
mbc.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
mod.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
mul.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
neq.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
one.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
opassign.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
param.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
pointer.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
ptrmemb.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
rshift.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
scomm.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
sgvar.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
shortops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
shunit.sh import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
slcomm.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
slvar.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
stdio.hb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
stdlib.hb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
string.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
struct-semcheck.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
struct-semcheck2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
struct-semcheck3.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
struct-semcheck4.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
struct-semcheck5.cb * net/loveruby/cflat/compiler/TypeChecker.java: check member validity for s.memb, s->memb, u.memb, u->memb. 2008-01-01 16:24:09 +00:00
struct-semcheck6.cb * net/loveruby/cflat/compiler/TypeChecker.java: check member validity for s.memb, s->memb, u.memb, u->memb. 2008-01-01 16:24:09 +00:00
struct-semcheck7.cb * net/loveruby/cflat/compiler/TypeResolver.java: pass ErrorHandler to TypeType#semanticCheck. 2008-01-01 18:17:50 +00:00
struct.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
sub.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
test.sh * net/loveruby/cflat/compiler/TypeChecker.java: check return type. 2008-01-02 10:18:38 +00:00
test2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
test3.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
test4.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
ucharops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
uintops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
ulongops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
unaryminus.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
unaryplus.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
union-semcheck.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
union-semcheck2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
union-semcheck3.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
union-semcheck4.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
union-semcheck5.cb * net/loveruby/cflat/compiler/TypeChecker.java: check member validity for s.memb, s->memb, u.memb, u->memb. 2008-01-01 16:24:09 +00:00
union-semcheck6.cb * net/loveruby/cflat/compiler/TypeChecker.java: check member validity for s.memb, s->memb, u.memb, u->memb. 2008-01-01 16:24:09 +00:00
union-semcheck7.cb * net/loveruby/cflat/compiler/TypeResolver.java: pass ErrorHandler to TypeType#semanticCheck. 2008-01-01 18:17:50 +00:00
union.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
ushortops.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
while-break.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
while-continue.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
while1.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
while2.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
while3.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00
zero.cb import cbc from stdcompiler repository (rev185) 2007-12-24 08:19:51 +00:00