From 9de5a19d573de7289cbd5a65ea5d101ddaf8db64 Mon Sep 17 00:00:00 2001 From: Ben Culkin Date: Sun, 25 Jun 2023 15:54:24 -0400 Subject: Cleanups --- .../java/bjc/rgens/parser/RGrammarBuilder.java | 11 +++-- .../rgens/parser/templates/GrammarTemplate.java | 48 +++++++++++----------- 2 files changed, 28 insertions(+), 31 deletions(-) diff --git a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java index a1efcb3..b09c9e4 100644 --- a/src/main/java/bjc/rgens/parser/RGrammarBuilder.java +++ b/src/main/java/bjc/rgens/parser/RGrammarBuilder.java @@ -89,13 +89,12 @@ public class RGrammarBuilder { if(rules.containsKey(rName)) { return rules.get(rName); - } else { - Rule ret = new Rule(rName); - - rules.put(rName, ret); - - return ret; } + + Rule ret = new Rule(rName); + rules.put(rName, ret); + + return ret; } /** diff --git a/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java b/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java index 6303fa6..8663372 100644 --- a/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java +++ b/src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java @@ -76,33 +76,31 @@ public class GrammarTemplate { List elements = new ArrayList<>(); GrammarTemplate template = new GrammarTemplate(elements); - Scanner scn = new Scanner(rdr); - scn.useDelimiter("\\R"); - - int lno = 0; - while(scn.hasNextLine()) { - String ln = scn.nextLine(); - lno += 1; - - Tree kid = new SimpleTree<>(String.format("INFO: Line %d", lno)); - switch(ln.charAt(0)) { - case '#': - // Ignore comments - break; - case '/': - handlePragma(elements, template, ln.substring(1), kid); - break; - default: - handleLine(elements, template, ln, kid); - } - - if (kid.size() > 0) { - errs.addChild(kid); + try (Scanner scn = new Scanner(rdr)) { + scn.useDelimiter("\\R"); + + int lno = 0; + while(scn.hasNextLine()) { + String ln = scn.nextLine(); + lno += 1; + + Tree kid = new SimpleTree<>(String.format("INFO: Line %d", lno)); + switch(ln.charAt(0)) { + case '#': + // Ignore comments + break; + case '/': + handlePragma(elements, template, ln.substring(1), kid); + break; + default: + handleLine(elements, template, ln, kid); + } + + if (kid.size() > 0) { + errs.addChild(kid); + } } } - - scn.close(); - return template; } -- cgit v1.2.3