package yeti.lang.grammar; import java.util.Scanner; import mouse.runtime.*; public class PEGParser { private static void parse(Source src, boolean[] bad) { YetiPEG peg = new YetiPEG(); if (peg.parse(src)) { System.out.println("OK"); } else { System.out.println("NOK"); bad[0] = true; } } public static void main(String[] argv) throws Exception { boolean[] bad = { false }; Source src; if (argv.length == 0) { parse(new SourceString( new Scanner(System.in).useDelimiter("\\A").next()), bad); } else { for (int i = 0; i < argv.length; ++i) { SourceFile f = new SourceFile(argv[i]); if (f.created()) { System.out.print(argv[i] + ": "); parse(f, bad); } } } if (bad[0]) System.exit(1); } }