'/*\n * "Copyright (c) 2008 The Regents of the University  of California.\n * All rights reserved."\n *\n * Permission to use, copy, modify, and distribute this software and its\n * documentation for any purpose, without fee, and without written agreement is\n * hereby granted, provided that the above copyright notice, the following\n * two paragraphs and the author appear in all copies of this software.\n *\n * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR\n * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT\n * OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF\n * CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n *\n * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,\n * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY\n * AND FITNESS FOR A PARTICULAR PURPOSE.  THE SOFTWARE PROVIDED HEREUNDER IS\n * ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO\n * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS."\n *\n */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/blip-tinyos-includes.h>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/6lowpan.h>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/lib6lowpan.h>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/ip.h>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/in_cksum.h>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/ip_malloc.h>' Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"blip_printf.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"IPDispatch.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"BlipStatistics.h"' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'"table.h"'   Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'/*\n * Provides IP layer reception to applications on motes.\n *\n * @author Stephen Dawson-Haggerty <stevedh@cs.berkeley.edu>\n */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'module'      Keyword
' '           Text.Whitespace
'IPDispatchP' Name
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'provides'    Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'SplitControl' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'// interface for protocols not requiring special hand-holding\n' Comment.Single

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'IPLower'     Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'BlipStatistics' Name
'<'           Operator
'ip_statistics_t' Name
'>'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'uses'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Boot'        Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* link-layer wiring */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'SplitControl' Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'RadioControl' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Packet'      Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'BarePacket'  Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Send'        Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'Ieee154Send' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Receive'     Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'Ieee154Receive' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* context lookup */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'NeighborDiscovery' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'ReadLqi'     Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'PacketLink'  Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'LowPowerListening' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* buffers for outgoing fragments */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Pool'        Name
'<'           Operator
'message_t'   Name
'>'           Operator
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'FragPool'    Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Pool'        Name
'<'           Operator
'struct'      Keyword
' '           Text.Whitespace
'send_info'   Name.Class
'>'           Operator
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'SendInfoPool' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Pool'        Name
'<'           Operator
'struct'      Keyword
' '           Text.Whitespace
'send_entry'  Name.Class
'>'           Operator
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'SendEntryPool' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Queue'       Name
'<'           Operator
'struct'      Keyword
' '           Text.Whitespace
'send_entry'  Name.Class
' '           Text.Whitespace
'*'           Operator
'>'           Operator
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'SendQueue'   Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* expire reconstruction */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Timer'       Name
'<'           Operator
'TMilli'      Name
'>'           Operator
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'ExpireTimer' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Leds'        Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'provides'    Keyword
' '           Text.Whitespace
'interface'   Keyword
' '           Text.Whitespace
'Init'        Name
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
' '           Text.Whitespace
'implementation' Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'define HAVE_LOWPAN_EXTERN_MATCH_CONTEXT' Comment.Preproc
'\n'          Comment.Preproc

'int'         Keyword.Type
' '           Text.Whitespace
'lowpan_extern_read_context' Name.Function
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'in6_addr'    Name.Class
' '           Text.Whitespace
'*'           Operator
'addr'        Name
','           Punctuation
' '           Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'context'     Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'NeighborDiscovery' Name
'.'           Punctuation
'getContext'  Name
'('           Punctuation
'context'     Name
','           Punctuation
' '           Text.Whitespace
'addr'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'int'         Keyword.Type
' '           Text.Whitespace
'lowpan_extern_match_context' Name.Function
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'in6_addr'    Name.Class
' '           Text.Whitespace
'*'           Operator
'addr'        Name
','           Punctuation
' '           Text.Whitespace
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'*'           Operator
'ctx_id'      Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'NeighborDiscovery' Name
'.'           Punctuation
'matchContext' Name
'('           Punctuation
'addr'        Name
','           Punctuation
' '           Text.Whitespace
'ctx_id'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
"// generally including source files like this is a no-no.  I'm doing\n" Comment.Single

'  '          Text.Whitespace
'// this in the hope that the optimizer will do a better job when\n' Comment.Single

'  '          Text.Whitespace
"// they're part of a component.\n" Comment.Single

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/ieee154_header.c>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/lib6lowpan.c>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/lib6lowpan_4944.c>' Comment.PreprocFile
'\n'          Comment.Preproc

'#'           Comment.Preproc
'include'     Comment.Preproc
' '           Text.Whitespace
'<lib6lowpan/lib6lowpan_frag.c>' Comment.PreprocFile
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'  '          Text.Whitespace
'enum'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'S_RUNNING'   Name
','           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'S_STOPPED'   Name
','           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'S_STOPPING'  Name
','           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'state'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'S_STOPPED'   Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'bool'        Keyword.Type
' '           Text.Whitespace
'radioBusy'   Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'current_local_label' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'ip_statistics_t' Name
' '           Text.Whitespace
'stats'       Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'// this in theory could be arbitrarily large; however, it needs to\n' Comment.Single

'  '          Text.Whitespace
'// be large enough to hold all active reconstructions, and any tags\n' Comment.Single

'  '          Text.Whitespace
"// which we are dropping.  It's important to keep dropped tags\n" Comment.Single

'  '          Text.Whitespace
'// around for a while, or else there are pathological situations\n' Comment.Single

'  '          Text.Whitespace
'// where you continually allocate buffers for packets which will\n' Comment.Single

'  '          Text.Whitespace
'// never complete.\n' Comment.Single

'\n'          Text.Whitespace

'  '          Text.Whitespace
'////////////////////////////////////////\n' Comment.Single

'  '          Text.Whitespace
'//\n'        Comment.Single

'  '          Text.Whitespace
'//\n'        Comment.Single

