diff --git a/src/main/java/org/sablecc/sablecc/DisplayLicense.java b/src/main/java/org/sablecc/sablecc/DisplayLicense.java index 75452da78c7e11502f8a9185b05cf6c15a267a62..cc212c4dee299709c44052aed5a31b92163f5b24 100644 --- a/src/main/java/org/sablecc/sablecc/DisplayLicense.java +++ b/src/main/java/org/sablecc/sablecc/DisplayLicense.java @@ -10,6 +10,7 @@ package org.sablecc.sablecc; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; class DisplayLicense { @@ -20,7 +21,7 @@ class DisplayLicense BufferedReader in = new BufferedReader( new InputStreamReader( - getClass().getResourceAsStream("LICENSE"))); + getClass().getResourceAsStream("LICENSE"), StandardCharsets.UTF_8)); System.out.println("---- FILE: LICENSE ----"); String s; @@ -37,7 +38,7 @@ class DisplayLicense in = new BufferedReader( new InputStreamReader( - getClass().getResourceAsStream("AUTHORS"))); + getClass().getResourceAsStream("AUTHORS"), StandardCharsets.UTF_8)); while((s = in.readLine()) != null) { @@ -52,7 +53,7 @@ class DisplayLicense in = new BufferedReader( new InputStreamReader( - getClass().getResourceAsStream("COPYING-LESSER"))); + getClass().getResourceAsStream("COPYING-LESSER"), StandardCharsets.UTF_8)); while((s = in.readLine()) != null) { diff --git a/src/main/java/org/sablecc/sablecc/GenAlts.java b/src/main/java/org/sablecc/sablecc/GenAlts.java index 0809c352bc8310442eec1205ab149575b204efe3..08864efe759a81602e872dfe01a14b37ab43151a 100644 --- a/src/main/java/org/sablecc/sablecc/GenAlts.java +++ b/src/main/java/org/sablecc/sablecc/GenAlts.java @@ -9,9 +9,10 @@ package org.sablecc.sablecc; import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.Iterator; import java.util.LinkedList; import java.util.List; @@ -37,7 +38,7 @@ public class GenAlts extends DepthFirstAdapter { macros = new MacroExpander( new InputStreamReader( - getClass().getResourceAsStream("alternatives.txt"))); + getClass().getResourceAsStream("alternatives.txt"), StandardCharsets.UTF_8)); } catch(IOException e) { @@ -112,7 +113,7 @@ public class GenAlts extends DepthFirstAdapter { String name = ast_ids.ast_names.get(node); - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, name + ".java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, name + ".java").toPath(), StandardCharsets.UTF_8)) { boolean hasOperator = false; boolean hasList = false; diff --git a/src/main/java/org/sablecc/sablecc/GenAnalyses.java b/src/main/java/org/sablecc/sablecc/GenAnalyses.java index 45682f157979415102f0c9c96a39b57d0c1a1cc8..f56b61eeaab136193646d12d4b66e8e0b5c37dfc 100644 --- a/src/main/java/org/sablecc/sablecc/GenAnalyses.java +++ b/src/main/java/org/sablecc/sablecc/GenAnalyses.java @@ -9,9 +9,10 @@ package org.sablecc.sablecc; import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; @@ -39,7 +40,7 @@ public class GenAnalyses extends DepthFirstAdapter { macros = new MacroExpander( new InputStreamReader( - getClass().getResourceAsStream("analyses.txt"))); + getClass().getResourceAsStream("analyses.txt"), StandardCharsets.UTF_8)); } catch(IOException e) { @@ -148,7 +149,7 @@ public class GenAnalyses extends DepthFirstAdapter public void createAnalysis() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Analysis.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "Analysis.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "AnalysisHeader", new String[] {ast_ids.astIds.pkgNameDot}); @@ -182,7 +183,7 @@ public class GenAnalyses extends DepthFirstAdapter public void createAnalysisAdapter() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "AnalysisAdapter.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "AnalysisAdapter.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "AnalysisAdapterHeader", new String[] {ast_ids.astIds.pkgNameDot}); @@ -214,7 +215,7 @@ public class GenAnalyses extends DepthFirstAdapter public void createDepthFirstAdapter() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "DepthFirstAdapter.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "DepthFirstAdapter.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "DepthFirstAdapterHeader", new String[] {ast_ids.astIds.pkgNameDot, mainProduction}); @@ -263,7 +264,7 @@ public class GenAnalyses extends DepthFirstAdapter public void createReversedDepthFirstAdapter() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "ReversedDepthFirstAdapter.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "ReversedDepthFirstAdapter.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "ReversedDepthFirstAdapterHeader", new String[] {ast_ids.astIds.pkgNameDot, mainProduction}); diff --git a/src/main/java/org/sablecc/sablecc/GenLexer.java b/src/main/java/org/sablecc/sablecc/GenLexer.java index 8e9105b629a4ca43d8856dd8c01b1db2a8aea0cc..d4b8e53c17623bc604ce6be1211e33992128fd30 100644 --- a/src/main/java/org/sablecc/sablecc/GenLexer.java +++ b/src/main/java/org/sablecc/sablecc/GenLexer.java @@ -12,9 +12,10 @@ import java.io.BufferedWriter; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @@ -41,7 +42,7 @@ public class GenLexer extends AnalysisAdapter { macros = new MacroExpander( new InputStreamReader( - getClass().getResourceAsStream("lexer.txt"))); + getClass().getResourceAsStream("lexer.txt"), StandardCharsets.UTF_8)); } catch(IOException e) { @@ -111,7 +112,7 @@ public class GenLexer extends AnalysisAdapter private void createLexerException() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "LexerException.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "LexerException.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "LexerException", new String[] {ids.pkgNameDot}); } @@ -124,7 +125,7 @@ public class GenLexer extends AnalysisAdapter private void createLexer() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Lexer.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "Lexer.java").toPath(), StandardCharsets.UTF_8)) { String startState = "INITIAL"; if(ids.stateList.size() > 0) diff --git a/src/main/java/org/sablecc/sablecc/GenParser.java b/src/main/java/org/sablecc/sablecc/GenParser.java index b29b93bc4298f59ae7ab786993e488bcb8b13559..20592f25f0f079a03a58815281950c9aa3c77683 100644 --- a/src/main/java/org/sablecc/sablecc/GenParser.java +++ b/src/main/java/org/sablecc/sablecc/GenParser.java @@ -12,9 +12,10 @@ import java.io.BufferedWriter; import java.io.DataOutputStream; import java.io.File; import java.io.FileOutputStream; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.ArrayList; import java.util.Deque; import java.util.HashMap; @@ -107,7 +108,7 @@ public class GenParser extends DepthFirstAdapter { macros = new MacroExpander( new InputStreamReader( - getClass().getResourceAsStream("parser.txt"))); + getClass().getResourceAsStream("parser.txt"), StandardCharsets.UTF_8)); } catch(IOException e) { @@ -366,7 +367,7 @@ public class GenParser extends DepthFirstAdapter //Parser.java Generation private void createParser() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Parser.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "Parser.java").toPath(), StandardCharsets.UTF_8)) { Symbol[] terminals = Symbol.terminals(); Symbol[] nonterminals = Symbol.nonterminals(); @@ -726,7 +727,7 @@ public class GenParser extends DepthFirstAdapter private void createTokenIndex() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "TokenIndex.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "TokenIndex.java").toPath(), StandardCharsets.UTF_8)) { Symbol[] terminals = Symbol.terminals(); @@ -748,7 +749,7 @@ public class GenParser extends DepthFirstAdapter private void createParserException() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "ParserException.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "ParserException.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "ParserException", new String[] {ids.pkgNameDot}); } @@ -761,7 +762,7 @@ public class GenParser extends DepthFirstAdapter private void createState() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "State.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "State.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "State", new String[] {ids.pkgNameDot}); } diff --git a/src/main/java/org/sablecc/sablecc/GenProds.java b/src/main/java/org/sablecc/sablecc/GenProds.java index a5da4d61a23ba232ee859272487c1ef0425bdf7c..aea041b29cf99fd7c825a6284be63219039d3d88 100644 --- a/src/main/java/org/sablecc/sablecc/GenProds.java +++ b/src/main/java/org/sablecc/sablecc/GenProds.java @@ -9,9 +9,10 @@ package org.sablecc.sablecc; import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import org.sablecc.sablecc.analysis.DepthFirstAdapter; import org.sablecc.sablecc.node.AAstProd; @@ -30,7 +31,7 @@ public class GenProds extends DepthFirstAdapter { macros = new MacroExpander( new InputStreamReader( - getClass().getResourceAsStream("productions.txt"))); + getClass().getResourceAsStream("productions.txt"), StandardCharsets.UTF_8)); } catch(IOException e) { @@ -58,7 +59,7 @@ public class GenProds extends DepthFirstAdapter private void createProduction(String name) { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, name + ".java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, name + ".java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "Production", new String[] {ast_ids.astIds.pkgNameDot, name}); } @@ -71,7 +72,7 @@ public class GenProds extends DepthFirstAdapter private void createAlternative(String name, String macro, String[] arg) { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, name + ".java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, name + ".java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, macro, arg); } diff --git a/src/main/java/org/sablecc/sablecc/GenTokens.java b/src/main/java/org/sablecc/sablecc/GenTokens.java index 28e1eaf9513dbbc527f17e87a83efcbc153ddf2f..eac602079953729a7c63e1c884e295628761d4c7 100644 --- a/src/main/java/org/sablecc/sablecc/GenTokens.java +++ b/src/main/java/org/sablecc/sablecc/GenTokens.java @@ -9,9 +9,10 @@ package org.sablecc.sablecc; import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.List; import org.sablecc.sablecc.analysis.DepthFirstAdapter; @@ -34,7 +35,7 @@ public class GenTokens extends DepthFirstAdapter { macros = new MacroExpander( new InputStreamReader( - getClass().getResourceAsStream("tokens.txt"))); + getClass().getResourceAsStream("tokens.txt"), StandardCharsets.UTF_8)); } catch(IOException e) { @@ -93,7 +94,7 @@ public class GenTokens extends DepthFirstAdapter } } - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, name + ".java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, name + ".java").toPath(), StandardCharsets.UTF_8)) { if(text == null) { diff --git a/src/main/java/org/sablecc/sablecc/GenUtils.java b/src/main/java/org/sablecc/sablecc/GenUtils.java index 49310818d7fe080756362098a7ebd59bf4729a42..10eed4536850326d0c2ea22ecca92c5398b11c83 100644 --- a/src/main/java/org/sablecc/sablecc/GenUtils.java +++ b/src/main/java/org/sablecc/sablecc/GenUtils.java @@ -9,9 +9,10 @@ package org.sablecc.sablecc; import java.io.BufferedWriter; import java.io.File; -import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import org.sablecc.sablecc.analysis.DepthFirstAdapter; import org.sablecc.sablecc.node.AAstProd; @@ -32,7 +33,7 @@ public class GenUtils extends DepthFirstAdapter { macros = new MacroExpander( new InputStreamReader( - getClass().getResourceAsStream("utils.txt"))); + getClass().getResourceAsStream("utils.txt"), StandardCharsets.UTF_8)); } catch(IOException e) { @@ -88,7 +89,7 @@ public class GenUtils extends DepthFirstAdapter public void createStart() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Start.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "Start.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "Start", new String[] {ast_ids.astIds.pkgNameDot, mainProduction, GenAlts.nodeName(mainProduction)}); } @@ -101,7 +102,7 @@ public class GenUtils extends DepthFirstAdapter public void createEOF() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "EOF.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "EOF.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "EOF", new String[] {ast_ids.astIds.pkgNameDot}); } @@ -114,7 +115,7 @@ public class GenUtils extends DepthFirstAdapter public void createNode() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Node.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "Node.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "Node", new String[] {ast_ids.astIds.pkgNameDot}); } @@ -127,7 +128,7 @@ public class GenUtils extends DepthFirstAdapter public void createToken() { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, "Token.java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, "Token.java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, "Token", new String[] {ast_ids.astIds.pkgNameDot}); } @@ -140,7 +141,7 @@ public class GenUtils extends DepthFirstAdapter public void create(String cls) { - try(BufferedWriter file = new BufferedWriter(new FileWriter(new File(pkgDir, cls + ".java")))) + try(BufferedWriter file = Files.newBufferedWriter(new File(pkgDir, cls + ".java").toPath(), StandardCharsets.UTF_8)) { macros.apply(file, cls, new String[] {ast_ids.astIds.pkgNameDot}); } diff --git a/src/main/java/org/sablecc/sablecc/SableCC.java b/src/main/java/org/sablecc/sablecc/SableCC.java index 2ed2bb3e4b9a89799401c4688217bc4d3f1f11b7..be66d8924e2b682897ad3c72e2e2fd6b5214631a 100644 --- a/src/main/java/org/sablecc/sablecc/SableCC.java +++ b/src/main/java/org/sablecc/sablecc/SableCC.java @@ -7,10 +7,12 @@ package org.sablecc.sablecc; +import java.io.BufferedReader; import java.io.File; -import java.io.FileReader; import java.io.IOException; import java.io.PushbackReader; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.ArrayList; import java.util.List; @@ -186,13 +188,14 @@ public class SableCC { System.out.println("\n -- Generating parser for " + in.getName() + " in " + dir.getPath()); - FileReader temp = new FileReader(in); - // Build the AST - Start tree = new Parser(new Lexer(new PushbackReader( - temp = new FileReader(in), 1000))).parse(); - - temp.close(); + Start tree; + try ( + BufferedReader temp = Files.newBufferedReader(in.toPath(), StandardCharsets.UTF_8); + PushbackReader reader = new PushbackReader(temp, 1000); + ) { + tree = new Parser(new Lexer(reader)).parse(); + } boolean hasTransformations = false;