JDK 11 jdk.scripting.nashorn.jmod - Scripting Nashorn Module

JDK 11 jdk.scripting.nashorn.jmod is the JMOD file for JDK 11 Scripting Nashorn module.

JDK 11 Scripting Nashorn module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\jdk.scripting.nashorn.jmod.

JDK 11 Scripting Nashorn module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.

JDK 11 Scripting Nashorn module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\jdk.scripting.nashorn.

You can click and view the content of each source code file in the list below.

✍: FYIcenter

jdk/nashorn/internal/runtime/QuotedStringTokenizer.java

/*
 * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
 * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 *
 */

package jdk.nashorn.internal.runtime;

import java.util.LinkedList;
import java.util.Stack;
import java.util.StringTokenizer;

/**
 * A string tokenizer that supports entries with quotes and nested quotes. If
 * the separators are quoted either by ' and ", or whatever quotes the user
 * supplies they will be ignored and considered part of another token
 */
public final class QuotedStringTokenizer {
    private final LinkedList<String> tokens;

    private final char quotes[];

    /**
     * Constructor
     *
     * @param str string to tokenize
     */
    public QuotedStringTokenizer(final String str) {
        this(str, " ");
    }

    /**
     * Create a quoted string tokenizer
     *
     * @param str
     *            a string to tokenize
     * @param delim
     *            delimiters between tokens
     *
     */
    public QuotedStringTokenizer(final String str, final String delim) {
        this(str, delim, new char[] { '"', '\'' });
    }

    /**
     * Create a quoted string tokenizer
     *
     * @param str
     *            a string to tokenize
     * @param delim
     *            delimiters between tokens
     * @param quotes
     *            all the characters that should be accepted as quotes, default
     *            is ' or "
     */
    private QuotedStringTokenizer(final String str, final String delim, final char[] quotes) {
        this.quotes = quotes;

        boolean delimIsWhitespace = true;
        for (int i = 0; i < delim.length(); i++) {
            if (!Character.isWhitespace(delim.charAt(i))) {
                delimIsWhitespace = false;
                break;
            }
        }

        final StringTokenizer st = new StringTokenizer(str, delim);
        tokens = new LinkedList<>();
        while (st.hasMoreTokens()) {
            String token = st.nextToken();

            while (unmatchedQuotesIn(token)) {
                if (!st.hasMoreTokens()) {
                    throw new IndexOutOfBoundsException(token);
                }
                token += (delimIsWhitespace ? " " : delim) + st.nextToken();
            }
            tokens.add(stripQuotes(token));
        }
    }

    /**
     * @return the number of tokens in the tokenizer
     */
    public int countTokens() {
        return tokens.size();
    }

    /**
     * @return true if there are tokens left
     */
    public boolean hasMoreTokens() {
        return countTokens() > 0;
    }

    /**
     * @return the next token in the tokenizer
     */
    public String nextToken() {
        return tokens.removeFirst();
    }

    private String stripQuotes(final String value0) {
        String value = value0.trim();
        for (final char q : quotes) {
            if (value.length() >= 2 && value.startsWith("" + q) && value.endsWith("" + q)) {
                // also go over the value and remove \q sequences. they are just
                // plain q now
                value = value.substring(1, value.length() - 1);
                value = value.replace("\\" + q, "" + q);
            }
        }
        return value;
    }

    private boolean unmatchedQuotesIn(final String str) {
        final Stack<Character> quoteStack = new Stack<>();
        for (int i = 0; i < str.length(); i++) {
            final char c = str.charAt(i);
            for (final char q : this.quotes) {
                if (c == q) {
                    if (quoteStack.isEmpty()) {
                        quoteStack.push(c);
                    } else {
                        final char top = quoteStack.pop();
                        if (top != c) {
                            quoteStack.push(top);
                            quoteStack.push(c);
                        }
                    }
                }
            }
        }

        return !quoteStack.isEmpty();
    }
}

jdk/nashorn/internal/runtime/QuotedStringTokenizer.java

 

Or download all of them as a single archive file:

File name: jdk.scripting.nashorn-11.0.1-src.zip
File size: 1390965 bytes
Release date: 2018-11-04
Download 

 

JDK 11 jdk.scripting.nashorn.shell.jmod - Scripting Nashorn Shell Module

JDK 11 jdk.rmic.jmod - RMI Compiler Tool

Download and Use JDK 11

⇑⇑ FAQ for JDK (Java Development Kit)

2020-04-25, ≈221🔥, 0💬