1 ///////////////////////////////////////////////////////////////////////////////
2 // Copyright (c) 2000-2014 Ericsson Telecom AB
3 // All rights reserved. This program and the accompanying materials
4 // are made available under the terms of the Eclipse Public License v1.0
5 // which accompanies this distribution, and is available at
6 // http://www.eclipse.org/legal/epl-v10.html
7 ///////////////////////////////////////////////////////////////////////////////
11 #define XDEFUNSIGNED 1
27 #define XDEFDEFAULT -1
31 int bitorder
; /* Invert bitorder of the encoded data */
34 typedef enum { MANDATORY_FIELD
, OPTIONAL_FIELD
, UNION_FIELD
35 } rawAST_coding_field_type
;
39 const char* nthfieldname
;
40 rawAST_coding_field_type fieldtype
;
42 const char* typedescr
;
43 }rawAST_coding_fields
;
47 rawAST_coding_fields
* fields
;
50 int temporal_variable_index
;
51 }rawAST_coding_field_list
;
54 const char* fieldName
;
57 rawAST_coding_field_list
* fields
;
58 }rawAST_coding_taglist
;
62 rawAST_coding_taglist
* list
;
63 }rawAST_coding_taglist_list
;
69 }rawAST_coding_ext_group
;
74 int byteorder
; /* XDEFMSB, XDEFLSB */
75 int align
; /* XDEFLEFT, XDEFRIGHT */
76 int bitorderinfield
; /* XDEFMSB, XDEFLSB */
77 int bitorderinoctet
; /* XDEFMSB, XDEFLSB */
78 int extension_bit
; /* XDEFYES, XDEFNO
79 can be used for record fields:
80 variant (field1) EXTENSION_BIT(use)*/
82 rawAST_coding_ext_group
* ext_bit_groups
;
83 int hexorder
; /* XDEFLOW, XDEFHIGH */
84 int padding
; /* XDEFYES: next field starts at next octet */
85 int fieldorder
; /* XDEFMSB, XDEFLSB */
87 int *lengthto
; /* list of fields to generate length for */
88 int pointerto
; /* pointer to the specified field is contained
90 int ptrunit
; /* number of bits in pointerto value */
91 int ptroffset
; /* offset to the pointer value in bits
92 Actual position will be:
93 pointerto*ptrunit + ptroffset */
95 int unit
; /* number of bits in an unit */
96 rawAST_coding_fields
*lengthindex
; /* stores subattribute of the lengthto
98 rawAST_coding_taglist_list taglist
;
99 rawAST_coding_taglist_list crosstaglist
; /* field IDs in form of
100 [unionField.sub]field_N,
101 keyField.subfield_M = tagValue
102 multiple tagValues may be specified */
103 rawAST_coding_taglist presence
; /* Presence indicator expressions for an
106 rawAST_toplevel toplevel
; /* Toplevel attributes */
107 int union_member_num
;
108 const char **member_name
;
110 int length
; /* used only for record fields: the length of the
111 field measured in bits, it is set to -1 if
122 indent-tabs-mode: nil