~zorba-coders/zorba/hof-merge

« back to all changes in this revision

Viewing changes to src/compiler/parsetree/parsenodes.h

  • Committer: Markos Zaharioudakis
  • Date: 2013-03-25 15:11:52 UTC
  • mfrom: (10632.1.679 zorba)
  • Revision ID: markos_za@yahoo.com-20130325151152-fh98ryulrdd0he8l
mergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
291
291
********************************************************************************/
292
292
class VersionDecl : public parsenode
293
293
{
 
294
public:
 
295
  enum LanguageKind {
 
296
    xquery = 0,
 
297
    jsoniq
 
298
  };
 
299
 
294
300
protected:
295
301
  zstring version;
296
302
  zstring encoding;
 
303
  LanguageKind lang_kind;
297
304
 
298
305
  friend class ParseNodePrintXMLVisitor;
299
306
 
303
310
    zstring const& version,
304
311
    zstring const& encoding);
305
312
 
 
313
  VersionDecl(
 
314
    const QueryLoc&,
 
315
    zstring const& version,
 
316
    zstring const& encoding,
 
317
    LanguageKind const& lang_kind);
 
318
 
306
319
  zstring const& get_version() const { return version; }
307
320
  zstring const& get_encoding() const { return encoding; }
 
321
  LanguageKind const& get_language_kind() const { return lang_kind; }
308
322
 
309
323
  void accept(parsenode_visitor&) const;
310
324
};
1626
1640
 
1627
1641
  void setTopLevel(bool v) { theIsTopLevel =  v; }
1628
1642
 
 
1643
  bool isEmpty() const;
 
1644
 
1629
1645
  void add(parsenode* statement);
1630
1646
 
1631
1647
  void accept(parsenode_visitor&) const;
3083
3099
 
3084
3100
/*******************************************************************************
3085
3101
  [84] ValueComp ::= "eq" | "ne" | "lt" | "le" | "gt" | "ge"
 
3102
  !!! New jsoniq grammar:                                    | "not"
3086
3103
********************************************************************************/
3087
3104
class ValueComp : public parsenode
3088
3105
{
4141
4158
  void accept(parsenode_visitor&) const;
4142
4159
};
4143
4160
 
 
4161
/*******************************************************************************
 
4162
********************************************************************************/
 
4163
class BooleanLiteral : public exprnode
 
4164
{
 
4165
protected:
 
4166
  bool const boolval;
 
4167
 
 
4168
public:
 
4169
  BooleanLiteral(const QueryLoc&, bool);
 
4170
 
 
4171
  bool const& get_boolval() const { return boolval; }
 
4172
 
 
4173
  void accept(parsenode_visitor&) const;
 
4174
};
 
4175
 
 
4176
/*******************************************************************************
 
4177
********************************************************************************/
 
4178
class NullLiteral : public exprnode
 
4179
{
 
4180
public:
 
4181
  NullLiteral(const QueryLoc&);
 
4182
 
 
4183
  void accept(parsenode_visitor&) const;
 
4184
};
4144
4185
 
4145
4186
/*******************************************************************************
4146
4187
  [110] VarRef ::= "$" VarName
6681
6722
//  JSON productions                                                         //
6682
6723
//                                                                           //
6683
6724
///////////////////////////////////////////////////////////////////////////////
 
6725
class JSONObjectLookup : public exprnode
 
6726
{
 
6727
protected:
 
6728
  const exprnode* theObjectExpr;
 
6729
  const exprnode* theSelectorExpr;
 
6730
 
 
6731
public:
 
6732
  JSONObjectLookup(
 
6733
      const QueryLoc&,
 
6734
      const exprnode* aObjectExpr,
 
6735
      const exprnode* aSelectorExpr = 0);
 
6736
 
 
6737
  ~JSONObjectLookup();
 
6738
 
 
6739
  const exprnode* get_object_expr() const { return theObjectExpr; }
 
6740
 
 
6741
  const exprnode* get_selector_expr() const { return theSelectorExpr; }
 
6742
 
 
6743
  void accept(parsenode_visitor&) const;
 
6744
};
6684
6745
 
6685
6746
 
6686
6747
class JSONArrayConstructor : public exprnode
6727
6788
  const JSONPairList  * thePairs;
6728
6789
 
6729
6790
public:
 
6791
  JSONDirectObjectConstructor(const QueryLoc& loc);
 
6792
 
6730
6793
  JSONDirectObjectConstructor(const QueryLoc& loc, const JSONPairList* pairs);
6731
6794
 
6732
6795
  ~JSONDirectObjectConstructor();