def create_create():
create = upkey("<STR_LIT>").setResultsName("<STR_LIT:action>")<EOL>hash_key = Group(upkey("<STR_LIT>") + upkey("<STR_LIT:key>"))<EOL>range_key = Group(upkey("<STR_LIT>") + upkey("<STR_LIT:key>"))<EOL>local_index = Group(<EOL>index<EOL>+ Suppress("<STR_LIT:(>")<EOL>+ primitive<EOL>+ Optional(Suppress("<STR_LIT:U+002C>") + include_vars)<EOL>+ Suppress("<STR_LIT:)>")<EOL>)<EOL>index_type = (<EOL>(hash_key | range_key | local_index)<EOL>.setName("<STR_LIT>")<EOL>.setResultsName("<STR_LIT:index>")<EOL>)<EOL>attr_declaration = (<EOL>Group(var.setResultsName("<STR_LIT:name>") + type_ + Optional(index_type))<EOL>.setName("<STR_LIT>")<EOL>.setResultsName("<STR_LIT>")<EOL>)<EOL>attrs_declaration = (<EOL>Suppress("<STR_LIT:(>")<EOL>+ Group(delimitedList(attr_declaration))<EOL>.setName("<STR_LIT>")<EOL>.setResultsName("<STR_LIT>")<EOL>+ Optional(Suppress("<STR_LIT:U+002C>") + throughput)<EOL>+ Suppress("<STR_LIT:)>")<EOL>)<EOL>global_index = _global_index()<EOL>global_indexes = Group(OneOrMore(global_index)).setResultsName("<STR_LIT>")<EOL>return (<EOL>create<EOL>+ table_key<EOL>+ Optional(if_not_exists)<EOL>+ table<EOL>+ attrs_declaration<EOL>+ Optional(global_indexes)<EOL>)<EOL>
Create the grammar for the 'create' statement