mirror of
https://github.com/scylladb/scylladb.git
synced 2026-04-19 16:15:07 +00:00
cql3/Cql.g: Convert mapLiteral rule to C++
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This commit is contained in:
12
cql3/Cql.g
12
cql3/Cql.g
@@ -40,6 +40,7 @@ options {
|
||||
#include "cql3/single_column_relation.hh"
|
||||
#include "cql3/cql3_type.hh"
|
||||
#include "cql3/cf_name.hh"
|
||||
#include "cql3/maps.hh"
|
||||
#include "core/sstring.hh"
|
||||
#include "CqlLexer.hpp"
|
||||
|
||||
@@ -1051,13 +1052,14 @@ constant returns [shared_ptr<cql3::constants::literal> constant]
|
||||
| { sign=""; } ('-' {sign = "-"; } )? t=(K_NAN | K_INFINITY) { $constant = cql3::constants::literal::floating_point(sstring{sign + $t.text}); }
|
||||
;
|
||||
|
||||
#if 0
|
||||
mapLiteral returns [Maps.Literal map]
|
||||
: '{' { List<Pair<Term.Raw, Term.Raw>> m = new ArrayList<Pair<Term.Raw, Term.Raw>>(); }
|
||||
( k1=term ':' v1=term { m.add(Pair.create(k1, v1)); } ( ',' kn=term ':' vn=term { m.add(Pair.create(kn, vn)); } )* )?
|
||||
'}' { $map = new Maps.Literal(m); }
|
||||
mapLiteral returns [shared_ptr<cql3::maps::literal> map]
|
||||
@init{std::vector<std::pair<::shared_ptr<cql3::term::raw>, ::shared_ptr<cql3::term::raw>>> m;}
|
||||
: '{' { }
|
||||
( k1=term ':' v1=term { m.push_back(std::pair<shared_ptr<cql3::term::raw>, shared_ptr<cql3::term::raw>>{k1, v1}); } ( ',' kn=term ':' vn=term { m.push_back(std::pair<shared_ptr<cql3::term::raw>, shared_ptr<cql3::term::raw>>{kn, vn}); } )* )?
|
||||
'}' { $map = ::make_shared<cql3::maps::literal>(m); }
|
||||
;
|
||||
|
||||
#if 0
|
||||
setOrMapLiteral[Term.Raw t] returns [Term.Raw value]
|
||||
: ':' v=term { List<Pair<Term.Raw, Term.Raw>> m = new ArrayList<Pair<Term.Raw, Term.Raw>>(); m.add(Pair.create(t, v)); }
|
||||
( ',' kn=term ':' vn=term { m.add(Pair.create(kn, vn)); } )*
|
||||
|
||||
Reference in New Issue
Block a user