Zhang Weiwu writes:
- is there a module that introduces a new syntax, from which I could
observe how that is done?
- Is there any document on what-to-be-aware-of if you design a new syntax?
servers/slapd/schema_init.c documents how to write syntaxes and matching rules, and defines most built-ins. If it's unclear, please tell how to improve the doc. servers/slapd/overlays/accesslog.c defines its own syntax. contrib/slapd-modules/passwd/radius.c is a small module you can see for general module setup.
Do I need to design a new syntax at all? My requirement is the following:
I need a new syntax for ranged-values. Examples are:
- netWeight: 12~13kg
- ISOSensitivity: 800~1600
- heightAdjustableRange: 1.2m~1.5m
The spec of ranged-value is a numeric, optionally followed by a measurement unit, followed by a tild as seperator+, followed by another measurement.
LDAP syntaxes often use '$' or '#' as separators, but it's up to you. See e.g. RFC 4517 3.3.28 Postal Address, 3.3.21 Name and Optional UID.
The syntax needs its own comparison rules, so that you can filter a range, and get entries who offer values ranging in that range.
Then you need a syntax and matching rule(s) for it.