DEADSOFTWARE

Исправлен пропуск фактических аргументов если первый конструктор SET
authorDeaDDooMER <deaddoomer@deadsoftware.ru>
Mon, 21 Aug 2017 09:23:00 +0000 (12:23 +0300)
committerDeaDDooMER <deaddoomer@deadsoftware.ru>
Mon, 21 Aug 2017 09:23:00 +0000 (12:23 +0300)
Test.obn
obn-compile.sh
src/oberon.c

index be037a255a86681dfd6dde8cb1ddea47041586bf..8889d77c0c50802f40f632397a621a5dba4eaeea 100644 (file)
--- a/Test.obn
+++ b/Test.obn
@@ -1,11 +1,17 @@
 MODULE Test;
 
 TYPE
+  PRec = POINTER TO Rec;
+  Rec = RECORD END;
 
-  PC = ARRAY 3 OF PB;
+VAR
+  d : PRec;
 
-  B = RECORD z : PC; next : PB END;
-
-  PB = POINTER TO B;
+PROCEDURE X (z : INTEGER; a : SET; b : ARRAY OF CHAR) : PRec;
+BEGIN
+  RETURN NIL;
+END X;
 
+BEGIN
+  d := X(1, {}, "xyz");
 END Test.
index 0ab4b702958017eca1500c06056856ce6ec34d16..b23218450a2489b7529356e35bb5acfba6b5ed6b 100755 (executable)
@@ -2,13 +2,16 @@
 
 set -e
 
+DIR=$(dirname "$0")
+PATH="$DIR:$PATH"
+
 rm -rf classes tmp
 mkdir -p classes tmp
 
-./a.out -d tmp -I rtl/java -I rtl $*
+a.out -d tmp -I $DIR/rtl/java -I $DIR/rtl $*
 
 jasmin -d classes tmp/*.j
 
-javac -d classes rtl/java/*.java
+javac -d classes $DIR/rtl/java/*.java
 
-proguard -injars classes -libraryjars /usr/lib/jvm/java-8-openjdk/jre/lib/rt.jar @proguard.conf
+proguard -injars classes -libraryjars /usr/lib/jvm/java-8-openjdk/jre/lib/rt.jar @$DIR/proguard.conf
index 4afd4c27825aa3eccf0f95c0d62e40c010e3366d..ebcaa990f9640d227f34c139844e63b26e5defee 100644 (file)
@@ -1285,6 +1285,7 @@ oberon_make_call_proc(oberon_context_t * ctx, oberon_item_t * item, int num_args
        || ((x) == CHAR) \
        || ((x) == STRING) \
        || ((x) == NIL) \
+       || ((x) == LBRACE) \
        || ((x) == LPAREN) \
        || ((x) == NOT))