Open Source & Linux Lab

It's better when it's simple

User Tools

Site Tools


etc:users:jcmvbkbc:isl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
etc:users:jcmvbkbc:isl [2010/08/23 00:58] – + derived interface jcmvbkbcetc:users:jcmvbkbc:isl [2016/08/08 20:53] (current) – ↷ Page moved from users:jcmvbkbc:isl to etc:users:jcmvbkbc:isl kel
Line 2: Line 2:
  
 [[http://jcmvbkbc.spb.ru/git/?p=dumb/isl.git;a=summary | Git repo (http)]] [[http://jcmvbkbc.spb.ru/git/?p=dumb/isl.git;a=summary | Git repo (http)]]
 +
 +[[http://jcmvbkbc.spb.ru:8000/isle/trac | Project tracker]]
  
 ===== Orthogonal aspects ===== ===== Orthogonal aspects =====
Line 56: Line 58:
  
 When the header is absent Param1 corresponds to the trailer. If there's no trailer, its parameter number corresponds to the signal data. When the header is absent Param1 corresponds to the trailer. If there's no trailer, its parameter number corresponds to the signal data.
 +
 +Interfaces visible from root package, not referenced from other interfaces visible from root package get translated to pack/unpack.
  
 ===== Decoding context ===== ===== Decoding context =====
Line 133: Line 137:
   * every pack/unpack message has corresponding messagetype;   * every pack/unpack message has corresponding messagetype;
   * header and trailer follow the rules for fields;   * header and trailer follow the rules for fields;
 +  * message types are all different;
  
 ==== Field/Message ==== ==== Field/Message ====
   * types of subfields are visible, parameterized types has required arguments;   * types of subfields are visible, parameterized types has required arguments;
   * field names are unique in each field contents scope;   * field names are unique in each field contents scope;
 +  * no cyclic dependencies of fields/messages (mt does not allow it);
 +    * however, even with the current naming rules there may be cyclic dependencies in optional_repeated parts and inside case constructs;
 +    * generally every optional parts and case content may have cyclic dependencies;
 +
 +==== Constants ====
 +  * expression in constant's definition may only refer to other constants and literals;
 +  * constants may not have recursive definition;
  
 ===== Language features ===== ===== Language features =====
Line 171: Line 183:
     * it treats root package differently than named packages;     * it treats root package differently than named packages;
     * sibling packages don't merge and don't collide, one defined later is effective, others are ignored;     * sibling packages don't merge and don't collide, one defined later is effective, others are ignored;
 +
  
 ===== Naming for C output ===== ===== Naming for C output =====
Line 176: Line 189:
 There are two generic rules: There are two generic rules:
   * type names are generated with suffix '_t' added to the base name;   * type names are generated with suffix '_t' added to the base name;
-  * when there's only one subfield in the field/message/... it gets reduced, like there's no container structure. Subfield gets basic name of its container.+  * when there's only one subfield in the field it gets reduced, like there's no container structure. Subfield gets basic name of its container
 +    * 'one subfield' is literally one subfield. Presence of the special-purpose subfields that would not get into the structure or constant fillers cancels reduction.
  
 ==== Field/message type ==== ==== Field/message type ====
Line 233: Line 247:
  
 Ex: see case.pdu Ex: see case.pdu
 +
 +===== Schedule =====
 +  * finalize naming for the following items:
 +    * exported constants;
 +    * cases;
 +    * ranges;
 +    * arrays of primitive types;
 +    * strings;
 +    * interfaces, derived and nested;
 +    * ?
 +  * separate compiler frontend and backend;
 +  * implement validators;
 +  * implement pack/unpack;
 +    * interfaces;
 +    * optional/mandatory;
 +    * alignment;
 +    * type instantiation and deep referencing;
 +  * test;
 +  * presentation;
etc/users/jcmvbkbc/isl.1282510704.txt.gz · Last modified: 2010/08/23 00:58 (external edit)