'\n'          Text.Whitespace

'  '          Text.Whitespace
'table_t'     Name
' '           Text.Whitespace
'recon_cache' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'// table of packets we are currently receiving fragments from, that\n' Comment.Single

'  '          Text.Whitespace
'// are destined to us\n' Comment.Single

'  '          Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'recon_data'  Name
'['           Punctuation
'N_RECONSTRUCTIONS' Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'//\n'        Comment.Single

'  '          Text.Whitespace
'//\n'        Comment.Single

'  '          Text.Whitespace
'////////////////////////////////////////\n' Comment.Single

'\n'          Text.Whitespace

'  '          Text.Whitespace
'// task void sendTask();\n' Comment.Single

'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'reconstruct_clear' Name.Function
'('           Punctuation
'void'        Keyword.Type
' '           Text.Whitespace
'*'           Operator
'ent'         Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
'recon'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'ent'         Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'memclr'      Name
'('           Punctuation
'('           Punctuation
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'&'           Operator
'recon'       Name
'-'           Operator
'>'           Operator
'r_meta'      Name
','           Punctuation
' '           Text.Whitespace
'sizeof'      Keyword
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'ip6_metadata' Name.Class
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_UNUSED'    Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'send_info'   Name.Class
' '           Text.Whitespace
'*'           Operator
'getSendInfo' Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'send_info'   Name.Class
' '           Text.Whitespace
'*'           Operator
'ret'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendInfoPool' Name
'.'           Punctuation
'get'         Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'ret'         Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'ret'         Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ret'         Name
'-'           Operator
'>'           Operator
'_refcount'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ret'         Name
'-'           Operator
'>'           Operator
'upper_data'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ret'         Name
'-'           Operator
'>'           Operator
'failed'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'FALSE'       Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ret'         Name
'-'           Operator
'>'           Operator
'link_transmissions' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ret'         Name
'-'           Operator
'>'           Operator
'link_fragments' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ret'         Name
'-'           Operator
'>'           Operator
'link_fragment_attempts' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'ret'         Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'define SENDINFO_INCR(X) ((X)->_refcount)++' Comment.Preproc
'\n'          Comment.Preproc

'void'        Keyword.Type
' '           Text.Whitespace
'SENDINFO_DECR' Name
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'send_info'   Name.Class
' '           Text.Whitespace
'*'           Operator
'si'          Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'-'           Operator
'-'           Operator
'('           Punctuation
'si'          Name
'-'           Operator
'>'           Operator
'_refcount'   Name
')'           Punctuation
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendInfoPool' Name
'.'           Punctuation
'put'         Name
'('           Punctuation
'si'          Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'command'     Keyword
' '           Text.Whitespace
'error_t'     Name
' '           Text.Whitespace
'SplitControl' Name
'.'           Punctuation
'start'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'RadioControl' Name
'.'           Punctuation
'start'       Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'command'     Keyword
' '           Text.Whitespace
'error_t'     Name
' '           Text.Whitespace
'SplitControl' Name
'.'           Punctuation
'stop'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'radioBusy'   Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'state'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'S_STOPPED'   Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'RadioControl' Name
'.'           Punctuation
'stop'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
"// if there's a packet in the radio, wait for it to exit before\n" Comment.Single

'      '      Text.Whitespace
'// stopping\n' Comment.Single

'      '      Text.Whitespace
'state'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'S_STOPPING'  Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'SUCCESS'     Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'event'       Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'RadioControl' Name
'.'           Punctuation
'startDone'   Name
'('           Punctuation
'error_t'     Name
' '           Text.Whitespace
'error'       Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifdef LPL_SLEEP_INTERVAL' Comment.Preproc
'\n'          Comment.Preproc

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'LowPowerListening' Name
'.'           Punctuation
'setLocalWakeupInterval' Name
'('           Punctuation
'LPL_SLEEP_INTERVAL' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'error'       Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'SUCCESS'     Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'Leds'        Name
'.'           Punctuation
'led2Toggle'  Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'ExpireTimer' Name
'.'           Punctuation
'startPeriodic' Name
'('           Punctuation
'FRAG_EXPIRE_TIME' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'state'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'S_RUNNING'   Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'radioBusy'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'FALSE'       Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'signal'      Keyword
' '           Text.Whitespace
'SplitControl' Name
'.'           Punctuation
'startDone'   Name
'('           Punctuation
'error'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'event'       Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'RadioControl' Name
'.'           Punctuation
'stopDone'    Name
'('           Punctuation
'error_t'     Name
' '           Text.Whitespace
'error'       Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'signal'      Keyword
' '           Text.Whitespace
'SplitControl' Name
'.'           Punctuation
'stopDone'    Name
'('           Punctuation
'error'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'command'     Keyword
' '           Text.Whitespace
'error_t'     Name
' '           Text.Whitespace
'Init'        Name
'.'           Punctuation
'init'        Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'// ip_malloc_init needs to be in init, not booted, because\n' Comment.Single

'    '        Text.Whitespace
'// context for coap is initialised in init\n' Comment.Single

'    '        Text.Whitespace
'ip_malloc_init' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'SUCCESS'     Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'event'       Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'Boot'        Name
'.'           Punctuation
'booted'      Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'BlipStatistics' Name
'.'           Punctuation
'clear'       Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* set up our reconstruction cache */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'table_init'  Name
'('           Punctuation
'&'           Operator
'recon_cache' Name
','           Punctuation
' '           Text.Whitespace
'recon_data'  Name
','           Punctuation
' '           Text.Whitespace
'sizeof'      Keyword
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'N_RECONSTRUCTIONS' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'table_map'   Name
'('           Punctuation
'&'           Operator
'recon_cache' Name
','           Punctuation
' '           Text.Whitespace
'reconstruct_clear' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SplitControl' Name
'.'           Punctuation
'start'       Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/*\n   *  Receive-side code.\n   */' Comment.Multiline
' '           Text.Whitespace
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'deliver'     Name
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
'recon'       Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'ip6_hdr'     Name.Class
' '           Text.Whitespace
'*'           Operator
'iph'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'ip6_hdr'     Name.Class
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf("deliver [%i]: ", recon->r_bytes_rcvd);\n' Comment.Single

