Example usage for java.io StreamTokenizer TT_NUMBER

List of usage examples for java.io StreamTokenizer TT_NUMBER

Introduction

In this page you can find the example usage for java.io StreamTokenizer TT_NUMBER.

Prototype

int TT_NUMBER

To view the source code for java.io StreamTokenizer TT_NUMBER.

Click Source Link

Document

A constant indicating that a number token has been read.

Usage

From source file:com.github.lindenb.jvarkit.tools.biostar.Biostar103303.java

private void readGTF(String uri, SAMSequenceDictionary dict) throws IOException {
    int count_exons = 0;
    final Set<String> unknown = new HashSet<String>();
    LOG.info("Reading " + uri);
    final Pattern tab = Pattern.compile("[\t]");
    final Map<String, GTFGene> transcript2gene = new HashMap<String, GTFGene>();
    LineIterator iter = IOUtils.openURIForLineIterator(uri);
    while (iter.hasNext()) {
        String line = iter.next();
        if (line.startsWith("#"))
            continue;
        String tokens[] = tab.split(line);
        if (tokens.length < 9)
            continue;
        if (!tokens[2].equals("exon"))
            continue;
        if (dict.getSequence(tokens[0]) == null) {
            if (!unknown.contains(tokens[0])) {
                LOG.warn("chromosome in " + line + " not in SAMSequenceDictionary ");
                unknown.add(tokens[0]);/*from w  w w  . ja  va  2 s. c o m*/
            }
            continue;
        }
        String transcript_id = null, gene_id = null, gene_name = null, exon_id = null;
        StreamTokenizer st = new StreamTokenizer(new StringReader(tokens[8]));
        st.wordChars('_', '_');
        String key = null;
        while (st.nextToken() != StreamTokenizer.TT_EOF) {
            String s = null;
            switch (st.ttype) {
            case StreamTokenizer.TT_NUMBER:
                s = String.valueOf(st.nval);
                break;
            case '"':
            case '\'':
            case StreamTokenizer.TT_WORD:
                s = st.sval;
                break;
            case ';':
                break;
            default:
                break;
            }
            if (s == null)
                continue;
            if (key == null) {
                key = s;
            } else {
                if (key.equals("transcript_id")) {
                    transcript_id = s;
                } else if (key.equals("gene_id")) {
                    gene_id = s;
                } else if (key.equals("gene_name")) {
                    gene_name = s;
                } else if (key.equals("exon_id")) {
                    exon_id = s;
                }
                key = null;
            }
        }
        if (transcript_id == null || transcript_id.isEmpty())
            continue;
        GTFGene gene = transcript2gene.get(tokens[0] + " " + transcript_id);
        if (gene == null) {
            gene = new GTFGene();
            gene.transcript_id = transcript_id;
            gene.gene_id = gene_id;
            gene.gene_name = gene_name;
            gene.chrom = tokens[0];
            transcript2gene.put(tokens[0] + " " + transcript_id, gene);
        }
        GTFGene.Exon exon = gene.createExon(Integer.parseInt(tokens[3]), Integer.parseInt(tokens[4]));
        exon.exon_id = exon_id;
    }
    CloserUtil.close(iter);

    for (GTFGene g : transcript2gene.values()) {
        Collections.sort(g.exons, new Comparator<GTFGene.Exon>() {
            @Override
            public int compare(GTFGene.Exon o1, GTFGene.Exon o2) {
                return o1.start - o2.start;
            }
        });
        for (int i = 0; i < g.exons.size(); ++i) {

            GTFGene.Exon exon = g.exons.get(i);
            exon.index = i;

            if (i > 0) {
                GTFGene.Exon prev = g.exons.get(i - 1);
                if (prev.end >= exon.start) {
                    throw new IOException("exons " + (i) + " and " + (i + 1) + " overlap in " + g);
                }
            }

            Interval interval = new Interval(g.chrom, exon.start, exon.end);
            List<GTFGene.Exon> L = exonMap.get(interval);
            if (L == null) {
                L = new ArrayList<GTFGene.Exon>(1);
                exonMap.put(interval, L);
            }
            L.add(exon);
            ++count_exons;
        }
    }
    LOG.info("End Reading " + uri + " N=" + count_exons);
}

From source file:com.redskyit.scriptDriver.RunTests.java

private boolean executeFunction(String name, File file, StreamTokenizer parent, ExecutionContext script)
        throws Exception {
    ExecutionContext context = functions.get(name);
    if (null != context) {
        // If this context has parameters then gather argument values
        if (null != parent && null != script) {
            List<String> params = context.getParams();
            if (null != params && params.size() > 0) {
                context.clearArgs();//  w  w w.j a  va2 s  .c  om
                int count = params.size();
                while (count-- > 0) {
                    // get argument
                    parent.nextToken();
                    System.out.print(' ');
                    switch (parent.ttype) {
                    case StreamTokenizer.TT_NUMBER:
                        System.out.print(parent.nval);
                        context.addArg(parent.nval);
                        break;
                    default:
                        System.out.print(parent.sval);
                        context.addArg(script.getExpandedString(parent));
                        break;
                    }
                }
            }
            System.out.println();
        }

        // Get function body and execute it
        String code = context.getBody();
        if (null != code) {
            StreamTokenizer tokenizer = openString(code);
            while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
                if (tokenizer.ttype == StreamTokenizer.TT_WORD) {
                    runCommand(tokenizer, file, name, context);
                }
            }
            return true;
        }
    }
    return false;
}

From source file:com.ecyrd.jspwiki.plugin.PluginManager.java

/**
 *  Parses plugin arguments.  Handles quotes and all other kewl stuff.
 *
 *  <h3>Special parameters</h3>
 *  The plugin body is put into a special parameter defined by {@link #PARAM_BODY};
 *  the plugin's command line into a parameter defined by {@link #PARAM_CMDLINE};
 *  and the bounds of the plugin within the wiki page text by a parameter defined
 *  by {@link #PARAM_BOUNDS}, whose value is stored as a two-element int[] array,
 *  i.e., <tt>[start,end]</tt>.
 *
 * @param argstring The argument string to the plugin.  This is
 *  typically a list of key-value pairs, using "'" to escape
 *  spaces in strings, followed by an empty line and then the
 *  plugin body.  In case the parameter is null, will return an
 *  empty parameter list./*from w w  w .j  a  v  a 2s.  c  o m*/
 *
 * @return A parsed list of parameters.
 *
 * @throws IOException If the parsing fails.
 */
