public class ScriptCompiler extends ScriptCompilationTokenParser
Modifier and Type | Field and Description |
---|---|
private Token[][] |
aatokenCompiled |
private int |
braceCount |
private int |
bracketCount |
private int |
cchScript |
private int |
cchToken |
private boolean |
checkImpliedScriptCmd |
(package private) char |
chFirst |
private java.lang.String |
comment |
private java.util.Map<java.lang.String,ScriptVariable> |
contextVariables |
private static int |
CONTINUE |
private boolean |
endOfLine |
private static int |
EOL |
private static int |
ERROR |
private java.lang.String |
filename |
private ScriptFlowContext |
flowContext |
private int |
forPoint3 |
private boolean |
haveComments |
private int |
iBrace |
private int |
ichBrace |
private boolean |
iHaveQuotedString |
private boolean |
isCheckOnly |
private boolean |
isComment |
private boolean |
isEndOfCommand |
private boolean |
isShowCommand |
private boolean |
isShowScriptOutput |
private boolean |
isSilent |
private boolean |
isUserToken |
private int[][] |
lineIndices |
private short[] |
lineNumbers |
private java.util.List<Token[]> |
lltoken |
private int |
lnLength |
private java.util.List<Token> |
ltoken |
private boolean |
needRightParen |
private int |
nSemiSkip |
private static int |
OK |
private static int |
OK2 |
private int |
parenCount |
private boolean |
preDefining |
private int |
ptSemi |
(package private) int |
pushCount |
(package private) java.lang.String |
scriptExtensions |
private int |
setBraceCount |
private int |
setEqualPt |
private ScriptFunction |
thisFunction |
private int |
tokInitialPlusPlus |
private int |
tokLastMath |
private java.util.List<Token> |
vBraces |
private java.util.List<ScriptFunction> |
vFunctionStack |
(package private) java.util.List<Token> |
vPush |
atokenInfix, ERROR_badArgumentCount, ERROR_badContext, ERROR_commandExpected, ERROR_endOfCommandUnexpected, ERROR_invalidExpressionToken, ERROR_missingEnd, ERROR_tokenExpected, ERROR_tokenUnexpected, ERROR_unrecognizedParameter, ERROR_unrecognizedToken, errorLine, errorMessage, errorMessageUntranslated, errorType, haveString, htUserFunctions, ichComment, ichCurrentCommand, ichEnd, ichToken, iCommand, isCommaAsOrAllowed, isEmbeddedExpression, isMathExpressionCommand, isNewSet, isSetBrace, isSetOrDefine, isStateScript, itokenInfix, lastFlowCommand, lastToken, lineCurrent, logMessages, nTokens, ptNewSetModifier, script, theTok, theToken, tokCommand, tokenAndEquals, tokenCommand, viewer
Constructor and Description |
---|
ScriptCompiler(ScriptCompiler compiler) |
ScriptCompiler(Viewer viewer) |
Modifier and Type | Method and Description |
---|---|
(package private) static void |
addContextVariable(java.util.Map<java.lang.String,ScriptVariable> contextVariables,
java.lang.String ident) |
private void |
addContextVariable(java.lang.String ident) |
private void |
addTokenToPrefix(Token token) |
private boolean |
charToken() |
private boolean |
checkFlowCommand(java.lang.String ident) |
private boolean |
checkFlowEnd(int tok,
java.lang.String ident,
int pt1) |
private int |
checkFlowEndBrace() |
private boolean |
checkFlowStartBrace(boolean atEnd) |
private boolean |
checkNewSetCommand() |
private int |
checkSpecialParameterSyntax() |
private void |
checkUnquotedFileName() |
private java.lang.String |
cleanScriptComments(java.lang.String script)
allows for three kinds of comments.
|
(package private) ScriptContext |
compile(java.lang.String filename,
java.lang.String script,
boolean isPredefining,
boolean isSilent,
boolean debugScript,
boolean isCheckOnly) |
private boolean |
compile0(boolean isFull) |
private boolean |
compileCommand() |
private boolean |
eol(char ch) |
(package private) static boolean |
eol(char ch,
int nSkip) |
private int |
ERROR(int error) |
private int |
ERROR(int error,
java.lang.String value) |
private int |
forceFlowEnd(Token token) |
private boolean |
getData(java.lang.String key) |
static java.lang.String |
getEmbeddedScript(java.lang.String script) |
private java.lang.String |
getPrefixToken() |
(package private) java.lang.String |
getUnescapedStringLiteral() |
private boolean |
handleError() |
static int |
ichMathTerminator(java.lang.String script,
int ichT,
int len)
For @{....}
|
private int |
incrementLineCount(java.lang.String str) |
(package private) static boolean |
isBreakableContext(int tok) |
private boolean |
isContextVariable(java.lang.String ident) |
private boolean |
isLineContinuation(int ichT,
boolean checkMathop) |
private static boolean |
isSpaceOrTab(char ch) |
(package private) java.util.BitSet |
lookingAtBitset() |
private boolean |
lookingAtBraceSyntax() |
private int |
lookingAtComment() |
private boolean |
lookingAtDecimal() |
private boolean |
lookingAtEndOfLine() |
private boolean |
lookingAtEndOfStatement() |
private float |
lookingAtExponential() |
private boolean |
lookingAtImpliedString(boolean allowSpace,
boolean allowEquals)
An "implied string" is a parameter that is not quoted but because of its
position in a command is implied to be a string.
|
private int |
lookingAtInteger() |
private boolean |
lookingAtLeadingWhitespace() |
private boolean |
lookingAtLoadFormat() |
private boolean |
lookingAtLookupToken(int ichT) |
private boolean |
lookingAtMathContinuation(int ichT) |
private java.lang.Object |
lookingAtMatrix() |
private boolean |
lookingAtObjectID(boolean allowWildID) |
private boolean |
lookingAtSeqcode() |
private boolean |
lookingAtString(boolean allowPrime) |
private int |
nCharNewLine(int ichT) |
private char |
nextChar() |
private int |
parseCommandParameter(java.lang.String ident) |
private int |
parseKnownToken(java.lang.String ident) |
private ScriptContext |
parseScript(boolean doFull) |
private int |
processTokenList(short iLine,
boolean doCompile) |
private void |
replaceCommand(Token token) |
private void |
setAaTokenCompiled() |
private Token |
setCommand(Token token) |
private Token |
setNewSetCommand(boolean isSetBrace,
java.lang.String ident) |
static java.lang.String[] |
splitCommandLine(java.lang.String cmd)
used by app to separate a command line into three sections:
prefix....;cmd ........
|
protected int |
tokAt(int i) |
private Token |
tokenAt(int i) |
private void |
tokenizePlusPlus(int tok,
boolean isPlusPlusX) |
commandExpected, compileExpression, compileExpressions, error, error, error, error, errorString, isUserFunction, tokenAttr
private java.lang.String filename
private boolean isSilent
private java.util.Map<java.lang.String,ScriptVariable> contextVariables
private Token[][] aatokenCompiled
private short[] lineNumbers
private int[][] lineIndices
private int lnLength
private boolean preDefining
private boolean isShowScriptOutput
private boolean isCheckOnly
private boolean haveComments
java.lang.String scriptExtensions
private ScriptFunction thisFunction
private ScriptFlowContext flowContext
private java.util.List<Token> ltoken
private java.util.List<Token[]> lltoken
private java.util.List<Token> vBraces
private int ichBrace
private int cchToken
private int cchScript
private int nSemiSkip
private int parenCount
private int braceCount
private int setBraceCount
private int bracketCount
private int ptSemi
private int forPoint3
private int setEqualPt
private int iBrace
private boolean iHaveQuotedString
private boolean isEndOfCommand
private boolean needRightParen
private boolean endOfLine
private java.lang.String comment
private static final int OK
private static final int OK2
private static final int CONTINUE
private static final int EOL
private static final int ERROR
private int tokLastMath
private boolean checkImpliedScriptCmd
private java.util.List<ScriptFunction> vFunctionStack
private boolean isShowCommand
private boolean isComment
private boolean isUserToken
private int tokInitialPlusPlus
java.util.List<Token> vPush
int pushCount
char chFirst
public ScriptCompiler(Viewer viewer)
public ScriptCompiler(ScriptCompiler compiler)
private ScriptContext parseScript(boolean doFull)
ScriptContext compile(java.lang.String filename, java.lang.String script, boolean isPredefining, boolean isSilent, boolean debugScript, boolean isCheckOnly)
private void addContextVariable(java.lang.String ident)
static void addContextVariable(java.util.Map<java.lang.String,ScriptVariable> contextVariables, java.lang.String ident)
private boolean isContextVariable(java.lang.String ident)
private java.lang.String cleanScriptComments(java.lang.String script)
script
- public static java.lang.String getEmbeddedScript(java.lang.String script)
private void addTokenToPrefix(Token token)
private boolean compile0(boolean isFull)
private void setAaTokenCompiled()
private boolean lookingAtLeadingWhitespace()
private boolean isLineContinuation(int ichT, boolean checkMathop)
private boolean lookingAtMathContinuation(int ichT)
private boolean lookingAtEndOfLine()
private int nCharNewLine(int ichT)
private boolean lookingAtEndOfStatement()
private int lookingAtComment()
private int processTokenList(short iLine, boolean doCompile)
private boolean compileCommand()
private Token tokenAt(int i)
protected int tokAt(int i)
tokAt
in class ScriptCompilationTokenParser
private void replaceCommand(Token token)
private java.lang.String getPrefixToken()
private int checkSpecialParameterSyntax()
private java.lang.Object lookingAtMatrix()
private int parseKnownToken(java.lang.String ident)
private void tokenizePlusPlus(int tok, boolean isPlusPlusX)
private boolean checkNewSetCommand()
private int parseCommandParameter(java.lang.String ident)
private Token setNewSetCommand(boolean isSetBrace, java.lang.String ident)
private char nextChar()
private void checkUnquotedFileName()
private boolean checkFlowStartBrace(boolean atEnd)
private int checkFlowEndBrace()
private int forceFlowEnd(Token token)
static boolean isBreakableContext(int tok)
private boolean checkFlowCommand(java.lang.String ident)
private boolean checkFlowEnd(int tok, java.lang.String ident, int pt1)
private boolean getData(java.lang.String key)
private int incrementLineCount(java.lang.String str)
private static boolean isSpaceOrTab(char ch)
private boolean eol(char ch)
static boolean eol(char ch, int nSkip)
private boolean lookingAtBraceSyntax()
private boolean lookingAtString(boolean allowPrime)
java.lang.String getUnescapedStringLiteral()
private boolean lookingAtLoadFormat()
private boolean lookingAtImpliedString(boolean allowSpace, boolean allowEquals)
allowSpace
- allowEquals
- TODOpublic static int ichMathTerminator(java.lang.String script, int ichT, int len)
script
- ichT
- len
- private float lookingAtExponential()
private boolean lookingAtDecimal()
private boolean lookingAtSeqcode()
private int lookingAtInteger()
java.util.BitSet lookingAtBitset()
private boolean lookingAtObjectID(boolean allowWildID)
private boolean lookingAtLookupToken(int ichT)
private boolean charToken()
private int ERROR(int error)
private int ERROR(int error, java.lang.String value)
private boolean handleError()
public static java.lang.String[] splitCommandLine(java.lang.String cmd)
cmd
-