summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 1128fa8)
raw | patch | inline | side by side (parent: 1128fa8)
author | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Mon, 21 Aug 2017 09:23:00 +0000 (12:23 +0300) | ||
committer | DeaDDooMER <deaddoomer@deadsoftware.ru> | |
Mon, 21 Aug 2017 09:23:00 +0000 (12:23 +0300) |
Test.obn | patch | blob | history | |
obn-compile.sh | patch | blob | history | |
src/oberon.c | patch | blob | history |
diff --git a/Test.obn b/Test.obn
index be037a255a86681dfd6dde8cb1ddea47041586bf..8889d77c0c50802f40f632397a621a5dba4eaeea 100644 (file)
--- a/Test.obn
+++ b/Test.obn
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.
diff --git a/obn-compile.sh b/obn-compile.sh
index 0ab4b702958017eca1500c06056856ce6ec34d16..b23218450a2489b7529356e35bb5acfba6b5ed6b 100755 (executable)
--- a/obn-compile.sh
+++ b/obn-compile.sh
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
diff --git a/src/oberon.c b/src/oberon.c
index 4afd4c27825aa3eccf0f95c0d62e40c010e3366d..ebcaa990f9640d227f34c139844e63b26e5defee 100644 (file)
--- a/src/oberon.c
+++ b/src/oberon.c
@@ -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))