~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/sql_lex.cc

  • Committer: Brian Aker
  • Date: 2011-02-17 18:06:59 UTC
  • mfrom: (2178.1.3 drizzle-staging)
  • Revision ID: brian@tangent.org-20110217180659-3so1k4syn5m436cj
Merge in all bison updates.

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
#include <cstdio>
35
35
#include <ctype.h>
36
36
 
 
37
union ParserType;
 
38
 
37
39
using namespace std;
38
40
 
39
41
/* Stay outside of the namespace because otherwise bison goes nuts */
40
 
int DRIZZLElex(void *arg, void *yysession);
 
42
int base_sql_lex(ParserType *arg, drizzled::Session *yysession);
41
43
 
42
44
namespace drizzled
43
45
{
44
46
 
45
 
static int lex_one_token(void *arg, void *yysession);
 
47
static int lex_one_token(ParserType *arg, drizzled::Session *yysession);
46
48
 
47
49
/**
48
50
  save order by and tables in own lists.
601
603
 
602
604
} /* namespace drizzled */
603
605
/*
604
 
  DRIZZLElex remember the following states from the following DRIZZLElex()
 
606
  base_sql_lex remember the following states from the following sql_baselex()
605
607
 
606
608
  - MY_LEX_EOQ                  Found end of query
607
609
  - MY_LEX_OPERATOR_OR_IDENT    Last state was an ident, text or number
608
610
                                (which can't be followed by a signed number)
609
611
*/
610
 
int DRIZZLElex(void *arg, void *yysession)
 
612
int base_sql_lex(union ParserType *yylval, drizzled::Session *session)
611
613
{
612
 
  drizzled::Session *session= (drizzled::Session *)yysession;
613
614
  drizzled::Lex_input_stream *lip= session->m_lip;
614
 
  YYSTYPE *yylval=(YYSTYPE*) arg;
615
615
  int token;
616
616
 
617
617
  if (lip->lookahead_token != END_OF_INPUT)
627
627
    return token;
628
628
  }
629
629
 
630
 
  token= drizzled::lex_one_token(arg, yysession);
 
630
  token= drizzled::lex_one_token(yylval, session);
631
631
 
632
632
  switch(token) {
633
633
  case WITH:
638
638
      to transform the grammar into a LALR(1) grammar,
639
639
      which sql_yacc.yy can process.
640
640
    */
641
 
    token= drizzled::lex_one_token(arg, yysession);
 
641
    token= drizzled::lex_one_token(yylval, session);
642
642
    if (token == ROLLUP_SYM)
643
643
    {
644
644
      return WITH_ROLLUP_SYM;
663
663
namespace drizzled
664
664
{
665
665
 
666
 
int lex_one_token(void *arg, void *yysession)
 
666
int lex_one_token(ParserType *yylval, drizzled::Session *session)
667
667
{
668
668
  register unsigned char c= 0; /* Just set to shutup GCC */
669
669
  bool comment_closed;
670
670
  int   tokval, result_state;
671
671
  unsigned int length;
672
672
  enum my_lex_states state;
673
 
  Session *session= (Session *)yysession;
674
673
  Lex_input_stream *lip= session->m_lip;
675
674
  LEX *lex= session->lex;
676
 
  YYSTYPE *yylval=(YYSTYPE*) arg;
677
675
  const CHARSET_INFO * const cs= session->charset();
678
676
  unsigned char *state_map= cs->state_map;
679
677
  unsigned char *ident_map= cs->ident_map;