TokenTypes.TokenType.Node to our list of children.Expression as an argument to the function.Function.Builder for a function with the given Identifier as it's name.Tag.Tag.Tag.Tag.Node can chain to the given node.CarrotEngine is the root of the carrot system.CarrotEngine with a default Configuration.CarrotEngine with the given Configuration.Node.Comparator is of the form:
expression = ["+"|"-"] term {("+"|"-") term}Configuration is used to configure various aspects of the carrot engine.Token.Token.TagNode for an echo token.Configuration and Scope.Token if it's one of the given types, or throws a CarrotException if it's not.Factor is either variable, identifier, string literal, number literal or an expression
surrounded by brackets.ResourceLocater that loads files from the file system.FileResourceLocater using the given Configuration and base path to search for
resources in.FixedNode represents the text outside of the {% ...Function.Reader to read the contents of the given resource.Reader one line at a time, keeping track of the current line and colume via
a ResourcePointer.ResourceLocater that just keeps stuff in memory.MemoryResourceLocator using the given Configuration and base path to search for
resources in.Preconditions class, just a bunch of helper methods for asserting our preconditions.Writer.Writer.Tag to the given Writer.Writer.Node's children to the given Writer.Scope, with the given initial set of "global" bindings.TagNode represents a node of the form "{% tagname foo %}" where "tagname" is the name of the tag and "foo"
is the parameters.Term is of the form:
term = factor {("*" | "/") factor}Token is something pulled off the statement stream and represents a terminal like a string literal,
number, identifier, etc.Tokenizer.Tokens.Reader into a stream of Tokens.Tokens we can pull off the statement parser.Number.Comparator, useful for debugging.Term, useful for debugging.Identifier, useful for debugging.NumberLiteral, useful for debugging.StringLiteral, useful for debugging.Term, useful for debugging.Variable, useful for debugging.CarrotException with the given message, populated with our current state.Objects.Variable is has the following EBNF form:
variable = identifier ["." variable | "[" expression "]"]
See StatementParser for the full grammar.