'    '        Text.Whitespace
'// printf_buf(recon->r_buf, recon->r_bytes_rcvd);\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* the payload length field is always compressed, have to put it back here */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'iph'         Name
'-'           Operator
'>'           Operator
'ip6_plen'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'htons'       Name
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_bytes_rcvd' Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'sizeof'      Keyword
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'ip6_hdr'     Name.Class
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'signal'      Keyword
' '           Text.Whitespace
'IPLower'     Name
'.'           Punctuation
'recv'        Name
'('           Punctuation
'iph'         Name
','           Punctuation
' '           Text.Whitespace
'('           Punctuation
'void'        Keyword.Type
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'('           Punctuation
'iph'         Name
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'recon'       Name
'-'           Operator
'>'           Operator
'r_meta'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf("ip_free(%p)\\n", recon->r_buf);\n' Comment.Single

'    '        Text.Whitespace
'ip_free'     Name
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_UNUSED'    Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
"/*\n   * Bulletproof recovery logic is very important to make sure we\n   * don't get wedged with no free buffers.\n   * \n   * The table is managed as follows:\n   *  - unused entries are marked T_UNUSED\n   *  - entries which \n   *     o have a buffer allocated\n   *     o have had a fragment reception before we fired\n   *     are marked T_ACTIVE\n   *  - entries which have not had a fragment reception during the last timer period\n   *     and were active are marked T_ZOMBIE\n   *  - zombie receptions are deleted: their buffer is freed and table entry marked unused.\n   *  - when a fragment is dropped, it is entered into the table as T_FAILED1.\n   *     no buffer is allocated\n   *  - when the timer fires, T_FAILED1 entries are aged to T_FAILED2.\n   * - T_FAILED2 entries are deleted.  Incomming fragments with tags\n   *     that are marked either FAILED1 or FAILED2 are dropped; this\n   *     prevents us from allocating a buffer for a packet which we\n   *     have already dropped fragments from.\n   *\n   */" Comment.Multiline
' '           Text.Whitespace
'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'reconstruct_age' Name
'('           Punctuation
'void'        Keyword.Type
' '           Text.Whitespace
'*'           Operator
'elt'         Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
'recon'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'elt'         Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'T_UNUSED'    Name
')'           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'      '      Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'recon src: 0x%x tag: 0x%x buf: %p recvd: %i/%i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'                 ' Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_source_key' Name
','           Punctuation
' '           Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_tag'       Name
','           Punctuation
' '           Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
','           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'                 ' Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_bytes_rcvd' Name
','           Punctuation
' '           Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_size'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'switch'      Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'case'        Keyword
' '           Text.Whitespace
'T_ACTIVE'    Name.Constant
':'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_ZOMBIE'    Name
';'           Punctuation
' '           Text.Whitespace
'break'       Keyword
';'           Punctuation
' '           Text.Whitespace
'// age existing receptions\n' Comment.Single

'    '        Text.Whitespace
'case'        Keyword
' '           Text.Whitespace
'T_FAILED1'   Name.Constant
':'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_FAILED2'   Name
';'           Punctuation
' '           Text.Whitespace
'break'       Keyword
';'           Punctuation
' '           Text.Whitespace
'// age existing receptions\n' Comment.Single

'    '        Text.Whitespace
'case'        Keyword
' '           Text.Whitespace
'T_ZOMBIE'    Name.Constant
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'case'        Keyword
' '           Text.Whitespace
'T_FAILED2'   Name.Constant
':'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'// deallocate the space for reconstruction\n' Comment.Single

'      '      Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'timing out buffer: src: %i tag: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_source_key' Name
','           Punctuation
' '           Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_tag'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'ip_free(%p)' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ip_free'     Name
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_UNUSED'    Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'break'       Keyword
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ip_print_heap' Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifdef PRINTFUART_ENABLED' Comment.Preproc
'\n'          Comment.Preproc

'    '        Text.Whitespace
'bndrt_t'     Name
' '           Text.Whitespace
'*'           Operator
'cur'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'bndrt_t'     Name
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'heap'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'('           Punctuation
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'cur'         Name
')'           Punctuation
'  '          Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'heap'        Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'IP_MALLOC_HEAP_SIZE' Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'printf'      Name
' '           Text.Whitespace
'('           Punctuation
'"'           Literal.String
'heap region start: %p length: %u used: %u' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'                  ' Text.Whitespace
'cur'         Name
','           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'cur'         Name
' '           Text.Whitespace
'&'           Operator
' '           Text.Whitespace
'IP_MALLOC_LEN' Name
')'           Punctuation
','           Punctuation
' '           Text.Whitespace
'('           Punctuation
'*'           Operator
'cur'         Name
' '           Text.Whitespace
'&'           Operator
' '           Text.Whitespace
'IP_MALLOC_INUSE' Name
')'           Punctuation
' '           Text.Whitespace
'>'           Operator
'>'           Operator
' '           Text.Whitespace
'15'          Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'cur'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'bndrt_t'     Name
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'('           Punctuation
'('           Punctuation
'('           Punctuation
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'cur'         Name
')'           Punctuation
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'*'           Operator
'cur'         Name
')'           Punctuation
' '           Text.Whitespace
'&'           Operator
' '           Text.Whitespace
'IP_MALLOC_LEN' Name
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'event'       Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'ExpireTimer' Name
'.'           Punctuation
'fired'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'table_map'   Name
'('           Punctuation
'&'           Operator
'recon_cache' Name
','           Punctuation
' '           Text.Whitespace
'reconstruct_age' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'\n'          Text.Whitespace

