Belle II Software  release-05-02-19
nsmparse.h
1 
2 #ifndef __nsmparse_h__
3 #define __nsmparse_h__
4 
5 #if defined(__cplusplus)
6 extern "C" {
7 #endif
8 #if defined(__dummy_close_bracket_to_cheat_emacs_auto_indent)
9 }
10 #endif
11 
12 /* NSMparse */
14  /* type is encoded in a char ---
15  'c': int8_t, 's': int16_t, 'i': int32_t, 'l': int64_t,
16  'C': uint8_t, 'S': uint16_t, 'I': uint16_t, 'L': uint64_t,
17  'f': float, 'd': double, '(': nested-begin, ')' nested-end
18 
19  nested-begin has NSMparse entry with type = 0,
20  size = (sizeof(nested)/sizeof(nested[0])) of nested struct,
21  offset = start of nested, name = ""
22  */
23  char type;
24  char name[256];
25  int size; /* of array */
26  int bytes; /* of this type */
27  int offset; /* from the beginning */
28  struct NSMparse_struct* next;
29 };
30 
31 #ifndef __nsm2_typedef_parse__
32 #define __nsm2_typedef_parse__
33 typedef struct NSMparse_struct NSMparse;
34 #endif /* nsm2_typedef_parse */
35 
36 NSMparse* nsmlib_parsefile(const char* datname, int revision,
37  const char* incpath, char* fmtstr, int* revisionp);
38 void nsmlib_parsefree(NSMparse*);
39 const char* nsmlib_parseerr(int* code);
40 
41 #if defined(__dummy_open_bracket_to_cheat_emacs_auto_indent)
42 __dummy_open_bracket_to_cheat_emacs_auto_indent {
43 #endif
44 #if defined(__cplusplus)
45 }
46 #endif
47 
48 #endif /* __nsmparse_h__ */
NSMparse_struct
Definition: nsmparse.h:13