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_anchor, 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_convexhull,
  T_copperpour, T_crossbar, T_custom, 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_options, T_outline, 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_primitives,
  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_anchor 
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_convexhull 
T_copperpour 
T_crossbar 
T_custom 
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_options 
T_outline 
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_primitives 
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_anchor,
45  T_angle,
46  T_arc,
48  T_area,
49  T_arrow1a,
50  T_arrow1b,
51  T_arrow2a,
52  T_arrow2b,
53  T_at,
54  T_attr,
58  T_blind,
60  T_bold,
61  T_bottom,
62  T_center,
63  T_chamfer,
64  T_circle,
66  T_comment,
67  T_company,
68  T_connect,
72  T_crossbar,
73  T_custom,
74  T_date,
75  T_descr,
80  T_drawings,
81  T_drill,
82  T_edge,
84  T_effects,
85  T_end,
86  T_feature1,
87  T_feature2,
88  T_fill,
91  T_fillet,
92  T_font,
93  T_fp_arc,
95  T_fp_curve,
96  T_fp_line,
97  T_fp_poly,
98  T_fp_text,
99  T_full,
100  T_general,
101  T_gr_arc,
102  T_gr_circle,
103  T_gr_curve,
104  T_gr_line,
105  T_gr_poly,
106  T_gr_text,
108  T_hatch,
109  T_hide,
110  T_italic,
111  T_justify,
112  T_keepout,
113  T_kicad_pcb,
115  T_layer,
116  T_layers,
117  T_left,
118  T_links,
119  T_locked,
120  T_micro,
122  T_mirror,
126  T_mode,
127  T_model,
128  T_module,
129  T_net,
130  T_net_class,
131  T_net_name,
132  T_nets,
133  T_no,
135  T_none,
138  T_offset,
139  T_options,
140  T_outline,
141  T_oval,
142  T_pad,
143  T_pad_drill,
144  T_pad_size,
148  T_pads,
149  T_page,
150  T_path,
154  T_placed,
155  T_plus,
156  T_polygon,
157  T_portrait,
158  T_primitives,
159  T_priority,
160  T_pts,
161  T_radius,
162  T_rect,
163  T_rect_delta,
164  T_reference,
165  T_rev,
166  T_right,
167  T_rotate,
168  T_roundrect,
170  T_scale,
171  T_segment,
173  T_setup,
174  T_size,
175  T_smd,
176  T_smoothing,
182  T_start,
183  T_status,
184  T_tags,
185  T_target,
186  T_tedit,
190  T_thickness,
191  T_thru,
192  T_thru_hole,
194  T_title,
196  T_top,
198  T_trace_min,
200  T_tracks,
201  T_trapezoid,
202  T_tstamp,
203  T_user,
205  T_user_via,
206  T_uvia_dia,
207  T_uvia_drill,
210  T_uvia_size,
212  T_value,
213  T_version,
214  T_via,
215  T_via_dia,
216  T_via_drill,
219  T_via_size,
220  T_vias,
221  T_virtual,
223  T_width,
224  T_x,
225  T_xy,
226  T_xyz,
227  T_yes,
228  T_zone,
232  T_zone_type,
233  T_zones
234  };