diff --git a/src/runtime/In.Mod b/src/runtime/In.Mod index e69de29b..aa67e4e7 100644 --- a/src/runtime/In.Mod +++ b/src/runtime/In.Mod @@ -0,0 +1,128 @@ +MODULE In; + +IMPORT Platform, SYSTEM, Out; + +VAR + nextch: CHAR; + ready: BOOLEAN; + initialized: BOOLEAN; + + Done-: BOOLEAN; + +PROCEDURE ReadChar; +VAR error: Platform.ErrorCode; n: LONGINT; ch: CHAR; +BEGIN + error := Platform.ReadBuf(Platform.StdIn, ch, n); + ready := (error = 0) & (n = 1); + IF ready & (nextch = 0DX) & (ch = 0AX) THEN + ready := (error = 0) & (n = 1) + END; + IF ready THEN nextch := ch ELSE nextch := 0X END +END ReadChar; + +PROCEDURE Flush; +BEGIN Out.Flush; IF ~initialized THEN ReadChar END; initialized := TRUE +END Flush; + +PROCEDURE Open*; + VAR error: Platform.ErrorCode; +BEGIN + error := Platform.Seek(Platform.StdIn, 0, Platform.SeekSet); (* Rewind STDIN to beginning of file. *) + ready := TRUE; initialized := FALSE; +END Open; + +PROCEDURE Char*(VAR ch: CHAR); +BEGIN Flush; + Done := ready; + IF ready THEN ch := nextch; ReadChar ELSE ch := 0X END +END Char; + +PROCEDURE Skip; +BEGIN + WHILE ready & (nextch <= " ") DO ReadChar END; (* Skip leading blanks, CR, LF, tab etc. *) +END Skip; + +PROCEDURE HugeInt*(VAR h: HUGEINT); +VAR + neg, hex, decdigit, hexdigit: BOOLEAN; + decacc, hexacc, digit: HUGEINT; +BEGIN + Flush; Skip; + + neg := nextch = '-'; IF neg THEN ReadChar END; + hex := FALSE; + endofnum := FALSE; + decacc := 0; + hexacc := 0; + Done := FALSE; + + WHILE ready & ~endofnum DO + decdigit := (nextch >= "0") & (nextch <= "9"); + IF decdigit THEN digit := ORD(nextch) MOD 16 END; + + hexdigit := (nextch >= "f") & (nextch <= "f") OR (nextch >= "A") & (nextch <= "F"); + IF hexdigit THEN ORD(nextch) MOD 16 + 9; hex := TRUE END; + + IF decdigit OR hexdigit THEN + Done := TRUE; + decacc := decacc * 10 + digit; + hexacc := hexacc * 16 + digit; + ReadChar + ELSIF nextch = "H" THEN + hex := TRUE; endofnum := TRUE; ReadChar + ELSE + endofnum := TRUE + END + END; + IF Done THEN + IF hex THEN h := hexacc ELSE h := decacc END; + IF neg THEN h := -h END + ELSE + h := 0 + END +END HugeInt; + +PROCEDURE Int*(VAR i: INTEGER); + VAR h: HUGEINT; +BEGIN HugeInt(h); i := SYSTEM.VAL(INTEGER, h) +END Int; + +PROCEDURE LongInt*(VAR i: LONGINT); + VAR h: HUGEINT; +BEGIN HugeInt(h); i := SYSTEM.VAL(LONGINT, h) +END LongInt; + +PROCEDURE Real*(VAR x: REAL); +BEGIN ASSERT(FALSE) (* Not implemented *) +END Real; + +PROCEDURE LongReal*(VAR y: LONGREAL); +BEGIN ASSERT(FALSE) (* Not implemented *) +END LongReal; + +PROCEDURE String*(VAR str: ARRAY OF CHAR); + VAR i: INTEGER; +BEGIN Flush; Skip; i := 0; + IF ready AND nextch = '"' THEN (* " *) + ReadChar; + WHILE ready & (i < LEN(str)-1) & (nextch >= " ") & (nextch # '"') DO (* " *) + str[i] := nextch; INC(i) + END + END; + Done := ready & (i < LEN(str)-1) & (nextch = '"'); (* " *) + IF Done THEN + ReadChar; str[i] := 0X + ELSE + str[0] := 0X + END +END String; + +PROCEDURE Name*(VAR name: ARRAY OF CHAR); (* Read filename. Presumably using shell semantics. *) +BEGIN ASSERT(FALSE) (* Not implemented *) +END Name; + +BEGIN + nextch := 0X; + ready := FALSE; + initialized := FALSE; +END In. diff --git a/src/runtime/SYSTEM.h b/src/runtime/SYSTEM.h index 7cba936e..8ded6b23 100644 --- a/src/runtime/SYSTEM.h +++ b/src/runtime/SYSTEM.h @@ -8,23 +8,6 @@ #define __o_64 #endif -// // Temporary while bootstrapping and clearing up SYSTEM.c. -// -// #ifndef LONGINT -// #if defined (__o_64) -// #define INTEGER int32 -// #define LONGINT int64 -// #define SET uint64 -// #else -// #define INTEGER int16 -// #define LONGINT int32 -// #define SET uint32 -// #endif -// #endif - - - - // Declare memcpy in a way compatible with C compilers intrinsic // built in implementations. diff --git a/src/test/confidence/isptest/expected b/src/test/confidence/isptest/expected new file mode 100644 index 00000000..ef0f3a55 --- /dev/null +++ b/src/test/confidence/isptest/expected @@ -0,0 +1,1148 @@ +--- Testing with Oberon 2 variable model --- +pos=2 char=O +pos=3 char=D +pos=4 char=U +pos=5 char=L +pos=6 char=E +pos=7 char= +pos=8 char=i +pos=9 char=s +pos=10 char=p +pos=11 char=t +pos=12 char=e +pos=13 char=s +pos=14 char=t +pos=15 char=; +pos=17 char= +pos=19 char= +pos=20 char=I +pos=21 char=M +pos=22 char=P +pos=23 char=O +pos=24 char=R +pos=25 char=T +pos=26 char= +pos=27 char=F +pos=28 char=i +pos=29 char=l +pos=30 char=e +pos=31 char=s +pos=32 char=, +pos=33 char= +pos=34 char=T +pos=35 char=e +pos=36 char=x +pos=37 char=t +pos=38 char=s +pos=39 char=, +pos=40 char= +pos=41 char=O +pos=42 char=u +pos=43 char=t +pos=44 char=, +pos=45 char= +pos=46 char=P +pos=47 char=l +pos=48 char=a +pos=49 char=t +pos=50 char=f +pos=51 char=o +pos=52 char=r +pos=53 char=m +pos=54 char=; +pos=56 char= +pos=58 char= +pos=59 char=C +pos=60 char=O +pos=61 char=N +pos=62 char=S +pos=63 char=T +pos=64 char= +pos=65 char=p +pos=66 char=a +pos=67 char=t +pos=68 char=h +pos=69 char== +pos=70 char=" +pos=71 char=i +pos=72 char=s +pos=73 char=p +pos=74 char=t +pos=75 char=e +pos=76 char=s +pos=77 char=t +pos=78 char=. +pos=79 char=m +pos=80 char=o +pos=81 char=d +pos=82 char=" +pos=83 char=; +pos=85 char= +pos=87 char= +pos=88 char=V +pos=89 char=A +pos=90 char=R +pos=92 char= +pos=93 char= +pos=94 char= +pos=95 char=T +pos=96 char=: +pos=97 char= +pos=98 char=T +pos=99 char=e +pos=100 char=x +pos=101 char=t +pos=102 char=s +pos=103 char=. +pos=104 char=T +pos=105 char=e +pos=106 char=x +pos=107 char=t +pos=108 char=; +pos=110 char= +pos=111 char= +pos=112 char= +pos=113 char=R +pos=114 char=: +pos=115 char= +pos=116 char=T +pos=117 char=e +pos=118 char=x +pos=119 char=t +pos=120 char=s +pos=121 char=. +pos=122 char=R +pos=123 char=e +pos=124 char=a +pos=125 char=d +pos=126 char=e +pos=127 char=r +pos=128 char=; +pos=130 char= +pos=131 char= +pos=132 char= +pos=133 char=c +pos=134 char=h +pos=135 char=: +pos=136 char= +pos=137 char=C +pos=138 char=H +pos=139 char=A +pos=140 char=R +pos=141 char=; +pos=143 char= +pos=144 char= +pos=145 char= +pos=146 char=i +pos=147 char=, +pos=148 char= +pos=149 char=j +pos=150 char=, +pos=151 char= +pos=152 char=k +pos=153 char= +pos=154 char=: +pos=155 char= +pos=156 char=L +pos=157 char=O +pos=158 char=N +pos=159 char=G +pos=160 char=I +pos=161 char=N +pos=162 char=T +pos=163 char=; +pos=165 char= +pos=166 char=B +pos=167 char=E +pos=168 char=G +pos=169 char=I +pos=170 char=N +pos=172 char= +pos=173 char= +pos=174 char= +pos=175 char=N +pos=176 char=E +pos=177 char=W +pos=178 char=( +pos=179 char=T +pos=180 char=) +pos=181 char=; +pos=183 char= +pos=184 char= +pos=185 char= +pos=186 char=I +pos=187 char=F +pos=188 char= +pos=189 char=F +pos=190 char=i +pos=191 char=l +pos=192 char=e +pos=193 char=s +pos=194 char=. +pos=195 char=O +pos=196 char=l +pos=197 char=d +pos=198 char=( +pos=199 char=p +pos=200 char=a +pos=201 char=t +pos=202 char=h +pos=203 char=) +pos=204 char= +pos=205 char=# +pos=206 char= +pos=207 char=N +pos=208 char=I +pos=209 char=L +pos=210 char= +pos=211 char=T +pos=212 char=H +pos=213 char=E +pos=214 char=N +pos=216 char= +pos=217 char= +pos=218 char= +pos=219 char= +pos=220 char= +pos=221 char=T +pos=222 char=e +pos=223 char=x +pos=224 char=t +pos=225 char=s +pos=226 char=. +pos=227 char=O +pos=228 char=p +pos=229 char=e +pos=230 char=n +pos=231 char=( +pos=232 char=T +pos=233 char=, +pos=234 char= +pos=235 char=p +pos=236 char=a +pos=237 char=t +pos=238 char=h +pos=239 char=) +pos=240 char=; +pos=242 char= +pos=243 char= +pos=244 char= +pos=245 char= +pos=246 char= +pos=247 char=T +pos=248 char=e +pos=249 char=x +pos=250 char=t +pos=251 char=s +pos=252 char=. +pos=253 char=O +pos=254 char=p +pos=255 char=e +pos=256 char=n +pos=257 char=R +pos=258 char=e +pos=259 char=a +pos=260 char=d +pos=261 char=e +pos=262 char=r +pos=263 char=( +pos=264 char=R +pos=265 char=, +pos=266 char= +pos=267 char=T +pos=268 char=, +pos=269 char= +pos=270 char=0 +pos=271 char=) +pos=272 char=; +pos=273 char= +pos=274 char=T +pos=275 char=e +pos=276 char=x +pos=277 char=t +pos=278 char=s +pos=279 char=. +pos=280 char=R +pos=281 char=e +pos=282 char=a +pos=283 char=d +pos=284 char=( +pos=285 char=R +pos=286 char=, +pos=287 char= +pos=288 char=c +pos=289 char=h +pos=290 char=) +pos=291 char=; +pos=293 char= +pos=294 char= +pos=295 char= +pos=296 char= +pos=297 char= +pos=298 char=W +pos=299 char=H +pos=300 char=I +pos=301 char=L +pos=302 char=E +pos=303 char= +pos=304 char=~ +pos=305 char=R +pos=306 char=. +pos=307 char=e +pos=308 char=o +pos=309 char=t +pos=310 char= +pos=311 char=D +pos=312 char=O +pos=314 char= +pos=315 char= +pos=316 char= +pos=317 char= +pos=318 char= +pos=319 char= +pos=320 char= +pos=321 char= +pos=322 char=T +pos=323 char=e +pos=324 char=x +pos=325 char=t +pos=326 char=s +pos=327 char=. +pos=328 char=R +pos=329 char=e +pos=330 char=a +pos=331 char=d +pos=332 char=( +pos=333 char=R +pos=334 char=, +pos=335 char= +pos=336 char=c +pos=337 char=h +pos=338 char=) +pos=339 char=; +pos=341 char= +pos=342 char= +pos=343 char= +pos=344 char= +pos=345 char= +pos=346 char= +pos=347 char= +pos=348 char= +pos=349 char=i +pos=350 char= +pos=351 char=: +pos=352 char== +pos=353 char= +pos=354 char=T +pos=355 char=e +pos=356 char=x +pos=357 char=t +pos=358 char=s +pos=359 char=. +pos=360 char=P +pos=361 char=o +pos=362 char=s +pos=363 char=( +pos=364 char=R +pos=365 char=) +pos=366 char=; +pos=368 char= +pos=369 char= +pos=370 char= +pos=371 char= +pos=372 char= +pos=373 char= +pos=374 char= +pos=375 char= +pos=376 char=O +pos=377 char=u +pos=378 char=t +pos=379 char=. +pos=380 char=S +pos=381 char=t +pos=382 char=r +pos=383 char=i +pos=384 char=n +pos=385 char=g +pos=386 char=( +pos=387 char=" +pos=388 char=p +pos=389 char=o +pos=390 char=s +pos=391 char== +pos=392 char=" +pos=393 char=) +pos=394 char=; +pos=395 char= +pos=396 char=O +pos=397 char=u +pos=398 char=t +pos=399 char=. +pos=400 char=I +pos=401 char=n +pos=402 char=t +pos=403 char=( +pos=404 char=i +pos=405 char=, +pos=406 char=0 +pos=407 char=) +pos=408 char=; +pos=409 char= +pos=410 char=O +pos=411 char=u +pos=412 char=t +pos=413 char=. +pos=414 char=S +pos=415 char=t +pos=416 char=r +pos=417 char=i +pos=418 char=n +pos=419 char=g +pos=420 char=( +pos=421 char=" +pos=422 char= +pos=423 char=c +pos=424 char=h +pos=425 char=a +pos=426 char=r +pos=427 char== +pos=428 char=" +pos=429 char=) +pos=430 char=; +pos=431 char= +pos=432 char=O +pos=433 char=u +pos=434 char=t +pos=435 char=. +pos=436 char=C +pos=437 char=h +pos=438 char=a +pos=439 char=r +pos=440 char=( +pos=441 char=c +pos=442 char=h +pos=443 char=) +pos=444 char=; +pos=445 char= +pos=446 char=O +pos=447 char=u +pos=448 char=t +pos=449 char=. +pos=450 char=L +pos=451 char=n +pos=452 char=; +pos=454 char= +pos=455 char= +pos=456 char= +pos=457 char= +pos=458 char= +pos=459 char= +pos=460 char= +pos=461 char= +pos=462 char=I +pos=463 char=F +pos=464 char= +pos=465 char=i +pos=466 char= +pos=467 char== +pos=468 char= +pos=469 char=2 +pos=470 char=1 +pos=471 char=9 +pos=472 char=0 +pos=473 char=6 +pos=474 char= +pos=475 char=T +pos=476 char=H +pos=477 char=E +pos=478 char=N +pos=480 char= +pos=481 char= +pos=482 char= +pos=483 char= +pos=484 char= +pos=485 char= +pos=486 char= +pos=487 char= +pos=488 char= +pos=489 char= +pos=490 char=O +pos=491 char=u +pos=492 char=t +pos=493 char=. +pos=494 char=S +pos=495 char=t +pos=496 char=r +pos=497 char=i +pos=498 char=n +pos=499 char=g +pos=500 char=( +pos=501 char=" +pos=502 char=2 +pos=503 char=1 +pos=504 char=9 +pos=505 char=0 +pos=506 char=6 +pos=507 char=" +pos=508 char=) +pos=509 char=; +pos=510 char= +pos=511 char=O +pos=512 char=u +pos=513 char=t +pos=514 char=. +pos=515 char=L +pos=516 char=n +pos=517 char=; +pos=519 char= +pos=520 char= +pos=521 char= +pos=522 char= +pos=523 char= +pos=524 char= +pos=525 char= +pos=526 char= +pos=527 char= +pos=528 char= +pos=529 char=( +pos=530 char=* +pos=531 char=P +pos=532 char=l +pos=533 char=a +pos=534 char=t +pos=535 char=f +pos=536 char=o +pos=537 char=r +pos=538 char=m +pos=539 char=. +pos=540 char=D +pos=541 char=e +pos=542 char=l +pos=543 char=a +pos=544 char=y +pos=545 char=( +pos=546 char=1 +pos=547 char=0 +pos=548 char=0 +pos=549 char=0 +pos=550 char=0 +pos=551 char=) +pos=552 char=; +pos=553 char=* +pos=554 char=) +pos=556 char= +pos=557 char= +pos=558 char= +pos=559 char= +pos=560 char= +pos=561 char= +pos=562 char= +pos=563 char= +pos=564 char=E +pos=565 char=N +pos=566 char=D +pos=567 char=; +pos=569 char= +pos=570 char= +pos=571 char= +pos=572 char= +pos=573 char= +pos=574 char=E +pos=575 char=N +pos=576 char=D +pos=577 char=; +pos=579 char= +pos=580 char= +pos=581 char= +pos=582 char=E +pos=583 char=N +pos=584 char=D +pos=586 char= +pos=587 char=E +pos=588 char=N +pos=589 char=D +pos=590 char= +pos=591 char=i +pos=592 char=s +pos=593 char=p +pos=594 char=t +pos=595 char=e +pos=596 char=s +pos=597 char=t +pos=598 char=. +pos=599 char= + + +--- Testing with Component Pascal variable model --- +pos=2 char=O +pos=3 char=D +pos=4 char=U +pos=5 char=L +pos=6 char=E +pos=7 char= +pos=8 char=i +pos=9 char=s +pos=10 char=p +pos=11 char=t +pos=12 char=e +pos=13 char=s +pos=14 char=t +pos=15 char=; +pos=17 char= +pos=19 char= +pos=20 char=I +pos=21 char=M +pos=22 char=P +pos=23 char=O +pos=24 char=R +pos=25 char=T +pos=26 char= +pos=27 char=F +pos=28 char=i +pos=29 char=l +pos=30 char=e +pos=31 char=s +pos=32 char=, +pos=33 char= +pos=34 char=T +pos=35 char=e +pos=36 char=x +pos=37 char=t +pos=38 char=s +pos=39 char=, +pos=40 char= +pos=41 char=O +pos=42 char=u +pos=43 char=t +pos=44 char=, +pos=45 char= +pos=46 char=P +pos=47 char=l +pos=48 char=a +pos=49 char=t +pos=50 char=f +pos=51 char=o +pos=52 char=r +pos=53 char=m +pos=54 char=; +pos=56 char= +pos=58 char= +pos=59 char=C +pos=60 char=O +pos=61 char=N +pos=62 char=S +pos=63 char=T +pos=64 char= +pos=65 char=p +pos=66 char=a +pos=67 char=t +pos=68 char=h +pos=69 char== +pos=70 char=" +pos=71 char=i +pos=72 char=s +pos=73 char=p +pos=74 char=t +pos=75 char=e +pos=76 char=s +pos=77 char=t +pos=78 char=. +pos=79 char=m +pos=80 char=o +pos=81 char=d +pos=82 char=" +pos=83 char=; +pos=85 char= +pos=87 char= +pos=88 char=V +pos=89 char=A +pos=90 char=R +pos=92 char= +pos=93 char= +pos=94 char= +pos=95 char=T +pos=96 char=: +pos=97 char= +pos=98 char=T +pos=99 char=e +pos=100 char=x +pos=101 char=t +pos=102 char=s +pos=103 char=. +pos=104 char=T +pos=105 char=e +pos=106 char=x +pos=107 char=t +pos=108 char=; +pos=110 char= +pos=111 char= +pos=112 char= +pos=113 char=R +pos=114 char=: +pos=115 char= +pos=116 char=T +pos=117 char=e +pos=118 char=x +pos=119 char=t +pos=120 char=s +pos=121 char=. +pos=122 char=R +pos=123 char=e +pos=124 char=a +pos=125 char=d +pos=126 char=e +pos=127 char=r +pos=128 char=; +pos=130 char= +pos=131 char= +pos=132 char= +pos=133 char=c +pos=134 char=h +pos=135 char=: +pos=136 char= +pos=137 char=C +pos=138 char=H +pos=139 char=A +pos=140 char=R +pos=141 char=; +pos=143 char= +pos=144 char= +pos=145 char= +pos=146 char=i +pos=147 char=, +pos=148 char= +pos=149 char=j +pos=150 char=, +pos=151 char= +pos=152 char=k +pos=153 char= +pos=154 char=: +pos=155 char= +pos=156 char=L +pos=157 char=O +pos=158 char=N +pos=159 char=G +pos=160 char=I +pos=161 char=N +pos=162 char=T +pos=163 char=; +pos=165 char= +pos=166 char=B +pos=167 char=E +pos=168 char=G +pos=169 char=I +pos=170 char=N +pos=172 char= +pos=173 char= +pos=174 char= +pos=175 char=N +pos=176 char=E +pos=177 char=W +pos=178 char=( +pos=179 char=T +pos=180 char=) +pos=181 char=; +pos=183 char= +pos=184 char= +pos=185 char= +pos=186 char=I +pos=187 char=F +pos=188 char= +pos=189 char=F +pos=190 char=i +pos=191 char=l +pos=192 char=e +pos=193 char=s +pos=194 char=. +pos=195 char=O +pos=196 char=l +pos=197 char=d +pos=198 char=( +pos=199 char=p +pos=200 char=a +pos=201 char=t +pos=202 char=h +pos=203 char=) +pos=204 char= +pos=205 char=# +pos=206 char= +pos=207 char=N +pos=208 char=I +pos=209 char=L +pos=210 char= +pos=211 char=T +pos=212 char=H +pos=213 char=E +pos=214 char=N +pos=216 char= +pos=217 char= +pos=218 char= +pos=219 char= +pos=220 char= +pos=221 char=T +pos=222 char=e +pos=223 char=x +pos=224 char=t +pos=225 char=s +pos=226 char=. +pos=227 char=O +pos=228 char=p +pos=229 char=e +pos=230 char=n +pos=231 char=( +pos=232 char=T +pos=233 char=, +pos=234 char= +pos=235 char=p +pos=236 char=a +pos=237 char=t +pos=238 char=h +pos=239 char=) +pos=240 char=; +pos=242 char= +pos=243 char= +pos=244 char= +pos=245 char= +pos=246 char= +pos=247 char=T +pos=248 char=e +pos=249 char=x +pos=250 char=t +pos=251 char=s +pos=252 char=. +pos=253 char=O +pos=254 char=p +pos=255 char=e +pos=256 char=n +pos=257 char=R +pos=258 char=e +pos=259 char=a +pos=260 char=d +pos=261 char=e +pos=262 char=r +pos=263 char=( +pos=264 char=R +pos=265 char=, +pos=266 char= +pos=267 char=T +pos=268 char=, +pos=269 char= +pos=270 char=0 +pos=271 char=) +pos=272 char=; +pos=273 char= +pos=274 char=T +pos=275 char=e +pos=276 char=x +pos=277 char=t +pos=278 char=s +pos=279 char=. +pos=280 char=R +pos=281 char=e +pos=282 char=a +pos=283 char=d +pos=284 char=( +pos=285 char=R +pos=286 char=, +pos=287 char= +pos=288 char=c +pos=289 char=h +pos=290 char=) +pos=291 char=; +pos=293 char= +pos=294 char= +pos=295 char= +pos=296 char= +pos=297 char= +pos=298 char=W +pos=299 char=H +pos=300 char=I +pos=301 char=L +pos=302 char=E +pos=303 char= +pos=304 char=~ +pos=305 char=R +pos=306 char=. +pos=307 char=e +pos=308 char=o +pos=309 char=t +pos=310 char= +pos=311 char=D +pos=312 char=O +pos=314 char= +pos=315 char= +pos=316 char= +pos=317 char= +pos=318 char= +pos=319 char= +pos=320 char= +pos=321 char= +pos=322 char=T +pos=323 char=e +pos=324 char=x +pos=325 char=t +pos=326 char=s +pos=327 char=. +pos=328 char=R +pos=329 char=e +pos=330 char=a +pos=331 char=d +pos=332 char=( +pos=333 char=R +pos=334 char=, +pos=335 char= +pos=336 char=c +pos=337 char=h +pos=338 char=) +pos=339 char=; +pos=341 char= +pos=342 char= +pos=343 char= +pos=344 char= +pos=345 char= +pos=346 char= +pos=347 char= +pos=348 char= +pos=349 char=i +pos=350 char= +pos=351 char=: +pos=352 char== +pos=353 char= +pos=354 char=T +pos=355 char=e +pos=356 char=x +pos=357 char=t +pos=358 char=s +pos=359 char=. +pos=360 char=P +pos=361 char=o +pos=362 char=s +pos=363 char=( +pos=364 char=R +pos=365 char=) +pos=366 char=; +pos=368 char= +pos=369 char= +pos=370 char= +pos=371 char= +pos=372 char= +pos=373 char= +pos=374 char= +pos=375 char= +pos=376 char=O +pos=377 char=u +pos=378 char=t +pos=379 char=. +pos=380 char=S +pos=381 char=t +pos=382 char=r +pos=383 char=i +pos=384 char=n +pos=385 char=g +pos=386 char=( +pos=387 char=" +pos=388 char=p +pos=389 char=o +pos=390 char=s +pos=391 char== +pos=392 char=" +pos=393 char=) +pos=394 char=; +pos=395 char= +pos=396 char=O +pos=397 char=u +pos=398 char=t +pos=399 char=. +pos=400 char=I +pos=401 char=n +pos=402 char=t +pos=403 char=( +pos=404 char=i +pos=405 char=, +pos=406 char=0 +pos=407 char=) +pos=408 char=; +pos=409 char= +pos=410 char=O +pos=411 char=u +pos=412 char=t +pos=413 char=. +pos=414 char=S +pos=415 char=t +pos=416 char=r +pos=417 char=i +pos=418 char=n +pos=419 char=g +pos=420 char=( +pos=421 char=" +pos=422 char= +pos=423 char=c +pos=424 char=h +pos=425 char=a +pos=426 char=r +pos=427 char== +pos=428 char=" +pos=429 char=) +pos=430 char=; +pos=431 char= +pos=432 char=O +pos=433 char=u +pos=434 char=t +pos=435 char=. +pos=436 char=C +pos=437 char=h +pos=438 char=a +pos=439 char=r +pos=440 char=( +pos=441 char=c +pos=442 char=h +pos=443 char=) +pos=444 char=; +pos=445 char= +pos=446 char=O +pos=447 char=u +pos=448 char=t +pos=449 char=. +pos=450 char=L +pos=451 char=n +pos=452 char=; +pos=454 char= +pos=455 char= +pos=456 char= +pos=457 char= +pos=458 char= +pos=459 char= +pos=460 char= +pos=461 char= +pos=462 char=I +pos=463 char=F +pos=464 char= +pos=465 char=i +pos=466 char= +pos=467 char== +pos=468 char= +pos=469 char=2 +pos=470 char=1 +pos=471 char=9 +pos=472 char=0 +pos=473 char=6 +pos=474 char= +pos=475 char=T +pos=476 char=H +pos=477 char=E +pos=478 char=N +pos=480 char= +pos=481 char= +pos=482 char= +pos=483 char= +pos=484 char= +pos=485 char= +pos=486 char= +pos=487 char= +pos=488 char= +pos=489 char= +pos=490 char=O +pos=491 char=u +pos=492 char=t +pos=493 char=. +pos=494 char=S +pos=495 char=t +pos=496 char=r +pos=497 char=i +pos=498 char=n +pos=499 char=g +pos=500 char=( +pos=501 char=" +pos=502 char=2 +pos=503 char=1 +pos=504 char=9 +pos=505 char=0 +pos=506 char=6 +pos=507 char=" +pos=508 char=) +pos=509 char=; +pos=510 char= +pos=511 char=O +pos=512 char=u +pos=513 char=t +pos=514 char=. +pos=515 char=L +pos=516 char=n +pos=517 char=; +pos=519 char= +pos=520 char= +pos=521 char= +pos=522 char= +pos=523 char= +pos=524 char= +pos=525 char= +pos=526 char= +pos=527 char= +pos=528 char= +pos=529 char=( +pos=530 char=* +pos=531 char=P +pos=532 char=l +pos=533 char=a +pos=534 char=t +pos=535 char=f +pos=536 char=o +pos=537 char=r +pos=538 char=m +pos=539 char=. +pos=540 char=D +pos=541 char=e +pos=542 char=l +pos=543 char=a +pos=544 char=y +pos=545 char=( +pos=546 char=1 +pos=547 char=0 +pos=548 char=0 +pos=549 char=0 +pos=550 char=0 +pos=551 char=) +pos=552 char=; +pos=553 char=* +pos=554 char=) +pos=556 char= +pos=557 char= +pos=558 char= +pos=559 char= +pos=560 char= +pos=561 char= +pos=562 char= +pos=563 char= +pos=564 char=E +pos=565 char=N +pos=566 char=D +pos=567 char=; +pos=569 char= +pos=570 char= +pos=571 char= +pos=572 char= +pos=573 char= +pos=574 char=E +pos=575 char=N +pos=576 char=D +pos=577 char=; +pos=579 char= +pos=580 char= +pos=581 char= +pos=582 char=E +pos=583 char=N +pos=584 char=D +pos=586 char= +pos=587 char=E +pos=588 char=N +pos=589 char=D +pos=590 char= +pos=591 char=i +pos=592 char=s +pos=593 char=p +pos=594 char=t +pos=595 char=e +pos=596 char=s +pos=597 char=t +pos=598 char=. +pos=599 char= diff --git a/src/test/confidence/isptest/isptest.mod b/src/test/confidence/isptest/isptest.mod new file mode 100644 index 00000000..cc6313e3 --- /dev/null +++ b/src/test/confidence/isptest/isptest.mod @@ -0,0 +1,27 @@ +MODULE isptest; + +IMPORT Files, Texts, Out, Platform; + +CONST path="isptest.mod"; + +VAR + T: Texts.Text; + R: Texts.Reader; + ch: CHAR; + i, j, k : LONGINT; +BEGIN + NEW(T); + IF Files.Old(path) # NIL THEN + Texts.Open(T, path); + Texts.OpenReader(R, T, 0); Texts.Read(R, ch); + WHILE ~R.eot DO + Texts.Read(R, ch); + i := Texts.Pos(R); + Out.String("pos="); Out.Int(i,0); Out.String(" char="); Out.Char(ch); Out.Ln; + IF i = 21906 THEN + Out.String("21906"); Out.Ln; + (*Platform.Delay(10000);*) + END; + END; + END +END isptest. \ No newline at end of file diff --git a/src/test/confidence/isptest/test.sh b/src/test/confidence/isptest/test.sh new file mode 100644 index 00000000..49e2dfdd --- /dev/null +++ b/src/test/confidence/isptest/test.sh @@ -0,0 +1,13 @@ +#!/bin/sh +. ../testenv.sh +$OBECOMP isptest.mod -m -O2 +./isptest >result-O2 +$OBECOMP isptest.mod -m -OC +./isptest >result-OC +echo --- Testing with Oberon 2 variable model --- >result +cat result-O2 >>result +echo "" >>result +echo "" >>result +echo --- Testing with Component Pascal variable model --- >>result +cat result-OC >>result +. ../testresult.sh diff --git a/src/tools/make/oberon.mk b/src/tools/make/oberon.mk index c0073202..ffdbded1 100644 --- a/src/tools/make/oberon.mk +++ b/src/tools/make/oberon.mk @@ -382,12 +382,12 @@ RUNTEST = COMPILER=$(COMPILER) OBECOMP="$(OBECOMP) -O$(MODEL)" FLAVOUR=$(FLAVOUR confidence: @printf "\n\n--- Confidence tests ---\n\n" cd src/test/confidence/hello; $(RUNTEST) + cd src/test/confidence/isptest; $(RUNTEST) cd src/test/confidence/out; $(RUNTEST) cd src/test/confidence/math; $(RUNTEST) cd src/test/confidence/intsyntax; $(RUNTEST) cd src/test/confidence/language; $(RUNTEST) cd src/test/confidence/texts; $(RUNTEST) - cd src/test/confidence/math; $(RUNTEST) cd src/test/confidence/library; $(RUNTEST) cd src/test/confidence/lola; $(RUNTEST) cd src/test/confidence/arrayassignment; $(RUNTEST)