'    '        Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'Frag pool size: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'FragPool'    Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'SendInfo pool size: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendInfoPool' Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'SendEntry pool size: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendEntryPool' Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'Forward queue length: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ip_print_heap' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'printfflush' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/*\n   * allocate a structure for recording information about incomming fragments.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
'get_reconstruct' Name
'('           Punctuation
'uint16_t'    Keyword.Type
' '           Text.Whitespace
'key'         Name
','           Punctuation
' '           Text.Whitespace
'uint16_t'    Keyword.Type
' '           Text.Whitespace
'tag'         Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
'ret'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'i'           Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf("get_reconstruct: %x %i\\n", key, tag);\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
' '           Text.Whitespace
'i'           Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'N_RECONSTRUCTIONS' Name
';'           Punctuation
' '           Text.Whitespace
'i'           Name
'+'           Operator
'+'           Operator
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
'recon'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'&'           Operator
'recon_data'  Name
'['           Punctuation
'i'           Name
']'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_tag'       Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'tag'         Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'          '  Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_source_key' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'key'         Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'T_UNUSED'    Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'          '  Text.Whitespace
'\n'          Text.Whitespace

'          '  Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_ACTIVE'    Name
';'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'ret'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'recon'       Name
';'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'done'        Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'        '    Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'T_UNUSED'    Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'// if we have already tried and failed to get a buffer, we\n' Comment.Single

'          '  Text.Whitespace
'// need to drop remaining fragments.\n' Comment.Single

'          '  Text.Whitespace
'ret'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
';'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'done'        Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'T_UNUSED'    Name
')'           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'        '    Text.Whitespace
'ret'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'recon'       Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'done'        Name.Label
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf("got%p\\n", ret);\n' Comment.Single

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'ret'         Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'event'       Keyword
' '           Text.Whitespace
'message_t'   Name
' '           Text.Whitespace
'*'           Operator
'Ieee154Receive' Name
'.'           Punctuation
'receive'     Name
'('           Punctuation
'message_t'   Name
' '           Text.Whitespace
'*'           Operator
'msg'         Name
','           Punctuation
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'*'           Operator
'msg_payload' Name
','           Punctuation
' '           Text.Whitespace
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'len'         Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'packed_lowmsg' Name.Class
' '           Text.Whitespace
'lowmsg'      Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'ieee154_frame_addr' Name.Class
' '           Text.Whitespace
'frame_address' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'*'           Operator
'buf'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'msg_payload' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf(" -- RECEIVE -- len : %i\\n", len);\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'BLIP_STATS_INCR' Name
'('           Punctuation
'stats'       Name
'.'           Punctuation
'rx_total'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* unpack the 802.15.4 address fields */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'buf'         Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'unpack_ieee154_hdr' Name
'('           Punctuation
'msg_payload' Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'frame_address' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'len'         Name
' '           Text.Whitespace
'-'           Operator
'='           Operator
' '           Text.Whitespace
'buf'         Name
' '           Text.Whitespace
'-'           Operator
' '           Text.Whitespace
'('           Punctuation
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'msg_payload' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* unpack and 6lowpan headers */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'lowmsg'      Name
'.'           Punctuation
'data'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'buf'         Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'lowmsg'      Name
'.'           Punctuation
'len'         Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'len'         Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'lowmsg'      Name
'.'           Punctuation
'headers'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'getHeaderBitmap' Name
'('           Punctuation
'&'           Operator
'lowmsg'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'lowmsg'      Name
'.'           Punctuation
'headers'     Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'LOWMSG_NALP' Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'fail'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'hasFrag1Header' Name
'('           Punctuation
'&'           Operator
'lowmsg'      Name
')'           Punctuation
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'hasFragNHeader' Name
'('           Punctuation
'&'           Operator
'lowmsg'      Name
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'// start reassembly\n' Comment.Single

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'rv'          Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'*'           Operator
'recon'       Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'uint16_t'    Keyword.Type
' '           Text.Whitespace
'tag'         Name
','           Punctuation
' '           Text.Whitespace
'source_key'  Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'source_key'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ieee154_hashaddr' Name
'('           Punctuation
'&'           Operator
'frame_address' Name
'.'           Punctuation
'ieee_src'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'getFragDgramTag' Name
'('           Punctuation
'&'           Operator
'lowmsg'      Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'tag'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'get_reconstruct' Name
'('           Punctuation
'source_key'  Name
','           Punctuation
' '           Text.Whitespace
'tag'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'recon'       Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'fail'        Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'/* fill in metadata: on fragmented packets, it applies to the\n         first fragment only  */' Comment.Multiline
'\n'          Text.Whitespace

'      '      Text.Whitespace
'memcpy'      Name
'('           Punctuation
'&'           Operator
'recon'       Name
'-'           Operator
'>'           Operator
'r_meta'      Name
'.'           Punctuation
'sender'      Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'frame_address' Name
'.'           Punctuation
'ieee_src'    Name
','           Punctuation
'\n'          Text.Whitespace

