org.jmol.util
Class Parser

java.lang.Object
  extended by org.jmol.util.Parser

public class Parser
extends java.lang.Object


Field Summary
private static float[] decimalScale
           
private static float[] tensScale
           
 
Constructor Summary
Parser()
           
 
Method Summary
private static boolean checkTrailingText(java.lang.String str, int ich, int ichMax)
           
static java.lang.String concatTokens(java.lang.String[] tokens, int iFirst, int iEnd)
           
private static int countTokens(java.lang.String line, int ich)
           
static float[] extractData(java.lang.String data, int field, int nBytes, int firstLine)
           
static java.lang.String getNextQuotedString(java.lang.String line, int ipt0)
           
static java.lang.String getNextQuotedString(java.lang.String line, int[] next)
           
static java.lang.String[] getTokens(java.lang.String line)
           
static java.lang.String[] getTokens(java.lang.String line, int ich)
           
static boolean isOneOf(java.lang.String key, java.lang.String semiList)
           
private static boolean isWhiteSpace(java.lang.String str, int ich)
           
static int[] markLines(java.lang.String data, char eol)
           
static float parseFloat(java.lang.String str)
           
static float parseFloat(java.lang.String str, int[] next)
           
static float parseFloat(java.lang.String str, int ichMax, int[] next)
           
static float[] parseFloatArray(java.lang.String str)
           
static int parseFloatArray(java.lang.String[] tokens, java.util.BitSet bs, float[] data)
           
static void parseFloatArray(java.lang.String[] tokens, float[] data)
          parses a string array for floats.
static void parseFloatArray(java.lang.String[] tokens, float[] data, int nData)
          parses a string array for floats.
static float[] parseFloatArray(java.lang.String str, int[] next)
           
static float[][] parseFloatArray2d(java.lang.String str)
           
static float[][][] parseFloatArray3d(java.lang.String str)
           
static float[] parseFloatArrayFromMatchAndField(java.lang.String str, java.util.BitSet bs, int fieldMatch, int fieldMatchColumnCount, int[] matchData, int field, int fieldColumnCount, float[] data, int firstLine)
          the major lifter here.
private static float parseFloatChecked(java.lang.String str, int ichMax, int[] next, boolean isStrict)
           
static float parseFloatStrict(java.lang.String str)
           
static int parseInt(java.lang.String str)
           
static int parseInt(java.lang.String str, int[] next)
           
static int parseInt(java.lang.String str, int ichMax, int[] next)
           
private static int parseIntChecked(java.lang.String str, int ichMax, int[] next)
           
static int parseStringInfestedFloatArray(java.lang.String str, java.util.BitSet bs, float[] data)
          parses a "dirty" string for floats.
static java.lang.String parseToken(java.lang.String str)
           
static java.lang.String parseToken(java.lang.String str, int[] next)
           
static java.lang.String parseToken(java.lang.String str, int ichMax, int[] next)
           
private static java.lang.String parseTokenChecked(java.lang.String str, int ichMax, int[] next)
           
static java.lang.String parseTrimmed(java.lang.String str)
           
static java.lang.String parseTrimmed(java.lang.String str, int ichStart)
           
static java.lang.String parseTrimmed(java.lang.String str, int ichStart, int ichMax)
           
private static java.lang.String parseTrimmedChecked(java.lang.String str, int ich, int ichMax)
           
static void setSelectedFloats(float f, java.util.BitSet bs, float[] data)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

decimalScale

private static final float[] decimalScale

tensScale

private static final float[] tensScale
Constructor Detail

Parser

public Parser()
Method Detail

parseStringInfestedFloatArray

public static int parseStringInfestedFloatArray(java.lang.String str,
                                                java.util.BitSet bs,
                                                float[] data)
parses a "dirty" string for floats. If there are non-float tokens, they are ignored. A bitset is used to assign values only to specific atoms in the set, not changing the values of the data array for other atoms. thus, a data set can be incrementally added to in this way.

Parameters:
str - the string to parse
bs - the atom positions to assign or null
data - the (sparce) array to fill
Returns:
number of floats

parseFloatArray

public static float[] parseFloatArray(java.lang.String str)

parseFloatArray

public static float[] parseFloatArray(java.lang.String str,
                                      int[] next)
Parameters:
str -
next -
Returns:
array of float values

parseFloatArray

public static int parseFloatArray(java.lang.String[] tokens,
                                  java.util.BitSet bs,
                                  float[] data)

parseFloatArray2d

