class FlowControlStatement(Grammar): grammar = OR( (OR(RE_LITERAL("break"), RE_LITERAL("continue")), OPTIONAL((WHITESPACE, LabelExpression))), (OR(RE_LITERAL("throw"), RE_LITERAL("return"), RE_LITERAL("exit")), OPTIONAL((WHITESPACE, Pipeline))), )
class ExpandableStringPart(Grammar): grammar = OR( EXCEPT(ANY, OR('$', '\u0060', DoubleQuoteCharacter), max=1), BracedVariable, ("$", ANY_EXCEPT("({\u0060", max=1) - DoubleQuoteCharacter), ("$", EscapedCharacter), EscapedCharacter, (DoubleQuoteCharacter, DoubleQuoteCharacter), )
class ExpressionWithUnaryOperator(Grammar): grammar = OR( (OR(",", RE_LITERAL("-bnot"), RE_LITERAL("-not"), RE_LITERAL("-split"), RE_LITERAL("-join"), "!", "+", Dash), OPTIONAL(WHITESPACE), UnaryExpression), PreIncrementExpression, PreDecrementExpression, CastExpression, )
class Keyword(Grammar): grammar = OR(*ignore_case_literals( "workflow", "inlinescript", "parallel", "begin", "break", "catch", "class", "continue", "data", "define", "do", "dynamicparam", "elseif", "else", "end", "exit", "filter", "finally", "foreach", "for", "from", "function", "if", "in", "param", "process", "return", "switch", "var", "throw", "trap", "try", "until", "using", "while"))
class RealLiteral(Grammar): grammar = OR((DecimalDigits, ".", DecimalDigits, OPTIONAL(ExponentPart), OPTIONAL(DecimalTypeSuffix), OPTIONAL(NumericMultiplier)), (".", DecimalDigits, OPTIONAL(ExponentPart), OPTIONAL(DecimalTypeSuffix), OPTIONAL(NumericMultiplier)), (DecimalDigits, ExponentPart, OPTIONAL(DecimalTypeSuffix), OPTIONAL(NumericMultiplier)))
class SwitchParameter(Grammar): grammar = OR(*ignore_case_literals( "-regex", "-rege", "-reg", "-re", "-r", "-wildcard", "-wildcar", "-wildca", "-wildc", "-wild", "-wil", "-wi", "-w", "-exact", "-exac", "-exa", "-ex", "-e", "-casesensitive", "-casesensitiv", "-casesensiti", "-casesensit", "-casesensi", "-casesens", "-casesen", "-casese", "-cases", "-case", "-cas", "-ca", "-c"))
class MemberName(Grammar): grammar = OR( # FIXME: Remove references SimpleName, StringLiteral, StringLiteralWithSubexpression, REF('ExpressionWithUnaryOperator'), REF('Value'))
class ExpandableHereStringPart(Grammar): grammar = OR( ANY_EXCEPT("$", max=1) - NewLineCharacter, BracedVariable, ("$", ANY_EXCEPT("(", max=1) - NewLineCharacter), ("$", NewLineCharacter, ANY - DoubleQuoteCharacter), ("$", NewLineCharacter, DoubleQuoteCharacter, ANY_EXCEPT("@", max=1)), (NewLineCharacter, ANY - DoubleQuoteCharacter), (NewLineCharacter, DoubleQuoteCharacter, ANY_EXCEPT("@", max=1)))
class ExpandableStringLiteralWithSubexpr(Grammar): grammar = OR( (ExpandableStringWithSubexprStart, OPTIONAL(StatementList), ")", ExpandableStringWithSubexprCharacters, ExpandableStringWithSubexprEnd), (ExpandableHereStringWithSubexprStart, OPTIONAL(StatementList), ")", ExpandableHereStringWithSubexprCharacters, ExpandableHereStringWithSubexprEnd))
class ConfigVDevState(Grammar): grammar = (OR( 'ONLINE', 'DEGRADED', 'FAULTED', 'OFFLINE', 'UNAVAIL', 'REMOVED', ), )
class ComparisonOperator(Grammar): operators = ignore_case_literals( "as", "ccontains", "ceq", "cge", "cgt", "cle", "clike", "clt", "cmatch", "cne", "cnotcontains", "cnotlike", "cnotmatch", "contains", "creplace", "csplit", "eq", "ge", "gt", "icontains", "ieq", "ige", "igt", "ile", "ilike", "ilt", "imatch", "in", "ine", "inotcontains", "inotlike", "inotmatch", "ireplace", "is", "isnot", "isplit", "join", "le", "like", "lt", "match", "ne", "notcontains", "notin", "notlike", "notmatch", "replace", "shl", "shr", "split") grammar = (Dash, OR(*operators))
class ConfigPool(Grammar): grammar = ( ConfigPoolName, SpaceSeperator, ConfigVDevState, SpaceSeperator, ConfigCounters, '\n', REPEAT('\t', SpaceSeperator, OR(ConfigVDev, ConfigDisk), '\n'), )
class GenericTokenChar(Grammar): grammar = OR( EXCEPT( ANY, OR( DoubleQuoteCharacter, SingleQuoteCharacter, WHITESPACE, NewLineCharacter, "{", "}", "(", ")", ";", ",", "|", "&", "$", "\u0060", )), EscapedCharacter)
class Token(Grammar): grammar = OR( Keyword, Variable, Command, CommandParameter, IntegerLiteral, RealLiteral, StringLiteral, TypeLiteral, OperatorOrPunctuator, )
class OperatorOrPunctuator(Grammar): grammar = OR( "{", "}", "[", "]", "(", ")", "@(", "@{", "$(", ";", "&&", "||", "&", "|", ",", "++", "..", "::", ".", "!", "*", "/", "%", "+", (Dash, OR( Dash, *ignore_case_literals("and", "band", "bnot", "bor", "bxor", "not", "or", "xor"))), Dash, AssignmentOperator, MergingRedirectionOperator, FileRedirectionOperator, ComparisonOperator, FormatOperator, )
class ForStatement(Grammar): grammar = OR( (RE_LITERAL("for"), OPTIONAL(WHITESPACE), "(", OPTIONAL(WHITESPACE), OPTIONAL(ForInitializer), StatementTerminator, OPTIONAL(WHITESPACE), OPTIONAL(ForCondition), StatementTerminator, OPTIONAL(WHITESPACE), OPTIONAL(ForIterator), OPTIONAL(WHITESPACE), ")", OPTIONAL(WHITESPACE), StatementBlock), (RE_LITERAL("for"), OPTIONAL(WHITESPACE), "(", OPTIONAL(WHITESPACE), OPTIONAL(ForInitializer), StatementTerminator, OPTIONAL(WHITESPACE), OPTIONAL(ForCondition), OPTIONAL(WHITESPACE), ")", OPTIONAL(WHITESPACE), StatementBlock), (RE_LITERAL("for"), OPTIONAL(WHITESPACE), "(", OPTIONAL(WHITESPACE), OPTIONAL(ForInitializer), OPTIONAL(WHITESPACE), ")", OPTIONAL(WHITESPACE), StatementBlock), )
class CountTarget(Grammar): grammar = OR(OP('*'), OP('1'))
class ColumnRange(Grammar): grammar = OR((Term, OP('..'), Term), OP('*'))
class SelectWhereClause(Grammar): grammar = OR(LIST_OF(Relation, sep=CK('and')), (Term, CK('in'), LPar, LIST_OF(Term), RPar))
class RelationOperator(Grammar): grammar = OR(OP('='), OP('<='), OP('>='), OP("<"), OP('>'))
class Consistency(Grammar): grammar = OR(CK('any'), CK('one'), (OPTIONAL(CK('local') | CK('each')), CK('quorum')), CK('all'))
class Term(Grammar): grammar = OR(CK('key'), UUID, Identifier, StringLiteral, Float, Integer)
class Integer(Grammar): grammar = OR(L('0'), (OPTIONAL(L('-')), WORD('1-9', '0-9')))
class StatementBody(Grammar): grammar = OR(UseStatement, SelectStatement, DataChangeStatement, SchemaChangeStatement, ClientStatement)
class ClientStatement(Grammar): grammar = OR(QuitStatement)
class DataChangeStatement(Grammar): grammar = OR(InsertStatement, UpdateStatement, BatchStatement, DeleteStatement, TruncateStatement)
class SchemaChangeStatement(Grammar): grammar = OR( CreateKeyspaceStatement, CreateColumnFamilyStatement, CreateIndexStatement, DropKeyspaceStatement, DropColumnFamilyStatement, DropIndexStatement, AlterColumnFamilyStatement )
class WhatToSelect(Grammar): grammar = OR( (OPTIONAL(CK('first'), Integer, OPTIONAL(CK('reversed'))), ColumnRange), (FN('count'), LPar, CountTarget, RPar), LIST_OF(Term) )
class DeleteOption(Grammar): grammar = OR((CK('consistency'), Consistency), (CK('timestamp'), Integer))
class StorageType(Grammar): grammar = OR(CK('ascii'), CK('bigint'), CK('blob'), CK('boolean'), CK('counter'), CK('decimal'), CK('double'), CK('float'), CK('int'), CK('text'), CK('timestamp'), CK('uuid'), CK('varchar'), CK('varint'))