public Map parseArgs(String argstring) throws IOException {
    HashMap<String, Object> arglist = new HashMap<String, Object>();

    //
    //  Protection against funny users.
    //
    if (argstring == null)
        return arglist;

    arglist.put(PARAM_CMDLINE, argstring);

    StringReader in = new StringReader(argstring);
    StreamTokenizer tok = new StreamTokenizer(in);
    int type;

    String param = null;
    String value = null;

    tok.eolIsSignificant(true);

    boolean potentialEmptyLine = false;
    boolean quit = false;

    while (!quit) {
        String s;

        type = tok.nextToken();

        switch (type) {
        case StreamTokenizer.TT_EOF:
            quit = true;
            s = null;
            break;

        case StreamTokenizer.TT_WORD:
            s = tok.sval;
            potentialEmptyLine = false;
            break;

        case StreamTokenizer.TT_EOL:
            quit = potentialEmptyLine;
            potentialEmptyLine = true;
            s = null;
            break;

        case StreamTokenizer.TT_NUMBER:
            s = Integer.toString((int) tok.nval);
            potentialEmptyLine = false;
            break;

        case '\'':
            s = tok.sval;
            break;

        default:
            s = null;
        }

        //
        //  Assume that alternate words on the line are
        //  parameter and value, respectively.
        //
        if (s != null) {
            if (param == null) {
                param = s;
            } else {
                value = s;

                arglist.put(param, value);

                // log.debug("ARG: "+param+"="+value);
                param = null;
            }
        }
    }

    //
    //  Now, we'll check the body.
    //

    if (potentialEmptyLine) {
        StringWriter out = new StringWriter();
        FileUtil.copyContents(in, out);

        String bodyContent = out.toString();

        if (bodyContent != null) {
            arglist.put(PARAM_BODY, bodyContent);
        }
    }

    return arglist;
}

From source file:com.redskyit.scriptDriver.RunTests.java

private void parseBlock(ExecutionContext script, StreamTokenizer tokenizer, BlockHandler handler)
        throws Exception {
    tokenizer.nextToken();//from   ww w. ja  v a2 s  . c  o  m
    if (tokenizer.ttype == '{') {
        int braceLevel = 1;
        System.out.print(" {");
        tokenizer.eolIsSignificant(true);
        tokenizer.nextToken();
        while (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"'
                || tokenizer.ttype == StreamTokenizer.TT_NUMBER || tokenizer.ttype == '\n'
                || tokenizer.ttype == '{' || tokenizer.ttype == '}' || tokenizer.ttype == ','
                || tokenizer.ttype == '*' || tokenizer.ttype == ':') {
            System.out.print(' ');
            String arg;
            switch (tokenizer.ttype) {
            case '{':
                braceLevel++;
                arg = "{";
                break;
            case '}':
                if (--braceLevel == 0) {
                    System.out.print("}");
                    tokenizer.eolIsSignificant(false);
                    return;
                }
                arg = "}";
                break;
            case StreamTokenizer.TT_NUMBER:
                arg = String.valueOf(tokenizer.nval);
                break;
            case StreamTokenizer.TT_EOL:
                arg = "\n";
                break;
            case '"':
                // 5 backslashed required in replace string because its processed once
                // as a string (yielding \\") and then again by the replace method
                // of the regular expression (so \\" becomes \")
                arg = '"' + script.getExpandedString(tokenizer).replaceAll("\"", "\\\\\"") + '"';
                break;
            case ',':
                arg = ",";
                break;
            case ':':
                arg = ":";
                break;
            case '*':
                arg = "*";
                break;
            default:
                arg = script.getExpandedString(tokenizer);
            }
            System.out.print(arg);
            handler.parseToken(tokenizer, arg);
            tokenizer.nextToken();
        }
        System.out.println();
        throw new Exception("args unexpectd token " + tokenizer.ttype);
    }
    tokenizer.pushBack(); // no arguments
}

From source file:com.fluffypeople.managesieve.ManageSieveClient.java

private ManageSieveResponse parseCapabilities() throws IOException, ParseException {
    cap = new ServerCapabilities();

    while (true) {
        int token = in.nextToken();
        switch (token) {
        case StreamTokenizer.TT_WORD:
            // Unquoted word - end of capabilites
            in.pushBack();// ww w.  jav  a2 s  . co m
            return parseResponse();
        case DQUOTE:
        case LEFT_CURRLY_BRACE:
            // Capabilities can be either literal or quoted
            in.pushBack();
            String word = parseString();
            if (word.equalsIgnoreCase("IMPLEMENTATION")) {
                cap.setImplementationName(parseString());
            } else if (word.equalsIgnoreCase("SASL")) {
                cap.setSASLMethods(parseString());
            } else if (word.equalsIgnoreCase("SIEVE")) {
                cap.setSieveExtensions(parseString());
            } else if (word.equalsIgnoreCase("MAXREDIRECTS")) {
                token = in.nextToken();
                if (token == StreamTokenizer.TT_NUMBER) {
                    cap.setMaxRedirects((int) in.nval);
                } else {
                    throw new ParseException(
                            "Expecting NUMBER got " + tokenToString(token) + " at " + in.lineno());
                }
            } else if (word.equalsIgnoreCase("NOTIFY")) {
                cap.setNotify(parseString());
            } else if (word.equalsIgnoreCase("STARTTLS")) {
                cap.setHasTLS(true);
            } else if (word.equalsIgnoreCase("LANGUAGE")) {
                cap.setLanguage(parseString());
            } else if (word.equalsIgnoreCase("VERSION")) {
                cap.setVersion(parseString());
            } else if (word.equalsIgnoreCase("OWNER")) {
                cap.setOwner(parseString());
            } else {
                // Unknown capability, read until EOL
                while (token != StreamTokenizer.TT_EOL) {
                    token = in.nextToken();
                }
                in.pushBack();
            }
            token = in.nextToken();
            if (token != StreamTokenizer.TT_EOL) {
                throw new ParseException("Expecing EOL got " + tokenToString(token) + " at " + in.lineno());
            }
            break;

        default:
            throw new ParseException("Unexpected token " + token + " at " + in.lineno());
        }
    }
}

