.kicad_sym documentation clarification

On the developer documentation reference the grammar suggests that symbols are hierarchical :

  (symbol
    "LIBRARY_ID" | "UNIT_ID"                                    
    [(extends "LIBRARY_ID")]                                    
    [(pin_numbers hide)]                                        
    [(pin_names [(offset OFFSET)] hide)]                        
    (in_bom yes | no)                                           
    (on_board yes | no)                                         
    SYMBOL_PROPERTIES...                                        
    GRAPHIC_ITEMS...                                            
    PINS...                                                     
    UNITS...                                                    
  )

Where UNITS would be child (symbol ... ) expressions, including all the required data (in_bom, on_board) and optional parameters (pin_numbers_hide, etc). In practice however it looks like actual .kicad_sym files do not have this restrict for child units of a symbol definition, and top level definitions do not contain the PINS or GRAPHICS_ITEMS, while child units do not contain sub-units.

Can anyone clarify what the distinction between top-level and child symbol units are in the source files? I think it should be something like this :

Top Level Symbols
------------------

(symbol 
  "LIBRARY_ID"
  [(extends "LIBRARY_ID")
  [(pin_numbers_hide hide)]
  [(pin_names [(offset OFFSET)] hide)]
  (in_bom yes | no)
  (on_board yes | no)
  SYMBOL_PROPERTIES
  UNITS
)

Child Symbol Units
-------------------

(symbol 
  "UNIT_ID"
  GRAPHIC_ITEMS
  PINS
)

Is that accurate?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.