KiCad PCB EDA Suite
TB_READER_T Namespace Reference

C++ does not put enum values in separate namespaces unless the enum itself is in a separate namespace. More...

Enumerations

enum  T {
  T_NONE = DSN_NONE, T_COMMENT = DSN_COMMENT, T_STRING_QUOTE = DSN_STRING_QUOTE, T_QUOTE_DEF = DSN_QUOTE_DEF,
  T_DASH = DSN_DASH, T_SYMBOL = DSN_SYMBOL, T_NUMBER = DSN_NUMBER, T_RIGHT = DSN_RIGHT,
  T_LEFT = DSN_LEFT, T_STRING = DSN_STRING, T_EOF = DSN_EOF, T_bitmap = 0,
  T_bold, T_bottom, T_bottom_margin, T_center,
  T_comment, T_data, T_end, T_font,
  T_incrlabel, T_incrx, T_incry, T_italic,
  T_justify, T_lbcorner, T_left, T_left_margin,
  T_line, T_linewidth, T_ltcorner, T_maxheight,
  T_maxlen, T_name, T_notonpage1, T_option,
  T_page1only, T_page_layout, T_pngdata, T_polygon,
  T_pos, T_pts, T_rbcorner, T_rect,
  T_repeat, T_right, T_right_margin, T_rotate,
  T_rtcorner, T_scale, T_setup, T_size,
  T_start, T_tbtext, T_textlinewidth, T_textsize,
  T_top, T_top_margin, T_xy
}
 enum T contains all this lexer's tokens. More...
 

Detailed Description

C++ does not put enum values in separate namespaces unless the enum itself is in a separate namespace.

All the token enums must be in separate namespaces otherwise the C++ compiler will eventually complain if it sees more than one DSNLEXER in the same compilation unit, say by mutliple header file inclusion. Plus this also enables re-use of the same enum name T. A typedef can always be used to clarify which enum T is in play should that ever be a problem. This is unlikely since Parse() functions will usually only be exposed to one header file like this one. But if there is a problem, then use: typedef TB_READER_T::T T; within that problem area.

Enumeration Type Documentation

enum T contains all this lexer's tokens.

Enumerator
T_NONE 
T_COMMENT 
T_STRING_QUOTE 
T_QUOTE_DEF 
T_DASH 
T_SYMBOL 
T_NUMBER 
T_RIGHT 
T_LEFT 
T_STRING 
T_EOF 
T_bitmap 
T_bold 
T_bottom 
T_bottom_margin 
T_center 
T_comment 
T_data 
T_end 
T_font 
T_incrlabel 
T_incrx 
T_incry 
T_italic 
T_justify 
T_lbcorner 
T_left 
T_left_margin 
T_line 
T_linewidth 
T_ltcorner 
T_maxheight 
T_maxlen 
T_name 
T_notonpage1 
T_option 
T_page1only 
T_page_layout 
T_pngdata 
T_polygon 
T_pos 
T_pts 
T_rbcorner 
T_rect 
T_repeat 
T_right 
T_right_margin 
T_rotate 
T_rtcorner 
T_scale 
T_setup 
T_size 
T_start 
T_tbtext 
T_textlinewidth 
T_textsize 
T_top 
T_top_margin 
T_xy 

Definition at line 26 of file page_layout_reader_lexer.h.

27  {
28  // these first few are negative special ones for syntax, and are
29  // inherited from DSNLEXER.
30  T_NONE = DSN_NONE,
34  T_DASH = DSN_DASH,
37  T_RIGHT = DSN_RIGHT, // right bracket: ')'
38  T_LEFT = DSN_LEFT, // left bracket: '('
39  T_STRING = DSN_STRING, // a quoted string, stripped of the quotes
40  T_EOF = DSN_EOF, // special case for end of file
41 
42  T_bitmap = 0,
43  T_bold,
44  T_bottom,
46  T_center,
47  T_comment,
48  T_data,
49  T_end,
50  T_font,
52  T_incrx,
53  T_incry,
54  T_italic,
55  T_justify,
56  T_lbcorner,
57  T_left,
59  T_line,
61  T_ltcorner,
63  T_maxlen,
64  T_name,
66  T_option,
69  T_pngdata,
70  T_polygon,
71  T_pos,
72  T_pts,
73  T_rbcorner,
74  T_rect,
75  T_repeat,
76  T_right,
78  T_rotate,
79  T_rtcorner,
80  T_scale,
81  T_setup,
82  T_size,
83  T_start,
84  T_tbtext,
86  T_textsize,
87  T_top,
89  T_xy
90  };