KiCad PCB EDA Suite
PCB_KEYS_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_add_net = 0,
  T_allowed, T_angle, T_arc, T_arc_segments,
  T_area, T_arrow1a, T_arrow1b, T_arrow2a,
  T_arrow2b, T_at, T_attr, T_autoplace_cost180,
  T_autoplace_cost90, T_aux_axis_origin, T_blind, T_blind_buried_vias_allowed,
  T_bold, T_bottom, T_center, T_chamfer,
  T_circle, T_clearance, T_comment, T_company,
  T_connect, T_connect_pads, T_copperpour, T_crossbar,
  T_date, T_descr, T_die_length, T_diff_pair_gap,
  T_diff_pair_width, T_dimension, T_drawings, T_drill,
  T_edge, T_edge_width, T_effects, T_end,
  T_feature1, T_feature2, T_fill, T_fill_segments,
  T_filled_polygon, T_fillet, T_font, T_fp_arc,
  T_fp_circle, T_fp_curve, T_fp_line, T_fp_poly,
  T_fp_text, T_full, T_general, T_gr_arc,
  T_gr_circle, T_gr_curve, T_gr_line, T_gr_poly,
  T_gr_text, T_grid_origin, T_hatch, T_hide,
  T_italic, T_justify, T_keepout, T_kicad_pcb,
  T_last_trace_width, T_layer, T_layers, T_left,
  T_links, T_locked, T_micro, T_min_thickness,
  T_mirror, T_mod_edge_width, T_mod_text_size, T_mod_text_width,
  T_mode, T_model, T_module, T_net,
  T_net_class, T_net_name, T_nets, T_no,
  T_no_connects, T_none, T_not_allowed, T_np_thru_hole,
  T_offset, T_oval, T_pad, T_pad_drill,
  T_pad_size, T_pad_to_mask_clearance, T_pad_to_paste_clearance, T_pad_to_paste_clearance_ratio,
  T_pads, T_page, T_path, T_pcb_text_size,
  T_pcb_text_width, T_pcbplotparams, T_placed, T_plus,
  T_polygon, T_portrait, T_priority, T_pts,
  T_radius, T_rect, T_rect_delta, T_reference,
  T_rev, T_right, T_rotate, T_roundrect,
  T_roundrect_rratio, T_scale, T_segment, T_segment_width,
  T_setup, T_size, T_smd, T_smoothing,
  T_solder_mask_margin, T_solder_mask_min_width, T_solder_paste_margin, T_solder_paste_margin_ratio,
  T_solder_paste_ratio, T_start, T_status, T_tags,
  T_target, T_tedit, T_thermal_bridge_width, T_thermal_gap,
  T_thermal_width, T_thickness, T_thru, T_thru_hole,
  T_thru_hole_only, T_title, T_title_block, T_top,
  T_trace_clearance, T_trace_min, T_trace_width, T_tracks,
  T_trapezoid, T_tstamp, T_user, T_user_trace_width,
  T_user_via, T_uvia_dia, T_uvia_drill, T_uvia_min_drill,
  T_uvia_min_size, T_uvia_size, T_uvias_allowed, T_value,
  T_version, T_via, T_via_dia, T_via_drill,
  T_via_min_drill, T_via_min_size, T_via_size, T_vias,
  T_virtual, T_visible_elements, T_width, T_x,
  T_xy, T_xyz, T_yes, T_zone,
  T_zone_45_only, T_zone_clearance, T_zone_connect, T_zone_type,
  T_zones
}
 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 PCB_KEYS_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_add_net 