From source file:com.fluffypeople.managesieve.ManageSieveClient.java

private String parseString() throws IOException, ParseException {
    int token = in.nextToken();
    if (token == DQUOTE) {
        return in.sval;
    } else if (token == '{') {
        // "Literal" String - {<length>}CRLF<length bytes of string>
        token = in.nextToken();//from   ww w  . j  av  a 2  s.c o  m
        if (token != StreamTokenizer.TT_NUMBER) {
            throw new ParseException(
                    "Expecting NUMBER got " + tokenToString(token) + " at line " + in.lineno());
        }
        // Irritatingly, the tokenizer will parse a double here, even
        // if we only want an int. Sigh.
        int length = (int) in.nval;
        token = in.nextToken();
        if (token != '}') {
            throw new ParseException("Expecing } got " + tokenToString(token) + " at line " + in.lineno());
        }
        token = in.nextToken();
        if (token != StreamTokenizer.TT_EOL) {
            throw new ParseException("Expecting EOL got " + tokenToString(token) + " at line " + in.lineno());
        }
        // Drop out of the tokenizer to read the raw bytes...

        StringBuilder rawString = new StringBuilder();
        log.debug("Raw string: reading {} bytes", length);

        in.resetSyntax();
        int count = 0;
        while (count < length) {
            token = in.nextToken();
            if (token == StreamTokenizer.TT_WORD) {
                // Tokenizer calls unicode "WORD" even in raw(ish) mode
                rawString.append(in.sval);
                count += in.sval.getBytes(UTF8).length;
            } else {
                // Probably only ever one byte chars, however lets be
                // careful out there.
                char[] chars = Character.toChars(token);
                rawString.append(chars);
                count += chars.length;
            }
        }

        // Remember to reset the tokenizer now we're done
        setupTokenizer();

        return rawString.toString();
    } else {
        throw new ParseException(
                "Expecing DQUOTE or {, got " + tokenToString(token) + " at line " + in.lineno());
    }
}

From source file:com.redskyit.scriptDriver.RunTests.java

