Lines Matching refs:Rest

83     Rest = case Rest02 of
90 case Rest of
125 parse_Exports([{'EXPORTS',_L1},{';',_L2}|Rest]) ->
126 {{exports,[]},Rest};
127 parse_Exports([{'EXPORTS',_},{'ALL',_},{';',_}|Rest]) ->
129 {{exports,all},Rest};
130 parse_Exports([{'EXPORTS',_L1}|Rest]) ->
131 {SymbolList,Rest2} = parse_SymbolList(Rest),
138 parse_Exports(Rest) ->
139 {{exports,all},Rest}.
145 {Symbol,Rest} = parse_Symbol(Tokens),
146 case Rest of
156 parse_Reference([{typereference,L1,TrefName},{'{',_L2},{'}',_L3}|Rest]) ->
157 {tref2Exttref(L1,TrefName),Rest};
159 {'{',_L2},{'}',_L3}|Rest]) ->
160 {{tref2Exttref(Tref1),tref2Exttref(Tref2)},Rest};
161 parse_Reference([Tref = {typereference,_L1,_TrefName}|Rest]) ->
162 {tref2Exttref(Tref),Rest};
163 parse_Reference([#identifier{}=Vref,{'{',_L2},{'}',_L3}|Rest]) ->
164 {identifier2Extvalueref(Vref),Rest};
165 parse_Reference([#identifier{}=Vref|Rest]) ->
166 {identifier2Extvalueref(Vref),Rest};
170 parse_Imports([{'IMPORTS',_L1},{';',_L2}|Rest]) ->
171 {{imports,[]},Rest};
172 parse_Imports([{'IMPORTS',_L1}|Rest]) ->
173 {SymbolsFromModuleList,Rest2} = parse_SymbolsFromModuleList(Rest),
187 {SymbolsFromModule,Rest} = parse_SymbolsFromModule(Tokens),
188 try parse_SymbolsFromModule(Rest) of
190 parse_SymbolsFromModuleList(Rest, [SymbolsFromModule|Acc])
193 {lists:reverse(Acc, [SymbolsFromModule]),Rest}
205 {SymbolList,Rest} = parse_SymbolList(Tokens),
206 case Rest of
235 parse_error(Rest)
238 parse_ObjectIdentifierValue([{'{',_}|Rest]) ->
239 parse_ObjectIdentifierValue(Rest,[]).
241 parse_ObjectIdentifierValue([{number,_,Num}|Rest], Acc) ->
242 parse_ObjectIdentifierValue(Rest,[Num|Acc]);
243 parse_ObjectIdentifierValue([#identifier{val=Id},{'(',_},{number,_,Num},{')',_}|Rest], Acc) ->
244 parse_ObjectIdentifierValue(Rest,[{'NamedNumber',Id,Num}|Acc]);
245 parse_ObjectIdentifierValue([#identifier{val=Id},{'(',_},#identifier{val=Id2},{')',_}|Rest], Acc) ->
246 parse_ObjectIdentifierValue(Rest,[{'NamedNumber',Id,Id2}|Acc]);
247 …ntifier{val=Id},{'(',_},{typereference,_,Tref},{'.',_},#identifier{val=Id2}, {')',_}|Rest], Acc) ->
248 parse_ObjectIdentifierValue(Rest, [{'NamedNumber',Id,{'ExternalValue',Tref,Id2}}|Acc]);
249 parse_ObjectIdentifierValue([#identifier{}=Id|Rest], Acc) ->
250 parse_ObjectIdentifierValue(Rest, [identifier2Extvalueref(Id)|Acc]);
251 parse_ObjectIdentifierValue([{'}',_}|Rest], Acc) ->
252 {lists:reverse(Acc),Rest};
318 {_,Rest}=Result when is_list(Rest) ->
332 {Parsed,Rest} when is_list(Rest) ->
333 {{Tag,Parsed},Rest}
390 parse_BuiltinType([{'BIT',_},{'STRING',_}|Rest]) ->
391 case Rest of
401 {#type{def={'BIT STRING',[]}},Rest}
403 parse_BuiltinType([{'BOOLEAN',_}|Rest]) ->
404 {#type{def='BOOLEAN'},Rest};
407 parse_BuiltinType([{restrictedcharacterstringtype,_,StringName}|Rest]) ->
408 {#type{def=StringName},Rest};
409 parse_BuiltinType([{'CHARACTER',_},{'STRING',_}|Rest]) ->
410 {#type{def='CHARACTER STRING'},Rest};
412 parse_BuiltinType([{'CHOICE',_},{'{',_}|Rest]) ->
413 {L0,Rest2} = parse_AlternativeTypeLists(Rest),
428 parse_BuiltinType([{'EMBEDDED',_},{'PDV',_}|Rest]) ->
429 {#type{def='EMBEDDED PDV'},Rest};
430 parse_BuiltinType([{'ENUMERATED',_},{'{',_}|Rest]) ->
431 {Enumerations,Rest2} = parse_Enumerations(Rest),
438 parse_BuiltinType([{'EXTERNAL',_}|Rest]) ->
439 {#type{def='EXTERNAL'},Rest};
440 parse_BuiltinType([{'INSTANCE',_},{'OF',_}|Rest]) ->
441 {DefinedObjectClass,Rest2} = parse_DefinedObjectClass(Rest),
450 parse_BuiltinType([{'INTEGER',_}|Rest]) ->
451 case Rest of
461 {#type{def='INTEGER'},Rest}
463 parse_BuiltinType([{'NULL',_}|Rest]) ->
464 {#type{def='NULL'},Rest};
465 parse_BuiltinType([{'OBJECT',_},{'IDENTIFIER',_}|Rest]) ->
466 {#type{def='OBJECT IDENTIFIER'},Rest};
467 parse_BuiltinType([{'OCTET',_},{'STRING',_}|Rest]) ->
468 {#type{def='OCTET STRING'},Rest};
469 parse_BuiltinType([{'REAL',_}|Rest]) ->
470 {#type{def='REAL'},Rest};
471 parse_BuiltinType([{'RELATIVE-OID',_}|Rest]) ->
472 {#type{def='RELATIVE-OID'},Rest};
473 parse_BuiltinType([{'SEQUENCE',_},{'{',_},{'}',_}|Rest]) ->
475 Rest};
476 parse_BuiltinType([{'SEQUENCE',_},{'{',_},{'...',Line},{'}',_}|Rest]) ->
477 {#type{def=#'SEQUENCE'{components=[#'EXTENSIONMARK'{pos = Line}]}},Rest};
478 parse_BuiltinType([{'SEQUENCE',_},{'{',_},{'...',Line},{'!',_}|Rest]) ->
479 {ExceptionIdentification,Rest2} = parse_ExceptionIdentification(Rest),
497 parse_BuiltinType([{'SEQUENCE',_},{'{',_}|Rest]) ->
498 {ComponentTypeLists,Rest2} = parse_ComponentTypeLists(Rest),
516 parse_BuiltinType([{'SEQUENCE',_},{'OF',_},#identifier{} |Rest]) ->
518 {Type,Rest2} = parse_Type(Rest),
520 parse_BuiltinType([{'SEQUENCE',_},{'OF',_}|Rest]) ->
521 {Type,Rest2} = parse_Type(Rest),
523 parse_BuiltinType([{'SET',_},{'{',_},{'...',Line},{'}',_}|Rest]) ->
524 {#type{def=#'SET'{components=[#'EXTENSIONMARK'{pos = Line}]}},Rest};
525 parse_BuiltinType([{'SET',_},{'{',_},{'...',Line},{'!',_}|Rest]) ->
526 {ExceptionIdentification,Rest2} = parse_ExceptionIdentification(Rest),
543 parse_BuiltinType([{'SET',_},{'{',_}|Rest]) ->
544 {ComponentTypeLists,Rest2} = parse_ComponentTypeLists(Rest),
562 parse_BuiltinType([{'SET',_},{'OF',_},#identifier{}|Rest]) ->
564 {Type,Rest2} = parse_Type(Rest),
566 parse_BuiltinType([{'SET',_},{'OF',_}|Rest]) ->
567 {Type,Rest2} = parse_Type(Rest),
569 parse_BuiltinType([{'GeneralizedTime',_}|Rest]) ->
570 {#type{def='GeneralizedTime'},Rest};
571 parse_BuiltinType([{'UTCTime',_}|Rest]) ->
572 {#type{def='UTCTime'},Rest};
573 parse_BuiltinType([{'ObjectDescriptor',_}|Rest]) ->
574 {#type{def='ObjectDescriptor'},Rest};
575 parse_BuiltinType([{'ANY',_},{'DEFINED',_},{'BY',_},#identifier{val=Id}|Rest]) ->
577 {#type{def={'ANY_DEFINED_BY',Id}},Rest};
578 parse_BuiltinType([{'ANY',_}|Rest]) ->
580 {#type{def='ANY'},Rest};
673 parse_SelectionType([#identifier{val=Name},{'<',_}|Rest]) ->
674 {Type,Rest2} = parse_Type(Rest),
702 {Constraint,Rest} = parse_Constraint(Tokens),
703 case Rest of
705 parse_Constraints(Rest, [Constraint|Acc]);
707 {lists:reverse(Acc, [Constraint]),Rest}
710 parse_Constraint([{'(',_}|Rest]) ->
711 {Constraint,Rest2} = parse_ConstraintSpec(Rest),
725 parse_ExceptionSpec([LPar={')',_}|Rest]) ->
726 {undefined,[LPar|Rest]};
727 parse_ExceptionSpec([{'!',_}|Rest]) ->
728 parse_ExceptionIdentification(Rest);
739 {Type,Rest} = parse_Type(Tokens),
740 case Rest of
745 parse_error(Rest)
752 {RootElems,Rest} = parse_ElementSetSpec(Tokens),
753 case Rest of
760 {{element_set,RootElems,none},Rest}
763 parse_ElementSetSpec([{'ALL',_},{'EXCEPT',_}|Rest]) ->
764 {Exclusions,Rest2} = parse_Elements(Rest),
776 {InterSec,Rest} = parse_Intersections(Tokens),
777 {Unions,Rest2} = parse_UnionsRec(Rest),
785 parse_UnionsRec([{'|',_}|Rest]) ->
786 {InterSec,Rest2} = parse_Intersections(Rest),
794 parse_UnionsRec([{'UNION',Info}|Rest]) ->
795 parse_UnionsRec([{'|',Info}|Rest]);
800 {InterSec,Rest} = parse_IntersectionElements(Tokens),
801 {IRec,Rest2} = parse_IElemsRec(Rest),
811 parse_IElemsRec([{'^',_}|Rest]) ->
812 {InterSec,Rest2} = parse_IntersectionElements(Rest),
820 parse_IElemsRec([{'INTERSECTION',Info}|Rest]) ->
821 parse_IElemsRec([{'^',Info}|Rest]);
831 {InterSec,Rest} = parse_Elements(Tokens),
832 case Rest of
836 Rest ->
837 {InterSec,Rest}
844 parse_Elements([{'(',_}|Rest]) ->
845 {Elems,Rest2} = parse_ElementSetSpec(Rest),
868 parse_DefinedObjectClass([Tr={typereference,_,_ObjClName}|Rest]) ->
869 {tref2Exttref(Tr),Rest};
878 parse_ObjectClassDefn([{'CLASS',_},{'{',_}|Rest]) ->
879 {Type,Rest2} = parse_FieldSpec(Rest),
912 {Type,[{'}',_}|Rest]} ->
913 {lists:reverse(Acc, [Type]),Rest};
918 parse_PrimitiveFieldName([{typefieldreference,_,FieldName}|Rest]) ->
919 {{typefieldreference,FieldName},Rest};
920 parse_PrimitiveFieldName([{valuefieldreference,_,FieldName}|Rest]) ->
921 {{valuefieldreference,FieldName},Rest};
926 {Field,Rest} = parse_PrimitiveFieldName(Tokens),
927 parse_FieldName(Rest,[Field]).
935 parse_FixedTypeValueFieldSpec([{valuefieldreference,_,VFieldName}|Rest]) ->
936 {Type,Rest2} = parse_Type(Rest),
957 {OptionalitySpec,Rest} = parse_ValueOptionalitySpec(Rest1),
958 case is_end_delimiter(Rest) of
961 Rest};
963 parse_error(Rest)
967 {OptionalitySpec,Rest} = parse_TypeOptionalitySpec(Rest0),
968 case is_end_delimiter(Rest) of
970 {{typefield,Name,OptionalitySpec},Rest};
972 parse_error(Rest)
977 {OptionalitySpec,Rest} = parse_ValueSetOptionalitySpec(Rest1),
978 case is_end_delimiter(Rest) of
981 OptionalitySpec},Rest};
983 parse_error(Rest)
988 {OptionalitySpec,Rest} = parse_ValueSetOptionalitySpec(Rest1),
989 case is_end_delimiter(Rest) of
992 Rest};
994 parse_error(Rest)
1003 [{'OPTIONAL',_}|Rest] -> {'OPTIONAL',Rest};
1004 [{'DEFAULT',_}|Rest] ->
1005 {Value,Rest2} = parse_Value(Rest),
1012 [{'OPTIONAL',_}|Rest] -> {'OPTIONAL',Rest};
1013 [{'DEFAULT',_}|Rest] ->
1014 {Type,Rest2} = parse_Type(Rest),
1021 [{'OPTIONAL',_}|Rest] -> {'OPTIONAL',Rest};
1022 [{'DEFAULT',_}|Rest] ->
1023 {ValueSet,Rest2} = parse_ValueSet(Rest),
1028 parse_WithSyntaxSpec([{'WITH',_},{'SYNTAX',_}|Rest]) ->
1029 {SyntaxList,Rest2} = parse_SyntaxList(Rest),
1034 parse_SyntaxList([{'{',_}|Rest]) ->
1035 parse_SyntaxList(Rest,[]);
1040 {SyntaxList,Rest} = parse_TokenOrGroupSpec(Tokens),
1041 case Rest of
1045 parse_SyntaxList(Rest, [SyntaxList|Acc])
1053 parse_RequiredToken([{typereference,_,WordName}|Rest]=Tokens) ->
1058 {WordName,Rest}
1060 parse_RequiredToken([{',',L1}|Rest]) ->
1061 {{',',L1},Rest};
1062 parse_RequiredToken([{WordName,_}|Rest]=Tokens) ->
1067 {WordName,Rest}
1072 parse_OptionalGroup([{'[',_}|Rest]) ->
1073 {Spec,Rest2} = parse_TokenOrGroupSpec(Rest),
1079 parse_OptionalGroup([{']',_}|Rest],Acc) ->
1080 {lists:reverse(Acc),Rest};
1082 {Spec,Rest} = parse_TokenOrGroupSpec(Tokens),
1083 parse_OptionalGroup(Rest,[Spec|Acc]).
1085 parse_DefinedObject([#identifier{}=Id|Rest]) ->
1086 {{object,identifier2Extvalueref(Id)},Rest};
1087 parse_DefinedObject([{typereference,L1,ModName},{'.',_},#identifier{val=ObjName}|Rest]) ->
1088 {{object, #'Externaltypereference'{pos=L1,module=ModName,type=ObjName}},Rest};
1092 parse_ObjectAssignment([#identifier{pos=L1,val=ObjName}|Rest]) ->
1093 {Class,Rest2} = parse_DefinedObjectClass(Rest),
1120 parse_DefaultSyntax([{'{',_}|Rest]) ->
1121 parse_DefaultSyntax(Rest,[]);
1126 {Setting,Rest} = parse_FieldSetting(Tokens),
1127 case Rest of
1133 parse_error(Rest)
1137 {{_,PrimFieldName},Rest} = parse_PrimitiveFieldName(Tokens),
1138 {Setting,Rest2} = parse_Setting(Rest),
1141 parse_DefinedSyntax([{'{',_}|Rest]) ->
1142 parse_DefinedSyntax(Rest, []);
1160 parse_DefinedSyntaxToken([{',',_}=Comma|Rest]) ->
1161 {Comma,Rest};
1169 parse_DefinedSyntaxToken([{typereference,L1,Name}=TRef|Rest]=Tokens) ->
1172 case lookahead_definedsyntax(Rest) of
1174 {{setting,L1,tref2Exttref(TRef)},Rest};
1179 {{word_or_setting,L1,tref2Exttref(TRef)},Rest}
1200 parse_Word([{Name,Pos}|Rest]=Tokens) ->
1205 {{word_or_setting,Pos,tref2Exttref(Pos,Name)},Rest}
1219 {{Tag,Setting},Rest} when is_atom(Tag) ->
1221 {Setting,Rest}
1225 {typereference,L2,ObjSetName}|Rest]) ->
1227 type=ObjSetName}},Rest};
1228 parse_DefinedObjectSet([{typereference,L1,ObjSetName}|Rest]) ->
1230 type=ObjSetName}},Rest};
1234 parse_ObjectSetAssignment([{typereference,L1,ObjSetName}|Rest]) ->
1235 {Class,Rest2} = parse_DefinedObjectClass(Rest),
1256 parse_ObjectSet([{'{',_}|Rest]) ->
1257 {ObjSetSpec,Rest2} = parse_ObjectSetSpec(Rest),
1289 {Class,Rest} = parse_DefinedObjectClass(Tokens),
1290 case Rest of
1298 parse_error(Rest)
1305 {Type,Rest} = parse_Type(Tokens),
1306 case Rest of
1311 parse_error(Rest)
1330 {Objects,Rest} = parse_ReferencedObjects(Tokens),
1331 case Rest of
1341 parse_error(Rest)
1345 {Objects,Rest} = parse_ReferencedObjects(Tokens),
1346 case Rest of
1356 parse_error(Rest)
1366 {Objects,Rest} = parse_ReferencedObjects(Tokens),
1367 case Rest of
1377 parse_error(Rest)
1389 parse_UserDefinedConstraint([{'CONSTRAINED',_},{'BY',_},{'{',_},{'}',_}|Rest])->
1390 {{constrained_by,[]},Rest};
1393 {'{',_}|Rest]) ->
1394 {Param,Rest2} = parse_UserDefinedConstraintParameter(Rest),
1418 {Governor,Rest} = parse_Governor(Tokens),
1419 case Rest of
1424 parse_error(Rest)
1433 {ObjectSet,Rest} = parse_ObjectSet(Tokens),
1434 {{element_set,{simpletable,ObjectSet},none},Rest}.
1436 parse_ComponentRelationConstraint([{'{',_}|Rest]) ->
1437 {ObjectSet,Rest2} = parse_DefinedObjectSet(Rest),
1457 {AtNot,Rest} = parse_AtNotation(Tokens),
1458 case Rest of
1462 {lists:reverse(Acc, [AtNot]),Rest}
1465 parse_AtNotation([{'@',_},{'.',_}|Rest]) ->
1466 {CIdList,Rest2} = parse_ComponentIdList(Rest),
1468 parse_AtNotation([{'@',_}|Rest]) ->
1469 {CIdList,Rest2} = parse_ComponentIdList(Rest),
1477 parse_ComponentIdList([#identifier{}=Id,{'.',_}|Rest], Acc) ->
1478 parse_ComponentIdList(Rest,[identifier2Extvalueref(Id)|Acc]);
1479 parse_ComponentIdList([#identifier{}=Id|Rest], Acc) ->
1480 {lists:reverse(Acc, [identifier2Extvalueref(Id)]),Rest};
1484 parse_ContentsConstraint([{'CONTAINING',_}|Rest]) ->
1485 {Type,Rest2} = parse_Type(Rest),
1493 parse_ContentsConstraint([{'ENCODED',_},{'BY',_}|Rest]) ->
1494 {Value,Rest2} = parse_Value(Rest),
1517 parse_ParameterizedTypeAssignment([{typereference,L1,Name}|Rest]) ->
1518 {ParameterList,Rest2} = parse_ParameterList(Rest),
1530 parse_ParameterizedValueAssignment([#identifier{pos=L1,val=Name}|Rest]) ->
1531 {ParameterList,Rest2} = parse_ParameterList(Rest),
1544 parse_ParameterizedValueSetTypeAssignment([{typereference,L1,Name}|Rest]) ->
1545 {ParameterList,Rest2} = parse_ParameterList(Rest),
1558 parse_ParameterizedObjectClassAssignment([{typereference,L1,Name}|Rest]) ->
1559 {ParameterList,Rest2} = parse_ParameterList(Rest),
1571 parse_ParameterizedObjectAssignment([#identifier{pos=L1,val=Name}|Rest]) ->
1572 {ParameterList,Rest2} = parse_ParameterList(Rest),
1594 {Parameter,Rest} = parse_Parameter(Tokens),
1595 case Rest of
1601 parse_error(Rest)
1610 {ParamGov,Rest} = parse_ParamGovernor(Tokens),
1611 case Rest of
1616 parse_error(Rest)
1625 {typereference,_,TypeName}|Rest]) ->
1627 type=TypeName},Rest};
1628 parse_SimpleDefinedType([Tref={typereference,_,_}|Rest]) ->
1629 {tref2Exttref(Tref),Rest};
1634 #identifier{val=Value}|Rest]) ->
1636 value=Value}},Rest};
1637 parse_SimpleDefinedValue([#identifier{}=Id|Rest]) ->
1638 {{simpledefinedvalue,identifier2Extvalueref(Id)},Rest};
1644 {Type,Rest} = parse_SimpleDefinedType(Tokens),
1645 {Params,Rest2} = parse_ActualParameterList(Rest),
1650 {Value,Rest} = parse_SimpleDefinedValue(Tokens),
1651 {Params,Rest2} = parse_ActualParameterList(Rest),
1655 {ObjectSet,Rest} = parse_DefinedObjectSet(Tokens),
1656 {Params,Rest2} = parse_ActualParameterList(Rest),
1659 parse_ActualParameterList([{'{',_}|Rest]) ->
1660 parse_ActualParameterList(Rest,[]);
1665 {Parameter,Rest} = parse_ActualParameter(Tokens),
1666 case Rest of
1672 parse_error(Rest)
1796 parse_NamedType([#identifier{pos=L1,val=Idname}|Rest]) ->
1797 {Type,Rest2} = parse_Type(Rest),
1829 {ExtAdd,Rest} = parse_ExtensionAdditions(Tokens,Clist),
1830 {Clist2,Rest2} = parse_OptionalExtensionMarker(Rest,lists:flatten(ExtAdd)),
1839 parse_OptionalExtensionMarker([{',',_},{'...',L1}|Rest],Clist)->
1840 {Clist++[#'EXTENSIONMARK'{pos=L1}],Rest};
1858 {ComponentType,Rest} = parse_ComponentType(Tokens),
1859 parse_ComponentTypeList(Rest,[ComponentType]);
1893 {CompTypeList,Rest} = parse_ComponentTypeList(Tokens,[]),
1894 case Rest of
1899 parse_error(Rest)
1903 parse_ComponentType([{'COMPONENTS',_},{'OF',_}|Rest]) ->
1904 {Type,Rest2} = parse_Type(Rest),
1907 Result = {NamedType,Rest} = parse_NamedType(Tokens),
1908 case Rest of
1969 {NamedNum,Rest} = parse_NamedNumber(Tokens),
1970 case Rest of
1974 {lists:reverse(Acc, [NamedNum]),Rest}
1977 parse_NamedNumber([#identifier{val=Name},{'(',_}|Rest]) ->
1980 case parse_or(Rest, Flist) of
1984 parse_error(Rest)
1989 parse_SignedNumber([{number,_,Value}|Rest]) ->
1990 {Value,Rest};
1994 parse_Tag([{'[',_}|Rest]) ->
1995 {Class,Rest2} = parse_Class(Rest),
2010 parse_Class([{'UNIVERSAL',_}|Rest]) ->
2011 {'UNIVERSAL',Rest};
2012 parse_Class([{'APPLICATION',_}|Rest]) ->
2013 {'APPLICATION',Rest};
2014 parse_Class([{'PRIVATE',_}|Rest]) ->
2015 {'PRIVATE',Rest};
2029 parse_BuiltinValue([{bstring,_,Bstr}|Rest]) ->
2030 {{bstring,Bstr},Rest};
2031 parse_BuiltinValue([{hstring,_,Hstr}|Rest]) ->
2032 {{hstring,Hstr},Rest};
2033 parse_BuiltinValue([{'{',_},{'}',_}|Rest]) ->
2034 {[],Rest};
2041 parse_BuiltinValue([#identifier{val=IdName},{':',_}|Rest]) ->
2042 {Value,Rest2} = parse_Value(Rest),
2046 parse_BuiltinValue([{'NULL',_}|Rest]) ->
2047 {'NULL',Rest};
2048 parse_BuiltinValue([{'TRUE',_}|Rest]) ->
2049 {true,Rest};
2050 parse_BuiltinValue([{'FALSE',_}|Rest]) ->
2051 {false,Rest};
2052 parse_BuiltinValue([{'PLUS-INFINITY',_}|Rest]) ->
2053 {'PLUS-INFINITY',Rest};
2054 parse_BuiltinValue([{'MINUS-INFINITY',_}|Rest]) ->
2055 {'MINUS-INFINITY',Rest};
2056 parse_BuiltinValue([{cstring,_,Cstr}|Rest]) ->
2057 {Cstr,Rest};
2058 parse_BuiltinValue([{number,_,Num}|Rest]) ->
2059 {Num,Rest};
2070 #identifier{val=Idname}|Rest]) ->
2071 {#'Externalvaluereference'{pos=L1,module=Tname,value=Idname},Rest};
2073 parse_DefinedValue2([#identifier{}=Id|Rest]) ->
2074 {identifier2Extvalueref(Id),Rest};
2082 parse_SequenceValue([#identifier{pos=Pos,val=IdName}|Rest],Acc) ->
2083 {Value,Rest2} = parse_Value(Rest),
2110 parse_ValueSetTypeAssignment([{typereference,L1,Name}|Rest]) ->
2111 {Type,Rest2} = parse_Type(Rest),
2121 parse_ValueSet([{'{',_}|Rest]) ->
2122 {Elems,Rest2} = parse_ElementSetSpecs(Rest),
2132 parse_ValueAssignment([#identifier{pos=L1,val=IdName}|Rest]) ->
2133 {Type,Rest2} = parse_Type(Rest),
2145 {Constraint,Rest} = parse_Constraint(Tokens),
2146 {{'SizeConstraint',Constraint#constraint.c},Rest};
2149 {Constraint,Rest} = parse_Constraint(Tokens),
2150 {{'PermittedAlphabet',Constraint#constraint.c},Rest};
2153 {Constraint,Rest} = parse_Constraint(Tokens),
2154 {{'WITH COMPONENT',Constraint},Rest};
2156 {Constraint,Rest} = parse_TypeConstraints(Tokens),
2157 case Rest of
2161 parse_error(Rest)
2164 {Constraint,Rest} = parse_TypeConstraints(Tokens),
2165 case Rest of
2169 parse_error(Rest)
2172 {Value,Rest} = parse_Value(Tokens),
2173 {{pattern,Value},Rest};
2182 {Lower,[{'..',_}|Rest]} ->
2183 {Upper,Rest2} = parse_UpperEndpoint(Rest),
2185 {Lower,[{'<',_},{'..',_}|Rest]} ->
2186 {Upper,Rest2} = parse_UpperEndpoint(Rest),
2188 {Res={'ContainedSubtype',_Type},Rest} ->
2189 {Res,Rest};
2190 {Value,Rest} ->
2191 {{'SingleValue',Value},Rest}
2194 parse_ContainedSubtype([{'INCLUDES',_}|Rest]) ->
2195 {Type,Rest2} = parse_Type(Rest),
2200 parse_UpperEndpoint([{'<',_}|Rest]) ->
2201 parse_UpperEndpoint(lt,Rest);
2228 parse_TypeConstraints([#identifier{}|Rest], Acc) ->
2229 {ComponentConstraint,Rest2} = parse_ComponentConstraint(Rest),
2244 {PresenceConstraint,Rest} = parse_PresenceConstraint(Tokens),
2245 {{asn1_empty,PresenceConstraint},Rest}.
2247 parse_PresenceConstraint([{'PRESENT',_}|Rest]) ->
2248 {'PRESENT',Rest};
2249 parse_PresenceConstraint([{'ABSENT',_}|Rest]) ->
2250 {'ABSENT',Rest};
2251 parse_PresenceConstraint([{'OPTIONAL',_}|Rest]) ->
2252 {'OPTIONAL',Rest};