T_allowed 
T_angle 
T_arc 
T_arc_segments 
T_area 
T_arrow1a 
T_arrow1b 
T_arrow2a 
T_arrow2b 
T_at 
T_attr 
T_autoplace_cost180 
T_autoplace_cost90 
T_aux_axis_origin 
T_blind 
T_blind_buried_vias_allowed 
T_bold 
T_bottom 
T_center 
T_chamfer 
T_circle 
T_clearance 
T_comment 
T_company 
T_connect 
T_connect_pads 
T_copperpour 
T_crossbar 
T_date 
T_descr 
T_die_length 
T_diff_pair_gap 
T_diff_pair_width 
T_dimension 
T_drawings 
T_drill 
T_edge 
T_edge_width 
T_effects 
T_end 
T_feature1 
T_feature2 
T_fill 
T_fill_segments 
T_filled_polygon 
T_fillet 
T_font 
T_fp_arc 
T_fp_circle 
T_fp_curve 
T_fp_line 
T_fp_poly 
T_fp_text 
T_full 
T_general 
T_gr_arc 
T_gr_circle 
T_gr_curve 
T_gr_line 
T_gr_poly 
T_gr_text 
T_grid_origin 
T_hatch 
T_hide 
T_italic 
T_justify 
T_keepout 
T_kicad_pcb 
T_last_trace_width 
T_layer 
T_layers 
T_left 
T_links 
T_locked 
T_micro 
T_min_thickness 
T_mirror 
T_mod_edge_width 
T_mod_text_size 
T_mod_text_width 
T_mode 
T_model 
T_module 
T_net 
T_net_class 
T_net_name 
T_nets 
T_no 
T_no_connects 
T_none 
T_not_allowed 
T_np_thru_hole 
T_offset 
T_oval 
T_pad 
T_pad_drill 
T_pad_size 
T_pad_to_mask_clearance 
T_pad_to_paste_clearance 
T_pad_to_paste_clearance_ratio 
T_pads 
T_page 
T_path 
T_pcb_text_size 
T_pcb_text_width 
T_pcbplotparams 
T_placed 
T_plus 
T_polygon 
T_portrait 
T_priority 
T_pts 
T_radius 
T_rect 
T_rect_delta 
T_reference 
T_rev 
T_right 
T_rotate 
T_roundrect 
T_roundrect_rratio 
T_scale 
T_segment 
T_segment_width 
T_setup 
T_size 
T_smd 
T_smoothing 
T_solder_mask_margin 
T_solder_mask_min_width 
T_solder_paste_margin 
T_solder_paste_margin_ratio 
T_solder_paste_ratio 
T_start 
T_status 
T_tags 
T_target 
T_tedit 
T_thermal_bridge_width 
T_thermal_gap 
T_thermal_width 
T_thickness 
T_thru 
T_thru_hole 
T_thru_hole_only 
T_title 
T_title_block 
T_top 
T_trace_clearance 
T_trace_min 
T_trace_width 
T_tracks 
T_trapezoid 
T_tstamp 
T_user 
T_user_trace_width 
T_user_via 
T_uvia_dia 
T_uvia_drill 
T_uvia_min_drill 
T_uvia_min_size 
T_uvia_size 
T_uvias_allowed 
T_value 
T_version 
T_via 
T_via_dia 
T_via_drill 
T_via_min_drill 
T_via_min_size 
T_via_size 
T_vias 
T_virtual 
T_visible_elements 
T_width 
T_x 
T_xy 
T_xyz 
T_yes 
T_zone 
T_zone_45_only 
T_zone_clearance 
T_zone_connect 
T_zone_type 
T_zones 

Definition at line 26 of file pcb_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_add_net = 0,
43  T_allowed,
44  T_angle,
45  T_arc,
47  T_area,
48  T_arrow1a,
49  T_arrow1b,
50  T_arrow2a,
51  T_arrow2b,
52  T_at,
53  T_attr,
57  T_blind,
59  T_bold,
60  T_bottom,
61  T_center,
62  T_chamfer,
63  T_circle,
65  T_comment,
66  T_company,
67  T_connect,
70  T_crossbar,
71  T_date,
72  T_descr,
77  T_drawings,
78  T_drill,
79  T_edge,
81  T_effects,
82  T_end,
83  T_feature1,
84  T_feature2,
85  T_fill,
88  T_fillet,
89  T_font,
90  T_fp_arc,
92  T_fp_curve,
93  T_fp_line,
94  T_fp_poly,
95  T_fp_text,
96  T_full,
97  T_general,
98  T_gr_arc,
100  T_gr_curve,
101  T_gr_line,
102  T_gr_poly,
103  T_gr_text,
105  T_hatch,
106  T_hide,
107  T_italic,
108  T_justify,
109  T_keepout,
110  T_kicad_pcb,
112  T_layer,
113  T_layers,
114  T_left,
115  T_links,
116  T_locked,
117  T_micro,
119  T_mirror,
123  T_mode,
124  T_model,
125  T_module,
126  T_net,
127  T_net_class,
128  T_net_name,
129  T_nets,
130  T_no,
132  T_none,
135  T_offset,
136  T_oval,
137  T_pad,
138  T_pad_drill,
139  T_pad_size,
143  T_pads,
144  T_page,
145  T_path,
149  T_placed,
150  T_plus,
151  T_polygon,
152  T_portrait,
153  T_priority,
154  T_pts,
155  T_radius,
156  T_rect,
157  T_rect_delta,
158  T_reference,
159  T_rev,
160  T_right,
161  T_rotate,
162  T_roundrect,
164  T_scale,
165  T_segment,
167  T_setup,
168  T_size,
169  T_smd,
170  T_smoothing,
176  T_start,
177  T_status,
178  T_tags,
179  T_target,
180  T_tedit,
184  T_thickness,
185  T_thru,
186  T_thru_hole,
188  T_title,
190  T_top,
192  T_trace_min,
194  T_tracks,
195  T_trapezoid,
196  T_tstamp,
197  T_user,
199  T_user_via,
200  T_uvia_dia,
201  T_uvia_drill,
204  T_uvia_size,
206  T_value,
207  T_version,
208  T_via,
209  T_via_dia,
210  T_via_drill,
213  T_via_size,
214  T_vias,
215  T_virtual,
217  T_width,
218  T_x,
219  T_xy,
220  T_xyz,
221  T_yes,
222  T_zone,
226  T_zone_type,
227  T_zones
228  };