private void runCommand(final StreamTokenizer tokenizer, File file, String source, ExecutionContext script)
        throws Exception {
    // Automatic log dumping
    if (autolog && null != driver) {
        dumpLog();/*  w w  w  .j a  va2s  . com*/
    }

    String cmd = tokenizer.sval;
    System.out.printf((new Date()).getTime() + ": [%s,%d] ", source, tokenizer.lineno());
    System.out.print(tokenizer.sval);

    if (cmd.equals("version")) {
        // HELP: version
        System.out.println();
        System.out.println("ScriptDriver version " + version);
        return;
    }

    if (cmd.equals("browser")) {
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            System.out.print(' ');
            System.out.print(tokenizer.sval);

            if (tokenizer.sval.equals("prefs")) {
                // HELP: browser prefs ...
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                    System.out.print(' ');
                    System.out.print(tokenizer.sval);
                    String pref = tokenizer.sval;
                    tokenizer.nextToken();
                    System.out.print(' ');
                    if (_skip)
                        return;
                    if (null == options)
                        options = new ChromeOptions();
                    if (null == prefs)
                        prefs = new HashMap<String, Object>();
                    switch (tokenizer.ttype) {
                    case StreamTokenizer.TT_WORD:
                    case '"':
                        System.out.println(tokenizer.sval);
                        if (tokenizer.sval.equals("false")) {
                            prefs.put(pref, false);
                        } else if (tokenizer.sval.equals("true")) {
                            prefs.put(pref, true);
                        } else {
                            prefs.put(pref, tokenizer.sval);
                        }
                        return;
                    case StreamTokenizer.TT_NUMBER:
                        System.out.println(tokenizer.nval);
                        prefs.put(pref, tokenizer.nval);
                        return;
                    }
                }
                System.out.println();
                throw new Exception("browser option command argument missing");
            }

            if (tokenizer.sval.equals("option")) {
                // HELP: browser option ...
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') { // expect a quoted string
                    System.out.print(' ');
                    System.out.println(tokenizer.sval);
                    if (_skip)
                        return;
                    if (null == options)
                        options = new ChromeOptions();
                    options.addArguments(tokenizer.sval);
                    return;
                }
                System.out.println();
                throw new Exception("browser option command argument missing");
            }

            // HELP: browser wait <seconds>
            if (tokenizer.sval.equals("wait")) {
                tokenizer.nextToken();
                double nval = script.getExpandedNumber(tokenizer);
                System.out.print(' ');
                System.out.println(nval);
                if (_skip)
                    return;
                driver.manage().timeouts().implicitlyWait((long) (tokenizer.nval * 1000),
                        TimeUnit.MILLISECONDS);
                return;
            }

            if (tokenizer.sval.equals("start")) {
                // HELP: browser start
                System.out.println();
                if (null == driver) {
                    // https://sites.google.com/a/chromium.org/chromedriver/capabilities
                    DesiredCapabilities capabilities = DesiredCapabilities.chrome();
                    LoggingPreferences logs = new LoggingPreferences();
                    logs.enable(LogType.BROWSER, Level.ALL);
                    capabilities.setCapability(CapabilityType.LOGGING_PREFS, logs);
                    if (null == options)
                        options = new ChromeOptions();
                    if (null == prefs)
                        prefs = new HashMap<String, Object>();
                    options.setExperimentalOption("prefs", prefs);
                    options.merge(capabilities);
                    driver = new ChromeDriver(options);
                    driver.setLogLevel(Level.ALL);
                    actions = new Actions(driver); // for advanced actions
                }
                return;
            }

            if (null == driver) {
                System.out.println();
                throw new Exception("browser start must be used before attempt to interract with the browser");
            }

            if (tokenizer.sval.equals("get")) {
                // HELP: browser get "url"
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') { // expect a quoted string
                    System.out.print(' ');
                    System.out.println(tokenizer.sval);
                    if (_skip)
                        return;
                    if (null == driver)
                        driver = new ChromeDriver(options);
                    driver.get(tokenizer.sval);
                    return;
                }
                System.out.println();
                throw new Exception("browser get command argument should be a quoted url");
            }

            if (tokenizer.sval.equals("refresh")) {
                // HELP: browser refresh
                System.out.println();
                driver.navigate().refresh();
                return;
            }

            if (tokenizer.sval.equals("back")) {
                // HELP: browser refresh
                System.out.println();
                driver.navigate().back();
                return;
            }

            if (tokenizer.sval.equals("forward")) {
                // HELP: browser refresh
                System.out.println();
                driver.navigate().forward();
                return;
            }

            if (tokenizer.sval.equals("close")) {
                // HELP: browser close
                System.out.println();
                if (!_skip) {
                    driver.close();
                    autolog = false;
                }
                return;
            }

            if (tokenizer.sval.equals("chrome")) {
                // HELP: browser chrome <width>,<height>
                int w = 0, h = 0;
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                    w = (int) tokenizer.nval;
                    System.out.print(' ');
                    System.out.print(w);
                    tokenizer.nextToken();
                    if (tokenizer.ttype == ',') {
                        tokenizer.nextToken();
                        System.out.print(',');
                        if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                            h = (int) tokenizer.nval;
                            System.out.print(h);
                            System.out.println();
                            if (!_skip) {
                                this.chrome = new Dimension(w, h);
                            }
                            return;
                        }
                    }
                }
                throw new Exception("browser chrome arguments error at line " + tokenizer.lineno());
            }

            if (tokenizer.sval.equals("size")) {
                // HELP: browser size <width>,<height>
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                    final int w = (int) tokenizer.nval;
                    System.out.print(' ');
                    System.out.print(w);
                    tokenizer.nextToken();
                    if (tokenizer.ttype == ',') {
                        tokenizer.nextToken();
                        System.out.print(',');
                        if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                            final int h = (int) tokenizer.nval;
                            System.out.print(h);
                            System.out.println();
                            if (!_skip) {
                                new WaitFor(cmd, tokenizer, false) {
                                    @Override
                                    protected void run() throws RetryException {
                                        Dimension size = new Dimension(chrome.width + w, chrome.height + h);
                                        System.out.println("// chrome " + chrome.toString());
                                        System.out.println("// size with chrome " + size.toString());
                                        try {
                                            driver.manage().window().setSize(size);
                                        } catch (Exception e) {
                                            e.printStackTrace();
                                            throw new RetryException("Could not set browser size");
                                        }
                                    }
                                };
                            }
                            return;
                        }
                    }
                }
                throw new Exception("browser size arguments error at line " + tokenizer.lineno());
            }
            if (tokenizer.sval.equals("pos")) {
                // HELP: browser pos <x>,<y>
                int x = 0, y = 0;
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                    x = (int) tokenizer.nval;
                    System.out.print(' ');
                    System.out.print(x);
                    tokenizer.nextToken();
                    if (tokenizer.ttype == ',') {
                        tokenizer.nextToken();
                        System.out.print(',');
                        if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                            y = (int) tokenizer.nval;
                            System.out.print(y);
                            System.out.println();
                            if (!_skip)
                                driver.manage().window().setPosition(new Point(x, y));
                            return;
                        }
                    }
                }
                throw new Exception("browser size arguments error at line " + tokenizer.lineno());
            }
            throw new Exception("browser unknown command argument at line " + tokenizer.lineno());
        }
        throw new Exception("browser missing command argument at line " + tokenizer.lineno());
    }

    if (cmd.equals("alias") || cmd.equals("function")) {
        // HELP: alias <name> { body }
        // HELP: function <name> (param, ...) { body }
        String name = null, args = null;
        List<String> params = null;
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            System.out.print(' ');
            System.out.print(tokenizer.sval);
            name = tokenizer.sval;
            params = getParams(tokenizer);
            args = getBlock(script, tokenizer, ' ', false);
            System.out.println();
            if (_skip)
                return;
            addFunction(name, params, args); // add alias
            return;
        }
        System.out.println();
        throw new Exception("alias name expected");
    }

    if (cmd.equals("while")) {
        // HELP: while { block }
        String block = null;
        block = getBlock(script, tokenizer, ' ', false);
        if (_skip)
            return;
        boolean exitloop = false;
        while (!exitloop) {
            try {
                runString(block, file, "while");
            } catch (Exception e) {
                exitloop = true;
            }
        }
        return;
    }

    if (cmd.equals("include")) {
        // HELP: include <script>
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            if (_skip)
                return;
            System.out.print(' ');
            System.out.println(tokenizer.sval);
            File include = new File(tokenizer.sval.startsWith("/") ? tokenizer.sval
                    : file.getParentFile().getCanonicalPath() + "/" + tokenizer.sval);
            runScript(include.getCanonicalPath());
            return;
        }
        throw new Exception("include argument should be a quoted filename");
    }

    if (cmd.equals("exec")) {
        // HELP: exec <command> { args ... }
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String command = tokenizer.sval;
            System.out.print(' ');
            System.out.print(command);
            List<String> args = getArgs(tokenizer, script);
            File include = new File(command.startsWith("/") ? command
                    : file.getParentFile().getCanonicalPath() + "/" + command);
            command = include.getCanonicalPath();
            System.out.println(command);
            List<String> arguments = new ArrayList<String>();
            arguments.add(command);
            arguments.addAll(args);
            Process process = Runtime.getRuntime().exec(arguments.toArray(new String[arguments.size()]));
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String line = "";
            while ((line = reader.readLine()) != null) {
                System.out.println(line);
            }
            int exitStatus = process.waitFor();
            if (exitStatus != 0) {
                throw new Exception("exec command returned failure status " + exitStatus);
            }
            return;
        }
        System.out.println();
        throw new Exception("exec argument should be string or a word");
    }

    if (cmd.equals("exec-include")) {
        // HELP: exec-include <command> { args ... }
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String command = tokenizer.sval;
            System.out.print(' ');
            System.out.print(command);
            List<String> args = getArgs(tokenizer, script);
            File include = new File(command.startsWith("/") ? command
                    : file.getParentFile().getCanonicalPath() + "/" + command);
            command = include.getCanonicalPath();
            System.out.println(command);
            List<String> arguments = new ArrayList<String>();
            arguments.add(command);
            arguments.addAll(args);
            Process process = Runtime.getRuntime().exec(arguments.toArray(new String[arguments.size()]));
            BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
            String s = "", line = "";
            while ((line = reader.readLine()) != null) {
                s += line + "\n";
            }
            int exitStatus = process.waitFor();
            if (exitStatus != 0) {
                throw new Exception("exec-include command returned failure status " + exitStatus);
            }
            if (s.length() > 0) {
                runString(s, file, tokenizer.sval);
            }
            return;
        }
        System.out.println();
        throw new Exception(cmd + " argument should be string or a word");
    }

    if (cmd.equals("log")) {
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String action = tokenizer.sval;
            System.out.print(' ');
            System.out.print(action);
            if (action.equals("dump")) {
                // HELP: log dump
                System.out.println("");
                if (driver != null)
                    dumpLog();
                return;
            }
            if (action.equals("auto")) {
                // HELP: log auto <on|off>
                // HELP: log auto <true|false>
                tokenizer.nextToken();
                String onoff = tokenizer.sval;
                System.out.print(' ');
                System.out.println(onoff);
                autolog = onoff.equals("on") || onoff.equals("true");
                return;
            }
            System.out.println();
            throw new Exception("invalid log action");
        }
        System.out.println();
        throw new Exception("log argument should be string or a word");
    }

    if (cmd.equals("default")) {
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String action = tokenizer.sval;
            System.out.print(' ');
            System.out.print(action);
            if (action.equals("wait")) {
                // HELP: default wait <seconds>
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                    System.out.print(' ');
                    System.out.println(tokenizer.nval);
                    _defaultWaitFor = (int) (tokenizer.nval * 1000.0);
                }
                return;
            }
            if (action.equals("screenshot")) {
                // HELP: default screenshot <path>
                tokenizer.nextToken();
                if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                    System.out.print(' ');
                    System.out.println(tokenizer.sval);
                    screenShotPath = tokenizer.sval;
                }
                return;
            }
            System.out.println();
            throw new Exception("invalid default property " + tokenizer.sval);
        }
        System.out.println();
        throw new Exception("default argument should be string or a word");
    }

    if (cmd.equals("push")) {
        // HELP: push wait
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String action = tokenizer.sval;
            System.out.print(' ');
            System.out.print(action);
            ArrayList<Object> stack = stacks.get(action);
            if (null == stack) {
                stack = new ArrayList<Object>();
                stacks.put(action, stack);
            }
            if (action.equals("wait")) {
                stack.add(new Long(_waitFor));
                System.out.println();
                return;
            }
        }
        System.out.println();
        throw new Error("Invalid push argument");
    }

    if (cmd.equals("pop")) {
        // HELP: pop wait
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String action = tokenizer.sval;
            System.out.print(' ');
            System.out.print(action);
            ArrayList<Object> stack = stacks.get(action);
            if (null == stack || stack.isEmpty()) {
                throw new Error("pop called without corresponding push");
            }
            if (action.equals("wait")) {
                int index = stack.size() - 1;
                _waitFor = (Long) stack.get(index);
                stack.remove(index);
                System.out.println();
                return;
            }
        }
        System.out.println();
        throw new Error("Invalid push argument");
    }

    if (cmd.equals("echo")) {
        // HELP: echo "string"
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String text = script.getExpandedString(tokenizer);
            System.out.print(' ');
            System.out.println(text);
            if (!_skip)
                System.out.println(text);
            return;
        }
        System.out.println();
        throw new Exception("echo argument should be string or a word");
    }

    if (cmd.equals("sleep")) {
        // HELP: sleep <seconds>
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
            System.out.print(' ');
            System.out.println(tokenizer.nval);
            this.sleep((long) (tokenizer.nval * 1000));
            return;
        }
        System.out.println();
        throw new Exception("sleep command argument should be a number");
    }

    if (cmd.equals("fail")) {
        // HELP: fail "<message>"
        tokenizer.nextToken();
        if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
            String text = tokenizer.sval;
            System.out.print(' ');
            System.out.println(text);
            if (!_skip) {
                System.out.println("TEST FAIL: " + text);
                throw new Exception(text);
            }
            return;
        }
        System.out.println();
        throw new Exception("echo argument should be string or a word");
    }

    if (cmd.equals("debugger")) {
        // HELP: debugger
        System.out.println();
        this.sleepSeconds(10);
        return;
    }

    if (cmd.equals("if")) {
        // HELP: if <commands> then <commands> [else <commands>] endif
        _if = true;
        System.out.println();
        return;
    }

    if (cmd.equals("then")) {
        _if = false;
        _skip = !_test;
        System.out.println();
        return;
    }

    if (cmd.equals("else")) {
        _if = false;
        _skip = _test;
        System.out.println();
        return;
    }

    if (cmd.equals("endif")) {
        _skip = false;
        System.out.println();
        return;
    }

    if (cmd.equals("not")) {
        // HELP: not <check-command>
        System.out.println();
        _not = true;
        return;
    }

    if (null != driver) {

        // all these command require the browser to have been started

        if (cmd.equals("field") || cmd.equals("id") || cmd.equals("test-id")) {
            // HELP: field "<test-id>"
            // HELP: id "<test-id>"
            // HELP: test-id "<test-id>"
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                if (_skip)
                    return;
                System.out.print(' ');
                this.setContextToField(script, tokenizer);
                return;
            }
            System.out.println();
            throw new Exception(cmd + " command requires a form.field argument");
        }

        if (cmd.equals("select")) {
            // HELP: select "<query-selector>"
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                if (_skip)
                    return;
                System.out.print(' ');
                selectContext(tokenizer, script);
                return;
            }
            System.out.println();
            throw new Exception(cmd + " command requires a css selector argument");
        }

        if (cmd.equals("xpath")) {
            // HELP: xpath "<xpath-expression>"
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                if (_skip)
                    return;
                System.out.print(' ');
                this.xpathContext(script, tokenizer);
                return;
            }
            System.out.println();
            throw new Exception(cmd + " command requires a css selector argument");
        }

        if (cmd.equals("wait")) {
            // HELP: wait <seconds>
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                System.out.print(' ');
                System.out.println(tokenizer.nval);

                // we will repeat then next select type command until it succeeds or we timeout
                _waitFor = (long) ((new Date()).getTime() + (tokenizer.nval * 1000));
                return;
            }

            // HELP: wait <action>
            if (tokenizer.ttype == StreamTokenizer.TT_WORD) {
                String action = tokenizer.sval;
                System.out.println(' ');
                System.out.println(action);
                if (action.equals("clickable")) {
                    long sleep = (_waitFor - (new Date()).getTime()) / 1000;
                    if (sleep > 0) {
                        System.out.println("WebDriverWait for " + sleep + " seconds");
                        WebDriverWait wait = new WebDriverWait(driver, sleep);
                        WebElement element = wait.until(ExpectedConditions.elementToBeClickable(selection));
                        if (element != selection) {
                            throw new Exception("element is not clickable");
                        }
                    } else {
                        System.out.println("WebDriverWait for " + sleep + " seconds (skipped)");
                    }
                    return;
                }
            }
            throw new Exception(cmd + " command requires a seconds argument");
        }

        if (cmd.equals("set") || cmd.equals("send")) {
            // HELP: set "<value>"
            // HELP: send "<value>"
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                if (_skip)
                    return;
                System.out.print(' ');
                System.out.println(script.getExpandedString(tokenizer));
                this.setContextValue(cmd, script, tokenizer, cmd.equals("set"));
                return;
            }
            System.out.println();
            throw new Exception("set command requires a value argument");
        }

        if (cmd.equals("test") || cmd.equals("check")) {
            // HELP: test "<value>"
            // HELP: check "<value>"
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"'
                    || tokenizer.ttype == '\'') {
                if (_skip)
                    return;
                System.out.print(' ');
                System.out.println(script.getExpandedString(tokenizer));
                this.testContextValue(cmd, script, tokenizer, false);
                return;
            }
            System.out.println();
            throw new Exception(cmd + " command requires a value argument");
        }

        if (cmd.equals("checksum")) {
            // HELP: checksum "<checksum>"
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"'
                    || tokenizer.ttype == '\'') {
                if (_skip)
                    return;
                System.out.print(' ');
                System.out.println(script.getExpandedString(tokenizer));
                this.testContextValue(cmd, script, tokenizer, true);
                return;
            }
            System.out.println();
            throw new Exception(cmd + " command requires a value argument");
        }

        if (cmd.equals("click") || cmd.equals("click-now")) {
            // HELP: click
            System.out.println();
            final boolean wait = !cmd.equals("click-now");
            new WaitFor(cmd, tokenizer, true) {
                @Override
                protected void run() throws RetryException {
                    if (!_skip) {
                        if (wait) {
                            long sleep = (_waitFor - (new Date()).getTime()) / 1000;
                            if (sleep > 0) {
                                System.out.println("WebDriverWait for " + sleep + " seconds");
                                WebDriverWait wait = new WebDriverWait(driver, sleep);
                                WebElement element = wait
                                        .until(ExpectedConditions.elementToBeClickable(selection));
                                if (element == selection) {
                                    selection.click();
                                    return;
                                } else {
                                    throw new RetryException("click failed");
                                }
                            }
                        }
                        // click-nowait, no or negative wait period, just click
                        selection.click();
                    }
                }
            };
            return;
        }

        if (cmd.equals("scroll-into-view")) {
            // HELP: scroll-into-view
            System.out.println();
            if (null == selection)
                throw new Exception(cmd + " command requires a field selection at line " + tokenizer.lineno());
            if (!_skip) {
                try {
                    scrollContextIntoView(selection);
                } catch (Exception e) {
                    System.out.println(e.getMessage());
                    info(selection, selectionCommand, false);
                    throw e;
                }
            }
            return;
        }

        if (cmd.equals("clear")) {
            // HELP: clear
            System.out.println();
            new WaitFor(cmd, tokenizer, true) {
                @Override
                protected void run() {
                    if (!_skip)
                        selection.clear();
                }
            };
            return;
        }

        if (cmd.equals("call")) {
            // HELP: call <function> { args ... }
            String function = null, args = null;
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') { // expect a quoted string
                function = script.getExpandedString(tokenizer);
                System.out.print(' ');
                System.out.print(function);
                args = getBlock(script, tokenizer, ',', true);
                System.out.println();
                if (_skip)
                    return;
                if (null == args)
                    args = "";
                String js = "var result = window.RegressionTest.test('" + function + "',[" + args + "]);"
                        + "arguments[arguments.length-1](result);";
                System.out.println("> " + js);
                Object result = driver.executeAsyncScript(js);
                if (null != result) {
                    if (result.getClass() == RemoteWebElement.class) {
                        selection = (RemoteWebElement) result;
                        stype = SelectionType.Script;
                        selector = js;
                        System.out.println("new selection " + selection);
                    }
                }
                return;
            }
            System.out.println();
            throw new Exception("missing arguments for call statement at line " + tokenizer.lineno());
        }

        if (cmd.equals("enabled")) {
            // HELP: enabled
            System.out.println();
            new WaitFor(cmd, tokenizer, true) {
                @Override
                protected void run() throws RetryException {
                    if (!_skip) {
                        if (selection.isEnabled() != _not) {
                            _not = false;
                            return;
                        }
                        throw new RetryException("enabled check failed");
                    }
                }
            };
            return;
        }

        if (cmd.equals("selected")) {
            // HELP: selected
            System.out.println();
            new WaitFor(cmd, tokenizer, true) {
                @Override
                protected void run() throws RetryException {
                    if (!_skip) {
                        if (selection.isSelected() != _not) {
                            _not = false;
                            return;
                        }
                        throw new RetryException("selected check failed");
                    }
                }
            };
            return;
        }

        if (cmd.equals("displayed")) {
            // HELP: displayed
            System.out.println();
            new WaitFor(cmd, tokenizer, true) {
                @Override
                protected void run() throws RetryException {
                    if (!_skip) {
                        if (selection.isDisplayed() != _not) {
                            _not = false;
                            return;
                        }
                        throw new RetryException("displayed check failed");
                    }
                }
            };
            return;
        }

        if (cmd.equals("at")) {
            // HELP: at <x|*>,<y>
            int x = 0, y = 0;
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_NUMBER || tokenizer.ttype == '*') {
                x = (int) tokenizer.nval;
                System.out.print(' ');
                if (tokenizer.ttype == '*') {
                    x = -1;
                    System.out.print('*');
                } else {
                    x = (int) tokenizer.nval;
                    System.out.print(x);
                }
                tokenizer.nextToken();
                if (tokenizer.ttype == ',') {
                    tokenizer.nextToken();
                    System.out.print(',');
                    if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                        y = (int) tokenizer.nval;
                        System.out.print(y);
                        System.out.println();
                        final int X = x;
                        final int Y = y;
                        new WaitFor(cmd, tokenizer, true) {
                            @Override
                            protected void run() throws RetryException {
                                if (!_skip) {
                                    Point loc = selection.getLocation();
                                    if (((loc.x == X || X == -1) && loc.y == Y) != _not) {
                                        _not = false;
                                        return;
                                    }
                                    throw new RetryException("location check failed");
                                }
                            }
                        };
                        return;
                    }
                }
            }
            System.out.println();
            throw new Exception("at missing co-ordiantes at line " + tokenizer.lineno());
        }

        if (cmd.equals("size")) {
            // HELP: size <w|*>,<h>
            int mw = 0, w = 0, h = 0;
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_NUMBER || tokenizer.ttype == '*') {
                System.out.print(' ');
                if (tokenizer.ttype == '*') {
                    mw = w = -1;
                    System.out.print('*');
                } else {
                    mw = w = (int) tokenizer.nval;
                    System.out.print(w);
                }
                tokenizer.nextToken();
                if (tokenizer.ttype == ':') {
                    tokenizer.nextToken();
                    w = (int) tokenizer.nval;
                    System.out.print(':');
                    System.out.print(w);
                    tokenizer.nextToken();
                }
                if (tokenizer.ttype == ',') {
                    tokenizer.nextToken();
                    System.out.print(',');
                    if (tokenizer.ttype == StreamTokenizer.TT_NUMBER) {
                        h = (int) tokenizer.nval;
                        System.out.print(h);
                        System.out.println();
                        final int MW = mw;
                        final int W = w;
                        final int H = h;
                        new WaitFor(cmd, tokenizer, true) {
                            @Override
                            protected void run() throws RetryException {
                                if (!_skip) {
                                    Dimension size = selection.getSize();
                                    if (((MW == -1 || (size.width >= MW && size.width <= W))
                                            && size.height == H) != _not) {
                                        _not = false;
                                        return;
                                    }
                                    throw new RetryException("size check failed");
                                }
                            }
                        };
                        return;
                    }
                }
            }
            System.out.println();
            throw new Exception("size missing dimensions at line " + tokenizer.lineno());
        }

        if (cmd.equals("tag")) {
            // HELP: tag <tag-name>
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                System.out.print(' ');
                System.out.print(tokenizer.sval);
                System.out.println();
                new WaitFor(cmd, tokenizer, true) {
                    @Override
                    protected void run() throws RetryException {
                        if (!_skip) {
                            String tag = selection.getTagName();
                            if (tokenizer.sval.equals(tag) != _not) {
                                _not = false;
                                return;
                            }
                            throw new RetryException("tag \"" + tokenizer.sval + "\" check failed, tag is "
                                    + tag + " at line " + tokenizer.lineno());
                        }
                    }
                };
                return;
            }
            System.out.println();
            throw new Exception("tag command has missing tag name at line " + tokenizer.lineno());
        }

        if (cmd.equals("info")) {
            // HELP: info
            System.out.println();
            if (null == selection)
                throw new Exception("info command requires a selection at line " + tokenizer.lineno());
            info(selection, selectionCommand, true);
            return;
        }

        if (cmd.equals("alert")) {
            // HELP: alert accept
            System.out.println();
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                System.out.print(' ');
                System.out.print(tokenizer.sval);
                if (tokenizer.sval.equals("accept")) {
                    System.out.println();
                    if (!_skip)
                        driver.switchTo().alert().accept();
                    return;
                }
            }
            System.out.println();
            throw new Exception("alert syntax error at line " + tokenizer.lineno());
        }

        if (cmd.equals("dump")) {
            // HELP: dump
            System.out.println();
            if (!_skip)
                dump();
            return;
        }

        if (cmd.equals("mouse")) {
            // HELP: mouse { <center|0,0|origin|body|down|up|click|+/-x,+/-y> commands ... }
            parseBlock(script, tokenizer, new BlockHandler() {
                public void parseToken(StreamTokenizer tokenizer, String token) {
                    int l = token.length();
                    if (token.equals("center")) {
                        actions.moveToElement(selection);
                    } else if ((l > 1 && token.substring(1, l - 1).equals("0,0")) || token.equals("origin")) {
                        actions.moveToElement(selection, 0, 0);
                    } else if (token.equals("body")) {
                        actions.moveToElement(driver.findElement(By.tagName("body")), 0, 0);
                    } else if (token.equals("down")) {
                        actions.clickAndHold();
                    } else if (token.equals("up")) {
                        actions.release();
                    } else if (token.equals("click")) {
                        actions.click();
                    } else if (l > 1) {
                        String[] a = token.substring(1, l - 1).split(",");
                        actions.moveByOffset(Integer.valueOf(a[0]), Integer.valueOf(a[1]));
                    } else {
                        // no-op
                    }
                }
            });
            System.out.println();
            actions.release();
            actions.build().perform();
            return;
        }

        if (cmd.equals("screenshot")) {
            // HELP: screenshot "<path>"
            tokenizer.nextToken();
            if (tokenizer.ttype == StreamTokenizer.TT_WORD || tokenizer.ttype == '"') {
                String path = tokenizer.sval;
                System.out.print(' ');
                System.out.println(path);
                if (!_skip) {
                    WebDriver augmentedDriver = new Augmenter().augment(driver);
                    File screenshot = ((TakesScreenshot) augmentedDriver).getScreenshotAs(OutputType.FILE);
                    String outputPath;
                    if (screenShotPath == null || path.startsWith("/") || path.substring(1, 1).equals(":")) {
                        outputPath = path;
                    } else {
                        outputPath = screenShotPath + (screenShotPath.endsWith("/") ? "" : "/") + path;
                    }
                    System.out.println(screenshot.getAbsolutePath() + " -> " + path);
                    FileUtils.moveFile(screenshot, new File(outputPath));
                }
                return;
            }
            System.out.println();
            throw new Exception("screenshot argument should be a path");
        }
    }

    if (functions.containsKey(cmd)) {
        executeFunction(cmd, file, tokenizer, script);
        return;
    }

    if (null == driver) {
        throw new Exception("browser start must be used before attempt to interract with the browser");
    }

    System.out.println();
    throw new Exception("unrecognised command, " + cmd);
}