'             ' Text.Whitespace
'sizeof'      Keyword
'('           Punctuation
'ieee154_addr_t' Name
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_meta'      Name
'.'           Punctuation
'lqi'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'ReadLqi'     Name
'.'           Punctuation
'readLqi'     Name
'('           Punctuation
'msg'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_meta'      Name
'.'           Punctuation
'rssi'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'ReadLqi'     Name
'.'           Punctuation
'readRssi'    Name
'('           Punctuation
'msg'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'hasFrag1Header' Name
'('           Punctuation
'&'           Operator
'lowmsg'      Name
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_buf'       Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
' '           Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'fail'        Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'rv'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lowpan_recon_start' Name
'('           Punctuation
'&'           Operator
'frame_address' Name
','           Punctuation
' '           Text.Whitespace
'recon'       Name
','           Punctuation
' '           Text.Whitespace
'buf'         Name
','           Punctuation
' '           Text.Whitespace
'len'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'rv'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lowpan_recon_add' Name
'('           Punctuation
'recon'       Name
','           Punctuation
' '           Text.Whitespace
'buf'         Name
','           Punctuation
' '           Text.Whitespace
'len'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'rv'          Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_FAILED1'   Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'fail'        Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'// printf("start recon buf: %p\\n", recon->r_buf);\n' Comment.Single

'        '    Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_timeout'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'T_ACTIVE'    Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_source_key' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'source_key'  Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_tag'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'tag'         Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'-'           Operator
'>'           Operator
'r_size'      Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'recon'       Name
'-'           Operator
'>'           Operator
'r_bytes_rcvd' Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'deliver'     Name
'('           Punctuation
'recon'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'/* no fragmentation, just deliver it */' Comment.Multiline
'\n'          Text.Whitespace

'      '      Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'rv'          Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_reconstruct' Name.Class
' '           Text.Whitespace
'recon'       Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'/* fill in metadata */' Comment.Multiline
'\n'          Text.Whitespace

'      '      Text.Whitespace
'memcpy'      Name
'('           Punctuation
'&'           Operator
'recon'       Name
'.'           Punctuation
'r_meta'      Name
'.'           Punctuation
'sender'      Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'frame_address' Name
'.'           Punctuation
'ieee_src'    Name
','           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'             ' Text.Whitespace
'sizeof'      Keyword
'('           Punctuation
'ieee154_addr_t' Name
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'.'           Punctuation
'r_meta'      Name
'.'           Punctuation
'lqi'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'ReadLqi'     Name
'.'           Punctuation
'readLqi'     Name
'('           Punctuation
'msg'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'recon'       Name
'.'           Punctuation
'r_meta'      Name
'.'           Punctuation
'rssi'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'ReadLqi'     Name
'.'           Punctuation
'readRssi'    Name
'('           Punctuation
'msg'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'buf'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'getLowpanPayload' Name
'('           Punctuation
'&'           Operator
'lowmsg'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'rv'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lowpan_recon_start' Name
'('           Punctuation
'&'           Operator
'frame_address' Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'recon'       Name
','           Punctuation
' '           Text.Whitespace
'buf'         Name
','           Punctuation
' '           Text.Whitespace
'len'         Name
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'fail'        Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'recon'       Name
'.'           Punctuation
'r_size'      Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'recon'       Name
'.'           Punctuation
'r_bytes_rcvd' Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'deliver'     Name
'('           Punctuation
'&'           Operator
'recon'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'// printf("ip_free(%p)\\n", recon.r_buf);\n' Comment.Single

'        '    Text.Whitespace
'ip_free'     Name
'('           Punctuation
'recon'       Name
'.'           Punctuation
'r_buf'       Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'done'        Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'fail'        Name.Label
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'BLIP_STATS_INCR' Name
'('           Punctuation
'stats'       Name
'.'           Punctuation
'rx_drop'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'done'        Name.Label
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'msg'         Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/*\n   * Send-side functionality\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'task'        Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'sendTask'    Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'send_entry'  Name.Class
' '           Text.Whitespace
'*'           Operator
's_entry'     Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf("sendTask() - sending\\n");\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'radioBusy'   Name
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'state'       Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'S_RUNNING'   Name
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'empty'       Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'// this does not dequeue\n' Comment.Single

'    '        Text.Whitespace
's_entry'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'head'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifdef LPL_SLEEP_INTERVAL' Comment.Preproc
'\n'          Comment.Preproc

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'LowPowerListening' Name
'.'           Punctuation
'setRemoteWakeupInterval' Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
','           Punctuation
'\n'          Text.Whitespace

'            ' Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'LowPowerListening' Name
'.'           Punctuation
'getLocalWakeupInterval' Name
'('           Punctuation
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
'-'           Operator
'>'           Operator
'failed'      Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'dbg'         Name
'('           Punctuation
'"'           Literal.String
'Drops'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'drops: sendTask: dropping failed fragment' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'fail'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'call'        Keyword
' '           Text.Whitespace
'Ieee154Send' Name
'.'           Punctuation
'send'        Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
','           Punctuation
'\n'          Text.Whitespace

'                               ' Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'BarePacket'  Name
'.'           Punctuation
'payloadLength' Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
')'           Punctuation
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'SUCCESS'     Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'dbg'         Name
'('           Punctuation
'"'           Literal.String
'Drops'       Literal.String
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'"'           Literal.String
'drops: sendTask: send failed' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'fail'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'radioBusy'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'TRUE'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'fail'        Name.Label
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'SEND FAIL'   Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'post'        Keyword
' '           Text.Whitespace
'sendTask'    Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'BLIP_STATS_INCR' Name
'('           Punctuation
'stats'       Name
'.'           Punctuation
'tx_drop'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// deallocate the memory associated with this request.\n' Comment.Single

'    '        Text.Whitespace
'// other fragments associated with this packet will get dropped.\n' Comment.Single

'    '        Text.Whitespace
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
'-'           Operator
'>'           Operator
'failed'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'TRUE'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'SENDINFO_DECR' Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'FragPool'    Name
'.'           Punctuation
'put'         Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendEntryPool' Name
'.'           Punctuation
'put'         Name
'('           Punctuation
's_entry'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'dequeue'     Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/*\n   *  it will pack the message into the fragment pool and enqueue\n   *  those fragments for sending\n   *\n   * it will set\n   *  - payload length\n   *  - version, traffic class and flow label\n   *\n   * the source and destination IP addresses must be set by higher\n   * layers.\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'command'     Keyword
' '           Text.Whitespace
'error_t'     Name
' '           Text.Whitespace
'IPLower'     Name
'.'           Punctuation
'send'        Name
'('           Punctuation
'struct'      Keyword
' '           Text.Whitespace
'ieee154_frame_addr' Name.Class
' '           Text.Whitespace
'*'           Operator
'frame_addr'  Name
','           Punctuation
'\n'          Text.Whitespace

'                               ' Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'ip6_packet'  Name.Class
' '           Text.Whitespace
'*'           Operator
'msg'         Name
','           Punctuation
'\n'          Text.Whitespace

'                               ' Text.Whitespace
'void'        Keyword.Type
'  '          Text.Whitespace
'*'           Operator
'data'        Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'lowpan_ctx'  Name.Class
' '           Text.Whitespace
'ctx'         Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'send_info'   Name.Class
'  '          Text.Whitespace
'*'           Operator
's_info'      Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'send_entry'  Name.Class
' '           Text.Whitespace
'*'           Operator
's_entry'     Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'message_t'   Name
' '           Text.Whitespace
'*'           Operator
'outgoing'    Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'int'         Keyword.Type
' '           Text.Whitespace
'frag_len'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'error_t'     Name
' '           Text.Whitespace
'rc'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'SUCCESS'     Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'state'       Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'S_RUNNING'   Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'EOFF'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'/* set version to 6 in case upper layers forgot */' Comment.Multiline
'\n'          Text.Whitespace