public static float[][] parseFloatArray2d(java.lang.String str)

parseFloatArray3d

public static float[][][] parseFloatArray3d(java.lang.String str)

setSelectedFloats

public static void setSelectedFloats(float f,
                                     java.util.BitSet bs,
                                     float[] data)
Parameters:
f -
bs -
data -

extractData

public static float[] extractData(java.lang.String data,
                                  int field,
                                  int nBytes,
                                  int firstLine)

parseFloatArrayFromMatchAndField

public static float[] parseFloatArrayFromMatchAndField(java.lang.String str,
                                                       java.util.BitSet bs,
                                                       int fieldMatch,
                                                       int fieldMatchColumnCount,
                                                       int[] matchData,
                                                       int field,
                                                       int fieldColumnCount,
                                                       float[] data,
                                                       int firstLine)
the major lifter here.

Parameters:
str - string containing the data
bs - selects specific rows of the data
fieldMatch - a free-format field pointer, or a column pointer
fieldMatchColumnCount - specifies a column count -- not free-format
matchData - an array of data to match (atom numbers)
field - a free-format field pointer, or a column pointer
fieldColumnCount - specifies a column count -- not free-format
data - float array to modify or null if size unknown
firstLine - first line to parse (1 indicates all)
Returns:
data

parseFloatArray

public static void parseFloatArray(java.lang.String[] tokens,
                                   float[] data)
parses a string array for floats. Returns NaN for nonfloats.

Parameters:
tokens - the strings to parse
data - the array to fill

parseFloatArray

public static void parseFloatArray(java.lang.String[] tokens,
                                   float[] data,
                                   int nData)
parses a string array for floats. Returns NaN for nonfloats or missing data.

Parameters:
tokens - the strings to parse
data - the array to fill
nData - the number of elements

parseFloat

public static float parseFloat(java.lang.String str)

parseFloatStrict

public static float parseFloatStrict(java.lang.String str)

parseInt

public static int parseInt(java.lang.String str)

getTokens

public static java.lang.String[] getTokens(java.lang.String line)

parseToken

public static java.lang.String parseToken(java.lang.String str)

parseTrimmed

public static java.lang.String parseTrimmed(java.lang.String str)

parseTrimmed

public static java.lang.String parseTrimmed(java.lang.String str,
                                            int ichStart)

parseTrimmed

public static java.lang.String parseTrimmed(java.lang.String str,
                                            int ichStart,
                                            int ichMax)

markLines

public static int[] markLines(java.lang.String data,
                              char eol)

parseFloat

public static float parseFloat(java.lang.String str,
                               int[] next)

parseFloat

public static float parseFloat(java.lang.String str,
                               int ichMax,
                               int[] next)

parseFloatChecked

private static float parseFloatChecked(java.lang.String str,
                                       int ichMax,
                                       int[] next,
                                       boolean isStrict)

checkTrailingText

private static boolean checkTrailingText(java.lang.String str,
                                         int ich,
                                         int ichMax)

parseInt

public static int parseInt(java.lang.String str,
                           int[] next)

parseInt

public static int parseInt(java.lang.String str,
                           int ichMax,
                           int[] next)

parseIntChecked

private static int parseIntChecked(java.lang.String str,
                                   int ichMax,
                                   int[] next)

getTokens

public static java.lang.String[] getTokens(java.lang.String line,
                                           int ich)

countTokens

private static int countTokens(java.lang.String line,
                               int ich)

parseToken

public static java.lang.String parseToken(java.lang.String str,
                                          int[] next)

parseToken

public static java.lang.String parseToken(java.lang.String str,
                                          int ichMax,
                                          int[] next)

parseTokenChecked

private static java.lang.String parseTokenChecked(java.lang.String str,
                                                  int ichMax,
                                                  int[] next)

parseTrimmedChecked

private static java.lang.String parseTrimmedChecked(java.lang.String str,
                                                    int ich,
                                                    int ichMax)

concatTokens

public static java.lang.String concatTokens(java.lang.String[] tokens,
                                            int iFirst,
                                            int iEnd)

getNextQuotedString

public static java.lang.String getNextQuotedString(java.lang.String line,
                                                   int ipt0)

getNextQuotedString

public static java.lang.String getNextQuotedString(java.lang.String line,
                                                   int[] next)

isWhiteSpace

private static boolean isWhiteSpace(java.lang.String str,
                                    int ich)

isOneOf

public static boolean isOneOf(java.lang.String key,
                              java.lang.String semiList)