From source file:com.fluffypeople.managesieve.ManageSieveClient.java

private String tokenToString(final int c) {
    if (c > 0) {

        return new String(Character.toChars(c));
    } else {/*w  w  w. j  av  a  2  s  . com*/
        switch (c) {
        case StreamTokenizer.TT_EOF:
            return "EOF";
        case StreamTokenizer.TT_NUMBER:
            return "NUMBER";
        case StreamTokenizer.TT_EOL:
            return "EOL";
        case StreamTokenizer.TT_WORD:
            return ("WORD [" + in.sval + "]");
        default:
            return "UNKNOWN";
        }
    }
}

From source file:com.zimbra.common.calendar.ZoneInfo2iCalendar.java

private static void readExtraData(Reader reader) throws IOException, ParseException {
    char dquote = '"';
    StreamTokenizer tokenizer = new StreamTokenizer(reader);
    tokenizer.resetSyntax();/*from   w  w w.  j ava  2s. c  o m*/
    tokenizer.wordChars(32, 126);
    tokenizer.whitespaceChars(' ', ' ');
    tokenizer.whitespaceChars('\t', '\t');
    tokenizer.whitespaceChars(0, 20);
    tokenizer.commentChar('#');
    tokenizer.quoteChar(dquote);
    tokenizer.eolIsSignificant(true);

    List<String> tokenList = new ArrayList<String>();
    LineType lineType = LineType.UNKNOWN;
    boolean atLineStart = true;

    int ttype;
    int prevTtype = StreamTokenizer.TT_EOL; // used for empty line detection
    while ((ttype = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
        int lineNum = tokenizer.lineno();
        if (ttype == StreamTokenizer.TT_WORD || ttype == dquote) {
            String token = tokenizer.sval;
            if (atLineStart) {
                lineType = LineType.lookUp(token);
                if (LineType.UNKNOWN.equals(lineType))
                    throw new ParseException("Invalid line type", lineNum);
            } else {
                tokenList.add(token);
            }
            atLineStart = false;
        } else if (ttype == StreamTokenizer.TT_EOL) {
            if (prevTtype == StreamTokenizer.TT_EOL) {
                prevTtype = ttype;
                continue;
            }
            atLineStart = true;
            switch (lineType) {
            case PRIMARYZONE:
                if (tokenList.size() < 1)
                    throw new ParseException("Not enough fields in a PrimaryZone line", lineNum);
                String primaryTZID = tokenList.get(0);
                sPrimaryTZIDs.add(primaryTZID);
                break;
            case ZONEMATCHSCORE:
                if (tokenList.size() < 2)
                    throw new ParseException("Not enough fields in a ZoneMatchScore line", lineNum);
                String zoneName = tokenList.get(0);
                String zoneMatchScoreStr = tokenList.get(1);
                int zoneMatchScore = 0;
                try {
                    zoneMatchScore = Integer.parseInt(zoneMatchScoreStr);
                } catch (NumberFormatException e) {
                    throw new ParseException("Zone match score must be an integer: " + zoneMatchScoreStr,
                            lineNum);
                }
                sMatchScores.put(zoneName, zoneMatchScore);
                break;
            }
            if (atLineStart) {
                tokenList.clear();
                lineType = LineType.UNKNOWN;
            }
        } else if (ttype == StreamTokenizer.TT_NUMBER) {
            // shouldn't happen
            throw new ParseException("Invalid parser state: TT_NUMBER found", lineNum);
        }
        prevTtype = ttype;
    }
}

From source file:com.jcraft.weirdx.XColormap.java

static void init(Map<String, Color> table) {
    if (_rgbtxt == null)
        return;//from  w  w w  .  j a v a  2s . c  o m
    StringBuffer foo = new StringBuffer();
    for (int i = 0; i < _rgbtxt.length; i++) {
        foo.append(_rgbtxt[i]);
    }
    rgbtxt = foo.toString();
    _rgbtxt = null;
    foo = null;

    try {
        InputStream is = new ByteArrayInputStream(RGBTXT.rgbtxt.getBytes());
        //      StreamTokenizer st=new StreamTokenizer(is);
        BufferedReader br = new BufferedReader(new InputStreamReader(is));
        StreamTokenizer st = new StreamTokenizer(br);

        st.ordinaryChar('!');
        //    st.ordinaryChar('\n');
        //    st.ordinaryChar('\t');
        //String token=null;
        char c;
        int r, g, b;
        byte[] buf = new byte[1024];
        while (st.nextToken() != StreamTokenizer.TT_EOF) {
            //System.out.println("type="+st.ttype+", "+st.sval);
            if (st.ttype == '!') {
                //     while((c=(char)is.read())!='\n');
                while ((c = (char) br.read()) != '\n')
                    ;
                continue;
            }
            if (st.ttype == StreamTokenizer.TT_NUMBER) {
                r = (int) st.nval;
                st.nextToken();
                g = (int) st.nval;
                st.nextToken();
                b = (int) st.nval;
                //System.out.print("r, g, b="+r+", "+g+", "+b);
                int i = 0;
                //     while((c=(char)is.read())!='\n'){
                while ((c = (char) br.read()) != '\n') {
                    if (c == '\t')
                        continue;
                    if (c == ' ')
                        continue;
                    if ('A' <= c && c <= 'Z') {
                        c = (char) ('a' + c - 'A');
                    }
                    buf[i] = (byte) c;
                    i++;
                }
                table.put(new String(buf, 0, i), new Color(r, g, b));
                //System.out.println(" -> "+new String(buf, 0, i));
                continue;
            }
        }
        st = null;
        buf = null;
        //    table.put("slategrey", rgbTable.get("slate grey"));
        //    table.put("Black", rgbTable.get("black"));
        //    table.put("White", rgbTable.get("white"));
    } catch (Exception e) {
        //System.out.println(e);
    }
}