'    '        Text.Whitespace
'msg'         Name
'-'           Operator
'>'           Operator
'ip6_hdr'     Name
'.'           Punctuation
'ip6_vfc'     Name
' '           Text.Whitespace
'&'           Operator
'='           Operator
' '           Text.Whitespace
'~'           Operator
'IPV6_VERSION_MASK' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'msg'         Name
'-'           Operator
'>'           Operator
'ip6_hdr'     Name
'.'           Punctuation
'ip6_vfc'     Name
' '           Text.Whitespace
'|'           Operator
'='           Operator
' '           Text.Whitespace
'IPV6_VERSION' Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'ctx'         Name
'.'           Punctuation
'tag'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'current_local_label' Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'ctx'         Name
'.'           Punctuation
'offset'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
's_info'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'getSendInfo' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
's_info'      Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'rc'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ERETRY'      Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'cleanup_outer' Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
's_info'      Name
'-'           Operator
'>'           Operator
'upper_data'  Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'data'        Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'frag_len'    Name
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
's_entry'     Name
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendEntryPool' Name
'.'           Punctuation
'get'         Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'outgoing'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'FragPool'    Name
'.'           Punctuation
'get'         Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
's_entry'     Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
' '           Text.Whitespace
'|'           Operator
'|'           Operator
' '           Text.Whitespace
'outgoing'    Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
's_entry'     Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendEntryPool' Name
'.'           Punctuation
'put'         Name
'('           Punctuation
's_entry'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'outgoing'    Name
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'NULL'        Name.Builtin
')'           Punctuation
'\n'          Text.Whitespace

'          '  Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'FragPool'    Name
'.'           Punctuation
'put'         Name
'('           Punctuation
'outgoing'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'// this will cause any fragments we have already enqueued to\n' Comment.Single

'        '    Text.Whitespace
'// be dropped by the send task.\n' Comment.Single

'        '    Text.Whitespace
's_info'      Name
'-'           Operator
'>'           Operator
'failed'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'TRUE'        Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'drops: IP send: no fragments' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'rc'          Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ERETRY'      Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'done'        Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'BarePacket'  Name
'.'           Punctuation
'clear'       Name
'('           Punctuation
'outgoing'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'frag_len'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'lowpan_frag_get' Name
'('           Punctuation
'call'        Keyword
' '           Text.Whitespace
'Ieee154Send' Name
'.'           Punctuation
'getPayload'  Name
'('           Punctuation
'outgoing'    Name
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
','           Punctuation
'\n'          Text.Whitespace

'                                 ' Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'BarePacket'  Name
'.'           Punctuation
'maxPayloadLength' Name
'('           Punctuation
')'           Punctuation
','           Punctuation
'\n'          Text.Whitespace

'                                 ' Text.Whitespace
'msg'         Name
','           Punctuation
'\n'          Text.Whitespace

'                                 ' Text.Whitespace
'frame_addr'  Name
','           Punctuation
'\n'          Text.Whitespace

'                                 ' Text.Whitespace
'&'           Operator
'ctx'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'frag_len'    Name
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
' get frag error: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'frag_len'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'fragment length: %i offset: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'frag_len'    Name
','           Punctuation
' '           Text.Whitespace
'ctx'         Name
'.'           Punctuation
'offset'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'BarePacket'  Name
'.'           Punctuation
'setPayloadLength' Name
'('           Punctuation
'outgoing'    Name
','           Punctuation
' '           Text.Whitespace
'frag_len'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'frag_len'    Name
' '           Text.Whitespace
'<'           Operator
'='           Operator
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'FragPool'    Name
'.'           Punctuation
'put'         Name
'('           Punctuation
'outgoing'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendEntryPool' Name
'.'           Punctuation
'put'         Name
'('           Punctuation
's_entry'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'done'        Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'enqueue'     Name
'('           Punctuation
's_entry'     Name
')'           Punctuation
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'SUCCESS'     Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'BLIP_STATS_INCR' Name
'('           Punctuation
'stats'       Name
'.'           Punctuation
'encfail'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
's_info'      Name
'-'           Operator
'>'           Operator
'failed'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'TRUE'        Name
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'drops: IP send: enqueue failed' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'done'        Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
's_info'      Name
'-'           Operator
'>'           Operator
'link_fragments' Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'outgoing'    Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
's_info'      Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'/* configure the L2 */' Comment.Multiline
'\n'          Text.Whitespace

