Skip to content

Commit 12dc7f8

Browse files
committed
fix exception when run test
1 parent 17c7789 commit 12dc7f8

File tree

6 files changed

+40
-38
lines changed

6 files changed

+40
-38
lines changed

libCompiler/src/main/assets/code_sample/strutils/AnsiCompareStr.pas

Lines changed: 0 additions & 31 deletions
This file was deleted.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
Program Example49;
2+
3+
{ This program demonstrates the AnsiCompareStr function }
4+
5+
Uses
6+
sysutils;
7+
8+
Procedure TestIt (S1, S2 : String);
9+
10+
Var
11+
R : Longint;
12+
13+
begin
14+
R := AnsiCompareStr(S1, S2);
15+
Write ('"', S1, '" is ');
16+
If R < 0 then
17+
write ('less than ')
18+
else If R = 0 then
19+
Write ('equal to ')
20+
else
21+
Write ('larger than ');
22+
Writeln ('"', S2, '"');
23+
end;
24+
25+
Begin
26+
Testit('One string', 'One smaller string');
27+
Testit('One string', 'one string');
28+
Testit('One string', 'One string');
29+
Testit('One string', 'One tall string');
30+
End.
31+
{http://www.freepascal.org/docs-html-3.0.0/rtl/sysutils/ansicomparestr.html}

libCompiler/src/main/java/com/duy/pascal/backend/builtin_libraries/SysUtilsLibrary.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@
1616

1717
package com.duy.pascal.backend.builtin_libraries;
1818

19+
import com.duy.pascal.backend.ast.expressioncontext.ExpressionContextMixin;
20+
import com.duy.pascal.backend.ast.runtime_value.references.PascalReference;
1921
import com.duy.pascal.backend.builtin_libraries.annotations.PascalMethod;
2022
import com.duy.pascal.backend.builtin_libraries.runtime_exceptions.EConvertError;
2123
import com.duy.pascal.backend.runtime_exception.RuntimePascalException;
22-
import com.duy.pascal.backend.ast.runtime_value.references.PascalReference;
23-
import com.duy.pascal.backend.ast.expressioncontext.ExpressionContextMixin;
2424

2525
import java.text.DecimalFormat;
2626
import java.util.Map;
@@ -66,6 +66,7 @@ public void declareFunctions(ExpressionContextMixin parentContext) {
6666
public void appendStr(PascalReference<StringBuilder> dest, StringBuilder s) throws RuntimePascalException {
6767
dest.set(dest.get().append(s));
6868
}
69+
6970
@PascalMethod(description = "Convert a string to an integer value.", returns = "int")
7071
public int strToInt(StringBuilder s) throws EConvertError {
7172
try {
@@ -272,7 +273,7 @@ public double StrToFloat(StringBuilder input) throws EConvertError {
272273

273274
@PascalMethod(description = "Compare 2 ansistrings, case sensitive, ignoring accents characters.")
274275
public double AnsiCompareStr(StringBuilder s1, StringBuilder s2) throws EConvertError {
275-
return (s1.toString().compareTo(s2.toString()));
276+
return s1.toString().compareTo(s2.toString());
276277
}
277278

278279
@PascalMethod(description = "Return a lowercase version of a string.")

libCompiler/src/test/java/com/duy/pascal/AssetDataTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,10 +119,11 @@ public void testMath() {
119119
}
120120

121121
public void testStrutils() {
122-
File parent = new File(dir + "strutils");
122+
File parent = new File(dir + "sysutils");
123123
for (File file : parent.listFiles()) {
124124
if (file.getName().endsWith(".pas")) {
125125
try {
126+
System.out.println(file);
126127
runProgram(file.getPath());
127128
} catch (RuntimePascalException e) {
128129
e.printStackTrace();

test_pascal/test_record/test_record_pointer.pas

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
type
33
BooksPtr = ^Books;
44
Books = record
5-
title: packed array [1..50] of char;
6-
author: packed array [1..50] of char;
7-
subject: packed array [1..100] of char;
5+
title: string;
6+
author: string;
7+
subject: string;
88
book_id: longint;
99
end;
1010

0 commit comments

Comments
 (0)