private SyntaxNode copenFileParseAndCreateAst(final String syntaxFileName) {
        try {
            final File syntaxFile = new File(syntaxFileName);
            final Parser parser   = Factory.newParserFromSource(syntaxFile);
            return parser.parse();
        } catch (SyntaxException ex) {
            getIoStreams().errorln("Syntax error: " + ex.getMessage());

            if (options.isDebug()) {
                getIoStreams().printStackTrace(ex);
            }

            exit(ExitCodeImpl.SYNTAX_ERROR);
        } catch (FileNotFoundException ex) {
            getIoStreams().errorln(String.format("Can not read syntax file '%s'!", syntaxFileName));

            if (options.isDebug()) {
                getIoStreams().printStackTrace(ex);
            }

            exit(ExitCodeImpl.READ_ERROR);
        } catch (IOException ex) {
            getIoStreams().errorln(String.format("Can not read syntax file '%s'!", syntaxFileName));

            if (options.isDebug()) {
                getIoStreams().printStackTrace(ex);
            }

            exit(ExitCodeImpl.READ_ERROR);
        }

        throw new RuntimeException("Go aeay!");
    }