'      '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'frame_addr'  Name
'-'           Operator
'>'           Operator
'ieee_dst'    Name
'.'           Punctuation
'ieee_mode'   Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'IEEE154_ADDR_SHORT' Name
' '           Text.Whitespace
'&'           Operator
'&'           Operator
'\n'          Text.Whitespace

'          '  Text.Whitespace
'frame_addr'  Name
'-'           Operator
'>'           Operator
'ieee_dst'    Name
'.'           Punctuation
'i_saddr'     Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'IEEE154_BROADCAST_ADDR' Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'PacketLink'  Name
'.'           Punctuation
'setRetries'  Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
','           Punctuation
' '           Text.Whitespace
'0'           Literal.Number.Integer
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'        '    Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'PacketLink'  Name
'.'           Punctuation
'setRetries'  Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
','           Punctuation
' '           Text.Whitespace
'BLIP_L2_RETRIES' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'PacketLink'  Name
'.'           Punctuation
'setRetryDelay' Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
','           Punctuation
' '           Text.Whitespace
'BLIP_L2_DELAY' Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'      '      Text.Whitespace
'SENDINFO_INCR' Name
'('           Punctuation
's_info'      Name
')'           Punctuation
';'           Punctuation
'}'           Punctuation
'\n'          Text.Whitespace

'       '     Text.Whitespace
'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf("got %i frags\\n", s_info->link_fragments);\n' Comment.Single

'  '          Text.Whitespace
'done'        Name.Label
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'BLIP_STATS_INCR' Name
'('           Punctuation
'stats'       Name
'.'           Punctuation
'sent'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'SENDINFO_DECR' Name
'('           Punctuation
's_info'      Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'post'        Keyword
' '           Text.Whitespace
'sendTask'    Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'cleanup_outer' Name.Label
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'rc'          Name
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'event'       Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'Ieee154Send' Name
'.'           Punctuation
'sendDone'    Name
'('           Punctuation
'message_t'   Name
' '           Text.Whitespace
'*'           Operator
'msg'         Name
','           Punctuation
' '           Text.Whitespace
'error_t'     Name
' '           Text.Whitespace
'error'       Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'struct'      Keyword
' '           Text.Whitespace
'send_entry'  Name.Class
' '           Text.Whitespace
'*'           Operator
's_entry'     Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'head'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'radioBusy'   Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'FALSE'       Name
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'// printf("sendDone: %p %i\\n", msg, error);\n' Comment.Single

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'state'       Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'S_STOPPING'  Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'RadioControl' Name
'.'           Punctuation
'stop'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'state'       Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'S_STOPPED'   Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'goto'        Keyword
' '           Text.Whitespace
'done'        Name
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'\n'          Text.Whitespace

'    '        Text.Whitespace
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
'-'           Operator
'>'           Operator
'link_transmissions' Name
' '           Text.Whitespace
'+'           Operator
'='           Operator
' '           Text.Whitespace
'('           Punctuation
'call'        Keyword
' '           Text.Whitespace
'PacketLink'  Name
'.'           Punctuation
'getRetries'  Name
'('           Punctuation
'msg'         Name
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
'-'           Operator
'>'           Operator
'link_fragment_attempts' Name
'+'           Operator
'+'           Operator
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'call'        Keyword
' '           Text.Whitespace
'PacketLink'  Name
'.'           Punctuation
'wasDelivered' Name
'('           Punctuation
'msg'         Name
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'sendDone: was not delivered! (%i tries)' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
' '           Text.Whitespace
'\n'          Text.Whitespace

'                 ' Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'PacketLink'  Name
'.'           Punctuation
'getRetries'  Name
'('           Punctuation
'msg'         Name
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
'-'           Operator
'>'           Operator
'failed'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'TRUE'        Name
';'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'signal'      Keyword
' '           Text.Whitespace
'IPLower'     Name
'.'           Punctuation
'sendDone'    Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'/*       if (s_entry->info->policy.dest[0] != 0xffff) */' Comment.Multiline
'\n'          Text.Whitespace

'/*         dbg("Drops", "drops: sendDone: frag was not delivered\\n"); */' Comment.Multiline
'\n'          Text.Whitespace

'      '      Text.Whitespace
'// need to check for broadcast frames\n' Comment.Single

'      '      Text.Whitespace
'// BLIP_STATS_INCR(stats.tx_drop);\n' Comment.Single

'    '        Text.Whitespace
'}'           Punctuation
' '           Text.Whitespace
'else'        Keyword
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
'-'           Operator
'>'           Operator
'link_fragment_attempts' Name
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'\n'          Text.Whitespace

'               ' Text.Whitespace
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
'-'           Operator
'>'           Operator
'link_fragments' Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'      '      Text.Whitespace
'signal'      Keyword
' '           Text.Whitespace
'IPLower'     Name
'.'           Punctuation
'sendDone'    Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'done'        Name.Label
':'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'// kill off any pending fragments\n' Comment.Single

