index 2baed6556849dc01aa1d61d9fda6836cccf7642c..033b84227d1eebfb4bbda213e94e19e889229f78 100644 (file)
#include <gc.h>
#include <gc.h>
-#include "../../../include/oberon.h"
#include "../../oberon-internals.h"
#include "generator-jvm.h"
#include "generator-jvm-basic.h"
#include "../../oberon-internals.h"
#include "generator-jvm.h"
#include "generator-jvm-basic.h"
int size = type -> size;
switch(type -> class)
{
int size = type -> size;
switch(type -> class)
{
+ case OBERON_TYPE_NOTYPE:
+ return ' ';
+ break;
case OBERON_TYPE_BOOLEAN:
case OBERON_TYPE_INTEGER:
case OBERON_TYPE_CHAR:
case OBERON_TYPE_BOOLEAN:
case OBERON_TYPE_INTEGER:
case OBERON_TYPE_CHAR:
int size = type -> size;
switch(type -> class)
{
int size = type -> size;
switch(type -> class)
{
+ case OBERON_TYPE_NOTYPE:
+ return ' ';
+ break;
case OBERON_TYPE_BOOLEAN:
return 'b';
break;
case OBERON_TYPE_BOOLEAN:
return 'b';
break;
name = new_string("SYSTEM$PROCEDURE");
char * desc;
name = new_string("SYSTEM$PROCEDURE");
char * desc;
+ char * spec;
desc = jvm_get_descriptor_safe(type -> base);
name = new_string("%s$%s", name, desc);
desc = jvm_get_descriptor_safe(type -> base);
name = new_string("%s$%s", name, desc);
for(int i = 0; i < num; i++)
{
for(int i = 0; i < num; i++)
{
+ spec = "";
+ if(arg -> class == OBERON_CLASS_VAR_PARAM)
+ {
+ spec = "VAR";
+ }
desc = jvm_get_descriptor_safe(arg -> type);
desc = jvm_get_descriptor_safe(arg -> type);
- name = new_string("%s%s", name, desc);
+ name = new_string("%s%s%s", name, spec, desc);
arg = arg -> next;
}
arg = arg -> next;
}
{
switch(postfix)
{
{
switch(postfix)
{
+ case ' ':
+ return 0;
case 'a':
case 'b':
case 's':
case 'a':
case 'b':
case 's':
case 'd':
return 2;
default:
case 'd':
return 2;
default:
- gen_error("jvm_cell_size_for_postfix: unk postfix %c", postfix);
+ gen_error("jvm_cell_size_for_postfix: unk postfix %c (%i)", postfix, postfix);
}
return -666;
}
return -666;
{
switch(prefix)
{
{
switch(prefix)
{
+ case ' ':
+ return 'V';
case 'b':
return 'B';
case 'c':
case 'b':
return 'B';
case 'c':