From 9d1e40a857605fd76ea13c751dab94efee439671 Mon Sep 17 00:00:00 2001 From: bdemsky Date: Sat, 3 Nov 2007 09:02:39 +0000 Subject: [PATCH] small changes --- Robust/src/ClassLibrary/String.java | 4 ++-- Robust/src/IR/Tree/SemanticCheck.java | 22 ++++++++++++++-------- Robust/src/Main/Main.java | 1 + 3 files changed, 17 insertions(+), 10 deletions(-) diff --git a/Robust/src/ClassLibrary/String.java b/Robust/src/ClassLibrary/String.java index d6f23e5f..c93d67cf 100644 --- a/Robust/src/ClassLibrary/String.java +++ b/Robust/src/ClassLibrary/String.java @@ -262,9 +262,9 @@ public class String { char l=s.value[i+s.offset]; char r=value[i+offset]; if (l>='a'&&l<='z') - l+='A'-'a'; + l=(char)((l-'a')+'A'); if (r>='a'&&r<='z') - r+='A'-'a'; + r=(char)((r-'a')+'A'); if (l!=r) return false; } diff --git a/Robust/src/IR/Tree/SemanticCheck.java b/Robust/src/IR/Tree/SemanticCheck.java index 8f4d5649..53df0128 100644 --- a/Robust/src/IR/Tree/SemanticCheck.java +++ b/Robust/src/IR/Tree/SemanticCheck.java @@ -859,14 +859,20 @@ public class SemanticCheck { TypeDescriptor stringtd=new TypeDescriptor(stringcl); NameDescriptor nd=new NameDescriptor("String"); NameDescriptor valuend=new NameDescriptor(nd, "valueOf"); - MethodInvokeNode leftmin=new MethodInvokeNode(valuend); - MethodInvokeNode rightmin=new MethodInvokeNode(valuend); - leftmin.addArgument(on.getLeft()); - rightmin.addArgument(on.getRight()); - on.left=leftmin; - on.right=rightmin; - checkExpressionNode(md, nametable, on.getLeft(), null); - checkExpressionNode(md, nametable, on.getRight(), null); + if (!(ltd.isString()&&(on.getLeft() instanceof OpNode))) { + MethodInvokeNode leftmin=new MethodInvokeNode(valuend); + leftmin.addArgument(on.getLeft()); + on.left=leftmin; + checkExpressionNode(md, nametable, on.getLeft(), null); + } + + if (!(rtd.isString()&&(on.getRight() instanceof OpNode))) { + MethodInvokeNode rightmin=new MethodInvokeNode(valuend); + rightmin.addArgument(on.getRight()); + on.right=rightmin; + checkExpressionNode(md, nametable, on.getRight(), null); + } + on.setLeftType(stringtd); on.setRightType(stringtd); on.setType(stringtd); diff --git a/Robust/src/Main/Main.java b/Robust/src/Main/Main.java index c924259d..3b252b96 100644 --- a/Robust/src/Main/Main.java +++ b/Robust/src/Main/Main.java @@ -91,6 +91,7 @@ public class Main { readSourceFile(state, ClassLibraryPrefix+"Integer.java"); readSourceFile(state, ClassLibraryPrefix+"StringBuffer.java"); readSourceFile(state, ClassLibraryPrefix+"FileInputStream.java"); + readSourceFile(state, ClassLibraryPrefix+"InputStream.java"); readSourceFile(state, ClassLibraryPrefix+"FileOutputStream.java"); readSourceFile(state, ClassLibraryPrefix+"File.java"); readSourceFile(state, ClassLibraryPrefix+"InetAddress.java"); -- 2.34.1