Modifier and Type | Class and Description |
---|---|
class |
EscapingEvaluator
Generates a JavaExpression to determine whether a given CS expression should be escaped before
displaying.
|
class |
ExpressionTranslator
Translates a CS expression (from the AST) into an equivalent Java expression.
|
class |
TemplateTranslator
Translates a JSilver AST into compilable Java code.
|
class |
VariableTranslator
Translates a variable name (e.g.
|
Modifier and Type | Class and Description |
---|---|
class |
ExpressionEvaluator
Walks the tree of a PExpression node and evaluates the expression.
|
class |
TemplateInterpreter
Main JSilver interpreter.
|
class |
VariableLocator
Walks a PVariable node from the parse tree and returns a Data path name.
|
Modifier and Type | Method and Description |
---|---|
Switch |
OptimizerProvider.getOptimizer() |
Modifier and Type | Class and Description |
---|---|
class |
AutoEscaper
Run a context parser (currently only HTML parser) over the AST, determine nodes that need
escaping, and apply the appropriate escaping command to those nodes.
|
class |
DataCommandConsolidator
Consolidates runs of (unescaped literal output) data commands, deferring output until another
output command (var, call, etc) is encountered.
|
class |
InlineRewriter
Rewrites the AST to replace all 'inline' commands with their associated inner
command sub-tree, where all whitespace data commands have been removed.
|
class |
SequenceOptimizer
Simple optimizer to simplify expression sequences which only have a single element.
|
class |
StructuralWhitespaceStripper
Detects sequences of commands corresponding to a line in the template containing only structural
commands, comments or whitespace and rewrites the syntax tree to effectively remove any data
(text) associated with that line (including the trailing whitespace).
|
class |
SyntaxTreeDumper
Dumps the syntax tree to text.
|
class |
SyntaxTreeOptimizer
Visitor that can be applied to the AST to optimize it by replacing nodes with more efficient
implementations than the default SableCC generated versions.
|
class |
TypeResolver
AST visitor to add numeric expressions to the syntax tree.
|
class |
VarOptimizer
Recursively optimizes the syntax tree with a set of simple operations.
|
Modifier and Type | Field and Description |
---|---|
protected Switch |
SyntaxTreeBuilder.inlineRewriter |
protected Switch |
SyntaxTreeBuilder.sequenceOptimizer |
protected Switch |
SyntaxTreeBuilder.typeResolver
Syntax tree optimizers, declared in the order they must be applied:
Type resultion makes the abstract tree concrete and must come first.
|
protected Switch |
SyntaxTreeBuilder.varOptimizer |
Modifier and Type | Method and Description |
---|---|
void |
TemplateSyntaxTree.apply(Switch sw) |
Modifier and Type | Interface and Description |
---|---|
interface |
Analysis |
Modifier and Type | Class and Description |
---|---|
class |
AnalysisAdapter |
class |
DepthFirstAdapter |
class |
ReversedDepthFirstAdapter |
Modifier and Type | Method and Description |
---|---|
void |
TAlt.apply(Switch sw) |
void |
ADescendVariable.apply(Switch sw) |
void |
AMultipleCommand.apply(Switch sw) |
void |
ALtExpression.apply(Switch sw) |
void |
AStringExpression.apply(Switch sw) |
void |
TAnd.apply(Switch sw) |
void |
ALvarCommand.apply(Switch sw) |
void |
TPercent.apply(Switch sw) |
void |
TParenOpen.apply(Switch sw) |
void |
AExistsExpression.apply(Switch sw) |
void |
AHardIncludeCommand.apply(Switch sw) |
void |
AHexExpression.apply(Switch sw) |
void |
ALincludeCommand.apply(Switch sw) |
void |
AAddExpression.apply(Switch sw) |
void |
TWord.apply(Switch sw) |
void |
TEq.apply(Switch sw) |
void |
AAltCommand.apply(Switch sw) |
void |
TDollar.apply(Switch sw) |
void |
ADecNumberVariable.apply(Switch sw) |
void |
ACsOpenPosition.apply(Switch sw) |
void |
TEach.apply(Switch sw) |
void |
ANotExpression.apply(Switch sw) |
void |
AWithCommand.apply(Switch sw) |
void |
ACallCommand.apply(Switch sw) |
void |
TEscape.apply(Switch sw) |
void |
ANoopExpression.apply(Switch sw) |
void |
ANeExpression.apply(Switch sw) |
void |
TLvar.apply(Switch sw) |
void |
TParenClose.apply(Switch sw) |
void |
TUvar.apply(Switch sw) |
void |
AOrExpression.apply(Switch sw) |
void |
TWith.apply(Switch sw) |
void |
TAutoescape.apply(Switch sw) |
void |
AEscapeCommand.apply(Switch sw) |
void |
ALoopIncCommand.apply(Switch sw) |
void |
ACommentCommand.apply(Switch sw) |
void |
TInclude.apply(Switch sw) |
void |
TLoop.apply(Switch sw) |
void |
TAssignment.apply(Switch sw) |
void |
TPlus.apply(Switch sw) |
void |
AGteExpression.apply(Switch sw) |
void |
AExpandVariable.apply(Switch sw) |
void |
ADivideExpression.apply(Switch sw) |
void |
AContentTypeCommand.apply(Switch sw) |
void |
ANoopCommand.apply(Switch sw) |
void |
TEvar.apply(Switch sw) |
void |
TLinclude.apply(Switch sw) |
void |
AAndExpression.apply(Switch sw) |
void |
TDecNumber.apply(Switch sw) |
void |
TSlash.apply(Switch sw) |
void |
AIfCommand.apply(Switch sw) |
void |
TCommentStart.apply(Switch sw) |
void |
ACommaExpression.apply(Switch sw) |
void |
ASubtractExpression.apply(Switch sw) |
void |
ALoopCommand.apply(Switch sw) |
void |
TComma.apply(Switch sw) |
void |
AFunctionExpression.apply(Switch sw) |
void |
AHexNumberVariable.apply(Switch sw) |
void |
AVariableExpression.apply(Switch sw) |
void |
ANameVariable.apply(Switch sw) |
void |
ANumericNeExpression.apply(Switch sw) |
void |
TName.apply(Switch sw) |
void |
ANegativeExpression.apply(Switch sw) |
void |
ADefCommand.apply(Switch sw) |
void |
ANumericEqExpression.apply(Switch sw) |
void |
TLt.apply(Switch sw) |
void |
AEqExpression.apply(Switch sw) |
void |
TCommandDelimiter.apply(Switch sw) |
void |
AVarCommand.apply(Switch sw) |
void |
TMinus.apply(Switch sw) |
void |
THash.apply(Switch sw) |
void |
AModuloExpression.apply(Switch sw) |
void |
ADataCommand.apply(Switch sw) |
void |
ANameCommand.apply(Switch sw) |
void |
TIf.apply(Switch sw) |
void |
AUvarCommand.apply(Switch sw) |
void |
TGt.apply(Switch sw) |
void |
AIncludeCommand.apply(Switch sw) |
void |
TCall.apply(Switch sw) |
void |
TDot.apply(Switch sw) |
void |
TElseIf.apply(Switch sw) |
void |
AEachCommand.apply(Switch sw) |
void |
ALteExpression.apply(Switch sw) |
void |
ASetCommand.apply(Switch sw) |
void |
TOr.apply(Switch sw) |
void |
TCsOpen.apply(Switch sw) |
void |
TGte.apply(Switch sw) |
void |
TComment.apply(Switch sw) |
void |
Start.apply(Switch sw) |
void |
ASequenceExpression.apply(Switch sw) |
void |
TCsClose.apply(Switch sw) |
void |
TVar.apply(Switch sw) |
void |
ALoopToCommand.apply(Switch sw) |
void |
TArgWhitespace.apply(Switch sw) |
void |
TString.apply(Switch sw) |
void |
AInlineCommand.apply(Switch sw) |
void |
AOptimizedMultipleCommand.apply(Switch sw) |
void |
ANumericAddExpression.apply(Switch sw) |
void |
AEvarCommand.apply(Switch sw) |
void |
Switchable.apply(Switch sw) |
void |
TElse.apply(Switch sw) |
void |
TBracketClose.apply(Switch sw) |
void |
THardDelimiter.apply(Switch sw) |
void |
TContentType.apply(Switch sw) |
void |
TNe.apply(Switch sw) |
void |
AMultiplyExpression.apply(Switch sw) |
void |
THexNumber.apply(Switch sw) |
void |
TLte.apply(Switch sw) |
void |
AHardLincludeCommand.apply(Switch sw) |
void |
TInline.apply(Switch sw) |
void |
AGtExpression.apply(Switch sw) |
void |
TBang.apply(Switch sw) |
void |
ADecimalExpression.apply(Switch sw) |
void |
TBracketOpen.apply(Switch sw) |
void |
EOF.apply(Switch sw) |
void |
ANumericExpression.apply(Switch sw) |
void |
TQuestion.apply(Switch sw) |
void |
TDef.apply(Switch sw) |
void |
TData.apply(Switch sw) |
void |
TSet.apply(Switch sw) |
void |
TStar.apply(Switch sw) |
void |
AAutoescapeCommand.apply(Switch sw) |
Copyright © 2010-2013 Google. All Rights Reserved.