~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to drizzled/lex_symbol.h

  • Committer: Olaf van der Spek
  • Date: 2011-10-14 10:07:18 UTC
  • mto: This revision was merged to the branch mainline in revision 2438.
  • Revision ID: olafvdspek@gmail.com-20111014100718-n1i5vtysh1gajn70
Use assign(), data() and size()

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
 
23
23
#pragma once
24
24
 
25
 
namespace drizzled
26
 
{
27
 
 
28
 
typedef struct st_sym_group {
29
 
  const char *name;
30
 
  const char *needed_define;
31
 
} SYM_GROUP;
32
 
 
33
 
typedef struct st_symbol {
34
 
  const char *name;
35
 
  uint  tok;
36
 
} SYMBOL;
37
 
 
38
 
typedef struct st_lex_symbol
39
 
{
40
 
  const SYMBOL *symbol;
41
 
  char   *str;
42
 
  uint32_t   length;
43
 
} LEX_SYMBOL;
 
25
namespace drizzled {
 
26
 
 
27
struct SYM_GROUP 
 
28
{
 
29
  const char* name;
 
30
  const char* needed_define;
 
31
};
 
32
 
 
33
struct SYMBOL
 
34
{
 
35
  const char* name;
 
36
  uint tok;
 
37
};
 
38
 
 
39
struct LEX_SYMBOL
 
40
{
 
41
  const char* begin() const
 
42
  {
 
43
    return data();
 
44
  }
 
45
 
 
46
  const char* end() const
 
47
  {
 
48
    return data() + size();
 
49
  }
 
50
 
 
51
  const char* data() const
 
52
  {
 
53
    return str;
 
54
  }
 
55
 
 
56
  size_t size() const
 
57
  {
 
58
    return length;
 
59
  }
 
60
 
 
61
  const SYMBOL* symbol;
 
62
  char* str;
 
63
  uint32_t length;
 
64
};
44
65
 
45
66
extern SYM_GROUP sym_group_common;
46
67
extern SYM_GROUP sym_group_geom;