2003-12-08 05:55:28 +03:00
####################################################################
#
# This file was generated using Parse::Yapp version 1.05.
#
# Don't edit this file, use source file instead.
#
# ANY CHANGE MADE HERE WILL BE LOST !
#
####################################################################
2005-07-09 19:32:08 +04:00
package Parse::Pidl::IDL ;
2003-12-08 05:55:28 +03:00
use vars qw ( @ ISA ) ;
use strict ;
2019-11-30 12:34:54 +03:00
use warnings ;
2003-12-08 05:55:28 +03:00
@ ISA = qw ( Parse::Yapp:: Driver ) ;
2007-01-05 23:18:33 +03:00
use Parse::Yapp::Driver ;
2003-12-08 05:55:28 +03:00
sub new {
my ( $ class ) = shift ;
ref ( $ class )
and $ class = ref ( $ class ) ;
my ( $ self ) = $ class - > SUPER:: new ( yyversion = > '1.05' ,
yystates = >
[
{ #State 0
2004-08-11 23:48:36 +04:00
DEFAULT = > - 1 ,
2003-12-08 05:55:28 +03:00
GOTOS = > {
2004-08-11 23:48:36 +04:00
'idl' = > 1
2003-12-08 05:55:28 +03:00
}
} ,
{ #State 1
ACTIONS = > {
2006-11-07 00:54:19 +03:00
'' = > 2 ,
2007-08-31 04:03:54 +04:00
"cpp_quote" = > 3 ,
"importlib" = > 4 ,
"import" = > 7 ,
"include" = > 13
2003-12-08 05:55:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2003-12-08 05:55:28 +03:00
GOTOS = > {
2007-08-31 04:03:54 +04:00
'cpp_quote' = > 11 ,
'importlib' = > 10 ,
'interface' = > 9 ,
'include' = > 5 ,
'coclass' = > 12 ,
'import' = > 8 ,
'property_list' = > 6
2003-12-08 05:55:28 +03:00
}
} ,
2004-08-11 23:48:36 +04:00
{ #State 2
DEFAULT = > 0
} ,
2003-12-08 05:55:28 +03:00
{ #State 3
2006-11-07 00:54:19 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
"(" = > 14
}
} ,
{ #State 4
ACTIONS = > {
'TEXT' = > 16
2006-11-07 00:54:19 +03:00
} ,
GOTOS = > {
2007-08-31 04:03:54 +04:00
'commalist' = > 15 ,
'text' = > 17
2006-11-07 00:54:19 +03:00
}
2004-08-11 23:48:36 +04:00
} ,
2007-08-31 04:03:54 +04:00
{ #State 5
2006-11-07 00:54:19 +03:00
DEFAULT = > - 5
2003-12-08 05:55:28 +03:00
} ,
2007-08-31 04:03:54 +04:00
{ #State 6
2003-12-08 05:55:28 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
"coclass" = > 18 ,
"[" = > 20 ,
"interface" = > 19
2003-12-08 05:55:28 +03:00
}
} ,
2007-08-31 04:03:54 +04:00
{ #State 7
2003-12-08 05:55:28 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'TEXT' = > 16
2004-08-11 23:48:36 +04:00
} ,
GOTOS = > {
2007-08-31 04:03:54 +04:00
'commalist' = > 21 ,
'text' = > 17
2003-12-08 05:55:28 +03:00
}
} ,
{ #State 8
2007-08-31 04:03:54 +04:00
DEFAULT = > - 4
2003-12-08 05:55:28 +03:00
} ,
{ #State 9
2007-08-31 04:03:54 +04:00
DEFAULT = > - 2
2003-12-08 05:55:28 +03:00
} ,
{ #State 10
2007-08-31 04:03:54 +04:00
DEFAULT = > - 6
2003-12-08 05:55:28 +03:00
} ,
{ #State 11
2007-08-31 04:03:54 +04:00
DEFAULT = > - 7
2003-12-08 05:55:28 +03:00
} ,
2004-08-11 23:48:36 +04:00
{ #State 12
2007-08-31 04:03:54 +04:00
DEFAULT = > - 3
2004-11-02 00:10:46 +03:00
} ,
{ #State 13
2006-11-07 00:54:19 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'TEXT' = > 16
2006-11-07 01:54:49 +03:00
} ,
GOTOS = > {
2007-08-31 04:03:54 +04:00
'commalist' = > 22 ,
'text' = > 17
2004-08-11 23:48:36 +04:00
}
2003-12-08 05:55:28 +03:00
} ,
2007-08-31 04:03:54 +04:00
{ #State 14
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'TEXT' = > 16
2006-11-07 01:54:49 +03:00
} ,
GOTOS = > {
2007-08-31 04:03:54 +04:00
'text' = > 23
2006-11-07 01:54:49 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2007-08-31 04:03:54 +04:00
{ #State 15
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
";" = > 24 ,
"," = > 25
2006-11-07 01:54:49 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2007-08-31 04:03:54 +04:00
{ #State 16
2009-08-05 15:40:38 +04:00
DEFAULT = > - 120
2007-08-31 04:03:54 +04:00
} ,
{ #State 17
DEFAULT = > - 11
} ,
2003-12-08 05:55:28 +03:00
{ #State 18
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
} ,
GOTOS = > {
'identifier' = > 27
2006-11-07 01:54:49 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 19
2004-11-02 00:10:46 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
} ,
GOTOS = > {
'identifier' = > 28
2004-11-02 00:10:46 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 20
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
2006-11-07 00:54:19 +03:00
} ,
GOTOS = > {
2007-08-31 04:03:54 +04:00
'identifier' = > 30 ,
'property' = > 31 ,
'properties' = > 29
}
} ,
{ #State 21
ACTIONS = > {
";" = > 32 ,
"," = > 25
2003-12-08 05:55:28 +03:00
}
} ,
{ #State 22
2007-08-31 04:03:54 +04:00
ACTIONS = > {
";" = > 33 ,
"," = > 25
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 23
2006-11-07 00:54:19 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
")" = > 34
2006-11-07 00:54:19 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 24
2007-08-31 04:03:54 +04:00
DEFAULT = > - 10
2003-12-08 05:55:28 +03:00
} ,
{ #State 25
2004-11-02 00:10:46 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'TEXT' = > 16
} ,
GOTOS = > {
'text' = > 35
2006-11-07 00:54:19 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 26
2009-08-05 15:40:38 +04:00
DEFAULT = > - 116
2003-12-08 05:55:28 +03:00
} ,
{ #State 27
2007-08-31 04:03:54 +04:00
ACTIONS = > {
"{" = > 36
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 28
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
":" = > 37
} ,
DEFAULT = > - 17 ,
GOTOS = > {
'base_interface' = > 38
2007-08-31 04:03:54 +04:00
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 29
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
"," = > 39 ,
"]" = > 40
2007-08-31 04:03:54 +04:00
}
2003-12-08 05:55:28 +03:00
} ,
{ #State 30
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
"(" = > 41
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 93
2003-12-08 05:55:28 +03:00
} ,
{ #State 31
2009-08-05 15:40:38 +04:00
DEFAULT = > - 91
2003-12-08 05:55:28 +03:00
} ,
{ #State 32
2007-08-31 04:03:54 +04:00
DEFAULT = > - 8
2003-12-08 05:55:28 +03:00
} ,
{ #State 33
2007-08-31 04:03:54 +04:00
DEFAULT = > - 9
2003-12-08 05:55:28 +03:00
} ,
2007-03-04 17:16:52 +03:00
{ #State 34
2008-05-07 19:18:18 +04:00
DEFAULT = > - 19
2003-12-08 05:55:28 +03:00
} ,
2007-03-04 17:16:52 +03:00
{ #State 35
2007-08-31 04:03:54 +04:00
DEFAULT = > - 12
2003-12-08 05:55:28 +03:00
} ,
2007-03-04 17:16:52 +03:00
{ #State 36
2007-08-31 04:03:54 +04:00
DEFAULT = > - 14 ,
GOTOS = > {
2008-05-07 19:18:18 +04:00
'interface_names' = > 42
2003-12-08 05:55:28 +03:00
}
} ,
2007-03-04 17:16:52 +03:00
{ #State 37
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'IDENTIFIER' = > 26
2007-08-31 04:03:54 +04:00
} ,
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 43
2007-08-31 04:03:54 +04:00
}
2007-03-04 17:16:52 +03:00
} ,
2005-02-21 15:13:42 +03:00
{ #State 38
2008-05-07 19:18:18 +04:00
ACTIONS = > {
"{" = > 44
}
} ,
{ #State 39
2007-08-31 04:03:54 +04:00
ACTIONS = > {
'IDENTIFIER' = > 26
} ,
GOTOS = > {
'identifier' = > 30 ,
2008-05-07 19:18:18 +04:00
'property' = > 45
2007-08-31 04:03:54 +04:00
}
2004-08-11 23:48:36 +04:00
} ,
2007-03-04 17:16:52 +03:00
{ #State 40
2009-08-05 15:40:38 +04:00
DEFAULT = > - 90
2008-05-07 19:18:18 +04:00
} ,
{ #State 41
2003-12-08 05:55:28 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
'text' = > 51 ,
'anytext' = > 46 ,
'constant' = > 47 ,
'commalisttext' = > 49
2003-12-08 05:55:28 +03:00
}
} ,
2008-05-07 19:18:18 +04:00
{ #State 42
2004-11-02 00:10:46 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
"}" = > 52 ,
"interface" = > 53
2007-03-04 17:16:52 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2005-02-21 15:13:42 +03:00
{ #State 43
2008-05-07 19:18:18 +04:00
DEFAULT = > - 18
2003-12-08 05:55:28 +03:00
} ,
2005-02-21 15:13:42 +03:00
{ #State 44
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"const" = > 64
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'typedecl' = > 54 ,
'function' = > 55 ,
2009-08-05 15:40:38 +04:00
'pipe' = > 56 ,
'definitions' = > 58 ,
'bitmap' = > 57 ,
'definition' = > 61 ,
'property_list' = > 60 ,
'usertype' = > 59 ,
'const' = > 63 ,
'struct' = > 62 ,
'typedef' = > 66 ,
'enum' = > 65 ,
'union' = > 67
2007-08-31 04:03:54 +04:00
}
2004-11-29 14:08:15 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 45
2009-08-05 15:40:38 +04:00
DEFAULT = > - 92
2008-05-07 19:18:18 +04:00
} ,
2005-02-21 15:13:42 +03:00
{ #State 46
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
} ,
DEFAULT = > - 95
2005-01-21 09:46:07 +03:00
} ,
2005-02-21 15:13:42 +03:00
{ #State 47
2009-08-05 15:40:38 +04:00
DEFAULT = > - 99
2003-12-08 05:55:28 +03:00
} ,
2007-08-31 04:03:54 +04:00
{ #State 48
2009-08-05 15:40:38 +04:00
DEFAULT = > - 119
2007-08-31 04:03:54 +04:00
} ,
2005-05-27 22:14:43 +04:00
{ #State 49
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"," = > 83 ,
")" = > 84
2008-05-07 19:18:18 +04:00
}
2003-12-08 05:55:28 +03:00
} ,
2005-07-20 03:34:02 +04:00
{ #State 50
2009-08-05 15:40:38 +04:00
DEFAULT = > - 98
2004-08-11 23:48:36 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 51
2009-08-05 15:40:38 +04:00
DEFAULT = > - 100
2008-05-07 19:18:18 +04:00
} ,
{ #State 52
2006-11-07 00:54:19 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
";" = > 86
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 121 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'optional_semicolon' = > 85
2007-08-31 04:03:54 +04:00
}
2005-09-04 02:58:04 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 53
2008-05-07 19:18:18 +04:00
ACTIONS = > {
'IDENTIFIER' = > 26
} ,
GOTOS = > {
2009-08-05 15:40:38 +04:00
'identifier' = > 87
2008-05-07 19:18:18 +04:00
}
2008-01-12 03:10:59 +03:00
} ,
2005-09-04 02:58:04 +04:00
{ #State 54
2008-05-07 19:18:18 +04:00
DEFAULT = > - 25
2005-09-04 02:58:04 +04:00
} ,
{ #State 55
2008-05-07 19:18:18 +04:00
DEFAULT = > - 22
2005-09-04 02:58:04 +04:00
} ,
{ #State 56
2009-08-05 15:40:38 +04:00
DEFAULT = > - 34
2003-12-08 05:55:28 +03:00
} ,
2005-09-04 02:58:04 +04:00
{ #State 57
2009-08-05 15:40:38 +04:00
DEFAULT = > - 33
} ,
{ #State 58
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"}" = > 88 ,
"const" = > 64
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
'typedecl' = > 54 ,
'function' = > 55 ,
2009-08-05 15:40:38 +04:00
'pipe' = > 56 ,
'bitmap' = > 57 ,
'definition' = > 89 ,
'property_list' = > 60 ,
'usertype' = > 59 ,
'const' = > 63 ,
'struct' = > 62 ,
'typedef' = > 66 ,
'enum' = > 65 ,
'union' = > 67
2008-05-07 19:18:18 +04:00
}
2005-01-06 09:32:07 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 59
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
";" = > 90
2008-05-07 19:18:18 +04:00
}
2005-01-06 09:32:07 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 60
2008-01-31 17:30:50 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"typedef" = > 91 ,
2008-05-07 19:18:18 +04:00
'IDENTIFIER' = > 26 ,
2009-08-05 15:40:38 +04:00
"signed" = > 100 ,
"union" = > 92 ,
"enum" = > 101 ,
"bitmap" = > 102 ,
'void' = > 93 ,
"pipe" = > 103 ,
"unsigned" = > 104 ,
2008-05-07 19:18:18 +04:00
"[" = > 20 ,
2009-08-05 15:40:38 +04:00
"struct" = > 98
2008-05-07 19:18:18 +04:00
} ,
GOTOS = > {
'existingtype' = > 99 ,
2009-08-05 15:40:38 +04:00
'pipe' = > 56 ,
'bitmap' = > 57 ,
'usertype' = > 95 ,
'property_list' = > 94 ,
'identifier' = > 96 ,
'struct' = > 62 ,
'enum' = > 65 ,
'type' = > 105 ,
'union' = > 67 ,
'sign' = > 97
2008-01-31 17:30:50 +03:00
}
2005-07-20 03:34:02 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 61
2008-05-07 19:18:18 +04:00
DEFAULT = > - 20
2005-05-27 22:14:43 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 62
2008-05-07 19:18:18 +04:00
DEFAULT = > - 30
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 63
2008-05-07 19:18:18 +04:00
DEFAULT = > - 23
2005-07-20 03:34:02 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 64
2006-11-07 00:54:19 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
GOTOS = > {
2009-08-05 15:40:38 +04:00
'identifier' = > 106
2006-11-07 00:54:19 +03:00
}
2005-07-20 03:34:02 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 65
2009-08-05 15:40:38 +04:00
DEFAULT = > - 32
2007-08-31 04:03:54 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 66
2009-08-05 15:40:38 +04:00
DEFAULT = > - 24
2007-03-04 17:16:52 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 67
2009-08-05 15:40:38 +04:00
DEFAULT = > - 31
2005-07-20 03:34:02 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 68
2005-07-20 03:34:02 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 107 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2005-07-20 03:34:02 +04:00
}
} ,
2008-01-12 03:10:59 +03:00
{ #State 69
2004-11-29 14:08:15 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
2005-09-04 02:58:04 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 108 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2006-11-07 01:54:49 +03:00
}
2005-09-04 02:58:04 +04:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 70
2005-09-04 02:58:04 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 109 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2006-11-07 00:54:19 +03:00
}
2004-08-11 23:48:36 +04:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 71
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 110 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2007-08-31 04:03:54 +04:00
}
2007-05-01 06:00:57 +04:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 72
2007-05-01 06:00:57 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 00:54:19 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 111 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2007-03-04 17:16:52 +03:00
}
} ,
2008-05-07 19:18:18 +04:00
{ #State 73
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 00:54:19 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 112 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
2009-08-05 15:40:38 +04:00
'constant' = > 47
2006-11-07 00:54:19 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 74
2004-11-29 14:08:15 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 46 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
2009-08-05 15:40:38 +04:00
'constant' = > 47 ,
'commalisttext' = > 113
2006-11-07 00:54:19 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 75
2005-05-27 22:14:43 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 114 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2006-11-07 00:54:19 +03:00
}
2005-09-04 02:58:04 +04:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 76
2005-09-04 02:58:04 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 00:54:19 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 00:54:19 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 115 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2005-05-27 22:14:43 +04:00
}
} ,
2008-05-07 19:18:18 +04:00
{ #State 77
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2007-03-04 17:16:52 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 116 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
2009-08-05 15:40:38 +04:00
'constant' = > 47
2007-02-18 19:21:28 +03:00
}
2005-01-21 09:46:07 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 78
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2007-02-18 19:21:28 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 46 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
2009-08-05 15:40:38 +04:00
'constant' = > 47 ,
'commalisttext' = > 117
2006-11-07 01:54:49 +03:00
}
2006-11-07 00:54:19 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 79
2005-01-21 09:46:07 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 118 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2006-11-07 00:54:19 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 80
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 119 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2007-02-18 19:21:28 +03:00
}
} ,
2008-05-07 19:18:18 +04:00
{ #State 81
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2007-03-04 17:16:52 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 120 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2006-11-07 01:54:49 +03:00
}
2006-11-07 00:54:19 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 82
2004-10-14 14:30:08 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2005-01-05 02:25:25 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2005-01-05 02:25:25 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 121 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2004-11-29 14:08:15 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 83
2009-08-05 15:40:38 +04:00
ACTIONS = > {
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
} ,
DEFAULT = > - 97 ,
GOTOS = > {
'identifier' = > 50 ,
'anytext' = > 122 ,
'text' = > 51 ,
'constant' = > 47
}
2008-05-07 19:18:18 +04:00
} ,
{ #State 84
2009-08-05 15:40:38 +04:00
DEFAULT = > - 94
2008-05-07 19:18:18 +04:00
} ,
{ #State 85
2009-08-05 15:40:38 +04:00
DEFAULT = > - 13
2008-05-07 19:18:18 +04:00
} ,
{ #State 86
2009-08-05 15:40:38 +04:00
DEFAULT = > - 122
} ,
{ #State 87
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
";" = > 123
2007-02-18 19:21:28 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 88
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
";" = > 86
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 121 ,
2007-02-18 19:21:28 +03:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'optional_semicolon' = > 124
2007-02-18 19:21:28 +03:00
}
2005-01-05 18:28:10 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 89
2009-08-05 15:40:38 +04:00
DEFAULT = > - 21
2008-05-07 19:18:18 +04:00
} ,
{ #State 90
2009-08-05 15:40:38 +04:00
DEFAULT = > - 35
} ,
{ #State 91
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'IDENTIFIER' = > 26 ,
2009-08-05 15:40:38 +04:00
"signed" = > 100 ,
'void' = > 93 ,
"unsigned" = > 104
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'existingtype' = > 99 ,
2009-08-05 15:40:38 +04:00
'pipe' = > 56 ,
'bitmap' = > 57 ,
'usertype' = > 95 ,
'property_list' = > 94 ,
'identifier' = > 96 ,
'struct' = > 62 ,
'enum' = > 65 ,
'type' = > 125 ,
'union' = > 67 ,
'sign' = > 97
2007-08-31 04:03:54 +04:00
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 92
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
'IDENTIFIER' = > 126
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 117 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'optional_identifier' = > 127
2007-08-31 04:03:54 +04:00
}
2007-03-04 17:16:52 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 93
2009-08-05 15:40:38 +04:00
DEFAULT = > - 42
} ,
{ #State 94
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"pipe" = > 103 ,
"union" = > 92 ,
"enum" = > 101 ,
"bitmap" = > 102 ,
2008-05-07 19:18:18 +04:00
"[" = > 20 ,
2009-08-05 15:40:38 +04:00
"struct" = > 98
2007-08-31 04:03:54 +04:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 95
2009-08-05 15:40:38 +04:00
DEFAULT = > - 40
2008-05-07 19:18:18 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 96
2009-08-05 15:40:38 +04:00
DEFAULT = > - 39
} ,
{ #State 97
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
} ,
GOTOS = > {
2009-08-05 15:40:38 +04:00
'identifier' = > 128
2006-11-07 01:54:49 +03:00
}
2005-12-25 17:59:21 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 98
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
'IDENTIFIER' = > 126
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 117 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'optional_identifier' = > 129
2006-11-07 01:54:49 +03:00
}
2005-12-25 17:59:21 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 99
2009-08-05 15:40:38 +04:00
DEFAULT = > - 41
2005-12-25 17:59:21 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 100
2009-08-05 15:40:38 +04:00
DEFAULT = > - 36
} ,
{ #State 101
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
'IDENTIFIER' = > 126
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 117 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'optional_identifier' = > 130
2008-05-07 19:18:18 +04:00
}
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 102
2005-12-25 17:59:21 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
'IDENTIFIER' = > 126
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 117 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'optional_identifier' = > 131
2007-03-04 17:16:52 +03:00
}
2005-01-06 09:32:07 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 103
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
'IDENTIFIER' = > 26 ,
"signed" = > 100 ,
'void' = > 93 ,
"unsigned" = > 104
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2007-03-04 17:16:52 +03:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'existingtype' = > 99 ,
'pipe' = > 56 ,
'bitmap' = > 57 ,
'usertype' = > 95 ,
'property_list' = > 94 ,
'identifier' = > 96 ,
'struct' = > 62 ,
'enum' = > 65 ,
'type' = > 132 ,
'union' = > 67 ,
'sign' = > 97
2007-03-04 17:16:52 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 104
2009-08-05 15:40:38 +04:00
DEFAULT = > - 37
2005-07-20 03:34:02 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 105
2005-07-20 03:34:02 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
'IDENTIFIER' = > 26
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
GOTOS = > {
'identifier' = > 133
}
2005-07-20 03:34:02 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 106
2009-08-05 15:40:38 +04:00
DEFAULT = > - 75 ,
GOTOS = > {
'pointers' = > 134
}
2003-12-08 05:55:28 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 107
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 110
2003-12-08 05:55:28 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 108
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 101
2005-12-25 17:59:21 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 109
2007-05-01 06:00:57 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 109
2007-05-01 06:00:57 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 110
2007-03-04 17:16:52 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 105
2003-12-08 05:55:28 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 111
2007-03-04 17:16:52 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
} ,
DEFAULT = > - 113
2005-07-20 03:34:02 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 112
2007-03-04 17:16:52 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 112
2003-12-08 05:55:28 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 113
2006-11-07 00:54:19 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"}" = > 135 ,
"," = > 83
}
2005-07-20 03:34:02 +04:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 114
2007-03-04 17:16:52 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
2008-01-12 03:10:59 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 107
2006-11-07 00:54:19 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 115
2005-01-05 18:28:10 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
} ,
DEFAULT = > - 108
2005-01-05 18:28:10 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 116
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 111
2005-12-25 17:59:21 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 117
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"," = > 83 ,
")" = > 136
}
2005-01-05 03:14:29 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 118
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 106
2005-12-25 17:59:21 +03:00
} ,
2008-01-12 03:10:59 +03:00
{ #State 119
ACTIONS = > {
2009-08-05 15:40:38 +04:00
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 103
2003-12-08 05:55:28 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 120
2007-03-04 17:16:52 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 102
2005-12-25 17:59:21 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 121
2009-08-05 15:40:38 +04:00
ACTIONS = > {
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
} ,
DEFAULT = > - 104
2006-11-07 00:54:19 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 122
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 96
} ,
{ #State 123
DEFAULT = > - 15
2007-03-04 17:16:52 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 124
2009-08-05 15:40:38 +04:00
DEFAULT = > - 16
2006-11-07 00:54:19 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 125
2009-08-05 15:43:49 +04:00
DEFAULT = > - 75 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'pointers' = > 137
2008-05-07 19:18:18 +04:00
}
2007-03-04 17:16:52 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 126
2009-08-05 15:40:38 +04:00
DEFAULT = > - 118
2006-11-07 00:54:19 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 127
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
"{" = > 139
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 71 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'union_body' = > 140 ,
'opt_union_body' = > 138
2008-05-07 19:18:18 +04:00
}
2007-03-04 17:16:52 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 128
2009-08-05 15:40:38 +04:00
DEFAULT = > - 38
} ,
{ #State 129
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"{" = > 142
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 61 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'struct_body' = > 141 ,
'opt_struct_body' = > 143
2008-05-07 19:18:18 +04:00
}
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 130
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"{" = > 144
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 44 ,
2006-11-07 00:54:19 +03:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'opt_enum_body' = > 146 ,
'enum_body' = > 145
2006-11-07 00:54:19 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 131
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"{" = > 148
} ,
DEFAULT = > - 52 ,
GOTOS = > {
'bitmap_body' = > 149 ,
'opt_bitmap_body' = > 147
2008-05-07 19:18:18 +04:00
}
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 132
DEFAULT = > - 77
} ,
{ #State 133
ACTIONS = > {
"(" = > 150
}
} ,
{ #State 134
2008-05-07 19:18:18 +04:00
ACTIONS = > {
'IDENTIFIER' = > 26 ,
2009-08-05 15:40:38 +04:00
"*" = > 152
2008-05-07 19:18:18 +04:00
} ,
2006-11-07 00:54:19 +03:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'identifier' = > 151
2006-11-07 00:54:19 +03:00
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 135
2008-05-07 19:18:18 +04:00
ACTIONS = > {
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 153 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
}
2003-12-08 05:55:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 136
2008-05-07 19:18:18 +04:00
ACTIONS = > {
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 154 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
}
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 137
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
'IDENTIFIER' = > 26 ,
"*" = > 152
2008-05-07 19:18:18 +04:00
} ,
2007-02-18 19:21:28 +03:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'identifier' = > 155
2007-02-18 19:21:28 +03:00
}
2006-11-07 00:54:19 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 138
2009-08-05 15:40:38 +04:00
DEFAULT = > - 73
2007-05-01 06:00:57 +04:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 139
2009-08-05 15:40:38 +04:00
DEFAULT = > - 68 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'union_elements' = > 156
2008-05-07 19:18:18 +04:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 140
2009-08-05 15:40:38 +04:00
DEFAULT = > - 72
2008-05-07 19:18:18 +04:00
} ,
{ #State 141
2009-08-05 15:40:38 +04:00
DEFAULT = > - 62
} ,
{ #State 142
DEFAULT = > - 78 ,
2005-01-05 03:14:29 +03:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'element_list1' = > 157
2004-11-02 00:10:46 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 143
2009-08-05 15:40:38 +04:00
DEFAULT = > - 63
2006-11-07 01:54:49 +03:00
} ,
2008-01-31 17:30:50 +03:00
{ #State 144
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
2007-02-18 19:21:28 +03:00
} ,
2007-03-04 17:16:52 +03:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'identifier' = > 158 ,
'enum_element' = > 159 ,
'enum_elements' = > 160
2007-03-04 17:16:52 +03:00
}
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 145
DEFAULT = > - 45
} ,
2008-01-31 17:30:50 +03:00
{ #State 146
2009-08-05 15:40:38 +04:00
DEFAULT = > - 46
2008-05-07 19:18:18 +04:00
} ,
{ #State 147
2009-08-05 15:40:38 +04:00
DEFAULT = > - 54
2003-12-08 05:55:28 +03:00
} ,
2008-05-07 19:18:18 +04:00
{ #State 148
ACTIONS = > {
2009-08-05 15:40:38 +04:00
'IDENTIFIER' = > 26
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 57 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'identifier' = > 163 ,
'bitmap_element' = > 162 ,
'bitmap_elements' = > 161 ,
'opt_bitmap_elements' = > 164
2008-05-07 19:18:18 +04:00
}
} ,
{ #State 149
2009-08-05 15:40:38 +04:00
DEFAULT = > - 53
2008-05-07 19:18:18 +04:00
} ,
{ #State 150
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"," = > - 82 ,
2009-08-05 15:43:49 +04:00
"void" = > 168 ,
"const" = > 166 ,
2009-08-05 15:40:38 +04:00
")" = > - 82
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 80 ,
GOTOS = > {
2009-08-05 15:43:49 +04:00
'optional_const' = > 165 ,
'element_list2' = > 167
2009-08-05 15:40:38 +04:00
}
2008-05-07 19:18:18 +04:00
} ,
{ #State 151
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"[" = > 169 ,
2009-08-05 15:40:38 +04:00
"=" = > 171
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
GOTOS = > {
'array_len' = > 170
}
2008-05-07 19:18:18 +04:00
} ,
{ #State 152
2009-08-05 15:40:38 +04:00
DEFAULT = > - 76
} ,
{ #State 153
ACTIONS = > {
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
} ,
DEFAULT = > - 115
} ,
{ #State 154
ACTIONS = > {
":" = > 68 ,
"<" = > 71 ,
"~" = > 72 ,
"?" = > 70 ,
"{" = > 74 ,
"=" = > 77
} ,
DEFAULT = > - 114
} ,
{ #State 155
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"[" = > 169
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
DEFAULT = > - 86 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'array_len' = > 172
2007-08-31 04:03:54 +04:00
}
2006-09-07 02:25:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 156
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"}" = > 173
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'optional_base_element' = > 175 ,
'property_list' = > 174
2007-08-31 04:03:54 +04:00
}
2006-07-29 10:00:58 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 157
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"}" = > 176
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'base_element' = > 177 ,
'property_list' = > 178
2007-08-31 04:03:54 +04:00
}
2006-09-07 02:25:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 158
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"=" = > 179
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 49
2005-01-05 18:28:10 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 159
2009-08-05 15:40:38 +04:00
DEFAULT = > - 47
2005-01-05 18:28:10 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 160
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"}" = > 180 ,
"," = > 181
2007-08-31 04:03:54 +04:00
}
2006-09-07 02:25:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 161
2004-11-02 00:10:46 +03:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"," = > 182
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 58
2004-11-02 00:10:46 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 162
2009-08-05 15:40:38 +04:00
DEFAULT = > - 55
2004-11-02 00:10:46 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 163
2005-01-05 03:14:29 +03:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"=" = > 183
2005-01-05 03:14:29 +03:00
}
} ,
2009-08-05 15:43:49 +04:00
{ #State 164
2005-07-20 03:34:02 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"}" = > 184
2006-11-07 01:54:49 +03:00
}
2006-09-07 02:25:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 165
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'base_element' = > 185 ,
'property_list' = > 178
2007-08-31 04:03:54 +04:00
}
2005-01-05 02:25:25 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 166
2009-08-05 15:40:38 +04:00
DEFAULT = > - 81
2009-08-04 16:59:33 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 167
2005-07-20 03:34:02 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"," = > 186 ,
")" = > 187
2007-08-31 04:03:54 +04:00
}
2005-02-11 05:05:47 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 168
2009-08-05 15:40:38 +04:00
DEFAULT = > - 83
2005-01-05 03:14:29 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 169
ACTIONS = > {
'CONSTANT' = > 48 ,
'TEXT' = > 16 ,
"]" = > 188 ,
'IDENTIFIER' = > 26
} ,
DEFAULT = > - 97 ,
GOTOS = > {
'identifier' = > 50 ,
'anytext' = > 189 ,
'text' = > 51 ,
'constant' = > 47
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 170
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"=" = > 190
2007-02-18 19:21:28 +03:00
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 171
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:40:38 +04:00
'anytext' = > 191 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2007-02-18 19:21:28 +03:00
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 172
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
";" = > 192
2007-08-31 04:03:54 +04:00
}
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 173
DEFAULT = > - 70
2005-10-16 21:17:42 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 174
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
"[" = > 20
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'base_or_empty' = > 193 ,
'base_element' = > 194 ,
'empty_element' = > 195 ,
'property_list' = > 196
2006-11-07 01:54:49 +03:00
}
2005-07-20 03:34:02 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 175
2009-08-05 15:40:38 +04:00
DEFAULT = > - 69
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 176
2009-08-05 15:40:38 +04:00
DEFAULT = > - 60
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 177
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
";" = > 197
2006-11-07 01:54:49 +03:00
}
2005-07-20 03:34:02 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 178
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26 ,
2009-08-05 15:40:38 +04:00
"signed" = > 100 ,
'void' = > 93 ,
"unsigned" = > 104 ,
2007-08-31 04:03:54 +04:00
"[" = > 20
2009-08-04 16:59:33 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'existingtype' = > 99 ,
2009-08-05 15:40:38 +04:00
'pipe' = > 56 ,
'bitmap' = > 57 ,
'usertype' = > 95 ,
'property_list' = > 94 ,
'identifier' = > 96 ,
'struct' = > 62 ,
'enum' = > 65 ,
2009-08-05 15:43:49 +04:00
'type' = > 198 ,
2009-08-05 15:40:38 +04:00
'union' = > 67 ,
'sign' = > 97
2009-08-04 16:59:33 +04:00
}
} ,
2009-08-05 15:43:49 +04:00
{ #State 179
2006-09-07 02:25:54 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:43:49 +04:00
'anytext' = > 199 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2006-09-07 02:25:54 +04:00
}
2005-07-20 03:34:02 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 180
2009-08-05 15:40:38 +04:00
DEFAULT = > - 43
2005-07-20 03:34:02 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 181
2007-08-31 04:03:54 +04:00
ACTIONS = > {
'IDENTIFIER' = > 26
} ,
2007-02-18 19:21:28 +03:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'identifier' = > 158 ,
'enum_element' = > 200
2005-07-20 03:34:02 +04:00
}
} ,
2009-08-05 15:43:49 +04:00
{ #State 182
2007-02-18 19:21:28 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26
} ,
GOTOS = > {
2009-08-05 15:43:49 +04:00
'identifier' = > 163 ,
'bitmap_element' = > 201
2007-02-18 19:21:28 +03:00
}
2003-12-08 05:55:28 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 183
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:43:49 +04:00
'anytext' = > 202 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2006-11-07 01:54:49 +03:00
}
2006-09-07 02:25:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 184
2009-08-05 15:40:38 +04:00
DEFAULT = > - 51
2003-12-08 05:55:28 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 185
2009-08-05 15:40:38 +04:00
DEFAULT = > - 84
2005-10-16 21:17:42 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 186
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"const" = > 166
2009-08-04 16:59:33 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 80 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'optional_const' = > 203
}
} ,
{ #State 187
ACTIONS = > {
";" = > 204
}
} ,
{ #State 188
ACTIONS = > {
"[" = > 169
} ,
DEFAULT = > - 86 ,
GOTOS = > {
'array_len' = > 205
2007-08-31 04:03:54 +04:00
}
2007-02-18 19:21:28 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 189
2005-10-16 21:17:42 +04:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"-" = > 69 ,
":" = > 68 ,
"?" = > 70 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"&" = > 75 ,
"{" = > 74 ,
"/" = > 76 ,
"=" = > 77 ,
"|" = > 79 ,
"(" = > 78 ,
"*" = > 80 ,
"." = > 81 ,
"]" = > 206 ,
">" = > 82
2009-08-04 16:59:33 +04:00
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 190
2005-10-16 21:17:42 +04:00
ACTIONS = > {
2008-05-07 19:18:18 +04:00
'CONSTANT' = > 48 ,
2007-08-31 04:03:54 +04:00
'TEXT' = > 16 ,
'IDENTIFIER' = > 26
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 97 ,
2007-08-31 04:03:54 +04:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'identifier' = > 50 ,
2009-08-05 15:43:49 +04:00
'anytext' = > 207 ,
2008-05-07 19:18:18 +04:00
'text' = > 51 ,
'constant' = > 47
2005-10-16 21:17:42 +04:00
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 191
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"?" = > 70 ,
"<" = > 71 ,
2009-08-05 15:43:49 +04:00
";" = > 208 ,
2009-08-05 15:40:38 +04:00
"+" = > 73 ,
"~" = > 72 ,
"&" = > 75 ,
"{" = > 74 ,
"/" = > 76 ,
"=" = > 77 ,
"|" = > 79 ,
"(" = > 78 ,
"*" = > 80 ,
"." = > 81 ,
">" = > 82
2007-08-31 04:03:54 +04:00
}
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 192
2009-08-05 15:43:49 +04:00
DEFAULT = > - 29
2009-08-04 16:59:33 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 193
DEFAULT = > - 67
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 194
2007-08-31 04:03:54 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
";" = > 209
2007-08-31 04:03:54 +04:00
}
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 195
2009-08-05 15:40:38 +04:00
DEFAULT = > - 66
2006-09-07 02:25:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 196
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26 ,
2009-08-05 15:40:38 +04:00
"signed" = > 100 ,
";" = > 210 ,
'void' = > 93 ,
"unsigned" = > 104 ,
2007-08-31 04:03:54 +04:00
"[" = > 20
2007-03-04 17:16:52 +03:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2007-03-04 17:16:52 +03:00
GOTOS = > {
2008-05-07 19:18:18 +04:00
'existingtype' = > 99 ,
2009-08-05 15:40:38 +04:00
'pipe' = > 56 ,
'bitmap' = > 57 ,
'usertype' = > 95 ,
'property_list' = > 94 ,
'identifier' = > 96 ,
'struct' = > 62 ,
'enum' = > 65 ,
2009-08-05 15:43:49 +04:00
'type' = > 198 ,
2009-08-05 15:40:38 +04:00
'union' = > 67 ,
'sign' = > 97
2007-03-04 17:16:52 +03:00
}
2006-09-07 02:25:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 197
2009-08-05 15:40:38 +04:00
DEFAULT = > - 79
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 198
2009-08-05 15:40:38 +04:00
DEFAULT = > - 75 ,
2007-03-04 17:16:52 +03:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'pointers' = > 211
2009-08-04 16:59:33 +04:00
}
} ,
2009-08-05 15:43:49 +04:00
{ #State 199
2008-01-12 03:10:59 +03:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 50
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 200
2009-08-05 15:40:38 +04:00
DEFAULT = > - 48
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 201
2009-08-05 15:40:38 +04:00
DEFAULT = > - 56
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 202
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"<" = > 71 ,
"+" = > 73 ,
"~" = > 72 ,
"*" = > 80 ,
"?" = > 70 ,
"{" = > 74 ,
"&" = > 75 ,
"/" = > 76 ,
"=" = > 77 ,
"(" = > 78 ,
"|" = > 79 ,
"." = > 81 ,
">" = > 82
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 59
2007-08-31 04:03:54 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 203
2009-08-05 15:40:38 +04:00
DEFAULT = > - 89 ,
2008-05-07 19:18:18 +04:00
GOTOS = > {
2009-08-05 15:40:38 +04:00
'base_element' = > 212 ,
2009-08-05 15:43:49 +04:00
'property_list' = > 178
2008-01-12 03:10:59 +03:00
}
2005-10-16 21:17:42 +04:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 204
2008-05-07 19:18:18 +04:00
DEFAULT = > - 28
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:43:49 +04:00
{ #State 205
DEFAULT = > - 87
} ,
2009-08-05 15:40:38 +04:00
{ #State 206
2009-08-05 15:43:49 +04:00
ACTIONS = > {
"[" = > 169
} ,
DEFAULT = > - 86 ,
GOTOS = > {
'array_len' = > 213
}
} ,
{ #State 207
2008-05-07 19:18:18 +04:00
ACTIONS = > {
2009-08-05 15:40:38 +04:00
"-" = > 69 ,
":" = > 68 ,
"?" = > 70 ,
"<" = > 71 ,
2009-08-05 15:43:49 +04:00
";" = > 214 ,
2009-08-05 15:40:38 +04:00
"+" = > 73 ,
"~" = > 72 ,
"&" = > 75 ,
"{" = > 74 ,
"/" = > 76 ,
"=" = > 77 ,
"|" = > 79 ,
"(" = > 78 ,
"*" = > 80 ,
"." = > 81 ,
">" = > 82
2008-05-07 19:18:18 +04:00
}
2008-01-12 03:10:59 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 208
2009-08-05 15:43:49 +04:00
DEFAULT = > - 26
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 209
DEFAULT = > - 65
2008-05-07 19:18:18 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 210
DEFAULT = > - 64
2009-08-04 16:59:33 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 211
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2007-08-31 04:03:54 +04:00
'IDENTIFIER' = > 26 ,
2009-08-05 15:40:38 +04:00
"*" = > 152
2006-11-07 01:54:49 +03:00
} ,
GOTOS = > {
2009-08-05 15:43:49 +04:00
'identifier' = > 215
2006-11-07 01:54:49 +03:00
}
} ,
2009-08-05 15:40:38 +04:00
{ #State 212
DEFAULT = > - 85
2009-08-04 16:59:33 +04:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 213
2009-08-05 15:43:49 +04:00
DEFAULT = > - 88
2006-11-07 01:54:49 +03:00
} ,
2009-08-05 15:40:38 +04:00
{ #State 214
2009-08-05 15:43:49 +04:00
DEFAULT = > - 27
} ,
{ #State 215
2006-11-07 01:54:49 +03:00
ACTIONS = > {
2009-08-05 15:43:49 +04:00
"[" = > 169
2009-08-04 16:59:33 +04:00
} ,
2009-08-05 15:40:38 +04:00
DEFAULT = > - 86 ,
2006-11-07 01:54:49 +03:00
GOTOS = > {
2009-08-05 15:43:49 +04:00
'array_len' = > 216
2009-08-04 16:59:33 +04:00
}
} ,
2009-08-05 15:43:49 +04:00
{ #State 216
2009-08-05 15:40:38 +04:00
DEFAULT = > - 74
2003-12-08 05:55:28 +03:00
}
] ,
yyrules = >
[
[ #Rule 0
'$start' , 2 , undef
] ,
[ #Rule 1
2004-08-11 23:48:36 +04:00
'idl' , 0 , undef
2003-12-08 05:55:28 +03:00
] ,
[ #Rule 2
'idl' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 20 "idl.yp"
2004-11-02 00:10:46 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
2003-12-08 05:55:28 +03:00
] ,
[ #Rule 3
2004-11-02 00:10:46 +03:00
'idl' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 22 "idl.yp"
2004-11-02 00:10:46 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
[ #Rule 4
2006-11-07 00:54:19 +03:00
'idl' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 24 "idl.yp"
2006-11-07 00:54:19 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
[ #Rule 5
'idl' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 26 "idl.yp"
2006-11-07 00:54:19 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
[ #Rule 6
'idl' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 28 "idl.yp"
2006-11-07 00:54:19 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
[ #Rule 7
2007-08-31 04:03:54 +04:00
'idl' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 30 "idl.yp"
2007-08-31 04:03:54 +04:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
[ #Rule 8
2006-11-07 00:54:19 +03:00
'import' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 35 "idl.yp"
2006-11-07 00:54:19 +03:00
{ {
"TYPE" = > "IMPORT" ,
2006-11-07 01:54:49 +03:00
"PATHS" = > $ _ [ 2 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
2006-11-07 00:54:19 +03:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} }
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 9
2006-11-07 00:54:19 +03:00
'include' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 45 "idl.yp"
2006-11-07 00:54:19 +03:00
{ {
"TYPE" = > "INCLUDE" ,
2006-11-07 01:54:49 +03:00
"PATHS" = > $ _ [ 2 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
2006-11-07 00:54:19 +03:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} }
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 10
2006-11-07 00:54:19 +03:00
'importlib' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 55 "idl.yp"
2006-11-07 00:54:19 +03:00
{ {
"TYPE" = > "IMPORTLIB" ,
2006-11-07 01:54:49 +03:00
"PATHS" = > $ _ [ 2 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
2006-11-07 00:54:19 +03:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} }
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 11
2006-11-07 01:54:49 +03:00
'commalist' , 1 ,
2004-11-02 00:10:46 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 64 "idl.yp"
2006-11-07 01:54:49 +03:00
{ [ $ _ [ 1 ] ] }
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 12
2006-11-07 01:54:49 +03:00
'commalist' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 66 "idl.yp"
2006-11-07 01:54:49 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 3 ] ) ; $ _ [ 1 ] }
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 13
2006-11-07 01:54:49 +03:00
'coclass' , 7 ,
sub
2009-08-05 15:43:49 +04:00
#line 71 "idl.yp"
2006-11-07 00:54:19 +03:00
{ {
2004-11-02 00:10:46 +03:00
"TYPE" = > "COCLASS" ,
2005-01-05 03:31:28 +03:00
"PROPERTIES" = > $ _ [ 1 ] ,
"NAME" = > $ _ [ 3 ] ,
"DATA" = > $ _ [ 5 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2004-11-02 00:10:46 +03:00
} }
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 14
2005-02-21 15:13:42 +03:00
'interface_names' , 0 , undef
2004-11-02 00:10:46 +03:00
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 15
2005-02-21 15:13:42 +03:00
'interface_names' , 4 ,
2004-11-02 00:10:46 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 84 "idl.yp"
2004-11-02 00:10:46 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 16
2008-05-07 19:18:18 +04:00
'interface' , 8 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 89 "idl.yp"
2006-11-07 00:54:19 +03:00
{ {
2004-08-11 23:48:36 +04:00
"TYPE" = > "INTERFACE" ,
2005-01-05 03:31:28 +03:00
"PROPERTIES" = > $ _ [ 1 ] ,
"NAME" = > $ _ [ 3 ] ,
2008-05-07 19:18:18 +04:00
"BASE" = > $ _ [ 4 ] ,
"DATA" = > $ _ [ 6 ] ,
2007-03-04 17:16:52 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} }
2003-12-08 05:55:28 +03:00
] ,
2007-08-31 04:03:54 +04:00
[ #Rule 17
2008-05-07 19:18:18 +04:00
'base_interface' , 0 , undef
] ,
[ #Rule 18
'base_interface' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 103 "idl.yp"
2008-05-07 19:18:18 +04:00
{ $ _ [ 2 ] }
] ,
[ #Rule 19
2007-08-31 04:03:54 +04:00
'cpp_quote' , 4 ,
sub
2009-08-05 15:43:49 +04:00
#line 109 "idl.yp"
2007-08-31 04:03:54 +04:00
{ {
"TYPE" = > "CPP_QUOTE" ,
2005-01-05 02:25:25 +03:00
"DATA" = > $ _ [ 3 ] ,
2007-08-31 04:03:54 +04:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} }
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 20
2003-12-08 05:55:28 +03:00
'definitions' , 1 ,
sub
2009-08-05 15:43:49 +04:00
#line 118 "idl.yp"
2003-12-08 05:55:28 +03:00
{ [ $ _ [ 1 ] ] }
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 21
2003-12-08 05:55:28 +03:00
'definitions' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 120 "idl.yp"
2003-12-08 05:55:28 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 22
2005-07-20 03:34:02 +04:00
'definition' , 1 , undef
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 23
2006-11-07 01:54:49 +03:00
'definition' , 1 , undef
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 24
2006-11-07 01:54:49 +03:00
'definition' , 1 , undef
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 25
2007-08-31 04:03:54 +04:00
'definition' , 1 , undef
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 26
2005-10-16 21:17:42 +04:00
'const' , 7 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 135 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
"TYPE" = > "CONST" ,
"DTYPE" = > $ _ [ 2 ] ,
2005-10-16 21:17:42 +04:00
"POINTERS" = > $ _ [ 3 ] ,
"NAME" = > $ _ [ 4 ] ,
"VALUE" = > $ _ [ 6 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2003-12-08 05:55:28 +03:00
} }
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 27
2005-10-16 21:17:42 +04:00
'const' , 8 ,
2004-11-29 14:08:15 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 146 "idl.yp"
2004-11-29 14:08:15 +03:00
{ {
"TYPE" = > "CONST" ,
"DTYPE" = > $ _ [ 2 ] ,
2005-10-16 21:17:42 +04:00
"POINTERS" = > $ _ [ 3 ] ,
"NAME" = > $ _ [ 4 ] ,
"ARRAY_LEN" = > $ _ [ 5 ] ,
"VALUE" = > $ _ [ 7 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2004-11-29 14:08:15 +03:00
} }
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 28
2003-12-08 05:55:28 +03:00
'function' , 7 ,
sub
2009-08-05 15:43:49 +04:00
#line 160 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
"TYPE" = > "FUNCTION" ,
"NAME" = > $ _ [ 3 ] ,
"RETURN_TYPE" = > $ _ [ 2 ] ,
"PROPERTIES" = > $ _ [ 1 ] ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"ELEMENTS" = > $ _ [ 5 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} }
2003-12-08 05:55:28 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 29
2009-08-05 15:43:49 +04:00
'typedef' , 7 ,
2005-01-06 09:32:07 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 173 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
2005-01-05 02:25:25 +03:00
"TYPE" = > "TYPEDEF" ,
2007-02-18 19:21:28 +03:00
"PROPERTIES" = > $ _ [ 1 ] ,
2009-08-05 15:43:49 +04:00
"NAME" = > $ _ [ 5 ] ,
2005-01-05 02:25:25 +03:00
"DATA" = > $ _ [ 3 ] ,
2009-08-05 15:43:49 +04:00
"POINTERS" = > $ _ [ 4 ] ,
"ARRAY_LEN" = > $ _ [ 6 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2003-12-08 05:55:28 +03:00
} }
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 30
2005-07-20 03:34:02 +04:00
'usertype' , 1 , undef
2003-12-08 05:55:28 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 31
2005-07-20 03:34:02 +04:00
'usertype' , 1 , undef
2003-12-08 05:55:28 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 32
2005-07-20 03:34:02 +04:00
'usertype' , 1 , undef
2004-11-29 14:08:15 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 33
2005-07-20 03:34:02 +04:00
'usertype' , 1 , undef
2005-01-05 18:28:10 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 34
2009-08-05 15:40:38 +04:00
'usertype' , 1 , undef
] ,
[ #Rule 35
2005-07-20 03:34:02 +04:00
'typedecl' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 198 "idl.yp"
2005-07-20 03:34:02 +04:00
{ $ _ [ 1 ] }
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 36
2005-12-25 17:59:21 +03:00
'sign' , 1 , undef
2005-07-20 03:34:02 +04:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 37
2009-08-05 15:40:38 +04:00
'sign' , 1 , undef
] ,
[ #Rule 38
2005-12-25 17:59:21 +03:00
'existingtype' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 208 "idl.yp"
2007-01-09 09:02:41 +03:00
{ ( $ _ [ 1 ] ? $ _ [ 1 ] : "signed" ) . " $_[2]" }
2005-12-25 17:59:21 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 39
2009-08-05 15:40:38 +04:00
'existingtype' , 1 , undef
2005-12-25 17:59:21 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 40
2005-12-25 17:59:21 +03:00
'type' , 1 , undef
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 41
2009-08-05 15:40:38 +04:00
'type' , 1 , undef
] ,
[ #Rule 42
2003-12-08 05:55:28 +03:00
'type' , 1 ,
sub
2009-08-05 15:43:49 +04:00
#line 218 "idl.yp"
2003-12-08 05:55:28 +03:00
{ "void" }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 43
2005-12-25 17:59:21 +03:00
'enum_body' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 222 "idl.yp"
2005-12-25 17:59:21 +03:00
{ $ _ [ 2 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 44
2005-12-25 17:59:21 +03:00
'opt_enum_body' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 45
2005-12-25 17:59:21 +03:00
'opt_enum_body' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 46
2007-02-18 19:21:28 +03:00
'enum' , 4 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 233 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"TYPE" = > "ENUM" ,
2007-02-18 19:21:28 +03:00
"PROPERTIES" = > $ _ [ 1 ] ,
"NAME" = > $ _ [ 3 ] ,
"ELEMENTS" = > $ _ [ 4 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2003-12-08 05:55:28 +03:00
} }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 47
2003-12-08 05:55:28 +03:00
'enum_elements' , 1 ,
sub
2009-08-05 15:43:49 +04:00
#line 244 "idl.yp"
2003-12-08 05:55:28 +03:00
{ [ $ _ [ 1 ] ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 48
2003-12-08 05:55:28 +03:00
'enum_elements' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 246 "idl.yp"
2003-12-08 05:55:28 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 3 ] ) ; $ _ [ 1 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 49
2003-12-08 05:55:28 +03:00
'enum_element' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 50
2003-12-08 05:55:28 +03:00
'enum_element' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 252 "idl.yp"
2003-12-08 05:55:28 +03:00
{ "$_[1]$_[2]$_[3]" }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 51
2005-12-25 17:59:21 +03:00
'bitmap_body' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 256 "idl.yp"
2005-12-25 17:59:21 +03:00
{ $ _ [ 2 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 52
2005-12-25 17:59:21 +03:00
'opt_bitmap_body' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 53
2005-12-25 17:59:21 +03:00
'opt_bitmap_body' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 54
2007-02-18 19:21:28 +03:00
'bitmap' , 4 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 267 "idl.yp"
2005-01-05 18:28:10 +03:00
{ {
2005-07-20 03:34:02 +04:00
"TYPE" = > "BITMAP" ,
2007-02-18 19:21:28 +03:00
"PROPERTIES" = > $ _ [ 1 ] ,
"NAME" = > $ _ [ 3 ] ,
"ELEMENTS" = > $ _ [ 4 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2005-01-05 18:28:10 +03:00
} }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 55
2005-01-05 18:28:10 +03:00
'bitmap_elements' , 1 ,
sub
2009-08-05 15:43:49 +04:00
#line 278 "idl.yp"
2005-01-05 18:28:10 +03:00
{ [ $ _ [ 1 ] ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 56
2005-01-05 18:28:10 +03:00
'bitmap_elements' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 280 "idl.yp"
2005-01-05 18:28:10 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 3 ] ) ; $ _ [ 1 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 57
2006-09-07 02:25:54 +04:00
'opt_bitmap_elements' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 58
2006-09-07 02:25:54 +04:00
'opt_bitmap_elements' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 59
2005-01-05 18:28:10 +03:00
'bitmap_element' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 290 "idl.yp"
2005-01-05 18:28:10 +03:00
{ "$_[1] ( $_[3] )" }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 60
2005-12-25 17:59:21 +03:00
'struct_body' , 3 ,
2005-01-05 18:28:10 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 294 "idl.yp"
2005-12-25 17:59:21 +03:00
{ $ _ [ 2 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 61
2005-12-25 17:59:21 +03:00
'opt_struct_body' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 62
2005-12-25 17:59:21 +03:00
'opt_struct_body' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 63
2007-02-18 19:21:28 +03:00
'struct' , 4 ,
2005-12-25 17:59:21 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 305 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
2005-07-20 03:34:02 +04:00
"TYPE" = > "STRUCT" ,
2007-02-18 19:21:28 +03:00
"PROPERTIES" = > $ _ [ 1 ] ,
"NAME" = > $ _ [ 3 ] ,
"ELEMENTS" = > $ _ [ 4 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2003-12-08 05:55:28 +03:00
} }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 64
2005-02-11 05:05:47 +03:00
'empty_element' , 2 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 317 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
2005-02-11 05:05:47 +03:00
"NAME" = > "" ,
"TYPE" = > "EMPTY" ,
2005-03-28 22:22:45 +04:00
"PROPERTIES" = > $ _ [ 1 ] ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"POINTERS" = > 0 ,
2005-05-27 18:01:22 +04:00
"ARRAY_LEN" = > [] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2003-12-08 05:55:28 +03:00
} }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 65
2005-02-11 05:05:47 +03:00
'base_or_empty' , 2 , undef
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 66
2005-02-11 05:05:47 +03:00
'base_or_empty' , 1 , undef
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 67
2005-02-11 05:05:47 +03:00
'optional_base_element' , 2 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 334 "idl.yp"
2005-12-25 17:59:21 +03:00
{ $ _ [ 2 ] - > { PROPERTIES } = FlattenHash ( [ $ _ [ 1 ] , $ _ [ 2 ] - > { PROPERTIES } ] ) ; $ _ [ 2 ] }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 68
2005-02-11 05:05:47 +03:00
'union_elements' , 0 , undef
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 69
2005-02-11 05:05:47 +03:00
'union_elements' , 2 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 340 "idl.yp"
2005-02-11 05:05:47 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 70
2005-12-25 17:59:21 +03:00
'union_body' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 344 "idl.yp"
2005-12-25 17:59:21 +03:00
{ $ _ [ 2 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 71
2005-12-25 17:59:21 +03:00
'opt_union_body' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 72
2005-12-25 17:59:21 +03:00
'opt_union_body' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 73
2007-02-18 19:21:28 +03:00
'union' , 4 ,
2003-12-08 05:55:28 +03:00
sub
2009-08-05 15:43:49 +04:00
#line 355 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
2005-07-20 03:34:02 +04:00
"TYPE" = > "UNION" ,
2007-02-18 19:21:28 +03:00
"PROPERTIES" = > $ _ [ 1 ] ,
"NAME" = > $ _ [ 3 ] ,
"ELEMENTS" = > $ _ [ 4 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2005-02-11 05:05:47 +03:00
} }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 74
2003-12-08 05:55:28 +03:00
'base_element' , 5 ,
sub
2009-08-05 15:43:49 +04:00
#line 367 "idl.yp"
2003-12-08 05:55:28 +03:00
{ {
"NAME" = > $ _ [ 4 ] ,
"TYPE" = > $ _ [ 2 ] ,
"PROPERTIES" = > $ _ [ 1 ] ,
"POINTERS" = > $ _ [ 3 ] ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"ARRAY_LEN" = > $ _ [ 5 ] ,
2007-01-05 18:20:23 +03:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
2003-12-08 05:55:28 +03:00
} }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 75
2003-12-08 05:55:28 +03:00
'pointers' , 0 ,
sub
2009-08-05 15:43:49 +04:00
#line 380 "idl.yp"
2003-12-08 05:55:28 +03:00
{ 0 }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 76
2003-12-08 05:55:28 +03:00
'pointers' , 2 ,
sub
2009-08-05 15:43:49 +04:00
#line 382 "idl.yp"
2003-12-08 05:55:28 +03:00
{ $ _ [ 1 ] + 1 }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 77
'pipe' , 3 ,
sub
2009-08-05 15:43:49 +04:00
#line 387 "idl.yp"
2009-08-05 15:40:38 +04:00
{ {
"TYPE" = > "PIPE" ,
"PROPERTIES" = > $ _ [ 1 ] ,
2010-09-21 21:30:08 +04:00
"NAME" = > undef ,
"DATA" = > {
"TYPE" = > "STRUCT" ,
"PROPERTIES" = > $ _ [ 1 ] ,
"NAME" = > undef ,
"ELEMENTS" = > [ {
"NAME" = > "count" ,
"PROPERTIES" = > $ _ [ 1 ] ,
"POINTERS" = > 0 ,
"ARRAY_LEN" = > [] ,
"TYPE" = > "uint3264" ,
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} , {
"NAME" = > "array" ,
"PROPERTIES" = > $ _ [ 1 ] ,
"POINTERS" = > 0 ,
"ARRAY_LEN" = > [ "count" ] ,
"TYPE" = > $ _ [ 3 ] ,
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} ] ,
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} ,
2009-08-05 15:40:38 +04:00
"FILE" = > $ _ [ 0 ] - > YYData - > { FILE } ,
"LINE" = > $ _ [ 0 ] - > YYData - > { LINE } ,
} }
] ,
[ #Rule 78
2007-03-04 17:16:52 +03:00
'element_list1' , 0 ,
sub
2010-09-21 21:30:08 +04:00
#line 422 "idl.yp"
2007-03-04 17:16:52 +03:00
{ [] }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 79
2003-12-08 05:55:28 +03:00
'element_list1' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 424 "idl.yp"
2003-12-08 05:55:28 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 2 ] ) ; $ _ [ 1 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 80
2003-12-08 05:55:28 +03:00
'optional_const' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 81
2003-12-08 05:55:28 +03:00
'optional_const' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 82
2003-12-08 05:55:28 +03:00
'element_list2' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 83
2003-12-08 05:55:28 +03:00
'element_list2' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 84
2003-12-08 05:55:28 +03:00
'element_list2' , 2 ,
2009-08-04 16:59:33 +04:00
sub
2010-09-21 21:30:08 +04:00
#line 438 "idl.yp"
2003-12-08 05:55:28 +03:00
{ [ $ _ [ 2 ] ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 85
2003-12-08 05:55:28 +03:00
'element_list2' , 4 ,
2009-08-04 16:59:33 +04:00
sub
2010-09-21 21:30:08 +04:00
#line 440 "idl.yp"
2003-12-08 05:55:28 +03:00
{ push ( @ { $ _ [ 1 ] } , $ _ [ 4 ] ) ; $ _ [ 1 ] }
2009-08-04 16:59:33 +04:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 86
2003-12-08 05:55:28 +03:00
'array_len' , 0 , undef
2009-08-04 16:59:33 +04:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 87
2005-05-27 18:01:22 +04:00
'array_len' , 3 ,
2003-12-08 05:55:28 +03:00
sub
2010-09-21 21:30:08 +04:00
#line 446 "idl.yp"
2005-05-27 18:01:22 +04:00
{ push ( @ { $ _ [ 3 ] } , "*" ) ; $ _ [ 3 ] }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 88
2005-05-27 18:01:22 +04:00
'array_len' , 4 ,
2003-12-08 05:55:28 +03:00
sub
2010-09-21 21:30:08 +04:00
#line 448 "idl.yp"
2005-05-27 18:01:22 +04:00
{ push ( @ { $ _ [ 4 ] } , "$_[2]" ) ; $ _ [ 4 ] }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 89
2003-12-08 05:55:28 +03:00
'property_list' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 90
2003-12-08 05:55:28 +03:00
'property_list' , 4 ,
sub
2010-09-21 21:30:08 +04:00
#line 454 "idl.yp"
2005-12-25 17:59:21 +03:00
{ FlattenHash ( [ $ _ [ 1 ] , $ _ [ 3 ] ] ) ; }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 91
2003-12-08 05:55:28 +03:00
'properties' , 1 ,
sub
2010-09-21 21:30:08 +04:00
#line 458 "idl.yp"
2003-12-08 05:55:28 +03:00
{ $ _ [ 1 ] }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 92
2003-12-08 05:55:28 +03:00
'properties' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 460 "idl.yp"
2005-12-25 17:59:21 +03:00
{ FlattenHash ( [ $ _ [ 1 ] , $ _ [ 3 ] ] ) ; }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 93
2003-12-08 05:55:28 +03:00
'property' , 1 ,
sub
2010-09-21 21:30:08 +04:00
#line 464 "idl.yp"
2003-12-08 05:55:28 +03:00
{ { "$_[1]" = > "1" } }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 94
2003-12-08 05:55:28 +03:00
'property' , 4 ,
sub
2010-09-21 21:30:08 +04:00
#line 466 "idl.yp"
2003-12-08 05:55:28 +03:00
{ { "$_[1]" = > "$_[3]" } }
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 95
2004-10-14 14:30:08 +04:00
'commalisttext' , 1 , undef
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 96
2004-10-14 14:30:08 +04:00
'commalisttext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 472 "idl.yp"
2004-10-14 14:30:08 +04:00
{ "$_[1],$_[3]" }
2003-12-08 05:55:28 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 97
2004-10-14 14:30:08 +04:00
'anytext' , 0 ,
sub
2010-09-21 21:30:08 +04:00
#line 477 "idl.yp"
2004-10-14 14:30:08 +04:00
{ "" }
2003-12-08 05:55:28 +03:00
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 98
2004-11-29 14:08:15 +03:00
'anytext' , 1 , undef
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 99
2009-08-05 15:40:38 +04:00
'anytext' , 1 , undef
2003-12-08 05:55:28 +03:00
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 100
2009-08-05 15:40:38 +04:00
'anytext' , 1 , undef
2004-11-29 14:08:15 +03:00
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 101
2005-09-04 02:58:04 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 485 "idl.yp"
2005-09-04 02:58:04 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 102
2005-09-04 02:58:04 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 487 "idl.yp"
2005-09-04 02:58:04 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 103
2005-09-04 02:58:04 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 489 "idl.yp"
2005-09-04 02:58:04 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 104
2006-07-29 10:00:58 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 491 "idl.yp"
2006-07-29 10:00:58 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 105
2006-07-29 10:00:58 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 493 "idl.yp"
2006-07-29 10:00:58 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 106
2006-09-07 02:25:54 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 495 "idl.yp"
2006-09-07 02:25:54 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 107
2006-09-07 02:25:54 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 497 "idl.yp"
2006-09-07 02:25:54 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
2008-01-12 03:10:59 +03:00
[ #Rule 108
2008-05-07 19:18:18 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 499 "idl.yp"
2008-05-07 19:18:18 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
[ #Rule 109
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 501 "idl.yp"
2008-05-07 19:18:18 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
[ #Rule 110
2005-01-21 09:46:07 +03:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 503 "idl.yp"
2005-01-21 09:46:07 +03:00
{ "$_[1]$_[2]$_[3]" }
2003-12-08 05:55:28 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 111
2005-05-27 22:14:43 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 505 "idl.yp"
2005-05-27 22:14:43 +04:00
{ "$_[1]$_[2]$_[3]" }
2003-12-08 05:55:28 +03:00
] ,
2008-05-07 19:18:18 +04:00
[ #Rule 112
2009-08-05 15:40:38 +04:00
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 507 "idl.yp"
2009-08-05 15:40:38 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
[ #Rule 113
'anytext' , 3 ,
sub
2010-09-21 21:30:08 +04:00
#line 509 "idl.yp"
2009-08-05 15:40:38 +04:00
{ "$_[1]$_[2]$_[3]" }
] ,
[ #Rule 114
2005-05-27 22:14:43 +04:00
'anytext' , 5 ,
2009-08-04 16:59:33 +04:00
sub
2010-09-21 21:30:08 +04:00
#line 511 "idl.yp"
2008-05-07 19:18:18 +04:00
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
2005-01-21 09:46:07 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 115
2005-07-20 03:34:02 +04:00
'anytext' , 5 ,
2009-08-04 16:59:33 +04:00
sub
2010-09-21 21:30:08 +04:00
#line 513 "idl.yp"
2008-05-07 19:18:18 +04:00
{ "$_[1]$_[2]$_[3]$_[4]$_[5]" }
2005-07-20 03:34:02 +04:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 116
2005-07-20 03:34:02 +04:00
'identifier' , 1 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 117
2005-05-27 22:14:43 +04:00
'optional_identifier' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 118
2005-07-20 03:34:02 +04:00
'optional_identifier' , 1 , undef
2009-08-04 16:59:33 +04:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 119
2004-10-14 14:30:08 +04:00
'constant' , 1 , undef
2009-08-04 16:59:33 +04:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 120
2003-12-08 05:55:28 +03:00
'text' , 1 ,
sub
2010-09-21 21:30:08 +04:00
#line 531 "idl.yp"
2003-12-08 05:55:28 +03:00
{ "\"$_[1]\"" }
2004-11-01 15:26:59 +03:00
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 121
2004-11-01 15:26:59 +03:00
'optional_semicolon' , 0 , undef
] ,
2009-08-05 15:40:38 +04:00
[ #Rule 122
2004-11-01 15:26:59 +03:00
'optional_semicolon' , 1 , undef
2003-12-08 05:55:28 +03:00
]
] ,
@ _ ) ;
bless ( $ self , $ class ) ;
}
2010-09-21 21:30:08 +04:00
#line 543 "idl.yp"
2005-12-25 17:59:21 +03:00
2007-01-05 18:20:23 +03:00
use Parse::Pidl qw( error ) ;
2005-12-25 17:59:21 +03:00
#####################################################################
# flatten an array of hashes into a single hash
sub FlattenHash ($)
{
my $ a = shift ;
my % b ;
for my $ d ( @ { $ a } ) {
for my $ k ( keys % { $ d } ) {
$ b { $ k } = $ d - > { $ k } ;
2009-08-04 16:59:33 +04:00
}
2005-12-25 17:59:21 +03:00
}
return \ % b ;
}
2003-12-08 05:55:28 +03:00
2005-07-10 05:16:02 +04:00
#####################################################################
# traverse a perl data structure removing any empty arrays or
# hashes and any hash elements that map to undef
sub CleanData ($)
{
sub CleanData ($) ;
my ( $ v ) = shift ;
2009-08-04 16:59:33 +04:00
2005-12-25 02:32:50 +03:00
return undef if ( not defined ( $ v ) ) ;
2009-08-04 16:59:33 +04:00
2005-07-10 05:16:02 +04:00
if ( ref ( $ v ) eq "ARRAY" ) {
foreach my $ i ( 0 .. $# { $ v } ) {
CleanData ( $ v - > [ $ i ] ) ;
}
# this removes any undefined elements from the array
@ { $ v } = grep { defined $ _ } @ { $ v } ;
} elsif ( ref ( $ v ) eq "HASH" ) {
foreach my $ x ( keys % { $ v } ) {
CleanData ( $ v - > { $ x } ) ;
if ( ! defined $ v - > { $ x } ) {
delete ( $ v - > { $ x } ) ;
next ;
}
2009-08-04 16:59:33 +04:00
}
2005-07-10 05:16:02 +04:00
}
2009-08-04 16:59:33 +04:00
2005-07-10 05:16:02 +04:00
return $ v ;
}
2003-12-08 05:55:28 +03:00
sub _Error {
r6973: Merge new version of pidl into the main SAMBA_4_0 branch.
The main difference in this new version is the extra data structure generated
between the IDL data structure and the NDR parser:
IDL -> NDR -> { ndr_parser, ndr_header, eparser, etc }
This makes the ndr_parser.pm internals much more sane.
Other changes include:
- Remove unnecessary calls with NDR_BUFFERS (for example, GUID doesn't have any buffers, just scalars) as well as some (unnecessary) nested setting of flags.
- Parse array loops in the C code rather then calling ndr_pull_array(). This allows us to have, for example, arrays of pointers or arrays of pointers to arrays, etc..
- Use if() {} rather then if () goto foo; everywhere
- NDR_IN no longer implies LIBNDR_FLAG_REF_ALLOC
- By default, top level pointers are now "ref" (as is the default in
most other IDL compilers). This can be overridden using the
default_pointer_top() property.
- initial work on new ethereal parser generators by Alan DeKok and me
- pidl now writes errors in the standard format used by compilers, which
is parsable by most editors
- ability to warn about the fact that pidl extension(s) have been used,
useful for making sure IDL files work with other IDL compilers.
oh, and there's probably some other things I can't think of right now..
(This used to be commit 13cf227615f6b9e0e5fa62e59197024410254f01)
2005-05-25 17:50:27 +04:00
if ( exists $ _ [ 0 ] - > YYData - > { ERRMSG } ) {
2007-01-05 18:20:23 +03:00
error ( $ _ [ 0 ] - > YYData , $ _ [ 0 ] - > YYData - > { ERRMSG } ) ;
2003-12-08 05:55:28 +03:00
delete $ _ [ 0 ] - > YYData - > { ERRMSG } ;
return ;
2008-02-26 17:38:45 +03:00
}
2009-08-04 16:59:33 +04:00
2003-12-08 05:55:28 +03:00
my $ last_token = $ _ [ 0 ] - > YYData - > { LAST_TOKEN } ;
2009-08-04 16:59:33 +04:00
2007-01-05 18:20:23 +03:00
error ( $ _ [ 0 ] - > YYData , "Syntax error near '$last_token'" ) ;
2003-12-08 05:55:28 +03:00
}
sub _Lexer ($)
{
my ( $ parser ) = shift ;
2005-07-22 01:27:39 +04:00
$ parser - > YYData - > { INPUT } or return ( '' , undef ) ;
2003-12-08 05:55:28 +03:00
again:
$ parser - > YYData - > { INPUT } =~ s/^[ \t]*// ;
for ( $ parser - > YYData - > { INPUT } ) {
if ( /^\#/ ) {
2013-02-06 12:17:57 +04:00
# Linemarker format is described at
# http://gcc.gnu.org/onlinedocs/cpp/Preprocessor-Output.html
if ( s/^\# (\d+) \"(.*?)\"(( \d+){1,4}|)// ) {
2003-12-08 05:55:28 +03:00
$ parser - > YYData - > { LINE } = $ 1 - 1 ;
2007-01-05 18:20:23 +03:00
$ parser - > YYData - > { FILE } = $ 2 ;
2003-12-08 05:55:28 +03:00
goto again ;
}
2003-12-16 03:38:33 +03:00
if ( s/^\#line (\d+) \"(.*?)\"( \d+|)// ) {
$ parser - > YYData - > { LINE } = $ 1 - 1 ;
2007-01-05 18:20:23 +03:00
$ parser - > YYData - > { FILE } = $ 2 ;
2003-12-16 03:38:33 +03:00
goto again ;
}
if ( s/^(\#.*)$//m ) {
goto again ;
}
2003-12-08 05:55:28 +03:00
}
if ( s/^(\n)// ) {
$ parser - > YYData - > { LINE } + + ;
goto again ;
}
if ( s/^\"(.*?)\"// ) {
$ parser - > YYData - > { LAST_TOKEN } = $ 1 ;
return ( 'TEXT' , $ 1 ) ;
}
if ( s/^(\d+)(\W|$)/$2/ ) {
$ parser - > YYData - > { LAST_TOKEN } = $ 1 ;
return ( 'CONSTANT' , $ 1 ) ;
}
if ( s/^([\w_]+)// ) {
$ parser - > YYData - > { LAST_TOKEN } = $ 1 ;
if ( $ 1 =~
2008-01-12 03:10:59 +03:00
/ ^ ( coclass | interface | import | importlib
| include | cpp_quote | typedef
2009-08-05 15:40:38 +04:00
| union | struct | enum | bitmap | pipe
2006-11-07 00:54:19 +03:00
| void | const | unsigned | signed ) $ / x ) {
2003-12-08 05:55:28 +03:00
return $ 1 ;
}
return ( 'IDENTIFIER' , $ 1 ) ;
}
if ( s/^(.)//s ) {
$ parser - > YYData - > { LAST_TOKEN } = $ 1 ;
return ( $ 1 , $ 1 ) ;
}
}
}
2005-12-25 02:32:50 +03:00
sub parse_string
2003-12-08 05:55:28 +03:00
{
2005-12-25 02:32:50 +03:00
my ( $ data , $ filename ) = @ _ ;
2005-12-25 00:57:51 +03:00
my $ self = new Parse::Pidl:: IDL ;
2007-01-05 18:20:23 +03:00
$ self - > YYData - > { FILE } = $ filename ;
2005-12-25 00:57:51 +03:00
$ self - > YYData - > { INPUT } = $ data ;
$ self - > YYData - > { LINE } = 0 ;
$ self - > YYData - > { LAST_TOKEN } = "NONE" ;
my $ idl = $ self - > YYParse ( yylex = > \ & _Lexer , yyerror = > \ & _Error ) ;
return CleanData ( $ idl ) ;
}
2006-11-06 23:01:22 +03:00
sub parse_file ($$)
2005-12-25 00:57:51 +03:00
{
2006-11-06 23:01:22 +03:00
my ( $ filename , $ incdirs ) = @ _ ;
2003-12-08 05:55:28 +03:00
my $ saved_delim = $/ ;
undef $/ ;
2003-12-16 01:06:18 +03:00
my $ cpp = $ ENV { CPP } ;
2010-12-10 02:03:40 +03:00
my $ options = "" ;
2003-12-16 01:06:18 +03:00
if ( ! defined $ cpp ) {
2010-12-10 02:03:40 +03:00
if ( defined $ ENV { CC } ) {
$ cpp = "$ENV{CC}" ;
$ options = "-E" ;
} else {
$ cpp = "cpp" ;
}
2003-12-16 01:06:18 +03:00
}
2006-11-07 04:00:27 +03:00
my $ includes = join ( '' , map { " -I$_" } @$ incdirs ) ;
2010-12-10 02:03:40 +03:00
my $ data = `$cpp $options -D__PIDL__$includes -xc "$filename"` ;
2003-12-08 05:55:28 +03:00
$/ = $ saved_delim ;
2005-12-25 02:32:50 +03:00
return parse_string ( $ data , $ filename ) ;
2003-12-08 05:55:28 +03:00
}
1 ;