'    '        Text.Whitespace
'SENDINFO_DECR' Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'info'        Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'FragPool'    Name
'.'           Punctuation
'put'         Name
'('           Punctuation
's_entry'     Name
'-'           Operator
'>'           Operator
'msg'         Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendEntryPool' Name
'.'           Punctuation
'put'         Name
'('           Punctuation
's_entry'     Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'dequeue'     Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'    '        Text.Whitespace
'post'        Keyword
' '           Text.Whitespace
'sendTask'    Name.Function
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'#if 0'       Comment.Preproc
'\n'          Comment

'  command struct tlv_hdr *IPExtensions.findTlv(struct ip6_ext *ext, uint8_t tlv_val) {\n' Comment

'    int len = ext->len - sizeof(struct ip6_ext);\n' Comment

'    struct tlv_hdr *tlv = (struct tlv_hdr *)(ext + 1);\n' Comment

'    while (len > 0) {\n' Comment

'      if (tlv->type == tlv_val) return tlv;\n' Comment

'      if (tlv->len == 0) return NULL;\n' Comment

'      tlv = (struct tlv_hdr *)(((uint8_t *)tlv) + tlv->len);\n' Comment

'      len -= tlv->len;\n' Comment

'    }\n'     Comment

'    return NULL;\n' Comment

'  }\n'       Comment

'#endif\n'    Comment.Preproc

'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'/*\n   * BlipStatistics interface\n   */' Comment.Multiline
'\n'          Text.Whitespace

'  '          Text.Whitespace
'command'     Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'BlipStatistics' Name
'.'           Punctuation
'get'         Name
'('           Punctuation
'ip_statistics_t' Name
' '           Text.Whitespace
'*'           Operator
'statistics'  Name
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'ifdef BLIP_STATS_IP_MEM' Comment.Preproc
'\n'          Comment.Preproc

'    '        Text.Whitespace
'stats'       Name
'.'           Punctuation
'fragpool'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'FragPool'    Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'stats'       Name
'.'           Punctuation
'sendinfo'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendInfoPool' Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'stats'       Name
'.'           Punctuation
'sendentry'   Name
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendEntryPool' Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'stats'       Name
'.'           Punctuation
'sndqueue'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'call'        Keyword
' '           Text.Whitespace
'SendQueue'   Name
'.'           Punctuation
'size'        Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'stats'       Name
'.'           Punctuation
'heapfree'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ip_malloc_freespace' Name
'('           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'printf'      Name
'('           Punctuation
'"'           Literal.String
'frag: %i sendinfo: %i sendentry: %i sendqueue: %i heap: %i' Literal.String
'\\n'         Literal.String.Escape
'"'           Literal.String
','           Punctuation
'\n'          Text.Whitespace

'               ' Text.Whitespace
'stats'       Name
'.'           Punctuation
'fragpool'    Name
','           Punctuation
'\n'          Text.Whitespace

'               ' Text.Whitespace
'stats'       Name
'.'           Punctuation
'sendinfo'    Name
','           Punctuation
'\n'          Text.Whitespace

'               ' Text.Whitespace
'stats'       Name
'.'           Punctuation
'sendentry'   Name
','           Punctuation
'\n'          Text.Whitespace

'               ' Text.Whitespace
'stats'       Name
'.'           Punctuation
'sndqueue'    Name
','           Punctuation
'\n'          Text.Whitespace

'               ' Text.Whitespace
'stats'       Name
'.'           Punctuation
'heapfree'    Name
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'#'           Comment.Preproc
'endif'       Comment.Preproc
'\n'          Comment.Preproc

'    '        Text.Whitespace
'memcpy'      Name
'('           Punctuation
'statistics'  Name
','           Punctuation
' '           Text.Whitespace
'&'           Operator
'stats'       Name
','           Punctuation
' '           Text.Whitespace
'sizeof'      Keyword
'('           Punctuation
'ip_statistics_t' Name
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'  '          Text.Whitespace
'command'     Keyword
' '           Text.Whitespace
'void'        Keyword.Type
' '           Text.Whitespace
'BlipStatistics' Name
'.'           Punctuation
'clear'       Name
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
'\n'          Text.Whitespace

'    '        Text.Whitespace
'memclr'      Name
'('           Punctuation
'('           Punctuation
'uint8_t'     Keyword.Type
' '           Text.Whitespace
'*'           Operator
')'           Punctuation
'&'           Operator
'stats'       Name
','           Punctuation
' '           Text.Whitespace
'sizeof'      Keyword
'('           Punctuation
'ip_statistics_t' Name
')'           Punctuation
')'           Punctuation
';'           Punctuation
'\n'          Text.Whitespace

'  '          Text.Whitespace
'}'           Punctuation
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'/*   default event void IP.recv[uint8_t nxt_hdr](struct ip6_hdr *iph, */' Comment.Multiline
'\n'          Text.Whitespace

'/*                                               void *payload, */' Comment.Multiline
'\n'          Text.Whitespace

'/*                                               struct ip_metadata *meta) { */' Comment.Multiline
'\n'          Text.Whitespace

'/*   } */'   Comment.Multiline
'\n'          Text.Whitespace

'\n'          Text.Whitespace

'/*   default event void Multicast.recv[uint8_t scope](struct ip6_hdr *iph, */' Comment.Multiline
'\n'          Text.Whitespace

'/*                                                    void *payload, */' Comment.Multiline
'\n'          Text.Whitespace

'/*                                                    struct ip_metadata *meta) { */' Comment.Multiline
'\n'          Text.Whitespace

'/*   } */'   Comment.Multiline
'\n'          Text.Whitespace

'}'           Punctuation
'\n'          Text.Whitespace
