From 21b8c43ceb5317597a9c3b4bf03c0a560f679d93 Mon Sep 17 00:00:00 2001 From: Katja Date: Sun, 14 May 2023 20:10:54 +0200 Subject: [PATCH] Fixed ulong constant not being accepted with an unchecked cast to long. Fixed the argument passed to Substring. Java expects a position but C# expects a length. --- csjavacc/parser/CSJavaFiles.java | 2 +- csjavacc/parser/LexGen.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/csjavacc/parser/CSJavaFiles.java b/csjavacc/parser/CSJavaFiles.java index 867c7e6..4f509ec 100644 --- a/csjavacc/parser/CSJavaFiles.java +++ b/csjavacc/parser/CSJavaFiles.java @@ -1770,7 +1770,7 @@ public class CSJavaFiles ostr.println(" default:"); ostr.println(" if ((ch = str[i]) < 0x20 || ch > 0x7e) {"); ostr.println(" String s = \"0000\" + ((int)ch).ToString(\"X\");"); - ostr.println(" retval.Append(\"\\\\u\" + s.Substring(s.Length - 4, s.Length));"); + ostr.println(" retval.Append(\"\\\\u\" + s.Substring(s.Length - 4, 4));"); ostr.println(" } else {"); ostr.println(" retval.Append(ch);"); ostr.println(" }"); diff --git a/csjavacc/parser/LexGen.java b/csjavacc/parser/LexGen.java index cbf8b96..1686344 100644 --- a/csjavacc/parser/LexGen.java +++ b/csjavacc/parser/LexGen.java @@ -666,7 +666,7 @@ public class LexGen extends CSJavaCCGlobals implements CSJavaCCParserConstants{ ostr.print("static long[] jjtoToken = {"); for (i = 0; i < maxOrdinal / 64 + 1; i++){ if (i % 4 == 0)ostr.print("\n "); - ostr.print("0x" + Long.toHexString(toToken[i]) + "L, "); + ostr.print("unchecked((long)0x" + Long.toHexString(toToken[i]) + "L), "); } ostr.println("\n};"); }