lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame^] | 1 | objects.txt syntax |
| 2 | ------------------ |
| 3 | |
| 4 | To cover all the naming hacks that were previously in objects.h needed some |
| 5 | kind of hacks in objects.txt. |
| 6 | |
| 7 | The basic syntax for adding an object is as follows: |
| 8 | |
| 9 | 1 2 3 4 : shortName : Long Name |
| 10 | |
| 11 | If Long Name contains only word characters and hyphen-minus |
| 12 | (0x2D) or full stop (0x2E) then Long Name is used as basis |
| 13 | for the base name in C. Otherwise, the shortName is used. |
| 14 | |
| 15 | The base name (let's call it 'base') will then be used to |
| 16 | create the C macros SN_base, LN_base, NID_base and OBJ_base. |
| 17 | |
| 18 | Note that if the base name contains spaces, dashes or periods, |
| 19 | those will be converted to underscore. |
| 20 | |
| 21 | Then there are some extra commands: |
| 22 | |
| 23 | !Alias foo 1 2 3 4 |
| 24 | |
| 25 | This just makes a name foo for an OID. The C macro |
| 26 | OBJ_foo will be created as a result. |
| 27 | |
| 28 | !Cname foo |
| 29 | |
| 30 | This makes sure that the name foo will be used as base name |
| 31 | in C. |
| 32 | |
| 33 | !module foo |
| 34 | 1 2 3 4 : shortName : Long Name |
| 35 | !global |
| 36 | |
| 37 | The !module command was meant to define a kind of modularity. |
| 38 | What it does is to make sure the module name is prepended |
| 39 | to the base name. !global turns this off. This construction |
| 40 | is not recursive. |
| 41 | |
| 42 | Lines starting with # are treated as comments, as well as any line starting |
| 43 | with ! and not matching the commands above. |
| 44 | |