diff options
Diffstat (limited to 'src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java')
| -rw-r--r-- | src/main/java/bjc/rgens/parser/templates/GrammarTemplate.java | 48 |
1 files changed, 23 insertions, 25 deletions
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<TemplateElement> 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<String> 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<String> 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; } |
