From 28bf4b0bfd405a2057d865910f8589c54a40f17b Mon Sep 17 00:00:00 2001 From: dlaroche Date: Tue, 3 Jul 2001 18:46:40 +0000 Subject: [PATCH] Merged code tree with Dave Evans's version. Many changes to numberous to list.... --- src/Headers/CTypesNode.h | 7 +- src/Headers/abstBodyNode.h | 8 +- src/Headers/abstract.h | 28 +- src/Headers/abstractNode.h | 4 +- src/Headers/aliasChecks.h | 34 +- src/Headers/aliasStack.h | 2 +- src/Headers/aliasTable.h | 6 +- src/Headers/annotationInfo.h | 65 + src/Headers/annotationTable.h | 72 + src/Headers/arrayQualNode.h | 6 +- src/Headers/basic.h | 35 +- src/Headers/bool.h | 4 +- src/Headers/boolStack.h | 2 +- src/Headers/cgrammar.h | 2 +- src/Headers/checking.h | 2 +- src/Headers/clabstract.h | 35 +- src/Headers/claimNode.h | 4 +- src/Headers/clauseStack.h | 4 +- src/Headers/code.h | 2 +- src/Headers/constDeclarationNode.h | 4 +- src/Headers/constants.h | 21 +- src/Headers/constraint.h | 113 +- src/Headers/constraintExpr.h | 83 +- src/Headers/constraintExprData.h | 34 +- src/Headers/constraintList.h | 36 +- src/Headers/constraintResolve.h | 40 +- src/Headers/constraintTerm.h | 15 +- src/Headers/context.h | 51 +- src/Headers/cprim.h | 2 +- src/Headers/cstring.h | 5 + src/Headers/cstringList.h | 15 +- src/Headers/cstringSList.h | 6 +- src/Headers/cstringTable.h | 90 + src/Headers/ctypeList.h | 19 +- src/Headers/cvar.h | 2 +- src/Headers/declaratorInvNode.h | 8 +- src/Headers/declaratorInvNodeList.h | 4 +- src/Headers/declaratorNode.h | 4 +- src/Headers/declaratorNodeList.h | 4 +- src/Headers/ekind.h | 5 +- src/Headers/enumNameList.h | 4 +- src/Headers/enumNameSList.h | 2 +- src/Headers/enumSpecNode.h | 4 +- src/Headers/exportNode.h | 4 +- src/Headers/exposedNode.h | 4 +- src/Headers/exprChecks.h | 5 +- src/Headers/exprData.h | 126 +- src/Headers/exprNode.h | 92 +- src/Headers/exprNodeList.h | 7 +- src/Headers/exprNodeSList.h | 4 +- src/Headers/fcnNode.h | 4 +- src/Headers/fcnNodeList.h | 4 +- src/Headers/fileId.h | 2 +- src/Headers/fileIdList.h | 8 +- src/Headers/fileLib.h | 49 + src/Headers/fileTable.h | 20 +- src/Headers/fileloc.h | 15 +- src/Headers/filelocList.h | 2 +- src/Headers/filelocStack.h | 2 +- src/Headers/flagMarker.h | 6 +- src/Headers/flagMarkerList.h | 4 +- src/Headers/flagSpec.h | 55 + src/Headers/flag_codes.h | 6 +- src/Headers/flags.h | 20 +- src/Headers/forwardTypes.h | 78 +- src/Headers/functionClause.h | 76 + src/Headers/functionClauseList.h | 69 + src/Headers/general.h | 8 +- src/Headers/genericTable.h | 99 + src/Headers/globSet.h | 14 +- src/Headers/globalList.h | 2 +- src/Headers/globals.h | 23 +- src/Headers/globalsClause.h | 30 + src/Headers/gram.h | 2 +- src/Headers/guardSet.h | 8 +- src/Headers/handle.h | 2 +- src/Headers/herald.h | 2 +- src/Headers/herald.last | 2 +- src/Headers/idDecl.h | 15 +- src/Headers/idDeclList.h | 4 +- src/Headers/importNode.h | 5 +- src/Headers/importNodeList.h | 4 +- src/Headers/imports.h | 2 +- src/Headers/initDeclNode.h | 6 +- src/Headers/initDeclNodeList.h | 4 +- src/Headers/inputStream.h | 71 + src/Headers/intSet.h | 4 +- src/Headers/intTable.h | 44 + src/Headers/interfaceNode.h | 4 +- src/Headers/interfaceNodeList.h | 4 +- src/Headers/iterNode.h | 4 +- src/Headers/lclForwardTypes.h | 15 +- src/Headers/lclPredicateNode.h | 10 +- src/Headers/lclTypeSpecNode.h | 6 +- src/Headers/lcl_constants.h | 8 +- src/Headers/lclctypes.h | 2 +- src/Headers/lclinit.h | 2 +- src/Headers/lclintMacros.nf | 7 +- src/Headers/lcllib.h | 2 +- src/Headers/lclscan.h | 6 +- src/Headers/lclscanline.h | 2 +- src/Headers/lclsyntable.h | 2 +- src/Headers/lcltokentable.h | 2 +- src/Headers/lctype.h | 10 +- src/Headers/letDeclNode.h | 6 +- src/Headers/letDeclNodeList.h | 4 +- src/Headers/lh.h | 4 +- src/Headers/limwr.h | 2 +- src/Headers/llbasic.h | 2 +- src/Headers/llerror.h | 163 +- src/Headers/llglobals.h | 2 +- src/Headers/llmain.h | 4 +- src/Headers/lltok.h | 39 +- src/Headers/lslOp.h | 4 +- src/Headers/lslOpList.h | 4 +- src/Headers/lslOpSet.h | 4 +- src/Headers/lslinit.h | 2 +- src/Headers/lslparse.h | 8 +- src/Headers/lsymbol.h | 2 +- src/Headers/lsymbolList.h | 4 +- src/Headers/lsymbolSet.h | 4 +- src/Headers/ltoken.h | 65 +- src/Headers/ltokenList.h | 4 +- src/Headers/macrocache.h | 6 +- src/Headers/mapping.h | 18 +- src/Headers/message.h | 2 +- src/Headers/messageLog.h | 6 +- src/Headers/metaStateInfo.h | 91 + src/Headers/metaStateTable.h | 87 + src/Headers/misc.h | 41 +- src/Headers/modifyNode.h | 5 +- src/Headers/mtAnnotationDecl.h | 41 + src/Headers/mtAnnotationList.h | 63 + src/Headers/mtAnnotationsNode.h | 27 + src/Headers/mtContextNode.h | 50 + src/Headers/mtDeclarationNode.h | 34 + src/Headers/mtDeclarationPiece.h | 69 + src/Headers/mtDeclarationPieces.h | 44 + src/Headers/mtDefaultsDecl.h | 38 + src/Headers/mtDefaultsDeclList.h | 68 + src/Headers/mtDefaultsNode.h | 30 + src/Headers/mtLoseReference.h | 38 + src/Headers/mtLoseReferenceList.h | 66 + src/Headers/mtMergeClause.h | 40 + src/Headers/mtMergeClauseList.h | 66 + src/Headers/mtMergeItem.h | 40 + src/Headers/mtMergeNode.h | 27 + src/Headers/mtTransferAction.h | 45 + src/Headers/mtTransferClause.h | 42 + src/Headers/mtTransferClauseList.h | 66 + src/Headers/mtValuesNode.h | 28 + src/Headers/mtgrammar.h | 20 + src/Headers/mtgrammar.tab.h | 5 + src/Headers/mtgrammar_tokens.h | 159 + src/Headers/mtincludes.h | 22 + src/Headers/mtreader.h | 24 + src/Headers/mtscanner.h | 26 + src/Headers/mttok.h | 47 + src/Headers/multiVal.h | 17 +- src/Headers/nameChecks.h | 16 +- src/Headers/nameNode.h | 4 +- src/Headers/opFormNode.h | 8 +- src/Headers/osd.h | 29 +- src/Headers/pairNode.h | 4 +- src/Headers/pairNodeList.h | 4 +- src/Headers/paramNode.h | 8 +- src/Headers/paramNodeList.h | 4 +- src/Headers/privateNode.h | 4 +- src/Headers/programNode.h | 10 +- src/Headers/programNodeList.h | 6 +- src/Headers/qtype.h | 4 +- src/Headers/qual.h | 341 +- src/Headers/qualList.h | 5 +- src/Headers/quantifiedTermNode.h | 6 +- src/Headers/quantifierNode.h | 4 +- src/Headers/quantifierNodeList.h | 4 +- src/Headers/randomNumbers.h | 22 + src/Headers/reader.h | 41 + src/Headers/refTable-branch.h | 31 + src/Headers/renamingNode.h | 6 +- src/Headers/replaceNode.h | 9 +- src/Headers/replaceNodeList.h | 4 +- src/Headers/sRef.h | 144 +- src/Headers/sRefList.h | 63 + src/Headers/sRefSet.h | 20 +- src/Headers/sRefSetList.h | 4 +- src/Headers/sRefSetStack.h | 2 +- src/Headers/sRefTable.h | 4 +- src/Headers/scan.h | 6 +- src/Headers/scanline.h | 2 +- src/Headers/shift.h | 2 +- src/Headers/sigNode.h | 4 +- src/Headers/sigNodeSet.h | 4 +- src/Headers/signNode.h | 4 +- src/Headers/signature.h | 2 +- src/Headers/sort.h | 16 +- src/Headers/sortList.h | 6 +- src/Headers/sortSet.h | 4 +- src/Headers/sortSetList.h | 4 +- src/Headers/stDeclNode.h | 4 +- src/Headers/stDeclNodeList.h | 4 +- src/Headers/stateClause.h | 118 + src/Headers/stateClauseList.h | 89 + src/Headers/stateCombinationTable.h | 83 + src/Headers/stateInfo.h | 44 + src/Headers/stateValue.h | 68 + src/Headers/stmtNode.h | 6 +- src/Headers/storeRefNode.h | 10 +- src/Headers/storeRefNodeList.h | 4 +- src/Headers/strOrUnionNode.h | 4 +- src/Headers/structNames.h | 3 +- src/Headers/symtable.h | 26 +- src/Headers/syntable.h | 2 +- src/Headers/system_constants.h | 2 +- src/Headers/taggedUnionNode.h | 4 +- src/Headers/termNode.h | 6 +- src/Headers/termNodeList.h | 4 +- src/Headers/tokentable.h | 2 +- src/Headers/traitRefNode.h | 4 +- src/Headers/traitRefNodeList.h | 4 +- src/Headers/transferChecks.h | 35 + src/Headers/typeExpr.h | 4 +- src/Headers/typeIdSet.h | 2 +- src/Headers/typeNameNode.h | 6 +- src/Headers/typeNameNodeList.h | 4 +- src/Headers/typeNamePack.h | 4 +- src/Headers/typeNode.h | 4 +- src/Headers/uentry.h | 74 +- src/Headers/uentryList.h | 14 +- src/Headers/usymId.h | 1 + src/Headers/usymIdSet.h | 4 +- src/Headers/usymtab-branch.h | 436 + src/Headers/usymtab.h | 44 +- src/Headers/usymtab_interface.h | 2 +- src/Headers/valueMatrix.h | 66 + src/Headers/valueTable.h | 76 + src/Headers/varDeclarationNode.h | 6 +- src/Headers/varDeclarationNodeList.h | 4 +- src/Headers/varKinds.h | 16 +- src/Headers/varNode.h | 4 +- src/Headers/varNodeList.h | 4 +- src/Headers/version.h | 2 +- src/Headers/warnClause.h | 60 + src/Headers/ynm.h | 2 +- src/Makefile | 170 +- src/Makefile.sources | 52 +- src/abstract.c | 67 +- src/aliasChecks.c | 2 +- src/aliasTable.c | 18 +- src/annotationInfo.c | 176 + src/annotationTable.c | 54 + src/cgrammar.tab.c | 5718 ---- src/cgrammar.y | 616 +- src/checking.c | 52 +- src/clabstract.c | 385 +- src/clause.c | 2 +- src/clauseStack.c | 2 +- src/constraint.c | 99 +- src/constraintExpr.c | 191 +- src/constraintExprData.c | 13 +- src/constraintGeneration.c | 208 +- src/constraintList.c | 67 +- src/constraintOutput.c | 2 +- src/constraintResolve.c | 171 +- src/constraintTerm.c | 48 +- src/context.c | 1028 +- src/cpperror.c | 4 +- src/cppexp.c | 5 +- src/cpphash.c | 2 +- src/cppmain.c | 2 +- src/cprim.c | 22 +- src/cscanner.l | 251 +- src/cstringList.c | 104 +- src/cstringSList.c | 10 +- src/cstringTable.c | 544 + src/ctbase.i | 197 +- src/cttable.i | 128 +- src/ctype.c | 291 +- src/ctypeList.c | 27 +- src/cvar.c | 2 +- src/declaratorInvNodeList.c | 2 +- src/declaratorNodeList.c | 2 +- src/ekind.c | 2 +- src/enumNameList.c | 2 +- src/enumNameSList.c | 2 +- src/exprChecks.c | 148 +- src/exprData.c | 1 - src/exprNode.c | 1168 +- src/exprNodeList.c | 2 +- src/exprNodeSList.c | 2 +- src/fcnNodeList.c | 2 +- src/fileIdList.c | 8 +- src/fileLib.c | 231 + src/fileTable.c | 180 +- src/fileloc.c | 143 +- src/filelocList.c | 2 +- src/filelocStack.c | 2 +- src/flagMarker.c | 8 +- src/flagMarkerList.c | 91 +- src/flagSpec.c | 177 + src/flags.c | 33 +- src/flags.def | 7013 ++-- src/forjunk.c | 25 +- src/functionClause.c | 185 + src/functionClauseList.c | 175 + src/general.c | 329 +- src/genericTable.c | 488 + src/globSet.c | 26 +- src/globals.c | 4 +- src/guardSet.c | 8 +- src/idDecl.c | 56 +- src/idDeclList.c | 2 +- src/importNodeList.c | 2 +- src/imports.c | 175 +- src/initDeclNodeList.c | 2 +- src/inputStream.c | 359 + src/intSet.c | 2 +- src/interfaceNodeList.c | 2 +- src/lclctypes.c | 2 +- src/lclinit.c | 2 +- src/lclint.lcd | 45687 ++++++++++++++----------- src/lclint.lclintrc | 7 +- src/lcllib.c | 154 +- src/lclscan.c | 12 +- src/lclscanline.c | 22 +- src/lclsyntable.c | 2 +- src/lcltokentable.c | 2 +- src/letDeclNodeList.c | 2 +- src/lh.c | 55 +- src/llerror.c | 311 +- src/llmain.c | 494 +- src/lltok.c | 11 +- src/lslOpList.c | 2 +- src/lslOpSet.c | 2 +- src/lslinit.c | 2 +- src/lslparse.c | 111 +- src/lsymbol.c | 2 +- src/lsymbolList.c | 2 +- src/lsymbolSet.c | 2 +- src/ltoken.c | 29 +- src/ltokenList.c | 2 +- src/macrocache.c | 14 +- src/maketags | 3 +- src/mapping.c | 12 +- src/message.c | 9 +- src/messageLog.c | 10 +- src/metaStateInfo.c | 171 + src/metaStateTable.c | 53 + src/modifiesClause.c | 91 + src/mtAnnotationDecl.c | 60 + src/mtAnnotationList.c | 170 + src/mtAnnotationsNode.c | 49 + src/mtContextNode.c | 218 + src/mtDeclarationNode.c | 686 + src/mtDeclarationPiece.c | 327 + src/mtDeclarationPieces.c | 116 + src/mtDefaultsDecl.c | 60 + src/mtDefaultsDeclList.c | 175 + src/mtDefaultsNode.c | 53 + src/mtLoseReference.c | 64 + src/mtLoseReferenceList.c | 175 + src/mtMergeClause.c | 58 + src/mtMergeClauseList.c | 175 + src/mtMergeItem.c | 72 + src/mtMergeNode.c | 50 + src/mtTransferAction.c | 97 + src/mtTransferClause.c | 68 + src/mtTransferClauseList.c | 175 + src/mtValuesNode.c | 55 + src/mtgrammar.c | 1560 + src/mtgrammar.y | 365 + src/mtreader.c | 101 + src/mtscanner.c | 312 + src/mttok.c | 122 + src/multiVal.c | 8 +- src/nameChecks.c | 423 +- src/osd.c | 149 +- src/pairNodeList.c | 2 +- src/paramNodeList.c | 2 +- src/programNodeList.c | 2 +- src/qtype.c | 2 +- src/qual.c | 252 +- src/qualList.c | 8 +- src/quantifierNodeList.c | 2 +- src/randomNumbers.c | 35 + src/reader.c | 250 + src/replaceNodeList.c | 2 +- src/sRef.c | 1699 +- src/sRefList.c | 143 + src/sRefSet.c | 80 +- src/sRefSetList.c | 2 +- src/sRefTable.c | 11 +- src/scan.c | 18 +- src/scanline.c | 22 +- src/shift.c | 2 +- src/sigNodeSet.c | 2 +- src/signature.y | 9 +- src/sort.c | 1061 +- src/sortList.c | 2 +- src/sortSet.c | 4 +- src/sortSetList.c | 2 +- src/specialClauses.c | 10 +- src/stDeclNodeList.c | 2 +- src/stateClause.c | 815 + src/stateClauseList.c | 458 + src/stateCombinationTable.c | 226 + src/stateInfo.c | 157 + src/stateValue.c | 148 + src/storeRefNodeList.c | 2 +- src/structNames.c | 10 +- src/symtable.c | 109 +- src/syntable.c | 2 +- src/termNodeList.c | 2 +- src/tokentable.c | 2 +- src/traitRefNodeList.c | 2 +- src/transferChecks.c | 4342 +++ src/typeIdSet.c | 10 +- src/typeNameNodeList.c | 2 +- src/uentry.c | 1981 +- src/uentryList.c | 41 +- src/usymIdSet.c | 2 +- src/usymtab.c | 1387 +- src/usymtab_interface.c | 32 +- src/valueTable.c | 79 + src/varDeclarationNodeList.c | 2 +- src/varKinds.c | 32 +- src/varNodeList.c | 2 +- src/warnClause.c | 128 + src/ynm.c | 2 +- 429 files changed, 59360 insertions(+), 35302 deletions(-) create mode 100644 src/Headers/annotationInfo.h create mode 100644 src/Headers/annotationTable.h create mode 100644 src/Headers/cstringTable.h create mode 100644 src/Headers/fileLib.h create mode 100644 src/Headers/flagSpec.h create mode 100644 src/Headers/functionClause.h create mode 100644 src/Headers/functionClauseList.h create mode 100644 src/Headers/genericTable.h create mode 100644 src/Headers/globalsClause.h create mode 100644 src/Headers/inputStream.h create mode 100644 src/Headers/intTable.h create mode 100644 src/Headers/metaStateInfo.h create mode 100644 src/Headers/metaStateTable.h create mode 100644 src/Headers/mtAnnotationDecl.h create mode 100644 src/Headers/mtAnnotationList.h create mode 100644 src/Headers/mtAnnotationsNode.h create mode 100644 src/Headers/mtContextNode.h create mode 100644 src/Headers/mtDeclarationNode.h create mode 100644 src/Headers/mtDeclarationPiece.h create mode 100644 src/Headers/mtDeclarationPieces.h create mode 100644 src/Headers/mtDefaultsDecl.h create mode 100644 src/Headers/mtDefaultsDeclList.h create mode 100644 src/Headers/mtDefaultsNode.h create mode 100644 src/Headers/mtLoseReference.h create mode 100644 src/Headers/mtLoseReferenceList.h create mode 100644 src/Headers/mtMergeClause.h create mode 100644 src/Headers/mtMergeClauseList.h create mode 100644 src/Headers/mtMergeItem.h create mode 100644 src/Headers/mtMergeNode.h create mode 100644 src/Headers/mtTransferAction.h create mode 100644 src/Headers/mtTransferClause.h create mode 100644 src/Headers/mtTransferClauseList.h create mode 100644 src/Headers/mtValuesNode.h create mode 100644 src/Headers/mtgrammar.h create mode 100644 src/Headers/mtgrammar.tab.h create mode 100644 src/Headers/mtgrammar_tokens.h create mode 100644 src/Headers/mtincludes.h create mode 100644 src/Headers/mtreader.h create mode 100644 src/Headers/mtscanner.h create mode 100644 src/Headers/mttok.h create mode 100644 src/Headers/randomNumbers.h create mode 100644 src/Headers/reader.h create mode 100644 src/Headers/refTable-branch.h create mode 100644 src/Headers/sRefList.h create mode 100644 src/Headers/stateClause.h create mode 100644 src/Headers/stateClauseList.h create mode 100644 src/Headers/stateCombinationTable.h create mode 100644 src/Headers/stateInfo.h create mode 100644 src/Headers/stateValue.h create mode 100644 src/Headers/transferChecks.h create mode 100644 src/Headers/usymtab-branch.h create mode 100644 src/Headers/valueMatrix.h create mode 100644 src/Headers/valueTable.h create mode 100644 src/Headers/warnClause.h create mode 100644 src/annotationInfo.c create mode 100644 src/annotationTable.c delete mode 100644 src/cgrammar.tab.c create mode 100644 src/cstringTable.c create mode 100644 src/fileLib.c create mode 100644 src/flagSpec.c create mode 100644 src/functionClause.c create mode 100644 src/functionClauseList.c create mode 100644 src/genericTable.c create mode 100644 src/inputStream.c create mode 100644 src/metaStateInfo.c create mode 100644 src/metaStateTable.c create mode 100644 src/modifiesClause.c create mode 100644 src/mtAnnotationDecl.c create mode 100644 src/mtAnnotationList.c create mode 100644 src/mtAnnotationsNode.c create mode 100644 src/mtContextNode.c create mode 100644 src/mtDeclarationNode.c create mode 100644 src/mtDeclarationPiece.c create mode 100644 src/mtDeclarationPieces.c create mode 100644 src/mtDefaultsDecl.c create mode 100644 src/mtDefaultsDeclList.c create mode 100644 src/mtDefaultsNode.c create mode 100644 src/mtLoseReference.c create mode 100644 src/mtLoseReferenceList.c create mode 100644 src/mtMergeClause.c create mode 100644 src/mtMergeClauseList.c create mode 100644 src/mtMergeItem.c create mode 100644 src/mtMergeNode.c create mode 100644 src/mtTransferAction.c create mode 100644 src/mtTransferClause.c create mode 100644 src/mtTransferClauseList.c create mode 100644 src/mtValuesNode.c create mode 100644 src/mtgrammar.c create mode 100644 src/mtgrammar.y create mode 100644 src/mtreader.c create mode 100644 src/mtscanner.c create mode 100644 src/mttok.c create mode 100644 src/randomNumbers.c create mode 100644 src/reader.c create mode 100644 src/sRefList.c create mode 100644 src/stateClause.c create mode 100644 src/stateClauseList.c create mode 100644 src/stateCombinationTable.c create mode 100644 src/stateInfo.c create mode 100644 src/stateValue.c create mode 100644 src/transferChecks.c create mode 100644 src/valueTable.c create mode 100644 src/warnClause.c diff --git a/src/Headers/CTypesNode.h b/src/Headers/CTypesNode.h index 5572e51..5db163d 100644 --- a/src/Headers/CTypesNode.h +++ b/src/Headers/CTypesNode.h @@ -1,5 +1,10 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ -typedef struct _CTypesNode { +typedef struct { bits intfield; sort sort; ltokenList ctypes; diff --git a/src/Headers/abstBodyNode.h b/src/Headers/abstBodyNode.h index 430cd34..941f07a 100644 --- a/src/Headers/abstBodyNode.h +++ b/src/Headers/abstBodyNode.h @@ -1,14 +1,14 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _abstBodyNode { +struct s_abstBodyNode { ltoken tok; /* check for NULLTOKEN before using it */ - /*@null@*/ struct _lclPredicateNode *typeinv; + /*@null@*/ lclPredicateNode typeinv; fcnNodeList fcns; /* only for abstBody, not for optExposedBody */ -} *abstBodyNode; +} ; extern /*@unused@*/ /*@only@*/ cstring abstBodyNode_unparse (abstBodyNode p_n); diff --git a/src/Headers/abstract.h b/src/Headers/abstract.h index 86f2534..68cc226 100644 --- a/src/Headers/abstract.h +++ b/src/Headers/abstract.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -22,26 +22,6 @@ # include "ltoken.h" # include "ltokenList.h" -/* -** forward declarations for structures -*/ - -struct _lclTypeSpecNode; -struct _opFormNode; -struct _strOrUnionNode; -struct _stmtNode; -struct _lclPredicateNode; -struct _typeExpr; -struct _declaratorNode; -struct _abstBodyNode; -struct _functionTermNode; -struct _quantifiedTermNode; -struct _sigNode; -struct _termNode; -struct _nameNode; -struct _importNode; -struct _pairNode; - typedef enum { TAG_ENUM, TAG_STRUCT, TAG_UNION, TAG_FWDSTRUCT, TAG_FWDUNION @@ -66,14 +46,14 @@ extern void checkBrackets (ltoken p_lb, ltoken p_rb); # include "pairNode.h" # include "pairNodeList.h" +# include "declaratorNode.h" +# include "declaratorNodeList.h" + # include "declaratorInvNode.h" # include "declaratorInvNodeList.h" # include "typeExpr.h" /* also defines abstDeclaratorNode */ -# include "declaratorNode.h" -# include "declaratorNodeList.h" - # include "arrayQualNode.h" # include "varNode.h" diff --git a/src/Headers/abstractNode.h b/src/Headers/abstractNode.h index 653e863..31bd207 100644 --- a/src/Headers/abstractNode.h +++ b/src/Headers/abstractNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _abstractNode { +typedef struct { ltoken tok; bool isMutable; /* TRUE means it is mutable */ bool isRefCounted; diff --git a/src/Headers/aliasChecks.h b/src/Headers/aliasChecks.h index 66ca414..943e04f 100644 --- a/src/Headers/aliasChecks.h +++ b/src/Headers/aliasChecks.h @@ -1,35 +1,7 @@ /* ** aliasChecks.h +** +** renamed to transferChecks.h */ -extern alkind alkind_resolve (alkind p_a1, alkind p_a2) /*@*/ ; -extern bool checkGlobalDestroyed (sRef p_fref, fileloc p_loc) - /*@modifies g_msgstream@*/ ; -extern void checkLocalDestroyed (sRef p_fref, fileloc p_loc) - /*@modifies g_msgstream@*/ ; - -extern void checkAssignTransfer (exprNode p_lhs, exprNode p_rhs); -extern void checkPassTransfer (exprNode p_fexp, uentry p_arg, bool p_isSpec, - /*@dependent@*/ exprNode p_fcn, int p_argno, int p_totargs); -extern void checkReturnTransfer (exprNode p_fexp, uentry p_rval); -extern void checkGlobReturn (uentry p_glob); -extern void checkParamReturn (uentry p_actual); -extern void checkLoseRef (uentry p_actual); -extern bool canLoseReference (sRef p_sr, fileloc p_loc); -extern void checkInitTransfer (exprNode p_lhs, exprNode p_rhs); -extern void checkStructDestroyed (sRef p_fref, fileloc p_loc); - -/* transfer types: */ - -typedef enum -{ - TT_FCNRETURN, - TT_DOASSIGN, - TT_FIELDASSIGN, - TT_FCNPASS, - TT_GLOBPASS, - TT_GLOBRETURN, - TT_PARAMRETURN, - TT_LEAVETRANS, - TT_GLOBINIT -} transferKind; +# error "Obsolete header file used." diff --git a/src/Headers/aliasStack.h b/src/Headers/aliasStack.h index 1400fa4..e42a4f1 100644 --- a/src/Headers/aliasStack.h +++ b/src/Headers/aliasStack.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/aliasTable.h b/src/Headers/aliasTable.h index bbc9768..4aaceb3 100644 --- a/src/Headers/aliasTable.h +++ b/src/Headers/aliasTable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -13,7 +13,7 @@ typedef /*@only@*/ sRefSet o_sRefSet; typedef /*@exposed@*/ sRef e_sRef; -struct _aliasTable +struct s_aliasTable /*@i32 reserved works for struct identifiers@*/ { int nelements; int nspace; @@ -57,7 +57,7 @@ extern /*@only@*/ cstring aliasTable_unparse (aliasTable p_s) /*@*/ ; extern void aliasTable_free (/*@only@*/ aliasTable p_s) ; extern aliasTable - aliasTable_addMustAlias (/*@returned@*/ aliasTable p_s, /*@exposed@*/ sRef p_sr, sRef p_al) + aliasTable_addMustAlias (/*@returned@*/ aliasTable p_s, /*@exposed@*/ sRef p_sr, /*@exposed@*/ sRef p_al) /*@modifies p_s@*/ ; extern aliasTable diff --git a/src/Headers/annotationInfo.h b/src/Headers/annotationInfo.h new file mode 100644 index 0000000..08d7621 --- /dev/null +++ b/src/Headers/annotationInfo.h @@ -0,0 +1,65 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** annotationInfo.h +** +** A record that keeps information on a user-defined annotations including: +** +*/ + +# ifndef ANNOTINFO_H +# define ANNOTINFO_H + +struct s_annotationInfo { + cstring name; + /*@dependent@*/ /*@observer@*/ metaStateInfo state; + /* associated metaStateInfo entry */ + fileloc loc; + int value; + mtContextNode context; +} ; + +/* typedef struct _annotationInfo *annotationInfo; */ + +/*@constant null annotationInfo annotationInfo_undefined; @*/ +# define annotationInfo_undefined ((annotationInfo) NULL) + +extern /*@falsenull@*/ bool annotationInfo_isDefined (annotationInfo) /*@*/ ; +# define annotationInfo_isDefined(p_info) ((p_info) != annotationInfo_undefined) + +extern /*@truenull@*/ bool annotationInfo_isUndefined (annotationInfo) /*@*/ ; +# define annotationInfo_isUndefined(p_info) ((p_info) == annotationInfo_undefined) + +extern bool annotationInfo_equal (annotationInfo, annotationInfo) /*@*/ ; +# define annotationInfo_equal(p_info1, p_info2) ((p_info1) == (p_info2)) + +extern bool annotationInfo_matchesContext (annotationInfo, uentry) /*@*/ ; +extern bool annotationInfo_matchesContextRef (annotationInfo, sRef) /*@*/ ; + +extern /*@observer@*/ metaStateInfo annotationInfo_getState (annotationInfo) /*@*/ ; +extern int annotationInfo_getValue (annotationInfo) /*@*/ ; +extern /*@observer@*/ cstring annotationInfo_getName (annotationInfo) /*@*/ ; + +extern /*@only@*/ annotationInfo +annotationInfo_create (/*@only@*/ cstring p_name, + /*@dependent@*/ /*@exposed@*/ metaStateInfo p_state, + /*@only@*/ mtContextNode p_context, + int p_value, /*@only@*/ fileloc p_loc) /*@*/ ; + +extern /*@observer@*/ cstring annotationInfo_unparse (annotationInfo p_ainfo); +extern /*@observer@*/ fileloc annotationInfo_getLoc (annotationInfo p_ainfo) /*@*/ ; + +extern void annotationInfo_free (/*@only@*/ annotationInfo) ; + +extern /*@observer@*/ cstring annotationInfo_dump (annotationInfo) ; +extern /*@observer@*/ annotationInfo annotationInfo_undump (char **p_s) /*@modifies *p_s@*/ ; + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/annotationTable.h b/src/Headers/annotationTable.h new file mode 100644 index 0000000..054e1ec --- /dev/null +++ b/src/Headers/annotationTable.h @@ -0,0 +1,72 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** annotationTable.h +** +** A global table that keeps information on the user-defined annotations. +** +** For each annotation, we need: +** +** o [key] A name (matches @name@ in code) +** o State - index into metaStateTable that identifies the state associated with this annotation +** o Value +** o Context information (where can annotation be used) +*/ + +# ifndef ANNOTTABLE_H +# define ANNOTTABLE_H + +/*@constant null annotationTable annotationTable_undefined; @*/ +# define annotationTable_undefined genericTable_undefined + +extern /*@falsenull@*/ bool annotationTable_isDefined(annotationTable) /*@*/ ; +# define annotationTable_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) + +extern /*@truenull@*/ bool annotationTable_isUndefined(annotationTable) /*@*/ ; +# define annotationTable_isUndefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) + +/*@constant int DEFAULT_ANNOTTABLE_SIZE@*/ +# define DEFAULT_ANNOTTABLE_SIZE 32 + +extern /*@only@*/ annotationTable annotationTable_create (void) /*@*/ ; +# define annotationTable_create() ((annotationTable) genericTable_create (DEFAULT_ANNOTTABLE_SIZE)) + +extern void annotationTable_insert (annotationTable p_h, /*@only@*/ annotationInfo p_annotation); + +extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ annotationInfo + annotationTable_lookup (annotationTable p_h, cstring p_key) /*@*/ ; +# define annotationTable_lookup(p_h,p_key) \ + (/*@i32@*/ (annotationInfo) genericTable_lookup ((genericTable) (p_h), p_key)) + +extern bool annotationTable_contains (annotationTable p_h, cstring p_key) /*@*/ ; +# define annotationTable_contains(p_h,p_key) \ + (genericTable_contains ((genericTable) (p_h), p_key)) + +extern /*@unused@*/ /*@only@*/ cstring annotationTable_stats(annotationTable p_h); +# define annotationTable_stats(p_h) genericTable_stats ((genericTable) (p_h)) + +extern /*@only@*/ cstring annotationTable_unparse (annotationTable p_h); + +extern void annotationTable_free (/*@only@*/ annotationTable p_h); +# define annotationTable_free(p_h) (genericTable_free ((genericTable) (p_h))) + +/*@iter annotationTable_elements (sef annotationTable p_g, + yield exposed cstring m_key, + yield exposed annotationInfo m_el) @*/ + +# define annotationTable_elements(p_g,m_key,m_el) \ + genericTable_elements((genericTable) (p_g), m_key, m_el) +# define end_annotationTable_elements end_genericTable_elements + +extern int annotationTable_size (annotationTable p_h); +# define annotationTable_size(p_h) (genericTable_size(p_h)) + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/arrayQualNode.h b/src/Headers/arrayQualNode.h index 9fbd548..cee79af 100644 --- a/src/Headers/arrayQualNode.h +++ b/src/Headers/arrayQualNode.h @@ -1,9 +1,9 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _arrayQualNode { +typedef struct { ltoken tok; - /*@null@*/ struct _termNode *term; + /*@null@*/ termNode term; } *arrayQualNode; diff --git a/src/Headers/basic.h b/src/Headers/basic.h index a43fe7a..384bec6 100644 --- a/src/Headers/basic.h +++ b/src/Headers/basic.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -7,8 +7,8 @@ # ifndef BASIC_H # define BASIC_H -# include # include +# include # include # include # include @@ -17,15 +17,22 @@ # include "message.h" # include "fileloc.h" # include "globals.h" +# include "flag_codes.h" +# include "flags.h" +# include "flagSpec.h" # include "qual.h" # include "lltok.h" # include "clause.h" +# include "globalsClause.h" +# include "modifiesClause.h" +# include "warnClause.h" +# include "functionClause.h" +# include "functionClauseList.h" # include "cstringSList.h" # include "cstringList.h" -# include "flag_codes.h" -# include "flags.h" # include "llerror.h" -# include "source.h" +# include "fileLib.h" +# include "inputStream.h" # include "qualList.h" # ifndef NOLCL @@ -42,7 +49,8 @@ # include "exprNodeList.h" # include "cprim.h" -# include "hashTable.h" +# include "cstringTable.h" +# include "genericTable.h" # include "filelocList.h" # include "enumNameList.h" # include "enumNameSList.h" @@ -50,17 +58,23 @@ # include "sRefSet.h" # include "ekind.h" # include "usymIdSet.h" +# include "sRefList.h" # include "uentryList.h" # include "globSet.h" # include "ctypeList.h" # include "aliasTable.h" +# include "reader.h" # include "usymtab.h" # include "lctype.h" # include "qtype.h" # include "idDecl.h" # include "multiVal.h" -# include "specialClauses.h" +# include "stateClause.h" +# include "stateClauseList.h" # include "uentry.h" +# include "stateInfo.h" +# include "stateValue.h" +# include "valueTable.h" # include "sRef.h" # include "guardSet.h" # include "constraintTerm.h" @@ -80,11 +94,16 @@ # include "fileTable.h" # include "messageLog.h" # include "clauseStack.h" +# include "stateCombinationTable.h" +# include "metaStateInfo.h" +# include "metaStateTable.h" +# include "annotationInfo.h" +# include "annotationTable.h" + # include "context.h" # include "constants.h" # include "local_constants.h" - # else # error "Multiple include" # endif diff --git a/src/Headers/bool.h b/src/Headers/bool.h index 5abef11..23f5ea9 100644 --- a/src/Headers/bool.h +++ b/src/Headers/bool.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -23,8 +23,6 @@ extern int bool_compare (bool p_b1, bool p_b2) /*@*/ ; extern bool bool_fromInt (int p_i) /*@*/ ; extern int bool_toInt (bool p_b) /*@*/ ; -/*@access bool@*/ - # define bool_unparse(b) (cstring_makeLiteralTemp ((b) ? "true" : "false" )) # define bool_dump(b) (cstring_makeLiteralTemp ((b) ? "1" : "0" )) # define bool_not(b) ((b) ? FALSE : TRUE) diff --git a/src/Headers/boolStack.h b/src/Headers/boolStack.h index 8137fb8..3989f7b 100644 --- a/src/Headers/boolStack.h +++ b/src/Headers/boolStack.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/cgrammar.h b/src/Headers/cgrammar.h index ac20051..cb72b3a 100644 --- a/src/Headers/cgrammar.h +++ b/src/Headers/cgrammar.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/checking.h b/src/Headers/checking.h index 71ba175..b58715a 100644 --- a/src/Headers/checking.h +++ b/src/Headers/checking.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/clabstract.h b/src/Headers/clabstract.h index 794e373..f580166 100644 --- a/src/Headers/clabstract.h +++ b/src/Headers/clabstract.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -23,12 +23,6 @@ extern ctype declareUnnamedStruct (/*@only@*/ uentryList p_f); extern ctype declareUnion (/*@temp@*/ cstring p_id, /*@only@*/ uentryList p_f); extern ctype declareUnnamedUnion (/*@only@*/ uentryList p_f); -extern void - setFunctionSpecialClause (lltok p_stok, /*@only@*/ sRefSet p_s, lltok p_etok); -extern void - setFunctionStateSpecialClause (lltok p_stok, specialClauseKind p_kind, - /*@only@*/ sRefSet p_s, lltok p_etok); - extern ctype declareUnnamedEnum (/*@only@*/ enumNameList p_el); extern ctype handleEnum (/*@only@*/ cstring p_id); extern ctype handleStruct (/*@only@*/ cstring p_id); @@ -43,7 +37,7 @@ extern uentryList fixUnnamedDecl (qtype p_q) /*@*/ ; extern /*@exposed@*/ uentry getCurrentIter(void); extern void processNamedDecl (idDecl p_t); -extern void declareFunction (/*@only@*/ idDecl p_tid) +extern void clabstract_declareFunction (/*@only@*/ idDecl p_tid) /*@globals internalState@*/ ; extern void doVaDcl (void); extern void doneParams (void); @@ -52,7 +46,7 @@ extern void setCurrentParams (/*@dependent@*/ uentryList p_ue); extern void clearCurrentParams (void); extern /*@exposed@*/ sRef fixModifiesId (cstring p_s); -extern /*@exposed@*/ sRef fixSpecClausesId (cstring p_s); +extern /*@exposed@*/ sRef fixStateClausesId (cstring p_s); extern void setFlipOldStyle(void); extern void setNewStyle(void); @@ -68,18 +62,15 @@ extern void unsetProcessingVars (void); extern /*@only@*/ uentry makeCurrentParam (idDecl p_t); extern void setProcessingGlobalsList (void); -extern /*@exposed@*/ sRef modListArrayFetch (sRef p_s, sRef p_mexp); -extern /*@exposed@*/ sRef modListPointer (sRef p_s); +extern /*@exposed@*/ sRef modListArrayFetch (/*@exposed@*/ sRef p_s, sRef p_mexp); +extern /*@exposed@*/ sRef modListPointer (/*@exposed@*/ sRef p_s); extern /*@exposed@*/ sRef modListFieldAccess (sRef p_s, /*@only@*/ cstring p_f); extern /*@exposed@*/ sRef modListArrowAccess (sRef p_s, /*@only@*/ cstring p_f); -extern sRef globListUnrecognized (cstring p_s); -extern void globListAdd (sRef p_sr, qualList p_quals); - -extern void setFunctionModifies (/*@only@*/ sRefSet p_s); +extern /*@dependent@*/ sRef clabstract_unrecognizedGlobal (cstring p_s); +extern /*@dependent@*/ sRef clabstract_createGlobal (/*@temp@*/ sRef p_sr, /*@only@*/ qualList p_quals); extern void checkDoneParams (void); - extern void exitParamsTemp (void); extern void enterParamsTemp (void); @@ -92,7 +83,7 @@ extern int iterParamNo (void); extern void nextIterParam (void); extern void declareCIter (cstring p_name, /*@owned@*/ uentryList p_params); extern void checkModifiesId (uentry p_ue); -extern /*@exposed@*/ sRef checkSpecClausesId (uentry p_ue); +extern /*@exposed@*/ sRef checkStateClausesId (uentry p_ue); extern void checkConstant (qtype p_t, idDecl p_id) ; extern void checkValueConstant (qtype p_t, idDecl p_id, exprNode p_e) ; @@ -109,10 +100,10 @@ constraintList getFunctionConstraints (void); constraintList getEnsuresConstraints (void); -void setEnsuresConstraints (constraintList c); +void setEnsuresConstraints (constraintList p_c); -void setFunctionConstraints (constraintList c); -sRef checkbufferConstraintClausesId (uentry ue); +void setFunctionConstraints (constraintList p_c); +sRef checkbufferConstraintClausesId (uentry p_ue); void setImplictfcnConstraints (void); /*@observer@*/ constraintList getImplicitFcnConstraints (void); @@ -120,6 +111,10 @@ void setImplictfcnConstraints (void); /* end drl*/ +extern /*@dependent@*/ sRef clabstract_checkGlobal (/*@only@*/ exprNode) ; + +extern void clabstract_initMod (void) /*@modifies internalState@*/ ; + # else # error "Multiple include" # endif diff --git a/src/Headers/claimNode.h b/src/Headers/claimNode.h index f3c8d0d..605f3f8 100644 --- a/src/Headers/claimNode.h +++ b/src/Headers/claimNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _claimNode { +typedef struct { ltoken name; paramNodeList params; /*@null@*/ globalList globals; diff --git a/src/Headers/clauseStack.h b/src/Headers/clauseStack.h index 0a59cc3..0cbac2a 100644 --- a/src/Headers/clauseStack.h +++ b/src/Headers/clauseStack.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,7 +10,7 @@ # ifndef clauseStack_H # define clauseStack_H -abst_typedef struct _clauseStack +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/code.h b/src/Headers/code.h index 6ab66f5..cd7513c 100644 --- a/src/Headers/code.h +++ b/src/Headers/code.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/constDeclarationNode.h b/src/Headers/constDeclarationNode.h index ff8f6eb..56e6411 100644 --- a/src/Headers/constDeclarationNode.h +++ b/src/Headers/constDeclarationNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _constDeclarationNode { +typedef struct { lclTypeSpecNode type; initDeclNodeList decls; } *constDeclarationNode; diff --git a/src/Headers/constants.h b/src/Headers/constants.h index 8c8b7d0..bfe9bb9 100644 --- a/src/Headers/constants.h +++ b/src/Headers/constants.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -24,11 +24,8 @@ # define RCFILE ".lclintrc" # endif -/*@constant observer char *C_SUFFIX; @*/ -# define C_SUFFIX ".c" - -/*@constant observer char *LARCH_PATH; @*/ -# define LARCH_PATH "LARCH_PATH" +/*@constant observer cstring LARCH_PATH; @*/ +# define LARCH_PATH cstring_makeLiteralTemp ("LARCH_PATH") /*@constant observer char *LCLIMPORTDIR; @*/ # define LCLIMPORTDIR "LCLIMPORTDIR" @@ -69,7 +66,7 @@ # define MAX_LINE_LENGTH 1024 /*@constant int MAX_DUMP_LINE_LENGTH; @*/ -# define MAX_DUMP_LINE_LENGTH 8192 +# define MAX_DUMP_LINE_LENGTH 16384 /*@constant int MINLINELEN; @*/ # define MINLINELEN 20 @@ -97,6 +94,12 @@ /*@constant int DEFAULT_LINELEN; @*/ # define DEFAULT_LINELEN 80 +/*@constant int DEFAULT_BUGSLIMIT; @*/ +# define DEFAULT_BUGSLIMIT 3 + +/*@constant int DEFAULT_INDENTSPACES; @*/ +# define DEFAULT_INDENTSPACES 3 + /* ** These constants are based on implementation limits in ANSI standard, ** Section 3.1. @@ -170,8 +173,8 @@ ** Minimum version with compatible libraries. */ -/*@constant float LCL_MIN_VERSION; @*/ -# define LCL_MIN_VERSION 2.2 +/*@constant float LCLINT_LIBVERSION; @*/ +# define LCLINT_LIBVERSION 2.6 /* ** Flex doesn't pre-process input, so remember to copy these manually diff --git a/src/Headers/constraint.h b/src/Headers/constraint.h index 9addd22..fc2322e 100644 --- a/src/Headers/constraint.h +++ b/src/Headers/constraint.h @@ -8,7 +8,7 @@ typedef enum } arithType; -struct _constraint { +struct s_constraint { constraint orig; constraint or; bool fcnPre; @@ -16,7 +16,7 @@ struct _constraint { arithType ar; constraintExpr expr; bool post; - /*@kept@*/ exprNode generatingExpr; + /*@observer@*/ /*@dependent@*/ exprNode generatingExpr; } ; /*@constant null constraint constraint_undefined; @*/ @@ -31,110 +31,107 @@ extern /*@truenull@*/ /*@unused@*/ bool constraint_isError (constraint p_e) /*@* # define constraint_isUndefined(e) ((e) == constraint_undefined) # define constraint_isError(e) ((e) == constraint_undefined) -extern void constraint_free (/*@only@*/ constraint c); +extern void constraint_free (/*@only@*/ constraint p_c); //constraint makeConstraintParse (sRef x, lltok relOp, exprNode cconstant); /*@i22*/ /*@-czechfcns*/ -///*@special@*/ constraintExpr makeConstraintExpr (/*@only@*/ /*@notnull@*/ constraintTerm term) -// /*@post:isnull result->expr@*/ -// /*@post:notnull result->t1@*/ -// /*@defines result->expr, result->t1, result->c1@, result->op*/; - -extern /*@relnull@*/ constraint constraint_makeReadSafeExprNode ( exprNode p_po, exprNode p_ind); +extern constraint constraint_makeReadSafeExprNode ( /*@dependent@*/ /*@oberserver@*/ exprNode p_po, /*@dependent@*/ /*@oberserver@*/ exprNode p_ind); -extern /*@only@*/ constraint constraint_makeWriteSafeExprNode (exprNode p_po, exprNode p_ind); +extern /*@only@*/ constraint constraint_makeWriteSafeExprNode (/*@dependent@*/ /*@oberserver@*/ exprNode p_po, /*@dependent@*/ /*@oberserver@*/ exprNode p_ind); -extern /*@only@*/ constraint constraint_makeReadSafeInt (exprNode p_t1, int p_index); +extern /*@only@*/ constraint constraint_makeReadSafeInt (/*@dependent@*/ /*@oberserver@*/ exprNode p_t1, int p_index); -extern /*@only@*/ constraint constraint_makeEnsureMaxReadAtLeast (exprNode p_t1, exprNode p_t2, fileloc p_sequencePoint); +extern /*@only@*/ constraint constraint_makeEnsureMaxReadAtLeast (/*@dependent@*/ /*@oberserver@*/ exprNode p_t1, /*@dependent@*/ /*@oberserver@*/ exprNode p_t2, fileloc p_sequencePoint); -extern void constraint_overWrite (constraint c1, /*@observer@*/ constraint c2) /*@modifies c1 @*/; +extern void constraint_overWrite (constraint p_c1, /*@observer@*/ constraint p_c2) /*@modifies p_c1 @*/; -extern /*@only@*/ constraint constraint_copy (/*@observer@*/ constraint c); +extern /*@only@*/ constraint constraint_copy (/*@temp@*/ /*@observer@*/ constraint p_c); -extern bool fileloc_closer (/*@observer@*/ fileloc loc1, /*@observer@*/ fileloc loc2, /*@observer@*/ fileloc loc3) /*@*/; +extern bool fileloc_closer (/*@observer@*/ fileloc p_loc1, /*@observer@*/ fileloc p_loc2, /*@observer@*/ fileloc p_loc3) /*@*/; -extern /*@only@*/ cstring arithType_print (arithType ar) /*@*/; +extern /*@only@*/ cstring arithType_print (arithType p_ar) /*@*/; -extern /*@only@*/ fileloc constraint_getFileloc (constraint c); -extern /*@only@*/ cstring constraint_print (constraint c) /*@*/; +extern /*@only@*/ fileloc constraint_getFileloc (constraint p_c); +extern /*@only@*/ cstring constraint_print (/*@temp@*/ /*@observer@*/ constraint p_c) /*@*/; -extern /*@only@*/ constraint constraint_makeWriteSafeInt (exprNode po, int ind); +extern /*@only@*/ constraint constraint_makeWriteSafeInt (/*@dependent@*/ /*@oberserver@*/ exprNode p_po, int p_ind); -extern exprNode exprNode_copyConstraints (/*@returned@*/ exprNode dst, exprNode src) /*@modifies dst @*/; +extern exprNode exprNode_copyConstraints (/*@returned@*/ exprNode p_dst, exprNode p_src) /*@modifies p_dst @*/; -extern /*@only@*/ constraint constraint_makeEnsureEqual (exprNode e1, exprNode e2, fileloc sequencePoint); +extern /*@only@*/ constraint constraint_makeEnsureEqual (/*@dependent@*/ /*@oberserver@*/ exprNode p_e1, /*@dependent@*/ /*@oberserver@*/ exprNode p_e2, fileloc p_sequencePoint); -extern /*@only@*/ constraint constraint_makeMaxSetSideEffectPostIncrement (exprNode e, fileloc sequencePoint); +extern /*@only@*/ constraint constraint_makeMaxSetSideEffectPostIncrement (/*@dependent@*/ /*@oberserver@*/ exprNode p_e, fileloc p_sequencePoint); -extern constraint constraint_preserveOrig (/*@returned@*/ constraint c) /*@modifies c @*/; -extern /*@only@*/ constraint constraint_doSRefFixBaseParam (/*@returned@*/ /*@only@*/ constraint precondition, - exprNodeList arglist); -extern /*@only@*/ cstring constraint_printDetailed (constraint c); +extern constraint constraint_preserveOrig (/*@returned@*/ constraint p_c) /*@modifies p_c @*/; +extern /*@only@*/ constraint constraint_doSRefFixBaseParam (/*@returned@*/ /*@only@*/ constraint p_precondition, + exprNodeList p_arglist); +extern /*@only@*/ cstring constraint_printDetailed (constraint p_c); -extern /*@only@*/ constraint constraint_makeEnsureLessThan (exprNode e1, exprNode e2, fileloc sequencePoint); -extern /*@only@*/ constraint constraint_makeEnsureLessThanEqual (exprNode e1, exprNode e2, fileloc sequencePoint); +extern /*@only@*/ constraint constraint_makeEnsureLessThan (/*@dependent@*/ /*@oberserver@*/ exprNode p_e1, /*@dependent@*/ /*@oberserver@*/ exprNode p_e2, fileloc p_sequencePoint); +extern /*@only@*/ constraint constraint_makeEnsureLessThanEqual (/*@dependent@*/ /*@oberserver@*/ exprNode p_e1, /*@dependent@*/ /*@observer@*/ exprNode p_e2, fileloc p_sequencePoint); -extern /*@only@*/ constraint constraint_makeEnsureGreaterThan (exprNode e1, exprNode e2, fileloc sequencePoint); -extern /*@only@*/ constraint constraint_makeEnsureGreaterThanEqual (exprNode e1, exprNode e2, fileloc sequencePoint); +extern /*@only@*/ constraint constraint_makeEnsureGreaterThan (/*@dependent@*/ /*@oberserver@*/ exprNode p_e1, /*@dependent@*/ /*@oberserver@*/ exprNode p_e2, fileloc p_sequencePoint); +extern /*@only@*/ constraint constraint_makeEnsureGreaterThanEqual (/*@dependent@*/ /*@oberserver@*/ exprNode p_e1, /*@dependent@*/ /*@oberserver@*/ exprNode p_e2, fileloc p_sequencePoint); /*drl add 11/28/2000 */ -extern /*@only@*/ constraint constraint_makeSRefWriteSafeInt (sRef s, int ind); -extern /*@unused@*/ /*@only@*/ constraint constraint_makeSRefReadSafeInt (sRef s, int ind); +extern /*@only@*/ constraint constraint_makeSRefWriteSafeInt (sRef p_s, int p_ind); +extern /*@unused@*/ /*@only@*/ constraint constraint_makeSRefReadSafeInt (sRef p_s, int p_ind); /*drl add 11/26/2000 */ -extern void constraint_printError (/*@observer@*/ constraint c, /*@observer@*/ fileloc loc); +extern void constraint_printError (/*@observer@*/ /*@temp@*/ constraint p_c, /*@temp@*/ /*@observer@*/ fileloc p_loc); -extern /*@only@*/ constraint constraint_doSRefFixConstraintParam (constraint precondition, - exprNodeList arglist); +extern /*@only@*/ constraint constraint_doSRefFixConstraintParam (constraint p_precondition, + /*@temp@*/ /*@observer@*/ exprNodeList p_arglist); -extern /*@only@*/ constraint constraint_makeSRefSetBufferSize (sRef s, long int size); +extern /*@only@*/ constraint constraint_makeSRefSetBufferSize (sRef p_s, long int p_size); -extern /*@only@*/ constraint constraint_doFixResult (constraint postcondition, exprNode fcnCall); +extern /*@only@*/ constraint constraint_doFixResult (constraint p_postcondition, /*@dependent@*/ /*@observer@*/ exprNode p_fcnCall); -extern /*@only@*/ constraint constraint_makeEnsureLteMaxRead(exprNode index, exprNode buffer); +extern /*@only@*/ constraint constraint_makeEnsureLteMaxRead(/*@dependent@*/ /*@oberserver@*/ exprNode p_index, /*@dependent@*/ /*@oberserver@*/ exprNode p_buffer); -extern /*@only@*/ constraint constraint_makeMaxSetSideEffectPostDecrement (exprNode e, fileloc sequencePoint); +extern /*@only@*/ constraint constraint_makeMaxSetSideEffectPostDecrement (/*@dependent@*/ /*@oberserver@*/ exprNode p_e, fileloc p_sequencePoint); -extern bool constraint_search (constraint c, constraintExpr old); +extern bool constraint_search (constraint p_c, constraintExpr p_old); -extern /*@only@*/ constraint makeConstraintParse3 (constraintExpr l, lltok relOp, constraintExpr r); +extern /*@only@*/ constraint makeConstraintParse3 (constraintExpr p_l, lltok p_relOp, constraintExpr p_r); -extern constraint constraint_addGeneratingExpr (/*@returned@*/ constraint c, exprNode e); +extern constraint constraint_addGeneratingExpr (/*@returned@*/ constraint p_c, /*@dependent@*/ /*@oberserver@*/ exprNode p_e); -extern bool constraint_hasMaxSet(constraint c); +extern bool constraint_hasMaxSet(constraint p_c); /*from constraintGenreation.c*/ -extern void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@observer@*/ fileloc sequencePoint); +extern void exprNode_exprTraverse (/*@dependent@*/ exprNode p_e, bool p_definatelv, bool p_definaterv, /*@temp@*/ /*@observer@*/ fileloc p_sequencePoint); -extern /*@only@*/ constraintList exprNode_traversRequiresConstraints (exprNode e); -extern /*@only@*/ constraintList exprNode_traversEnsuresConstraints (exprNode e); +extern /*@only@*/ constraintList exprNode_traversRequiresConstraints (/*@dependent@*/ exprNode p_e); +extern /*@only@*/ constraintList exprNode_traversEnsuresConstraints (/*@dependent@*/ exprNode p_e); -extern constraint constraint_togglePost (/*@returned@*/ constraint c); -extern bool constraint_same (constraint c1, constraint c2) ; +extern constraint constraint_togglePost (/*@returned@*/ constraint p_c); +extern bool constraint_same (constraint p_c1, constraint p_c2) ; -/*@only@*/ cstring constraint_printOr (constraint c) /*@*/; +/*@only@*/ cstring constraint_printOr (constraint p_c) /*@*/; extern void constraint_printErrorPostCondition (constraint p_c, fileloc p_loc) ; extern constraint constraint_setFcnPre (/*@returned@*/ constraint p_c) ; -extern constraint constraint_origAddGeneratingExpr (/*@returned@*/ constraint p_c, exprNode p_e) ; +extern constraint constraint_origAddGeneratingExpr (/*@returned@*/ constraint p_c, /*@dependent@*/ /*@oberserver@*/ exprNode p_e) ; -extern bool /*@alt void@*/ exprNode_generateConstraints (/*@temp@*/ exprNode p_e) ; -constraint constraint_togglePostOrig (/*@returned@*/ constraint c); +extern bool /*@alt void@*/ exprNode_generateConstraints (/*@dependent@*/ exprNode p_e) ; +constraint constraint_togglePostOrig (/*@returned@*/ constraint p_c); -bool constraint_hasOrig( /*@observer@*/ /*@temp@*/ constraint c); +bool constraint_hasOrig( /*@observer@*/ /*@temp@*/ constraint p_c); -constraint constraint_makeAddAssign (exprNode e, exprNode f, fileloc sequencePoint); +constraint constraint_makeAddAssign (/*@dependent@*/ /*@observer@*/ exprNode p_e, /*@dependent@*/ /*@observer@*/ exprNode p_f, fileloc p_sequencePoint); -constraint constraint_makeSubtractAssign (exprNode e, exprNode f, fileloc sequencePoint); +constraint constraint_makeSubtractAssign (/*@dependent@*/ /*@observer@*/ exprNode p_e, /*@dependent@*/ /*@observer@*/ exprNode p_f, fileloc p_sequencePoint); -/*@only@*/ constraint constraint_undump (FILE *f); +/*@only@*/ constraint constraint_undump (FILE * p_f); -void constraint_dump (/*@observer@*/ constraint c, FILE *f); +void constraint_dump (/*@observer@*/ constraint p_c, FILE * p_f); + +extern void exprNode_forLoopHeuristics( /*@dependent@*/ exprNode p_e, /*@dependent@*/ exprNode p_forPred, /*@dependent@*/ exprNode p_forBody); /*@=czechfcns*/ -//#warning take this out +////drl possible problem : warning take this out #include "constraintResolve.h" #include "constraintOutput.h" diff --git a/src/Headers/constraintExpr.h b/src/Headers/constraintExpr.h index 98eddd2..8fa2d47 100644 --- a/src/Headers/constraintExpr.h +++ b/src/Headers/constraintExpr.h @@ -10,7 +10,7 @@ typedef enum } constraintExprKind; -struct _constraintExpr { +struct s_constraintExpr { constraintExprKind kind; constraintExprData data; }; @@ -29,85 +29,86 @@ extern /*@unused@*/ /*@truenull@*/ bool constraintExpr_isError (constraintExpr p # define constraintExpr_isError(e) ((e) == constraintExpr_undefined) -void constraintExpr_free ( /*@only@*/ constraintExpr expr); +void constraintExpr_free ( /*@only@*/ constraintExpr p_expr); -int constraintExpr_getValue (constraintExpr expr) /*@*/; +int constraintExpr_getValue (constraintExpr p_expr) /*@*/; -constraintExpr constraintExpr_setFileloc (/*@returned@*/ constraintExpr c, fileloc loc) /*@modifies c@*/; +constraintExpr constraintExpr_setFileloc (/*@returned@*/ constraintExpr p_c, fileloc p_loc) /*@modifies p_c@*/; -constraintExpr constraintExpr_copy (constraintExpr expr) /*@*/; +constraintExpr constraintExpr_copy (constraintExpr p_expr) /*@*/; -/*@only@*/ cstring constraintExpr_unparse (/*@temp@*/ /*@observer@*/ constraintExpr ex) /*@*/; -extern cstring constraintExpr_print (constraintExpr expr) /*@*/; +/*@only@*/ cstring constraintExpr_unparse (/*@temp@*/ /*@observer@*/ constraintExpr p_ex) /*@*/; +extern cstring constraintExpr_print (constraintExpr p_expr) /*@*/; -bool constraintExpr_similar (constraintExpr expr1, constraintExpr expr2) /*@*/; -bool constraintExpr_same (constraintExpr expr1, constraintExpr expr2) /*@*/; -/*@only@*/ constraintExpr constraintExpr_searchandreplace (/*@only@*/ /*@unique@*/ constraintExpr c, /*@observer@*/ constraintExpr old, /*@observer@*/ constraintExpr new ) /*@modifies c@*/; -bool constraintExpr_canGetValue (constraintExpr expr) /*@*/; +bool constraintExpr_similar (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/; +bool constraintExpr_same (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/; +/*@only@*/ constraintExpr constraintExpr_searchandreplace (/*@only@*/ /*@unique@*/ constraintExpr p_c, /*@temp@*/ /*@observer@*/ constraintExpr p_old, /*@temp@*/ /*@observer@*/ constraintExpr p_newExpr ) /*@modifies p_c@*/; +bool constraintExpr_canGetValue (constraintExpr p_expr) /*@*/; -int constraintExpr_compare (constraintExpr expr1, constraintExpr expr2) /*@*/; +int constraintExpr_compare (constraintExpr p_expr1, constraintExpr p_expr2) /*@*/; //constraintExpr constraintExpr_makeValueInt (int i); -/*@only@*/ constraintExpr constraintExpr_makeIntLiteral (int i); +/*@only@*/ constraintExpr constraintExpr_makeIntLiteral (int p_i); -/*@only@*/ constraintExpr constraintExpr_makeValueExpr (/*@exposed@*/ exprNode expr); +/*@only@*/ constraintExpr constraintExpr_makeValueExpr (/*@exposed@*/ exprNode p_expr); -/*@only@*/ constraintExpr constraintExpr_makeMaxSetExpr (/*@exposed@*/ exprNode expr); +/*@only@*/ constraintExpr constraintExpr_makeMaxSetExpr (/*@exposed@*/ exprNode p_expr); -/*@only@*/ constraintExpr constraintExpr_makeMaxReadExpr (/*@exposed@*/ exprNode expr); +/*@only@*/ constraintExpr constraintExpr_makeMaxReadExpr (/*@exposed@*/ exprNode p_expr); -/*@only@*/ constraintExpr constraintExpr_makeIncConstraintExpr (/*@only@*/ constraintExpr expr); +/*@only@*/ constraintExpr constraintExpr_makeIncConstraintExpr (/*@only@*/ constraintExpr p_expr); -/*@only@*/ constraintExpr constraintExpr_makeDecConstraintExpr (/*@only@*/ constraintExpr expr); +/*@only@*/ constraintExpr constraintExpr_makeDecConstraintExpr (/*@only@*/ constraintExpr p_expr); -/*@only@*/ constraintExpr constraintExpr_simplify (/*@only@*/ constraintExpr c); +/*@only@*/ constraintExpr constraintExpr_simplify (/*@only@*/ constraintExpr p_c); -/*@only@*/ constraintExpr constraintExpr_solveBinaryExpr (constraintExpr lexpr, /*@only@*/ constraintExpr expr) /*@modifies lexpr, expr @*/; +/*@only@*/ constraintExpr constraintExpr_solveBinaryExpr (constraintExpr p_lexpr, /*@only@*/ constraintExpr p_expr) /*@modifies p_lexpr, p_expr @*/; -bool constraintExpr_search (/*@observer@*/ constraintExpr c, /*@observer@*/ constraintExpr old); +bool constraintExpr_search (/*@observer@*/ /*@temp@*/ constraintExpr p_c, /*@observer@*/ /*@temp@*/ constraintExpr p_old); -/*@only@*/ fileloc constraintExpr_getFileloc (constraintExpr expr); +/*@only@*/ fileloc constraintExpr_getFileloc (constraintExpr p_expr); -/*@only@*/ constraintExpr constraintExpr_makeSRefMaxset ( /*@exposed@*/ sRef s); +/*@only@*/ constraintExpr constraintExpr_makeSRefMaxset ( /*@temp@*/ /*@oberver@*/ sRef p_s); -/*@only@*/ constraintExpr constraintExpr_makeTermsRef (/*@exposed@*/ sRef s); +/*@only@*/ constraintExpr constraintExpr_makeSRefMaxRead(/*@temp@*/ /*@observer@*/ sRef p_s); -constraintExpr constraintExpr_doSRefFixBaseParam ( /*@returned@*/ constraintExpr expr, exprNodeList arglist); +/*@only@*/ constraintExpr constraintExpr_makeTermsRef (/*@temp@*/ sRef p_s); -/*@only@*/ constraintExpr constraintExpr_makeExprNode (/*@exposed@*/ exprNode e); +constraintExpr constraintExpr_doSRefFixBaseParam ( /*@returned@*/ constraintExpr p_expr, exprNodeList p_arglist); -/*@only@*/ constraintExpr constraintExpr_doFixResult (/*@only@*/ constraintExpr expr, /*@exposed@*/ exprNode fcnCall); +/*@only@*/ constraintExpr constraintExpr_makeExprNode (/*@dependent@*/ exprNode p_e); -bool constraintExpr_isLit (constraintExpr expr); +/*@only@*/ constraintExpr constraintExpr_doFixResult (/*@only@*/ constraintExpr p_expr, /*@observer@*/ exprNode p_fcnCall); -/*@only@*/ constraintExpr constraintExpr_makeAddExpr (/*@only@*/ constraintExpr expr, /*@only@*/ constraintExpr addent); +bool constraintExpr_isLit (constraintExpr p_expr); -/*@only@*/ constraintExpr constraintExpr_makeSubtractExpr (/*@only@*/ constraintExpr expr, /*@only@*/ constraintExpr addent); +/*@only@*/ constraintExpr constraintExpr_makeAddExpr (/*@only@*/ constraintExpr p_expr, /*@only@*/ constraintExpr p_addent); -/*@only@*/ constraintExpr constraintExpr_parseMakeUnaryOp (lltok op,/*@only@*/ constraintExpr cexpr); +/*@only@*/ constraintExpr constraintExpr_makeSubtractExpr (/*@only@*/ constraintExpr p_expr, /*@only@*/ constraintExpr p_addent); -constraintExpr constraintExpr_parseMakeBinaryOp (/*@only@*/ constraintExpr expr1, lltok op, /*@only@*/ constraintExpr expr2); +/*@only@*/ constraintExpr constraintExpr_parseMakeUnaryOp (lltok p_op,/*@only@*/ constraintExpr p_cexpr); -bool constraintExpr_hasMaxSet (/*@observer@*/ constraintExpr expr); +constraintExpr constraintExpr_parseMakeBinaryOp (/*@only@*/ constraintExpr p_expr1, lltok p_op, /*@only@*/ constraintExpr p_expr2); +bool constraintExpr_hasMaxSet (/*@observer@*/ /*@temp@*/ constraintExpr p_expr); -/*@only@*/ constraintExpr constraintExpr_makeSRefMaxRead(/*@exposed@*/ sRef s); -/*@only@*/ constraintExpr constraintExpr_doSRefFixConstraintParam (/*@returned@*/ /*@only@*/ constraintExpr expr, exprNodeList arglist) /*@modifies expr@*/; + +/*@only@*/ constraintExpr constraintExpr_doSRefFixConstraintParam (/*@returned@*/ /*@only@*/ constraintExpr p_expr, exprNodeList p_arglist) /*@modifies p_expr@*/; /*@only@*/ -constraintExpr constraintExpr_propagateConstants (/*@only@*/ constraintExpr expr, - /*@out@*/ bool * propagate, - /*@out@*/ int *literal); +constraintExpr constraintExpr_propagateConstants (/*@only@*/ constraintExpr p_expr, + /*@out@*/ bool * p_propagate, + /*@out@*/ int *p_literal); -bool constraintExpr_isBinaryExpr (/*@observer@*/ constraintExpr c); +bool constraintExpr_isBinaryExpr (/*@observer@*/ /*@temp@*/ constraintExpr p_c); -extern void constraintExpr_dump (/*@observer@*/ constraintExpr expr, FILE *f); +extern void constraintExpr_dump (/*@observer@*/ /*@temp@*/ constraintExpr p_expr, FILE *p_f); -extern /*@only@*/ constraintExpr constraintExpr_undump (FILE *f); +extern /*@only@*/ constraintExpr constraintExpr_undump (FILE *p_f); #else diff --git a/src/Headers/constraintExprData.h b/src/Headers/constraintExprData.h index 7ad8be0..8ac86d5 100644 --- a/src/Headers/constraintExprData.h +++ b/src/Headers/constraintExprData.h @@ -34,7 +34,7 @@ typedef struct constraintExprUnaryOp_ } constraintExprUnaryOp; -typedef union _constraintExprData +typedef union constraintExprData { constraintExprBinaryOp binaryOp; constraintExprUnaryOp unaryOp; @@ -56,40 +56,40 @@ extern void constraintExprData_freeBinaryExpr (/*@only@*/ constraintExprData) ; extern void constraintExprData_freeUnaryExpr (/*@only@*/ constraintExprData) ; extern void constraintExprData_freeTerm (/*@only@*/ constraintExprData) ; -/*@reldef@*/ constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintTerm term); +constraintExprData constraintExprData_termSetTerm ( /*@returned@*/ /*@partial@*/ constraintExprData p_data, /*@only@*/ constraintTerm p_term); -/*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData data) /*@*/; +/*@observer@*/ constraintTerm constraintExprData_termGetTerm (/*@observer@*/ constraintExprData p_data) /*@*/; -constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*//*@reldef@*/constraintExprData data) /*@*/; +constraintExprUnaryOpKind constraintExprData_unaryExprGetOp (/*@observer@*//*@reldef@*/constraintExprData p_data) /*@*/; -/*@observer@*/ constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ /*@reldef@*/constraintExprData data) /*@*/; +/*@observer@*/ constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ /*@reldef@*/constraintExprData p_data) /*@*/; -// /*@special@*/ constraintExprData constraintExprData_unaryExprSetOp ( /*@out@*/ /*@special@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) /*@sets result->unaryOp.unaryOp@*/; +// special constraintExprData constraintExprData_unaryExprSetOp ( /out special@*/ @returned@ constraintExprData p_data, constraintExprUnaryOpKind op) /sets result->unaryOp.unaryOp; -constraintExprData constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op); +constraintExprData constraintExprData_unaryExprSetOp (/*@partial@*/ /*@returned@*/ constraintExprData p_data, constraintExprUnaryOpKind p_op); -constraintExprData constraintExprData_unaryExprSetExpr (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr); +constraintExprData constraintExprData_unaryExprSetExpr (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr); -constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (/*@reldef@*/constraintExprData data) /*@*/; +constraintExprBinaryOpKind constraintExprData_binaryExprGetOp (/*@partial@*/constraintExprData p_data) /*@*/; -/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr1 (/*@observer@*/ /*@reldef@*/constraintExprData data)/*@*/; +/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr1 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/; -/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr2 (/*@observer@*/ /*@reldef@*/constraintExprData data)/*@*/; +/*@observer@*/ constraintExpr constraintExprData_binaryExprGetExpr2 (/*@observer@*/ /*@reldef@*/constraintExprData p_data)/*@*/; -constraintExprData constraintExprData_binaryExprSetExpr1 (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr) ; +constraintExprData constraintExprData_binaryExprSetExpr1 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr) ; -constraintExprData constraintExprData_binaryExprSetExpr2 (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr); +constraintExprData constraintExprData_binaryExprSetExpr2 (/*@partial@*/ /*@returned@*/ constraintExprData p_data, /*@only@*/ constraintExpr p_expr); - constraintExprData constraintExprData_binaryExprSetOp (/*@reldef@*/ /*@returned@*/ /*@out@*/constraintExprData data, constraintExprBinaryOpKind op); +constraintExprData constraintExprData_binaryExprSetOp (/*@partial@*/ /*@returned@*/ /*@out@*/constraintExprData p_data, constraintExprBinaryOpKind p_op); -/*@only@*/ constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData data); +/*@only@*/ constraintExprData constraintExprData_copyBinaryExpr(/*@observer@*/ constraintExprData p_data); -/*@only@*/ constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData data); +/*@only@*/ constraintExprData constraintExprData_copyUnaryExpr(/*@observer@*/ constraintExprData p_data); -/*@only@*/ constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData data); +/*@only@*/ constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprData p_data); #else diff --git a/src/Headers/constraintList.h b/src/Headers/constraintList.h index bd0a326..18ea929 100644 --- a/src/Headers/constraintList.h +++ b/src/Headers/constraintList.h @@ -7,7 +7,7 @@ typedef /*@only@*/ /*@notnull@*/ constraint o_constraint; -struct _constraintList +struct s_constraintList { int nelements; int nspace; @@ -26,8 +26,8 @@ extern /*@truenull@*/ /*@unused@*/ bool constraintList_isError (constraintList p # define constraintList_isUndefined(e) ((e) == constraintList_undefined) # define constraintList_isError(e) ((e) == constraintList_undefined) -extern /*@only@*/ constraintList constraintList_addListFree (/*@only@*/ constraintList, /*@only@*/ constraintList) ; -extern constraintList constraintList_preserveCallInfo (/*@returned@*/ constraintList p_c, exprNode p_fcn) ; +extern constraintList constraintList_addListFree (/*@returned@*/ constraintList, /*@only@*/ constraintList) ; +extern constraintList constraintList_preserveCallInfo (/*@returned@*/ constraintList p_c, /*@observer@*/ /*@dependent@*/ exprNode p_fcn) ; /*@iter constraintList_elements (sef constraintList x, yield exposed constraint el); @*/ # define constraintList_elements(x, m_el) \ @@ -40,10 +40,10 @@ extern constraintList constraintList_preserveCallInfo (/*@returned@*/ constraint extern /*@only@*/ constraintList constraintList_makeNew(void) /*@*/; extern constraintList constraintList_add (/*@returned@*/ constraintList p_s, /*@only@*/ constraint p_el) /*@modifies p_s@*/ ; -extern /*@only@*/ constraintList constraintList_addList (/*@returned@*/ constraintList p_s, /*@observer@*/ constraintList new) /*@modifies p_s@*/ ; +extern /*@only@*/ constraintList constraintList_addList (/*@only@*/ /*@returned@*/ constraintList p_s, /*@observer@*/ constraintList p_newList) /*@modifies p_s@*/ ; -extern constraintList constraintList_copy ( /*@observer@*/ constraintList p_s) /*@*/ ; +extern constraintList constraintList_copy ( /*@observer@*/ /*@temp@*/ constraintList p_s) /*@*/ ; extern void constraintList_free (/*@only@*/ constraintList p_s) ; @@ -51,38 +51,38 @@ extern void constraintList_free (/*@only@*/ constraintList p_s) ; extern /*@only@*/ cstring constraintList_unparse ( /*@observer@*/ constraintList p_s) /*@*/; -/*@only@*/ extern cstring constraintList_print ( /*@observer@*/ constraintList s) /*@*/; +/*@only@*/ extern cstring constraintList_print ( /*@observer@*/ /*@temp@*/ constraintList p_s) /*@*/; extern cstring -constraintList_printDetailed ( /*@observer@*/ constraintList s) /*@*/; +constraintList_printDetailed ( /*@observer@*/ constraintList p_s) /*@*/; extern /*@only@*/ constraintList -constraintList_logicalOr ( /*@observer@*/ constraintList l1, /*@observer@*/ constraintList l2); +constraintList_logicalOr ( /*@observer@*/ constraintList p_l1, /*@observer@*/ constraintList p_l2); -extern constraintList constraintList_preserveOrig (/*@returned@*/ constraintList c); +extern constraintList constraintList_preserveOrig (/*@returned@*/ constraintList p_c); /*@constant int constraintListBASESIZE;@*/ # define constraintListBASESIZE SMALLBASESIZE -extern /*@only@*/ constraintList constraintList_doSRefFixBaseParam ( /*@observer@*/ constraintList preconditions, /*@observer@*/ exprNodeList arglist) /*@modifies preconditions@*/; +extern /*@only@*/ constraintList constraintList_doSRefFixBaseParam ( constraintList p_preconditions, /*@temp@*/ /*@observer@*/ exprNodeList p_arglist) /*@modifies p_preconditions@*/; -extern constraintList constraintList_togglePost (/*@returned@*/ constraintList c) /*@modifies c@*/; +extern constraintList constraintList_togglePost (/*@returned@*/ constraintList p_c) /*@modifies p_c@*/; -extern /*@only@*/ constraintList constraintList_doSRefFixConstraintParam ( /*@only@*/ constraintList preconditions, /*@observer@*/ exprNodeList arglist) /*@modifies preconditions@*/; +extern /*@only@*/ constraintList constraintList_doSRefFixConstraintParam ( /*@only@*/ constraintList p_preconditions, /*@observer@*/ /*@temp@*/ exprNodeList p_arglist) /*@modifies p_preconditions@*/; -extern constraintList getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall) /*@*/; +extern constraintList exprNode_getPostConditions (/*@dependent@*/ /*@observer@*/ exprNode p_fcn, exprNodeList p_arglist, /*@dependent@*/ /*@observer@*/ exprNode p_fcnCall) /*@*/; -/*@only@*/ constraintList constraintList_doFixResult ( /*@only@*/ constraintList postconditions, /*@observer@*/ exprNode fcnCall) /*@modifies postconditions@*/; +/*@only@*/ constraintList constraintList_doFixResult ( /*@only@*/ constraintList p_postconditions, /*@observer@*/ /*@dependent@*/ exprNode p_fcnCall) /*@modifies p_postconditions@*/; -extern constraintList constraintList_addGeneratingExpr (/*@returned@*/ constraintList c, exprNode e) /*@modifies c@*/; +extern constraintList constraintList_addGeneratingExpr (/*@returned@*/ constraintList p_c, /*@dependent@*/ /*@observer@*/ exprNode p_e) /*@modifies p_c@*/; extern /*@only@*/ constraintList constraintList_makeFixedArrayConstraints ( /*@observer@*/ sRefSet p_s) ; extern void constraintList_printErrorPostConditions (constraintList p_s, fileloc p_loc) ; -extern void constraintList_printError (constraintList p_s, fileloc p_loc) ; +extern void constraintList_printError (constraintList p_s, /*@observer@*/ fileloc p_loc) ; -void constraintList_dump (/*@observer@*/ constraintList c, FILE *f); +void constraintList_dump (/*@observer@*/ constraintList p_c, FILE * p_f); -/*@only@*/ constraintList constraintList_undump (FILE *f); +/*@only@*/ constraintList constraintList_undump (FILE * p_f); # else diff --git a/src/Headers/constraintResolve.h b/src/Headers/constraintResolve.h index 8e96ffa..37e1a89 100644 --- a/src/Headers/constraintResolve.h +++ b/src/Headers/constraintResolve.h @@ -1,44 +1,42 @@ -extern /*@only@*/ constraintList reflectChanges (/*@observer@*/ constraintList pre2, /*@observer@*/ constraintList post1); +extern /*@only@*/ constraintList constraintList_reflectChanges(/*@observer@*/ /*@temp@*/ constraintList p_pre2, /*@observer@*/ /*@temp@*/ constraintList p_post1); -/* tries to resolve constraints in list pre2 using post1 */ -/*@only@*/ extern constraintList reflectChangesFreePre (/*@only@*/ constraintList pre2, /*@observer@*/ constraintList post1); +/* tries to resolve constraints in List p_pre2 using post1 */ +/*@only@*/ extern constraintList constraintList_reflectChangesFreePre (/*@only@*/ constraintList p_pre2, /*@observer@*/ /*@temp@*/ constraintList p_post1); -extern /*@only@*/ constraint substitute (/*@observer@*/ constraint c, constraintList p); +extern /*@only@*/ constraint constraint_substitute (/*@temp@*/ /*@observer@*/ constraint p_c, /*@temp@*/ /*@observer@*/ constraintList p_p); -//extern constraint constraint_searchandreplace (constraint c, constraintExpr old, constraintExpr new); +//extern constraint constraint_searchandreplace (constraint p_c, constraintExpr old, constraintExpr new); -extern bool resolve ( /*@observer@*/ constraint c, /*@observer@*/ constraintList p); +extern bool constraintList_resolve (/*@temp@*/ /*@observer@*/ constraint p_c, /*@temp@*/ /*@observer@*/ constraintList p_p); -extern constraint constraint_simplify ( /*@returned@*/ constraint c); +extern constraint constraint_simplify ( /*@returned@*/ constraint p_c); -extern /*@only@*/ constraintList constraintList_fixConflicts (constraintList list1, constraintList list2); +extern /*@only@*/ constraintList constraintList_fixConflicts (constraintList p_list1, constraintList p_list2); -extern constraintList constraintList_subsumeEnsures (constraintList list1, constraintList list2); +extern constraintList constraintList_subsumeEnsures (constraintList p_list1, constraintList p_list2); -extern constraintList constraintList_mergeEnsures (/*observer@*/ constraintList list1, /*@observer@*/ constraintList list2); +extern constraintList constraintList_mergeEnsures (/*observer@*/ /*@temp@*/ constraintList p_list1, /*@observer@*/ /*@temp@*/ constraintList p_list2); -/*@only@*/ constraintList constraintList_mergeEnsuresFreeFirst (/*@only@*/ constraintList list1, /*@observer@*/ constraintList list2); +/*@only@*/ constraintList constraintList_mergeEnsuresFreeFirst (/*@only@*/ constraintList p_list1, /*@observer@*/ /*@temp@*/ constraintList p_list2); -bool constraint_isAlwaysTrue (/*@observer@*/ constraint c); +bool constraint_isAlwaysTrue (/*@observer@*/ /*@temp@*/ constraint p_c); -/*@only@*/ constraintList constraintList_mergeRequires (/*@observer@*/ constraintList list1,/*@observer@*/ constraintList list2); +/*@only@*/ constraintList constraintList_mergeRequires (/*@observer@*/ /*@temp@*/ constraintList p_list1,/*@observer@*/ /*@temp@*/ constraintList p_list2); -/*@only@*/ constraintList constraintList_mergeRequiresFreeFirst (/*@only@*/constraintList list1,/*@observer@*/ constraintList list2); +/*@only@*/ constraintList constraintList_mergeRequiresFreeFirst (/*@only@*/constraintList p_list1,/*@observer@*/ /*@temp@*/ constraintList p_list2); -constraintList reflectChangesOr (constraintList pre2, constraintList post1); +constraintList constraintList_reflectChangesOr (constraintList p_pre2, constraintList p_post1); -/*@only@*/ constraintList constraintList_substitute (constraintList target, /*2observer@*/ constraintList subList); +/*@only@*/ constraintList constraintList_substitute (constraintList p_target, /*2observer@*/ constraintList p_subList); -/*@only@*/ constraintList constraintList_substituteFreeTarget (/*@only@*/ constraintList target, /*@observer@*/ constraintList subList); +/*@only@*/ constraintList constraintList_substituteFreeTarget (/*@only@*/ constraintList p_target, /*@observer@*/ /*@temp@*/ constraintList p_subList); -extern void mergeResolve (exprNode parent, exprNode child1, exprNode child2); -extern constraintList checkCall (exprNode fcn, exprNodeList arglist); +extern void exprNode_mergeResolve (exprNode p_parent, exprNode p_child1, exprNode p_child2); -void checkArgumentList (/*@out@*/ exprNode temp, exprNodeList arglist, fileloc sequencePoint) /*@modifies temp @*/; +//extern constraintList checkCall (exprNode p_fcn, exprNodeList p_arglist); -constraint inequalitySubstitute (/*@returned@*/ constraint c, constraintList p); diff --git a/src/Headers/constraintTerm.h b/src/Headers/constraintTerm.h index 89c6d3c..7e9207e 100644 --- a/src/Headers/constraintTerm.h +++ b/src/Headers/constraintTerm.h @@ -4,11 +4,13 @@ typedef union { - /*@exposed@*/ exprNode expr; - /*@exposed@*/ sRef sref; + /*@exposed@*/ /*@dependent@*/ exprNode expr; + /*@only@*/ sRef sref; int intlit; } constraintTermValue; +/*@-namechecks@*/ + void constraintTermValue_copy (/*@out@*/ constraintTermValue src, constraintTermValue dst); /*@-macroassign*/ @@ -54,13 +56,10 @@ void constraintTerm_free (/*@only@*/ constraintTerm term); constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@modifies term@*/ ; -/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@exposed@*/ exprNode e) /*@*/; +/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode e) /*@*/; constraintTerm constraintTerm_copy (constraintTerm term) /*@*/; - -/*@i1*/ //bool constraintTerm_same (constraintTerm term1, constraintTerm term2) /*@*/; - bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) /*@*/; bool constraintTerm_canGetValue (constraintTerm term)/*@*/; @@ -73,7 +72,7 @@ bool constraintTerm_isIntLiteral (constraintTerm term) /*@*/; cstring constraintTerm_print (constraintTerm term) /*@*/; -constraintTerm constraintTerm_makesRef (/*@exposed@*/ sRef s) /*@*/; +constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef s) /*@*/; /*@unused@*/ bool constraintTerm_probSame (constraintTerm term1, constraintTerm term2) /*@*/; @@ -91,6 +90,8 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f); /*@only@*/ constraintTerm constraintTerm_undump ( FILE *f); +/*@=namechecks@*/ + #else #error Multiple Include diff --git a/src/Headers/context.h b/src/Headers/context.h index d5796bb..5cd7505 100644 --- a/src/Headers/context.h +++ b/src/Headers/context.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -26,7 +26,7 @@ extern bool context_hasMods (void); extern bool context_isSystemDir (cstring p_dir) /*@*/ ; -extern /*@observer@*/ char *context_selectedLibrary (void) /*@*/ ; +extern /*@observer@*/ cstring context_selectedLibrary (void) /*@*/ ; extern bool context_usingPosixLibrary (void) /*@*/ ; extern bool context_usingAnsiLibrary (void) /*@*/ ; extern flagcode context_getLibrary (void) /*@*/ ; @@ -39,6 +39,7 @@ extern bool context_isPreprocessing (void) /*@*/; extern void context_setInCommandLine (void) /*@modifies internalState@*/ ; extern void context_clearInCommandLine (void) /*@modifies internalState@*/ ; extern bool context_isInCommandLine (void) /*@*/ ; +extern bool context_inXHFile (void) /*@*/ ; extern void context_resetErrors (void); @@ -87,6 +88,7 @@ extern void context_unhideShowscan (void); extern void context_setMode (cstring p_s); extern void context_exitAllClauses (void); +extern void context_exitAllClausesQuiet (void); extern bool context_inHeader (void); extern /*@dependent@*/ /*@exposed@*/ fileTable context_fileTable (void) /*@*/ ; @@ -94,6 +96,9 @@ extern /*@dependent@*/ /*@exposed@*/ fileTable context_fileTable (void) /*@*/ ; extern /*@exposed@*/ messageLog context_messageLog (void); extern /*@dependent@*/ /*@observer@*/ cstring context_tmpdir (void); +extern void context_enterMTfile (void) /*@modifies internalState@*/ ; +extern void context_exitMTfile (void) /*@modifies internalState@*/ ; + # ifndef NOLCL extern void context_enterLCLfile (void); extern void context_exitLCLfile (void); @@ -119,7 +124,7 @@ extern /*@observer@*/ uentryList context_getParams (void); extern bool context_isSpecialFile (cstring p_fname); extern /*@observer@*/ cstring context_inFunctionName (void) /*@*/ ; extern ctype context_currentFunctionType (void) /*@*/ ; -extern void context_exitFile (void); +extern void context_exitCFile (void); extern void context_enterConstantMacro (/*@dependent@*/ /*@exposed@*/ uentry p_e); extern void context_enterMacro (/*@observer@*/ uentry p_e); extern void context_enterFunction (/*@exposed@*/ uentry p_e); @@ -138,9 +143,14 @@ extern void context_setFlagTemp (flagcode p_f, bool p_b); extern /*@unused@*/ void context_showFilelocStack (void) ; extern bool context_getFlag (flagcode p_d) /*@*/ ; +extern bool context_flagOn (flagcode p_f, fileloc p_loc) /*@*/ ; + extern int context_getLineLen (void) /*@*/ ; # define context_getLineLen() ((int)context_getValue(FLG_LINELEN)) +extern int context_getIndentSpaces (void) /*@*/ ; +# define context_getIndentSpaces() ((int)context_getValue(FLG_INDENTSPACES)) + extern int context_getValue (flagcode p_flag) /*@*/ ; extern void context_setValueAndFlag (flagcode p_flag, int p_val) /*@modifies internalState@*/ ; @@ -166,7 +176,7 @@ extern int context_getExpect (void) /*@*/ ; extern /*@observer@*/ sRefSet context_modList(void); extern /*@exposed@*/ uentry context_getHeader(void) /*@*/; -extern void context_usedGlobal (sRef p_el); +extern void context_usedGlobal (/*@exposed@*/ sRef p_el); extern void context_resetModeFlags (void); extern ctype context_typeofZero (void); extern ctype context_typeofOne (void); @@ -290,11 +300,38 @@ extern /*@observer@*/ cstring context_moduleName (void) /*@*/ ; extern void context_recordFileGlobals (/*@dependent@*/ globSet p_mods); extern void context_checkSuppressCounts (void) /*@modifies g_msgstream@*/ ; -extern bool context_inFunctionDecl (void) /*@globals internalState@*/ ; -extern void context_enterFunctionDecl (void) /*@modifies internalState@*/ ; -extern void context_exitFunctionDecl (void) /*@modifies internalState@*/ ; +extern bool context_inFunctionHeader (void) /*@globals internalState@*/ ; +extern void context_enterFunctionHeader (void) /*@modifies internalState@*/ ; +extern void context_exitFunctionHeader (void) /*@modifies internalState@*/ ; + +extern bool context_inFunctionDeclaration (void) /*@globals internalState@*/ ; +extern void context_enterFunctionDeclaration (/*@exposed@*/ uentry) /*@modifies internalState@*/ ; +extern void context_exitFunctionDeclaration (void) /*@modifies internalState@*/ ; extern ctype context_boolImplementationType (void) /*@*/ ; +extern /*@observer@*/ /*@null@*/ annotationInfo + context_lookupAnnotation (cstring p_annot) /*@*/ ; + +extern /*@observer@*/ metaStateTable context_getMetaStateTable (void) + /*@globals internalState@*/ ; + +extern /*@observer@*/ metaStateInfo context_lookupMetaStateInfo (cstring p_key) + /*@globals internalState@*/ ; + +extern void context_addAnnotation (/*@only@*/ annotationInfo) + /*@modifies internalState@*/ ; + +extern void context_addMetaState (/*@only@*/ cstring, /*@only@*/ metaStateInfo) + /*@modifies internalState@*/ ; + +extern valueTable context_createValueTable (sRef p_s) + /*@globals internalState@*/ ; + +extern valueTable context_createGlobalMarkerValueTable (void) + /*@globals internalState@*/ ; + +extern int context_getBugsLimit (void) /*@*/ ; +# define context_getBugsLimit() ((int)context_getValue(FLG_BUGSLIMIT)) # else # error "Multiple include" diff --git a/src/Headers/cprim.h b/src/Headers/cprim.h index ce7c012..6ac9a71 100644 --- a/src/Headers/cprim.h +++ b/src/Headers/cprim.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/cstring.h b/src/Headers/cstring.h index 3bfb10c..b034896 100644 --- a/src/Headers/cstring.h +++ b/src/Headers/cstring.h @@ -188,6 +188,11 @@ extern bool cstring_containsLit (/*@unique@*/ cstring p_c, char *p_sub) /*@*/ ; # define cstring_containsLit(c,sub) \ (cstring_contains (c, cstring_fromChars (sub))) +/*drl added July 2, 001 */ +extern int cstring_compareLit (/*@unique@*/ cstring p_c, char *p_sub) /*@*/ ; +# define cstring_compareLit(c,sub) \ + (cstring_compare (c, cstring_fromChars (sub))) + # else # error "Multiple include" # endif diff --git a/src/Headers/cstringList.h b/src/Headers/cstringList.h index fd8469c..3c91234 100644 --- a/src/Headers/cstringList.h +++ b/src/Headers/cstringList.h @@ -1,12 +1,12 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ # ifndef cstringList_H # define cstringList_H -abst_typedef /*@null@*/ struct _cstringList +abst_typedef /*@null@*/ struct s_cstringList { int nelements; int nspace; @@ -35,6 +35,15 @@ extern cstringList cstringList_add (/*@returned@*/ cstringList p_s, /*@keep@*/ cstring p_el) /*@modifies p_s@*/ ; +extern /*@only@*/ cstringList + cstringList_prepend (/*@only@*/ /*@returned@*/ cstringList p_s, + /*@keep@*/ cstring p_el) + /*@modifies p_s@*/ ; + +extern bool cstringList_contains (cstringList p_s, cstring p_key) /*@*/ ; +extern int cstringList_getIndex (cstringList p_s, cstring p_key) /*@*/ ; +extern /*@observer@*/ cstring cstringList_get (cstringList p_s, int p_index) /*@*/ ; + extern /*@unused@*/ void cstringList_alphabetize (cstringList p_s); extern /*@unused@*/ /*@only@*/ cstring cstringList_unparseAbbrev (cstringList p_s) /*@*/ ; extern /*@unused@*/ /*@only@*/ cstring cstringList_unparse (cstringList p_s) ; @@ -42,6 +51,8 @@ extern void cstringList_free (/*@only@*/ cstringList p_s) ; extern /*@unused@*/ void cstringList_printSpaced (cstringList p_s, int p_indent, int p_gap, int p_linelen); +extern /*@only@*/ cstringList cstringList_copy (cstringList p_s) /*@*/ ; + /*@constant int cstringListBASESIZE;@*/ # define cstringListBASESIZE MIDBASESIZE diff --git a/src/Headers/cstringSList.h b/src/Headers/cstringSList.h index 358595a..dbf4e0b 100644 --- a/src/Headers/cstringSList.h +++ b/src/Headers/cstringSList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@observer@*/ cstring ob_cstring; -abst_typedef /*@null@*/ struct _cstringSList +abst_typedef /*@null@*/ struct s_cstringSList { int nelements; int nspace; @@ -39,6 +39,8 @@ extern cstringSList extern void cstringSList_alphabetize (cstringSList p_s); +extern /*@observer@*/ cstring cstringSList_get (cstringSList p_s, int p_index) /*@*/ ; + extern /*@only@*/ cstring cstringSList_unparseAbbrev (cstringSList p_s) /*@*/ ; extern /*@unused@*/ /*@only@*/ cstring cstringSList_unparse (cstringSList p_s) ; extern void cstringSList_free (/*@only@*/ cstringSList p_s) ; diff --git a/src/Headers/cstringTable.h b/src/Headers/cstringTable.h new file mode 100644 index 0000000..576aa48 --- /dev/null +++ b/src/Headers/cstringTable.h @@ -0,0 +1,90 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** cstringTable.h +*/ + +# ifndef CSTRINGTABLE_H +# define CSTRINGTABLE_H + +/*@constant int HBUCKET_BASESIZE; @*/ +# define HBUCKET_BASESIZE 2 + +/*@constant int HBUCKET_DNE; @*/ +# define HBUCKET_DNE NOT_FOUND + +/* in forwardTypes: + abst_typedef null struct _cstringTable *cstringTable; +*/ + +/*@private@*/ typedef struct +{ + /*@only@*/ cstring key; + int val; +} *hentry; + +/*@private@*/ typedef /*@only@*/ hentry o_hentry; + +typedef /*@null@*/ struct +{ + int size; + int nspace; + /*@only@*/ o_hentry *entries; +} *hbucket; + +typedef /*@only@*/ hbucket o_hbucket; + +struct s_cstringTable +{ + int size; + int nentries; + /*@only@*/ o_hbucket *buckets; +} ; + + +/*@constant null cstringTable cstringTable_undefined; @*/ +# define cstringTable_undefined ((cstringTable) NULL) + +extern /*@falsenull@*/ bool cstringTable_isDefined(cstringTable) /*@*/ ; +# define cstringTable_isDefined(p_h) ((p_h) != cstringTable_undefined) + +extern /*@truenull@*/ /*@unused@*/ bool cstringTable_isUndefined(cstringTable) /*@*/ ; +# define cstringTable_isUndefined(p_h) ((p_h) == cstringTable_undefined) + +extern /*@only@*/ cstringTable cstringTable_create(int p_size) /*@*/ ; +extern void cstringTable_insert (cstringTable p_h, + /*@only@*/ cstring p_key, + int p_value) /*@modifies p_h@*/ ; + +extern int cstringTable_lookup (cstringTable p_h, cstring p_key); +extern /*@unused@*/ /*@only@*/ cstring cstringTable_stats(cstringTable p_h); +extern void cstringTable_free (/*@only@*/ cstringTable p_h); +extern void cstringTable_remove (cstringTable p_h, cstring p_key) /*@modifies p_h@*/ ; + +extern /*@unused@*/ cstring cstringTable_unparse (cstringTable) /*@*/ ; + +extern /*@unused@*/ void cstringTable_update (cstringTable p_h, cstring p_key, int p_newval) /*@modifies p_h@*/ ; + +extern void + cstringTable_replaceKey (cstringTable p_h, cstring p_oldkey, + /*@only@*/ cstring p_newkey); + +# else +# error "Multiple include" +# endif + + + + + + + + + + + + + diff --git a/src/Headers/ctypeList.h b/src/Headers/ctypeList.h index 59825d0..32f1c8c 100644 --- a/src/Headers/ctypeList.h +++ b/src/Headers/ctypeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -13,7 +13,7 @@ ** (that is, not void, so any number of arguments is okay.) */ -abst_typedef /*@null@*/ struct _ctypeList +abst_typedef /*@null@*/ struct { int nelements; int nspace; @@ -26,6 +26,12 @@ extern int ctypeList_size (/*@sef@*/ ctypeList p_s) /*@*/ ; extern /*@only@*/ ctypeList ctypeList_new(void); extern void ctypeList_addh (ctypeList p_s, ctype p_el) /*@modifies p_s@*/; +extern /*@only@*/ ctypeList + ctypeList_append (/*@returned@*/ /*@only@*/ ctypeList p_s1, + ctypeList p_s2) /*@modifies p_s1@*/ ; + +extern ctypeList ctypeList_add (/*@only@*/ ctypeList p_s, ctype p_el) /*@modifies p_s@*/; + extern /*@unused@*/ /*@only@*/ cstring ctypeList_unparse (ctypeList) /*@*/ ; extern void ctypeList_free (/*@only@*/ /*@only@*/ ctypeList p_s) /*@modifies p_s@*/; @@ -39,6 +45,15 @@ extern /*@unused@*/ /*@truenull@*/ bool # define ctypeList_isDefined(ct) ((ct) != ctypeList_undefined) # define ctypeList_isUndefined(ct) ((ct) == ctypeList_undefined) +/*@iter ctypeList_elements (sef ctypeList x, yield ctype el); @*/ +# define ctypeList_elements(x, m_el) \ + { if (!ctypeList_isUndefined(x)) \ + { int m_ind; ctype *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { ctype m_el = *(m_elements++); + +# define end_ctypeList_elements }}} + /*@constant int ctypeListBASESIZE;@*/ # define ctypeListBASESIZE SMALLBASESIZE diff --git a/src/Headers/cvar.h b/src/Headers/cvar.h index d390f47..625b9a4 100644 --- a/src/Headers/cvar.h +++ b/src/Headers/cvar.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/declaratorInvNode.h b/src/Headers/declaratorInvNode.h index 4e14bea..27b1b7e 100644 --- a/src/Headers/declaratorInvNode.h +++ b/src/Headers/declaratorInvNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -7,9 +7,9 @@ ** declaratorInvNode.h */ -typedef struct _declaratorInvNode { - struct _declaratorNode *declarator; - struct _abstBodyNode *body; +typedef struct { + declaratorNode declarator; + abstBodyNode body; } *declaratorInvNode; extern void declaratorInvNode_free (/*@only@*/ /*@null@*/ declaratorInvNode p_x); diff --git a/src/Headers/declaratorInvNodeList.h b/src/Headers/declaratorInvNodeList.h index aa636aa..4d8fe55 100644 --- a/src/Headers/declaratorInvNodeList.h +++ b/src/Headers/declaratorInvNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ declaratorInvNode o_declaratorInvNode; -abst_typedef struct _declaratorInvNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/declaratorNode.h b/src/Headers/declaratorNode.h index e189e7f..eb68eb2 100644 --- a/src/Headers/declaratorNode.h +++ b/src/Headers/declaratorNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -7,7 +7,7 @@ ** declaratorNode.h */ -typedef struct _declaratorNode { +typedef struct { ltoken id; /*@null@*/ typeExpr type; bool isRedecl; diff --git a/src/Headers/declaratorNodeList.h b/src/Headers/declaratorNodeList.h index 74b8a5c..308bba5 100644 --- a/src/Headers/declaratorNodeList.h +++ b/src/Headers/declaratorNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ declaratorNode o_declaratorNode; -abst_typedef struct _declaratorNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/ekind.h b/src/Headers/ekind.h index 041ae43..90c25cf 100644 --- a/src/Headers/ekind.h +++ b/src/Headers/ekind.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -20,6 +20,9 @@ immut_typedef enum { /*@constant ekind KELAST;@*/ # define KELAST KELIPSMARKER +/*@constant int KGLOBALMARKER;@*/ +# define KGLOBALMARKER ((int) KELAST + 1) + extern bool ekind_equal (ekind, ekind) /*@*/ ; # define ekind_equal(e1, e2) ((e1) == (e2)) diff --git a/src/Headers/enumNameList.h b/src/Headers/enumNameList.h index 8947605..d041a39 100644 --- a/src/Headers/enumNameList.h +++ b/src/Headers/enumNameList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -15,7 +15,7 @@ extern /*@only@*/ enumName enumName_create (/*@only@*/ cstring p_s) /*@*/ ; typedef /*@only@*/ enumName o_enumName; -abst_typedef struct _enumNameList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/enumNameSList.h b/src/Headers/enumNameSList.h index 8688b6b..6ababa4 100644 --- a/src/Headers/enumNameSList.h +++ b/src/Headers/enumNameSList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/enumSpecNode.h b/src/Headers/enumSpecNode.h index 0a5f0e7..c88393c 100644 --- a/src/Headers/enumSpecNode.h +++ b/src/Headers/enumSpecNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _enumSpecNode { +typedef struct { ltoken tok; ltoken opttagid; /*@owned@*/ ltokenList enums; diff --git a/src/Headers/exportNode.h b/src/Headers/exportNode.h index 9162392..0e96414 100644 --- a/src/Headers/exportNode.h +++ b/src/Headers/exportNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,7 +10,7 @@ typedef enum XPK_FCN, XPK_CLAIM, XPK_ITER } exportKind; -typedef struct _exportNode { +typedef struct { exportKind kind; union { constDeclarationNode constdeclaration; diff --git a/src/Headers/exposedNode.h b/src/Headers/exposedNode.h index daa6845..f149c8a 100644 --- a/src/Headers/exposedNode.h +++ b/src/Headers/exposedNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _exposedNode { +typedef struct { ltoken tok; lclTypeSpecNode type; declaratorInvNodeList decls; diff --git a/src/Headers/exprChecks.h b/src/Headers/exprChecks.h index 2dbd85e..f544fe8 100644 --- a/src/Headers/exprChecks.h +++ b/src/Headers/exprChecks.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -15,7 +15,7 @@ extern void exprNode_checkAllMods (sRefSet p_mods, uentry p_ue); extern void exprNode_checkCallModifyVal (sRef p_s, exprNodeList p_args, exprNode p_f, exprNode p_err); extern void exprChecks_checkEmptyMacroBody (void); extern void exprChecks_checkExport (uentry p_e); -extern void exprNode_checkFunction (uentry p_ue, /*@only@*/ exprNode p_body); +extern void exprNode_checkFunction (uentry p_ue, /*@only@*/ exprNode p_fcnBody); extern void exprNode_checkFunctionBody (exprNode p_body); extern void exprNode_checkIterBody (/*@only@*/ exprNode p_body); extern void exprNode_checkIterEnd (/*@only@*/ exprNode p_body); @@ -27,3 +27,4 @@ extern void exprNode_checkPred (cstring p_c, exprNode p_e); extern void exprNode_checkReturn (exprNode p_e); extern void exprNode_checkStatement (exprNode p_e); extern void exprChecks_checkUsedGlobs (globSet p_decl, globSet p_used); + diff --git a/src/Headers/exprData.h b/src/Headers/exprData.h index 2505daa..0ab25b4 100644 --- a/src/Headers/exprData.h +++ b/src/Headers/exprData.h @@ -12,128 +12,128 @@ /*@only@*/ exprData exprData_makePair (/*@keep@*/ exprNode p_a, /*@keep@*/ exprNode p_b); /*@-declundef*/ -/*static*/ void exprData_freeShallow (/*@only@*/ exprData data, exprKind kind); +/*static*/ void exprData_freeShallow (/*@only@*/ exprData p_data, exprKind p_kind); -/*static*/ void exprData_free (/*@only@*/ exprData data, exprKind kind); +/*static*/ void exprData_free (/*@only@*/ exprData p_data, exprKind p_kind); -/*static*/ /*@exposed@*/ exprNode exprData_getInitNode (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getInitNode (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ idDecl exprData_getInitId (exprData data) /*@*/; +/*static*/ /*@exposed@*/ idDecl exprData_getInitId (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getOpA (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getOpA (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getOpB (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getOpB (exprData p_data) /*@*/; -/*static*/ /*@observer@*/ lltok exprData_getOpTok (exprData data) /*@*/; +/*static*/ /*@observer@*/ lltok exprData_getOpTok (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getPairA (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getPairA (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getPairB (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getPairB (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ uentry exprData_getIterSname (exprData data) /*@*/; +/*static*/ /*@exposed@*/ uentry exprData_getIterSname (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNodeList exprData_getIterAlist (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNodeList exprData_getIterAlist (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getIterBody (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getIterBody (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ uentry exprData_getIterEname (exprData data) /*@*/; +/*static*/ /*@exposed@*/ uentry exprData_getIterEname (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getFcn (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getFcn (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNodeList exprData_getArgs (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNodeList exprData_getArgs (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getTriplePred (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getTriplePred (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ uentry exprData_getIterCallIter (exprData data) /*@*/; +/*static*/ /*@exposed@*/ uentry exprData_getIterCallIter (exprData p_data) /*@*/; /*static*/ /*@exposed@*/ exprNodeList -exprData_getIterCallArgs (exprData data) /*@*/; +exprData_getIterCallArgs (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getTripleInit (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getTripleInit (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getTripleTrue (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getTripleTrue (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getTripleTest (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getTripleTest (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getTripleFalse (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getTripleFalse (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getTripleInc (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getTripleInc (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getFieldNode (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getFieldNode (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ cstring exprData_getFieldName (exprData data) /*@*/; +/*static*/ /*@exposed@*/ cstring exprData_getFieldName (exprData p_data) /*@*/; -/*static*/ /*@observer@*/ lltok exprData_getUopTok (exprData data) /*@*/; +/*static*/ /*@observer@*/ lltok exprData_getUopTok (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getUopNode (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getUopNode (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ exprNode exprData_getCastNode (exprData data) /*@*/; +/*static*/ /*@exposed@*/ exprNode exprData_getCastNode (exprData p_data) /*@*/; -/*static*/ /*@observer@*/ lltok exprData_getCastTok (exprData data) /*@*/; +/*static*/ /*@observer@*/ lltok exprData_getCastTok (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ qtype exprData_getCastType (exprData data) /*@*/; +/*static*/ /*@exposed@*/ qtype exprData_getCastType (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ cstring exprData_getLiteral (exprData data) /*@*/; +/*static*/ /*@exposed@*/ cstring exprData_getLiteral (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ cstring exprData_getId (exprData data) /*@*/; +/*static*/ /*@exposed@*/ cstring exprData_getId (exprData p_data) /*@*/; -/*static*/ /*@observer@*/ lltok exprData_getTok (exprData data) /*@*/; +/*static*/ /*@observer@*/ lltok exprData_getTok (exprData p_data) /*@*/; -/*static*/ /*@exposed@*/ qtype exprData_getType (exprData data) /*@*/ ; +/*static*/ /*@exposed@*/ qtype exprData_getType (exprData p_data) /*@*/ ; -/*static*/ /*@exposed@*/ qtype exprData_getOffsetType (exprData data) /*@*/ ; +/*static*/ /*@exposed@*/ qtype exprData_getOffsetType (exprData p_data) /*@*/ ; -/*static*/ /*@exposed@*/ cstringList exprData_getOffsetName (exprData data) /*@*/ ; +/*static*/ /*@exposed@*/ cstringList exprData_getOffsetName (exprData p_data) /*@*/ ; -/*static*/ /*@exposed@*/ exprNode exprData_getSingle (exprData data); +/*static*/ /*@exposed@*/ exprNode exprData_getSingle (exprData p_data); /*static*/ /*@only@*/ exprData -exprData_makeOp (/*@keep@*/ exprNode a, /*@keep@*/ exprNode b, /*@keep@*/ lltok op); +exprData_makeOp (/*@keep@*/ exprNode p_a, /*@keep@*/ exprNode p_b, /*@keep@*/ lltok p_op); -/*static*/ /*@only@*/ exprData exprData_makeUop (/*@keep@*/ exprNode a, /*@keep@*/ lltok op); +/*static*/ /*@only@*/ exprData exprData_makeUop (/*@keep@*/ exprNode p_a, /*@keep@*/ lltok p_op); -/*static*/ /*@only@*/ exprData exprData_makeSingle (/*@only@*/ exprNode a); +/*static*/ /*@only@*/ exprData exprData_makeSingle (/*@only@*/ exprNode p_a); -/*static*/ /*@only@*/ exprData exprData_makeTok (/*@only@*/ lltok op); +/*static*/ /*@only@*/ exprData exprData_makeTok (/*@only@*/ lltok p_op); /*static*/ /*@only@*/ exprData -exprData_makeIter (/*@exposed@*/ uentry sname, /*@keep@*/ exprNodeList args, - /*@keep@*/ exprNode body, /*@exposed@*/ uentry ename); +exprData_makeIter (/*@exposed@*/ uentry p_sname, /*@keep@*/ exprNodeList p_args, + /*@keep@*/ exprNode p_body, /*@exposed@*/ uentry p_ename); -/*static*/ /*@only@*/ exprData exprData_makeTriple (/*@keep@*/ exprNode pred, - /*@keep@*/ exprNode tbranch, - /*@keep@*/ exprNode fbranch); +/*static*/ /*@only@*/ exprData exprData_makeTriple (/*@keep@*/ exprNode p_pred, + /*@keep@*/ exprNode p_tbranch, + /*@keep@*/ exprNode p_fbranch); -/*static*/ /*@only@*/ exprData exprData_makeCall (/*@keep@*/ exprNode fcn, - /*@keep@*/ exprNodeList args); +/*static*/ /*@only@*/ exprData exprData_makeCall (/*@keep@*/ exprNode p_fcn, + /*@keep@*/ exprNodeList p_args); -/*static*/ /*@only@*/ exprData exprData_makeIterCall (/*@dependent@*/ uentry iter, - /*@keep@*/ exprNodeList args); +/*static*/ /*@only@*/ exprData exprData_makeIterCall (/*@dependent@*/ uentry p_iter, + /*@keep@*/ exprNodeList p_args); -/*static*/ /*@only@*/ exprData exprData_makeField (/*@keep@*/ exprNode rec, - /*@keep@*/ cstring field); +/*static*/ /*@only@*/ exprData exprData_makeField (/*@keep@*/ exprNode p_rec, + /*@keep@*/ cstring p_field); -/*static*/ /*@only@*/ exprData exprData_makeOffsetof (/*@only@*/ qtype q, - /*@keep@*/ cstringList s); +/*static*/ /*@only@*/ exprData exprData_makeOffsetof (/*@only@*/ qtype p_q, + /*@keep@*/ cstringList p_s); -/*static*/ /*@only@*/ exprData exprData_makeSizeofType (/*@only@*/ qtype q); +/*static*/ /*@only@*/ exprData exprData_makeSizeofType (/*@only@*/ qtype p_q); /*static*/ /*@only@*/ exprData - exprData_makeCast (/*@keep@*/ lltok tok, /*@keep@*/ exprNode e, /*@only@*/ qtype q); + exprData_makeCast (/*@keep@*/ lltok p_tok, /*@keep@*/ exprNode p_e, /*@only@*/ qtype p_q); /*static*/ /*@only@*/ exprData - exprData_makeInit (/*@keep@*/ idDecl t, /*@keep@*/ exprNode e); + exprData_makeInit (/*@keep@*/ idDecl p_t, /*@keep@*/ exprNode p_e); -/*static*/ /*@only@*/ exprData exprData_makeCond (/*@keep@*/ exprNode pred, - /*@keep@*/ exprNode ifclause, - /*@keep@*/ exprNode elseclause); +/*static*/ /*@only@*/ exprData exprData_makeCond (/*@keep@*/ exprNode p_pred, + /*@keep@*/ exprNode p_ifclause, + /*@keep@*/ exprNode p_elseclause); -/*static*/ /*@only@*/ exprData exprData_makeFor (/*@keep@*/ exprNode init, - /*@keep@*/ exprNode pred, - /*@keep@*/ exprNode inc); +/*static*/ /*@only@*/ exprData exprData_makeFor (/*@keep@*/ exprNode p_init, + /*@keep@*/ exprNode p_pred, + /*@keep@*/ exprNode p_inc); /*@=declundef*/ diff --git a/src/Headers/exprNode.h b/src/Headers/exprNode.h index 612536c..4f3643c 100644 --- a/src/Headers/exprNode.h +++ b/src/Headers/exprNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -43,26 +43,26 @@ typedef enum XPR_BLOCK, XPR_INITBLOCK, XPR_LABEL } exprKind; -typedef struct _exprOffsetof +typedef struct { /*@only@*/ qtype q; /*@only@*/ cstringList field; } *exprOffsetof; -typedef struct _exprPair +typedef struct { /*@only@*/ exprNode a; /*@only@*/ exprNode b; } *exprPair; -typedef struct _exprTriple +typedef struct { /*@only@*/ exprNode pred; /*@only@*/ exprNode tbranch; /*@only@*/ exprNode fbranch; } *exprTriple; -typedef struct _exprIter +typedef struct { /*@dependent@*/ /*@observer@*/ uentry sname; /*@only@*/ exprNodeList args; @@ -70,51 +70,51 @@ typedef struct _exprIter /*@dependent@*/ /*@observer@*/ uentry ename; } *exprIter; -typedef struct _exprCall +typedef struct { /*@only@*/ exprNode fcn; /*@only@*/ exprNodeList args; } *exprCall; -typedef struct _exprIterCall +typedef struct { /*@dependent@*/ /*@exposed@*/ uentry iter; /*@only@*/ exprNodeList args; } *exprIterCall; -typedef struct _exprOp +typedef struct { /*@only@*/ exprNode a; /*@only@*/ exprNode b; lltok op; } *exprOp; -typedef struct _exprField +typedef struct { /*@only@*/ exprNode rec; /*@only@*/ cstring field; } *exprField; -typedef struct _exprUop +typedef struct { /*@only@*/ exprNode a; lltok op; } *exprUop; -typedef struct _exprCast +typedef struct { /*@only@*/ exprNode exp; lltok tok; qtype q; } *exprCast; -typedef struct _exprInit +typedef struct { /*@only@*/ exprNode exp; idDecl id; } *exprInit; -typedef /*@null@*/ union _exprData +typedef /*@null@*/ union { cstring literal; cstring id; @@ -138,7 +138,7 @@ typedef /*@null@*/ union _exprData /*@constant null exprData exprData_undefined; @*/ # define exprData_undefined ((exprData) NULL) -struct _exprNode +struct s_exprNode { bool isJumpPoint BOOLBITS; /* expr can be reached non-sequentially */ bool canBreak BOOLBITS; /* expr can break (has break, continue) */ @@ -191,7 +191,7 @@ extern /*@unused@*/ /*@falsenull@*/ bool exprNode_isInParens (/*@sef@*/ exprNode # define exprNode_isInParens(e) \ (exprNode_isDefined(e) && (e)->kind == XPR_PARENS) -extern bool exprNode_isStringLiteral (/*@sef@*/ exprNode p_e); +extern bool exprNode_isStringLiteral (/*@sef@*/ exprNode p_e) /*@*/ ; # define exprNode_isStringLiteral(e) \ (exprNode_isDefined(e) && (e)->kind == XPR_STRINGLITERAL) @@ -233,8 +233,14 @@ extern exprNode exprNode_functionCall (/*@only@*/ exprNode p_f, extern /*@notnull@*/ exprNode exprNode_fromIdentifier (/*@observer@*/ uentry p_c) /*@globals internalState@*/ ; extern exprNode exprNode_fromUIO (cstring p_c) /*@globals internalState@*/ ; -extern exprNode exprNode_fieldAccess (/*@only@*/ exprNode p_s, /*@only@*/ cstring p_f) /*@*/ ; -extern exprNode exprNode_arrowAccess (/*@only@*/ exprNode p_s, /*@only@*/ cstring p_f) /*@*/ ; +extern exprNode exprNode_fieldAccess (/*@only@*/ exprNode p_s, + /*@only@*/ lltok p_dot, + /*@only@*/ cstring p_f) /*@*/ ; + +extern exprNode exprNode_arrowAccess (/*@only@*/ exprNode p_s, + /*@only@*/ lltok p_arrow, + /*@only@*/ cstring p_f) /*@*/ ; + extern exprNode exprNode_postOp (/*@only@*/ exprNode p_e, /*@only@*/ lltok p_op) /*@modifies p_e@*/ ; extern exprNode exprNode_preOp (/*@only@*/ exprNode p_e, /*@only@*/ lltok p_op) /*@*/ ; @@ -257,8 +263,20 @@ extern exprNode exprNode_vaArg (/*@only@*/ lltok p_tok, /*@only@*/ exprNode p_arg, /*@only@*/ qtype p_qt) /*@globals internalState@*/ ; +/* +** Has surrounding quotes. +*/ + extern exprNode exprNode_stringLiteral (/*@only@*/ cstring p_t, /*@only@*/ fileloc p_loc) /*@*/ ; + +/* +** No surrounding quotes. +*/ + +extern exprNode + exprNode_rawStringLiteral (/*@only@*/ cstring p_t, /*@only@*/ fileloc p_loc) /*@*/ ; + extern exprNode exprNode_comma (/*@only@*/ exprNode p_e1, /*@only@*/ exprNode p_e2) /*@*/ ; extern exprNode exprNode_labelMarker (/*@only@*/ cstring p_label); extern exprNode @@ -284,13 +302,18 @@ extern exprNode exprNode_break (/*@only@*/ lltok p_l, int p_bqual); extern exprNode exprNode_nullReturn (/*@only@*/ lltok p_t); extern exprNode exprNode_return (/*@only@*/ exprNode p_e); extern /*@dependent@*/ /*@observer@*/ cstring - exprNode_unparse (exprNode p_e) /*@*/ ; +exprNode_unparse (/*@temp@*/ exprNode p_e) /*@*/ ; extern bool exprNode_isCharLit (exprNode p_e) /*@*/ ; extern bool exprNode_isNumLit (exprNode p_e) /*@*/ ; extern exprNode exprNode_makeInitialization (/*@only@*/ idDecl p_t, /*@only@*/ exprNode p_e); + +exprNode exprNode_makeEmptyInitialization (/*@only@*/ idDecl p_t) ; + +extern bool exprNode_isInitializer (exprNode p_e) /*@*/ ; + extern bool exprNode_matchType (ctype p_expected, exprNode p_e); extern /*@notnull@*/ /*@only@*/ exprNode @@ -319,8 +342,8 @@ extern /*@notnull@*/ exprNode exprNode_createId (/*@observer@*/ uentry p_c); extern exprNode exprNode_cast (/*@only@*/ lltok p_tok, /*@only@*/ exprNode p_e, /*@only@*/ qtype p_q); extern bool exprNode_matchLiteral (ctype p_expected, exprNode p_e); extern void exprNode_checkUseParam (exprNode p_current); -extern void exprNode_checkSet (exprNode p_e, sRef p_s); -extern void exprNode_checkMSet (exprNode p_e, sRef p_s); +extern void exprNode_checkSet (exprNode p_e, /*@exposed@*/ sRef p_s); +extern void exprNode_checkMSet (exprNode p_e, /*@exposed@*/ sRef p_s); extern exprNode exprNode_checkExpr (/*@returned@*/ exprNode p_e); extern bool exprNode_mustEscape (exprNode p_e); extern bool exprNode_errorEscape (exprNode p_e); @@ -342,30 +365,17 @@ extern bool exprNode_isCaseMarker (exprNode p_e) /*@*/ ; extern bool exprNode_isLabelMarker (exprNode p_e) /*@*/ ; /*@=exportlocal@*/ -/* evs 2000-08-22 */ -fileloc exprNode_getNextSequencePoint (exprNode p_e) /*@*/ ; +extern /*@only@*/ exprNode exprNode_combineLiterals (/*@only@*/ exprNode p_e, /*@only@*/ exprNode p_rest) ; + +extern /*@only@*/ fileloc exprNode_getNextSequencePoint (exprNode p_e) ; /*drl 09-08-2000 */ -exprNode exprNode_fakeCopy (/*@returned@*/ exprNode e); +// Commenting out because this seems to conflict with Dave Evans version +//exprNode exprNode_fakeCopy (@returned@ exprNode p_e); + /*drl 01-20-2001*/ -exprNode exprNode_createNew(ctype c); +exprNode exprNode_createNew(ctype p_c); + # else # error "Multiple include" # endif - - - - - - - - - - - - - - - - - diff --git a/src/Headers/exprNodeList.h b/src/Headers/exprNodeList.h index a596f3b..a947597 100644 --- a/src/Headers/exprNodeList.h +++ b/src/Headers/exprNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,12 +8,13 @@ typedef /*@only@*/ exprNode o_exprNode; -abst_typedef struct _exprNodeList +abst_typedef struct { int nelements; int nspace; int current; - /*@reldef@*/ /*@relnull@*/ o_exprNode *elements; + /*@reldef@*/ /*@relnull@*/ o_exprNode *elements + /*:invariant maxUse(elements) = nspace /\ maxDefined(elements) = nelements@*/; } *exprNodeList; /*@iter exprNodeList_elements (sef exprNodeList s, yield exposed exprNode el); @*/ diff --git a/src/Headers/exprNodeSList.h b/src/Headers/exprNodeSList.h index 154efd0..3cf6a54 100644 --- a/src/Headers/exprNodeSList.h +++ b/src/Headers/exprNodeSList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,7 +12,7 @@ typedef /*@dependent@*/ exprNode d_exprNode; -abst_typedef struct _exprNodeSList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/fcnNode.h b/src/Headers/fcnNode.h index 0cf7d80..eca7a58 100644 --- a/src/Headers/fcnNode.h +++ b/src/Headers/fcnNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _fcnNode { +typedef struct { ltoken name; /*@null@*/ lclTypeSpecNode typespec; declaratorNode declarator; diff --git a/src/Headers/fcnNodeList.h b/src/Headers/fcnNodeList.h index 489c894..93b61b9 100644 --- a/src/Headers/fcnNodeList.h +++ b/src/Headers/fcnNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -9,7 +9,7 @@ typedef /*@only@*/ fcnNode o_fcnNode; -abst_typedef /*@null@*/ struct _fcnNodeList +abst_typedef /*@null@*/ struct { int nelements; int nspace; diff --git a/src/Headers/fileId.h b/src/Headers/fileId.h index 3d35cb7..3fe02e7 100644 --- a/src/Headers/fileId.h +++ b/src/Headers/fileId.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/fileIdList.h b/src/Headers/fileIdList.h index b1db483..46fce9a 100644 --- a/src/Headers/fileIdList.h +++ b/src/Headers/fileIdList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -32,8 +32,12 @@ extern fileIdList fileIdList_create (void); extern bool fileIdList_isEmpty (/*@sef@*/ fileIdList p_f) /*@*/ ; +extern fileIdList fileIdList_append (/*@only@*/ fileIdList p_f1, /*@temp@*/ fileIdList p_f2) + /*@modifies p_f1@*/ ; +# define fileIdList_append(f1,f2) ctypeList_append((ctypeList)(f1), (ctypeList)(f2)) + extern void fileIdList_add (fileIdList p_f, fileId p_fid) /*@modifies p_f@*/; -# define fileIdList_add(f, el) ctypeList_addh((ctypeList)(f), (ctype)(el)) +# define fileIdList_add(f, el) ctypeList_addh((ctypeList)(f), (ctype)(el)) extern int fileIdList_size (/*@sef@*/ fileIdList p_f); # define fileIdList_size(ft) ctypeList_size((ctypeList)(ft)) diff --git a/src/Headers/fileLib.h b/src/Headers/fileLib.h new file mode 100644 index 0000000..7d29564 --- /dev/null +++ b/src/Headers/fileLib.h @@ -0,0 +1,49 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** fileLib.h +*/ + +# ifndef FILELIB_H +# define FILELIB_H + +extern bool fileLib_isLCLFile (cstring p_s) /*@*/ ; +extern bool fileLib_isCExtension (cstring p_ext) /*@*/ ; + +extern cstring fileLib_addExtension (cstring p_s, cstring p_suffix); +extern cstring fileLib_withoutExtension (cstring p_s, cstring p_suffix) /*@*/ ; + +# ifndef NOLCL +extern cstring fileLib_removePath (cstring p_s) /*@*/ ; +# endif + +extern cstring fileLib_removePathFree (/*@only@*/ cstring p_s) /*@*/ ; +extern cstring fileLib_removeAnyExtension (cstring p_s) /*@*/ ; +extern cstring fileLib_cleanName (cstring p_s) /*@*/ ; +extern bool fileLib_hasExtension (cstring p_s, cstring p_ext) /*@*/ ; + +extern /*@observer@*/ cstring + fileLib_getExtension (/*@returned@*/ cstring p_s) /*@*/ ; + +/*@constant observer cstring MTS_EXTENSION;@*/ +# define MTS_EXTENSION cstring_makeLiteralTemp (".mts") + +/*@constant observer cstring LCL_EXTENSION;@*/ +# define LCL_EXTENSION cstring_makeLiteralTemp (".lcl") + +/*@constant observer cstring LH_EXTENSION; @*/ +# define LH_EXTENSION cstring_makeLiteralTemp (".lh") + +/*@constant observer cstring C_EXTENSION; @*/ +# define C_EXTENSION cstring_makeLiteralTemp (".c") + +/*@constant observer cstring LHTMP_EXTENSION; @*/ +# define LHTMP_EXTENSION cstring_makeLiteralTemp (".lh_tmp") + +/*@constant observer cstring XH_EXTENSION;@*/ +# define XH_EXTENSION cstring_makeLiteralTemp (".xh") + +# endif diff --git a/src/Headers/fileTable.h b/src/Headers/fileTable.h index effa44c..e899d9e 100644 --- a/src/Headers/fileTable.h +++ b/src/Headers/fileTable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -18,9 +18,9 @@ */ typedef enum { FILE_NORMAL, FILE_LSLTEMP, FILE_NODELETE, - FILE_HEADER, FILE_MACROS } fileType; + FILE_HEADER, FILE_XH, FILE_MACROS, FILE_METASTATE } fileType; -typedef struct _ftentry +/*@private@*/ typedef struct { bool ftemp BOOLBITS; bool fsystem BOOLBITS; @@ -33,11 +33,11 @@ typedef struct _ftentry typedef /*@only@*/ ftentry o_ftentry; -abst_typedef /*@null@*/ struct _fileTable +abst_typedef /*@null@*/ struct { int nentries; int nspace; - hashTable htable; + cstringTable htable; /*@reldef@*/ /*@only@*/ o_ftentry *elements; } *fileTable ; @@ -57,6 +57,8 @@ extern fileId fileTable_addFile (fileTable p_ft, cstring p_name) /*@modifies p_ft@*/ ; extern fileId fileTable_addHeaderFile (fileTable p_ft, cstring p_name) /*@modifies p_ft@*/ ; +extern fileId fileTable_addXHFile (fileTable p_ft, cstring p_name) + /*@modifies p_ft@*/ ; extern fileId fileTable_addLibraryFile (fileTable p_ft, cstring p_name) /*@modifies p_ft@*/ ; @@ -82,6 +84,13 @@ extern fileId fileTable_addImportFile (fileTable p_ft, cstring p_name) extern fileId fileTable_addMacrosFile (fileTable p_ft) /*@modifies p_ft@*/ ; + +extern fileId fileTable_addMetastateFile (fileTable p_ft, cstring p_name) + /*@modifies p_ft@*/ ; + +extern void fileTable_setFilePath (fileTable p_ft, fileId p_fid, cstring p_path) + /*@modifies p_ft@*/ ; + extern /*@observer@*/ cstring fileTable_getRootName (fileTable p_ft, fileId p_fid) /*@*/ ; extern bool fileTable_isHeader (fileTable p_ft, fileId p_fid) /*@*/ ; extern bool fileId_isHeader (fileId p_f) /*@*/ ; @@ -96,6 +105,7 @@ extern bool fileTable_exists (fileTable p_ft, cstring p_s) /*@*/ ; extern void fileTable_free (/*@only@*/ fileTable p_f); extern bool fileTable_isSpecialFile (fileTable p_ft, fileId p_fid) /*@*/ ; extern bool fileTable_isSystemFile (fileTable p_ft, fileId p_fid) /*@*/ ; +extern bool fileTable_isXHFile (fileTable p_ft, fileId p_fid) /*@*/ ; /*@-czechfcns@*/ extern /*@observer@*/ cstring fileName (fileId p_fid) /*@*/ ; diff --git a/src/Headers/fileloc.h b/src/Headers/fileloc.h index 4190670..0a9f72b 100644 --- a/src/Headers/fileloc.h +++ b/src/Headers/fileloc.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -18,7 +18,7 @@ typedef enum FL_PREPROC, FL_RC, FL_EXTERNAL } flkind; -struct __fileloc +struct s_fileloc { flkind kind; fileId fid; @@ -34,6 +34,7 @@ extern fileloc fileloc_update (/*@only@*/ fileloc p_old, fileloc p_fnew) extern fileloc fileloc_create (fileId p_fid, int p_line, int p_col) /*@*/ ; extern bool fileloc_isSystemFile (fileloc p_f1) /*@*/ ; +extern bool fileloc_isXHFile (fileloc p_f1) /*@*/ ; # ifndef NOLCL extern fileloc fileloc_createSpec (fileId p_fid, int p_line, int p_col) /*@*/ ; @@ -55,10 +56,11 @@ extern bool fileloc_isSpecialFile (fileloc p_f) /*@*/ ; extern bool fileloc_sameBaseFile (fileloc p_f1, fileloc p_f2) /*@*/ ; extern /*@observer@*/ cstring fileloc_filename (fileloc p_f) /*@*/ ; extern int fileloc_column (fileloc p_f) /*@*/ ; -extern /*@only@*/ cstring fileloc_unparse (fileloc p_f) /*@*/ ; +extern cstring fileloc_unparse (fileloc p_f) /*@*/ ; extern cstring fileloc_unparseRaw (cstring p_fname, int p_lineno) /*@*/ ; extern cstring fileloc_unparseRawCol (cstring p_fname, int p_lineno, int p_col) /*@*/ ; extern bool fileloc_sameFile (fileloc p_f1, fileloc p_f2) /*@*/ ; +extern bool fileloc_sameFileAndLine (fileloc p_f1, fileloc p_f2) /*@*/ ; extern void fileloc_free (/*@only@*/ fileloc p_f); extern void fileloc_reallyFree (/*@only@*/ fileloc p_f); extern int fileloc_lineno (fileloc p_f) /*@*/ ; @@ -86,13 +88,12 @@ extern /*@truenull@*/ bool fileloc_isUndefined (/*@null@*/ fileloc p_f) /*@*/ ; extern bool fileloc_isInvalid (/*@sef@*/ /*@null@*/ fileloc p_f) /*@*/ ; /*@constant null fileloc fileloc_undefined; @*/ -# define fileloc_undefined ((fileloc)0) +# define fileloc_undefined ((fileloc) NULL) # define fileloc_isDefined(f) ((f) != fileloc_undefined) # define fileloc_isUndefined(f) ((f) == fileloc_undefined) # define fileloc_isInvalid(f) (!(fileloc_isValid(f))) extern bool fileloc_isLib (fileloc p_f) /*@*/ ; -extern bool fileloc_isRealLib (fileloc p_f) /*@*/ ; # ifndef NOLCL extern fileloc fileloc_fromTok (ltoken p_t) /*@*/ ; @@ -165,11 +166,9 @@ extern fileloc fileloc_updateFileId (/*@only@*/ fileloc p_old, fileId p_s) /*@*/ extern fileloc fileloc_makePreproc (fileloc p_loc) /*@*/ ; extern fileloc fileloc_makePreprocPrevious (fileloc p_loc) /*@*/ ; -# ifndef NOLCL extern bool fileloc_isStandardLibrary (fileloc p_f) /*@*/ ; -# endif - extern bool fileloc_isStandardLib (fileloc p_f) /*@*/ ; + extern cstring fileloc_unparseFilename (fileloc p_f) /*@*/ ; extern bool fileloc_withinLines (fileloc p_f1, fileloc p_f2, int p_n) /*@*/ ; extern bool fileloc_isUser (fileloc p_f) /*@*/ ; diff --git a/src/Headers/filelocList.h b/src/Headers/filelocList.h index e4e1efa..ff1df19 100644 --- a/src/Headers/filelocList.h +++ b/src/Headers/filelocList.h @@ -5,7 +5,7 @@ # ifndef filelocLIST_H # define filelocLIST_H -abst_typedef /*@null@*/ struct _filelocList +abst_typedef /*@null@*/ struct { int nelements; int free; diff --git a/src/Headers/filelocStack.h b/src/Headers/filelocStack.h index 60cc667..067bce8 100644 --- a/src/Headers/filelocStack.h +++ b/src/Headers/filelocStack.h @@ -5,7 +5,7 @@ # ifndef FILELOCSTACK_H # define FILELOCSTACK_H -abst_typedef /*@null@*/ struct _filelocStack +abst_typedef /*@null@*/ struct { int nelements; int free; diff --git a/src/Headers/flagMarker.h b/src/Headers/flagMarker.h index f21d72d..6d3e8a0 100644 --- a/src/Headers/flagMarker.h +++ b/src/Headers/flagMarker.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -20,7 +20,7 @@ typedef enum FMK_SUPPRESS } flagMarkerKind ; -typedef struct _flagMarker +typedef struct { flagMarkerKind kind; flagcode code; @@ -30,7 +30,7 @@ typedef struct _flagMarker int nerrors; } info; - fileloc loc; + fileloc loc; } *flagMarker ; extern bool flagMarker_isLocalSet (flagMarker p_c) /*@*/ ; diff --git a/src/Headers/flagMarkerList.h b/src/Headers/flagMarkerList.h index 8bb24ab..cbd5432 100644 --- a/src/Headers/flagMarkerList.h +++ b/src/Headers/flagMarkerList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,7 +12,7 @@ typedef /*@only@*/ flagMarker o_flagMarker; -abst_typedef struct _flagMarkerList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/flagSpec.h b/src/Headers/flagSpec.h new file mode 100644 index 0000000..c55ccfc --- /dev/null +++ b/src/Headers/flagSpec.h @@ -0,0 +1,55 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** flagSpec.h +*/ + +# ifndef flagSpec_H +# define flagSpec_H + +/*@private@*/ typedef struct +{ + cstring name; + flagcode code; +} *flagSpecItem; + +abst_typedef /*@null@*/ struct s_flagSpec *flagSpec; + +struct s_flagSpec +{ + flagSpecItem tspec; + /* combination logic if necessary */ + /*@null@*/ /*@only@*/ flagSpec trest; +} ; + +/*@constant null flagSpec flagSpec_undefined; @*/ +# define flagSpec_undefined ((flagSpec) NULL) + +extern /*@falsenull@*/ bool flagSpec_isDefined (flagSpec p_e) /*@*/ ; +# define flagSpec_isDefined(e) ((e) != flagSpec_undefined) + +extern /*@only@*/ flagSpec flagSpec_createPlain (/*@only@*/ cstring) ; +extern /*@only@*/ flagSpec + flagSpec_createOr (/*@only@*/ cstring, /*@only@*/ flagSpec) ; + +extern /*@unused@*/ /*@only@*/ cstring flagSpec_unparse (flagSpec) /*@*/ ; +extern void flagSpec_free (/*@only@*/ flagSpec) ; + +extern /*@only@*/ cstring flagSpec_dump (flagSpec) /*@*/ ; +extern /*@only@*/ flagSpec flagSpec_undump (char **p_s) /*@modifies p_s@*/ ; + +extern flagcode flagSpec_getDominant (flagSpec) /*@*/ ; +extern flagcode flagSpec_getFirstOn (flagSpec, fileloc) /*@*/ ; + +extern bool flagSpec_isOn (flagSpec, fileloc) /*@*/ ; + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/flag_codes.h b/src/Headers/flag_codes.h index 188cdf1..fd0d6b8 100644 --- a/src/Headers/flag_codes.h +++ b/src/Headers/flag_codes.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -26,10 +26,10 @@ typedef enum # define NUMFLAGS (LAST_FLAG) /*@constant int NUMVALUEFLAGS; @*/ -# define NUMVALUEFLAGS 12 +# define NUMVALUEFLAGS 14 /*@constant int NUMSTRINGFLAGS; @*/ -# define NUMSTRINGFLAGS 21 +# define NUMSTRINGFLAGS 22 /*@iter allFlagCodes (yield flagcode f); @*/ # define allFlagCodes(m_code) \ diff --git a/src/Headers/flags.h b/src/Headers/flags.h index bcff3b1..17b2d61 100644 --- a/src/Headers/flags.h +++ b/src/Headers/flags.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -20,8 +20,8 @@ typedef enum FK_POINTER, FK_UNRECOG, FK_USE, FK_BOOL, FK_ALIAS, FK_PROTOS, FK_SPEC, FK_IMPLICIT, FK_FILES, FK_ERRORS, FK_UNSPEC, - FK_SPEED, FK_PARAMS, FK_DEAD, - FK_LEAK, FK_ARRAY, FK_OBSOLETE, FK_PREFIX + FK_SPEED, FK_PARAMS, FK_DEAD, FK_SECURITY, + FK_LEAK, FK_ARRAY, FK_OBSOLETE, FK_PREFIX, FK_WARNUSE } flagkind; extern void listAllCategories (void); @@ -38,24 +38,22 @@ extern flagcode identifyFlag (cstring p_s); extern void setValueFlag (flagcode p_opt, cstring p_arg); extern void setStringFlag (flagcode p_opt, /*@only@*/ cstring p_arg); -extern /*@observer@*/ cstring flagcode_name (flagcode p_code) /*@*/ ; +extern /*@observer@*/ cstring flagcode_unparse (flagcode p_code) /*@*/ ; extern int flagcode_valueIndex (flagcode p_f) /*@*/ ; extern int flagcode_stringIndex (flagcode p_f) /*@*/ ; -extern /*@observer@*/ cstring flagcode_unparse (flagcode p_f) /*@*/ ; -# define flagcode_unparse flagcode_name extern /*@observer@*/ cstring flagcodeHint (flagcode p_f); extern flagkind identifyCategory (cstring p_s) /*@*/ ; extern void printCategory (flagkind p_kind) /*@modifies g_msgstream@*/ ; -extern bool flagcode_isInvalid (flagcode p_f); +extern bool flagcode_isInvalid (flagcode p_f) /*@*/ ; # define flagcode_isInvalid(f) ((f) == INVALID_FLAG) -extern bool flagcode_isSkip (flagcode p_f); +extern bool flagcode_isSkip (flagcode p_f) /*@*/ ; # define flagcode_isSkip(f) ((f) == SKIP_FLAG) -extern bool flagcode_isValid (flagcode p_f); +extern bool flagcode_isValid (flagcode p_f) /*@*/ ; # define flagcode_isValid(f) ((f) != INVALID_FLAG) extern bool flagcode_isPassThrough (/*@sef@*/ flagcode p_f); @@ -68,6 +66,10 @@ extern bool flagcode_isLibraryFlag (/*@sef@*/ flagcode p_f); || (f) == FLG_STRICTLIB || (f) == FLG_NOLIB \ || (f) == FLG_ANSILIB) +extern bool flagcode_isWarnUseFlag (/*@sef@*/ flagcode p_f); +# define flagcode_isWarnUseFlag(f) \ + ((f) == FLG_BUFFEROVERFLOW || (f) == FLG_BUFFEROVERFLOWHIGH) + extern bool flagcode_hasValue (flagcode p_f); extern bool flagcode_hasString (flagcode p_f); extern bool flagcode_hasArgument (flagcode p_f); diff --git a/src/Headers/forwardTypes.h b/src/Headers/forwardTypes.h index b887050..5d0f974 100644 --- a/src/Headers/forwardTypes.h +++ b/src/Headers/forwardTypes.h @@ -5,28 +5,69 @@ # include "lclForwardTypes.h" # endif -abst_typedef /*@dependent@*/ /*@null@*/ struct _sRef *sRef; -abst_typedef /*@null@*/ struct _uentry *uentry; +abst_typedef /*@null@*/ struct s_sRef *sRef; +abst_typedef /*@null@*/ struct s_uentry *uentry; immut_typedef int typeIdSet; typedef /*@only@*/ uentry o_uentry; -abst_typedef /*@null@*/ struct _idDecl *idDecl; -abst_typedef /*@null@*/ struct _usymtab *usymtab; -abst_typedef /*@null@*/ struct _exprNode *exprNode; - - -abst_typedef /*@null@*/ struct _guardSet *guardSet; -abst_typedef /*@null@*/ struct _sRefSet *sRefSet; -abst_typedef /*@null@*/ struct _aliasTable *aliasTable; -abst_typedef /*@null@*/ struct __fileloc *fileloc; - - -abst_typedef struct _constraint *constraint; -abst_typedef struct _constraintList *constraintList; +abst_typedef struct s_mttok *mttok; +abst_typedef /*@null@*/ struct s_idDecl *idDecl; +abst_typedef /*@null@*/ struct s_usymtab *usymtab; +abst_typedef /*@null@*/ struct s_exprNode *exprNode; +abst_typedef /*@null@*/ struct s_guardSet *guardSet; +abst_typedef /*@null@*/ struct s_sRefSet *sRefSet; +abst_typedef /*@null@*/ struct s_sRefList *sRefList ; +abst_typedef /*@null@*/ struct s_aliasTable *aliasTable; +abst_typedef /*@null@*/ struct s_fileloc *fileloc; +abst_typedef /*@null@*/ struct s_cstringTable *cstringTable; +abst_typedef /*@null@*/ struct s_genericTable *genericTable; +abst_typedef /*@null@*/ struct s_annotationInfo *annotationInfo; +abst_typedef /*@null@*/ struct s_inputStream *inputStream; +abst_typedef /*@null@*/ struct s_stateValue *stateValue; +abst_typedef /*@null@*/ genericTable valueTable; +abst_typedef /*@null@*/ genericTable metaStateTable; +abst_typedef /*@null@*/ genericTable annotationTable; +abst_typedef /*@null@*/ struct s_metaStateInfo *metaStateInfo; + +abst_typedef /*@null@*/ struct s_functionClause *functionClause; +abst_typedef /*@null@*/ struct s_functionClauseList *functionClauseList; + +abst_typedef struct s_globalsClause *globalsClause; +abst_typedef struct s_modifiesClause *modifiesClause; +abst_typedef /*@null@*/ struct s_warnClause *warnClause; +abst_typedef struct s_stateClause *stateClause; + +abst_typedef /*@null@*/ struct s_stateClauseList *stateClauseList; + +/* The mt grammar nodes: */ +abst_typedef struct s_mtDeclarationNode *mtDeclarationNode; +abst_typedef /*@null@*/ struct s_mtDeclarationPiece *mtDeclarationPiece; +abst_typedef /*@null@*/ struct s_mtDeclarationPieces *mtDeclarationPieces; +abst_typedef /*@null@*/ struct s_mtContextNode *mtContextNode; +abst_typedef struct s_mtValuesNode *mtValuesNode; +abst_typedef struct s_mtDefaultsNode *mtDefaultsNode; +abst_typedef /*@null@*/ struct s_mtDefaultsDeclList *mtDefaultsDeclList; +abst_typedef struct s_mtDefaultsDecl *mtDefaultsDecl; +abst_typedef struct s_mtAnnotationsNode *mtAnnotationsNode; +abst_typedef /*@null@*/ struct s_mtAnnotationList *mtAnnotationList; +abst_typedef struct s_mtAnnotationDecl *mtAnnotationDecl; +abst_typedef struct s_mtMergeNode *mtMergeNode; +abst_typedef struct s_mtMergeItem *mtMergeItem; +abst_typedef /*@null@*/ struct s_mtMergeClauseList *mtMergeClauseList; +abst_typedef struct s_mtMergeClause *mtMergeClause; +abst_typedef /*@null@*/ struct s_mtTransferClauseList *mtTransferClauseList; +abst_typedef struct s_mtTransferClause *mtTransferClause; +abst_typedef /*@null@*/ struct s_mtLoseReferenceList *mtLoseReferenceList; +abst_typedef struct s_mtLoseReference *mtLoseReference; +abst_typedef struct s_mtTransferAction *mtTransferAction; +abst_typedef sRefSet globSet; + +abst_typedef struct s_constraint *constraint; +abst_typedef struct s_constraintList *constraintList; /* DRL modified 9 26 00 */ -abst_typedef /*@null@*/ struct _constraintExpr * constraintExpr; +abst_typedef /*@null@*/ struct s_constraintExpr * constraintExpr; @@ -42,9 +83,12 @@ immut_typedef int ctype; /* sRef -> bool */ typedef bool (*sRefTest) (sRef); -/* sRef, fileloc -> void, modifies sRef */ +/* sRef, fileloc -> void; modifies sRef */ typedef void (*sRefMod) (sRef, fileloc); +/* sRef, int, fileloc -> void; modifies sRef */ +typedef void (*sRefModVal) (sRef, int, fileloc); + /* sRef -> void */ typedef void (*sRefShower) (sRef); diff --git a/src/Headers/functionClause.h b/src/Headers/functionClause.h new file mode 100644 index 0000000..c0bc5d5 --- /dev/null +++ b/src/Headers/functionClause.h @@ -0,0 +1,76 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** functionClause.h +*/ + +# ifndef FUNCTIONCLAUSE_H +# define FUNCTIONCLAUSE_H + +/*@private@*/ typedef enum { + FCK_GLOBALS, + FCK_MODIFIES, + FCK_WARN, + FCK_STATE, + FCK_DEAD +} functionClauseKind; + +struct s_functionClause { + functionClauseKind kind; + union { + globalsClause globals; + modifiesClause modifies; + warnClause warn; + stateClause state; + } val; +} ; + +/* functionClause defined in forwardTypes.h */ + +/*@constant null functionClause functionClause_undefined; @*/ +# define functionClause_undefined NULL + +extern /*@falsenull@*/ bool functionClause_isDefined(functionClause) /*@*/ ; +# define functionClause_isDefined(p_h) ((p_h) != functionClause_undefined) + +extern bool functionClause_isGlobals (functionClause) /*@*/ ; +# define functionClause_isGlobals(p_h) (functionClause_matchKind(p_h, FCK_GLOBALS)) + +extern bool functionClause_isNoMods (/*@sef@*/ functionClause) /*@*/ ; +# define functionClause_isNoMods(p_h) (functionClause_matchKind(p_h, FCK_MODIFIES) && modifiesClause_isNoMods (functionClause_getModifies (p_h))) +extern bool functionClause_isModifies (functionClause) /*@*/ ; +# define functionClause_isModifies(p_h) (functionClause_matchKind(p_h, FCK_MODIFIES)) + +extern bool functionClause_isState (functionClause) /*@*/ ; +# define functionClause_isState(p_h) (functionClause_matchKind(p_h, FCK_STATE)) + +extern bool functionClause_isWarn (functionClause) /*@*/ ; +# define functionClause_isWarn(p_h) (functionClause_matchKind(p_h, FCK_WARN)) + +extern /*@truenull@*/ bool functionClause_isUndefined(functionClause) /*@*/ ; +# define functionClause_isUndefined(p_h) ((p_h) == functionClause_undefined) + +extern functionClause functionClause_createGlobals (/*@only@*/ globalsClause) /*@*/ ; +extern functionClause functionClause_createModifies (/*@only@*/ modifiesClause) /*@*/ ; +extern functionClause functionClause_createWarn (/*@only@*/ warnClause) /*@*/ ; +extern functionClause functionClause_createState (/*@only@*/ stateClause) /*@*/ ; + +extern /*@exposed@*/ globalsClause functionClause_getGlobals (functionClause) /*@*/ ; +extern /*@exposed@*/ modifiesClause functionClause_getModifies (functionClause) /*@*/ ; +extern /*@exposed@*/ stateClause functionClause_getState (functionClause) /*@*/ ; +extern /*@exposed@*/ warnClause functionClause_getWarn (functionClause) /*@*/ ; + +extern /*@only@*/ stateClause functionClause_takeState (functionClause p_fc) /*@modifies p_fc@*/ ; +extern /*@only@*/ warnClause functionClause_takeWarn (functionClause p_fc) /*@modifies p_fc@*/ ; + +extern bool functionClause_matchKind (functionClause p_p, functionClauseKind p_kind) /*@*/ ; + +extern void functionClause_free (/*@only@*/ functionClause p_node) ; +extern /*@only@*/ cstring functionClause_unparse (functionClause p_p) /*@*/ ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/functionClauseList.h b/src/Headers/functionClauseList.h new file mode 100644 index 0000000..829e96c --- /dev/null +++ b/src/Headers/functionClauseList.h @@ -0,0 +1,69 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ + +# ifndef FUNCTIONCLAUSELIST_H +# define FUNCTIONCLAUSELIST_H + +/*@private@*/ typedef /*@only@*/ functionClause o_functionClause; + +struct s_functionClauseList +{ + int nelements; + int nspace; + /*@reldef@*/ /*@relnull@*/ o_functionClause *elements; +} ; + +/*@constant null functionClauseList functionClauseList_undefined;@*/ +# define functionClauseList_undefined ((functionClauseList) NULL) + +extern /*@falsenull@*/ bool functionClauseList_isDefined (functionClauseList p_s) /*@*/ ; +# define functionClauseList_isDefined(s) ((s) != functionClauseList_undefined) + +extern /*@truenull@*/ bool functionClauseList_isUndefined (functionClauseList p_s) /*@*/ ; +# define functionClauseList_isUndefined(s) ((s) == functionClauseList_undefined) + +extern int functionClauseList_size (/*@sef@*/ functionClauseList) /*@*/ ; +# define functionClauseList_size(s) (functionClauseList_isDefined (s) ? (s)->nelements : 0) + +extern /*@unused@*/ /*@falsenull@*/ bool functionClauseList_empty (/*@sef@*/ functionClauseList) /*@*/ ; +# define functionClauseList_empty(s) (functionClauseList_size(s) == 0) + +extern cstring functionClauseList_unparseSep (functionClauseList p_s, cstring p_sep) /*@*/ ; + +extern /*@unused@*/ /*@only@*/ functionClauseList functionClauseList_new (void) /*@*/ ; + +extern /*@only@*/ functionClauseList functionClauseList_single (/*@keep@*/ functionClause p_el) /*@*/ ; + +extern /*@unused@*/ functionClauseList + functionClauseList_add (/*@returned@*/ functionClauseList p_s, /*@keep@*/ functionClause p_el) + /*@modifies p_s@*/ ; + +extern functionClauseList + functionClauseList_prepend (/*@returned@*/ functionClauseList p_s, /*@keep@*/ functionClause p_el) + /*@modifies p_s@*/ ; + +extern /*@unused@*/ /*@only@*/ cstring functionClauseList_unparse (functionClauseList p_s) ; +extern void functionClauseList_free (/*@only@*/ functionClauseList p_s) ; + +/*@constant int functionClauseListBASESIZE;@*/ +# define functionClauseListBASESIZE MIDBASESIZE + +/*@iter functionClauseList_elements (sef functionClauseList x, yield exposed functionClause el); @*/ +# define functionClauseList_elements(x, m_el) \ + { if (functionClauseList_isDefined (x)) { \ + int m_ind; functionClause *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { functionClause m_el = *(m_elements++); + +# define end_functionClauseList_elements }}} + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/general.h b/src/Headers/general.h index 39cf84f..e711a68 100644 --- a/src/Headers/general.h +++ b/src/Headers/general.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -26,10 +26,8 @@ extern void sfree (/*@out@*/ /*@only@*/ /*@null@*/ void *p_x) /*@modifies *p_x@* # include "cstring.h" # include "bool.h" -# define getStringWord(s) (cstring_fromChars(getWord(s))) - -extern /*@out@*/ /*@only@*/ void *dimalloc (size_t p_size, char *p_name, int p_line); -extern /*@only@*/ void *dicalloc (size_t p_num, size_t p_size, char *p_name, int p_line); +extern /*@out@*/ /*@only@*/ void *dimalloc (size_t p_size, const char *p_name, int p_line); +extern /*@only@*/ void *dicalloc (size_t p_num, size_t p_size, const char *p_name, int p_line); extern /*@notnull@*/ /*@out@*/ /*@only@*/ void * direalloc (/*@returned@*/ /*@only@*/ /*@out@*/ /*@null@*/ void *p_x, size_t p_size, char *p_name, int p_line); diff --git a/src/Headers/genericTable.h b/src/Headers/genericTable.h new file mode 100644 index 0000000..042c1cd --- /dev/null +++ b/src/Headers/genericTable.h @@ -0,0 +1,99 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** genericTable.h +*/ + +# ifndef GHTABLE_H +# define GHTABLE_H + +/*@constant int GHBUCKET_BASESIZE; @*/ +# define GHBUCKET_BASESIZE 2 + +/* in forwardTypes: + abst_typedef null struct _genericTable *genericTable; +*/ + +/*@private@*/ typedef struct +{ + /*@only@*/ cstring key; + /*@only@*/ void *val; +} *ghentry; + +typedef /*@only@*/ ghentry o_ghentry; + +typedef /*@null@*/ struct +{ + int size; + int nspace; + /*@only@*/ o_ghentry *entries; +} *ghbucket; + +typedef /*@only@*/ ghbucket o_ghbucket; + +struct s_genericTable +{ + int size; + int nentries; + /*@only@*/ o_ghbucket *buckets; +} ; + +/*@constant null genericTable genericTable_undefined; @*/ +# define genericTable_undefined ((genericTable) NULL) + +extern /*@falsenull@*/ bool genericTable_isDefined(genericTable) /*@*/ ; +# define genericTable_isDefined(p_h) ((p_h) != genericTable_undefined) + +extern /*@truenull@*/ /*@unused@*/ bool genericTable_isUndefined(genericTable) /*@*/ ; +# define genericTable_isUndefined(p_h) ((p_h) == genericTable_undefined) + +extern /*@only@*/ genericTable genericTable_create (int p_size); + +extern int genericTable_size (genericTable p_h); + +extern void genericTable_insert (genericTable p_h, /*@only@*/ cstring p_key, + /*@only@*/ void *p_value); +extern /*@null@*/ /*@exposed@*/ void *genericTable_lookup (genericTable p_h, cstring p_key); + +extern bool genericTable_contains (genericTable p_h, cstring p_key) /*@*/ ; + +extern /*@unused@*/ /*@only@*/ cstring genericTable_stats (genericTable p_h); +extern void genericTable_free (/*@only@*/ genericTable p_h); +extern void genericTable_remove (genericTable p_h, cstring p_key) /*@modifies p_h@*/ ; + +extern /*@unused@*/ void genericTable_update (genericTable p_h, cstring p_key, + /*@only@*/ void *p_newval) /*@modifies p_h@*/ ; + +/*@iter genericTable_elements (sef genericTable p_g, yield exposed cstring m_key, yield exposed void *m_el)@*/ + +# define genericTable_elements(p_g, m_key, m_el) \ + { int m_ind; if (genericTable_isDefined (p_g)) \ + { for (m_ind = 0 ; m_ind < (p_g)->size; m_ind++) \ + { ghbucket m_hb; m_hb = (p_g)->buckets[m_ind]; \ + if (m_hb != NULL) { \ + int m_j; \ + for (m_j = 0; m_j < (m_hb)->size; m_j++) { \ + cstring m_key; void *m_el; m_key = (m_hb)->entries[m_j]->key; \ + m_el = (m_hb)->entries[m_j]->val; +# define end_genericTable_elements }}}}} + + +# else +# error "Multiple include" +# endif + + + + + + + + + + + + + diff --git a/src/Headers/globSet.h b/src/Headers/globSet.h index 3364d85..c0f2588 100644 --- a/src/Headers/globSet.h +++ b/src/Headers/globSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,8 +12,6 @@ # ifndef globSet_H # define globSet_H -abst_typedef sRefSet globSet; - /*@iter globSet_allElements (sef globSet s, yield exposed sRef el); @*/ # define globSet_allElements(x, m_el) sRefSet_allElements(x, m_el) # define end_globSet_allElements end_sRefSet_allElements @@ -25,7 +23,10 @@ extern bool globSet_isEmpty (/*@sef@*/ globSet p_s); # define globSet_isEmpty(s) (globSet_size (s) == 0) extern /*@only@*/ globSet globSet_new (void) /*@*/ ; -extern globSet globSet_insert (/*@returned@*/ globSet p_s, sRef p_el) + +extern globSet globSet_single (/*@exposed@*/ sRef p_el) ; + +extern globSet globSet_insert (/*@returned@*/ globSet p_s, /*@exposed@*/ sRef p_el) /*@modifies p_s@*/ ; extern bool globSet_member (globSet p_s, sRef p_el) /*@*/ ; extern /*@exposed@*/ sRef globSet_lookup (globSet p_s, sRef p_el) /*@*/ ; @@ -33,8 +34,11 @@ extern void globSet_free (/*@only@*/ /*@only@*/ globSet p_s); extern /*@only@*/ cstring globSet_unparse (globSet p_ll) /*@*/ ; extern /*@only@*/ cstring globSet_dump (globSet) /*@*/ ; extern /*@only@*/ globSet globSet_undump (char **p_s) /*@modifies *p_s@*/ ; + +extern void globSet_markImmutable (globSet p_g) /*@modifies p_g@*/ ; + extern globSet - globSet_copy (/*@returned@*/ globSet p_s1, /*@exposed@*/ globSet p_s2) + globSet_copyInto (/*@returned@*/ globSet p_s1, /*@exposed@*/ globSet p_s2) /*@modifies p_s1@*/ ; extern /*@only@*/ globSet globSet_newCopy (globSet p_s) /*@*/ ; diff --git a/src/Headers/globalList.h b/src/Headers/globalList.h index 5db6f16..ebf3963 100644 --- a/src/Headers/globalList.h +++ b/src/Headers/globalList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/globals.h b/src/Headers/globals.h index c2a7572..c834d30 100644 --- a/src/Headers/globals.h +++ b/src/Headers/globals.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -9,7 +9,7 @@ extern /*@owned@*/ fileloc g_currentloc; /* stream for error messages */ -extern FILE *g_msgstream; +extern /*@open@*/ FILE *g_msgstream; /*@-ansireserved@*/ /* This macro is defined by flex. */ @@ -19,8 +19,8 @@ extern FILE *g_msgstream; /*@-redecl@*/ /*@-incondefs@*/ /*@-namechecks@*/ -extern /*@dependent@*/ FILE *yyin; -extern /*@dependent@*/ FILE *yyout; +extern /*@dependent@*/ /*@open@*/ FILE *yyin; +extern /*@dependent@*/ /*@open@*/ FILE *yyout; extern int yyleng; /*@=incondefs@*/ @@ -59,32 +59,32 @@ extern int currentColumn (void) /*@globals g_currentloc; @*/ ; # define currentColumn() (fileloc_column(g_currentloc)) extern void incColumn (void) - /*@globals fileloc g_currentloc; @*/ + /*@globals g_currentloc; @*/ /*@modifies g_currentloc@*/ ; # define incColumn() (fileloc_incColumn(g_currentloc)) extern void decColumn (void) - /*@globals fileloc g_currentloc; @*/ + /*@globals g_currentloc; @*/ /*@modifies g_currentloc@*/ ; # define decColumn() (fileloc_addColumn(g_currentloc, -1)) extern void incLine (void) - /*@globals fileloc g_currentloc; @*/ + /*@globals g_currentloc; @*/ /*@modifies g_currentloc; @*/ ; # define incLine() (fileloc_nextLine(g_currentloc)) extern void decLine (void) - /*@globals fileloc g_currentloc; @*/ + /*@globals g_currentloc; @*/ /*@modifies g_currentloc; @*/ ; # define decLine() (fileloc_addLine (g_currentloc, -1)) extern void beginLine (void) - /*@globals fileloc g_currentloc; @*/ + /*@globals g_currentloc; @*/ /*@modifies g_currentloc; @*/ ; # define beginLine() (fileloc_setColumn(g_currentloc, 1)) extern void addColumn (int p_n) - /*@globals fileloc g_currentloc; @*/ + /*@globals g_currentloc; @*/ /*@modifies g_currentloc; @*/ ; # define addColumn(n) (fileloc_addColumn(g_currentloc, n)) @@ -112,6 +112,9 @@ extern void setFileLine (fileId p_s, int p_line) # define setFileLine(s, line) \ (context_setFilename(s, line)) +/*@constant int PRINTBREADTH;@*/ /* For printing lists. Should be parameter... */ /*@i32@*/ +# define PRINTBREADTH 3 + # else # error "Multiple include" # endif diff --git a/src/Headers/globalsClause.h b/src/Headers/globalsClause.h new file mode 100644 index 0000000..2bb71dd --- /dev/null +++ b/src/Headers/globalsClause.h @@ -0,0 +1,30 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** globalsClause.h +*/ + +# ifndef GLOBALSCLAUSE_H +# define GLOBALSCLAUSE_H + +struct s_globalsClause { + globSet globs; + fileloc loc; +} ; + +extern globalsClause globalsClause_create (/*@only@*/ lltok, /*@only@*/ globSet) /*@*/ ; +extern /*@observer@*/ globSet globalsClause_getGlobs (globalsClause) /*@*/ ; +extern /*@only@*/ globSet globalsClause_takeGlobs (globalsClause p_gclause) /*@modifies p_gclause@*/ ; + +extern /*@observer@*/ fileloc globalsClause_getLoc (globalsClause) /*@*/ ; +# define globalsClause_getLoc(gl) ((gl)->loc) + +extern cstring globalsClause_unparse (globalsClause p_node) /*@*/ ; +extern void globalsClause_free (/*@only@*/ globalsClause) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/gram.h b/src/Headers/gram.h index 2b397d4..8c32e59 100644 --- a/src/Headers/gram.h +++ b/src/Headers/gram.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/guardSet.h b/src/Headers/guardSet.h index 9678cde..6952cd4 100644 --- a/src/Headers/guardSet.h +++ b/src/Headers/guardSet.h @@ -11,7 +11,7 @@ /* in forwardTypes: typedef struct _guardSet *guardSet; */ -/*@null@*/ struct _guardSet +/*@null@*/ struct s_guardSet { /*@only@*/ sRefSet tguard; /* guarded on true branch */ /*@only@*/ sRefSet fguard; /* guarded on false branch */ @@ -27,8 +27,8 @@ extern /*@falsenull@*/ /*@unused@*/ bool extern /*@falsenull@*/ bool guardSet_isEmpty (guardSet p_g); extern /*@only@*/ guardSet guardSet_new (void); -extern guardSet guardSet_addTrueGuard (/*@returned@*/ guardSet p_g, sRef p_s); -extern guardSet guardSet_addFalseGuard (/*@returned@*/ guardSet p_g, sRef p_s); +extern guardSet guardSet_addTrueGuard (/*@returned@*/ guardSet p_g, /*@exposed@*/ sRef p_s); +extern guardSet guardSet_addFalseGuard (/*@returned@*/ guardSet p_g, /*@exposed@*/ sRef p_s); extern guardSet guardSet_or (/*@returned@*/ /*@unique@*/ guardSet p_s, guardSet p_t); extern guardSet guardSet_and (/*@returned@*/ /*@unique@*/ guardSet p_s, guardSet p_t); extern void guardSet_delete (guardSet p_g, sRef p_s) /*@modifies p_g@*/ ; @@ -43,7 +43,7 @@ extern guardSet guardSet_union (/*@only@*/ guardSet p_s, guardSet p_t) extern /*@only@*/ guardSet guardSet_invert (/*@temp@*/ guardSet p_g) /*@*/ ; extern /*@only@*/ guardSet guardSet_copy (/*@temp@*/ guardSet p_g) /*@*/ ; extern bool guardSet_isGuarded (guardSet p_g, sRef p_s) /*@*/ ; -extern bool guardSet_isProbableNull (guardSet p_g, sRef p_s) /*@*/ ; +extern bool guardSet_mustBeNull (guardSet p_g, sRef p_s) /*@*/ ; extern guardSet guardSet_levelUnion (/*@only@*/ guardSet p_s, diff --git a/src/Headers/handle.h b/src/Headers/handle.h index 5ad3ebf..f0c388a 100644 --- a/src/Headers/handle.h +++ b/src/Headers/handle.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/herald.h b/src/Headers/herald.h index 67ad5e2..960576c 100644 --- a/src/Headers/herald.h +++ b/src/Headers/herald.h @@ -4,4 +4,4 @@ /*@constant observer char *LCL_PARSE_VERSION;@*/ # define LCL_PARSE_VERSION "LCLint 3.0b-alpha" /*@constant observer char *LCL_COMPILE;@*/ -# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 -g -Wall -pedantic on Linux neodymium.yellow.cert.org 2.2.19-7.0.1 #1 Tue Apr 10 01:56:16 EDT 2001 i686 unknown by dlaroche" +# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 -Wall -g on Linux neodymium.yellow.cert.org 2.2.19-7.0.1 #1 Tue Apr 10 01:56:16 EDT 2001 i686 unknown by dlaroche" diff --git a/src/Headers/herald.last b/src/Headers/herald.last index 67ad5e2..960576c 100644 --- a/src/Headers/herald.last +++ b/src/Headers/herald.last @@ -4,4 +4,4 @@ /*@constant observer char *LCL_PARSE_VERSION;@*/ # define LCL_PARSE_VERSION "LCLint 3.0b-alpha" /*@constant observer char *LCL_COMPILE;@*/ -# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 -g -Wall -pedantic on Linux neodymium.yellow.cert.org 2.2.19-7.0.1 #1 Tue Apr 10 01:56:16 EDT 2001 i686 unknown by dlaroche" +# define LCL_COMPILE "Compiled using gcc -DSTDC_HEADERS=1 -Wall -g on Linux neodymium.yellow.cert.org 2.2.19-7.0.1 #1 Tue Apr 10 01:56:16 EDT 2001 i686 unknown by dlaroche" diff --git a/src/Headers/idDecl.h b/src/Headers/idDecl.h index 287f755..7449a6f 100644 --- a/src/Headers/idDecl.h +++ b/src/Headers/idDecl.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,10 +10,11 @@ # ifndef idDecl_H # define idDecl_H -struct _idDecl +struct s_idDecl { cstring id; qtype typ; + functionClauseList clauses; } ; /*@constant null idDecl idDecl_undefined; @*/ @@ -25,15 +26,25 @@ extern /*@falsenull@*/ bool idDecl_isDefined (idDecl p_t) /*@*/ ; extern void idDecl_free (/*@only@*/ idDecl p_t); extern /*@only@*/ idDecl idDecl_create (/*@only@*/ cstring p_s, /*@only@*/ qtype p_t); + +extern /*@only@*/ idDecl + idDecl_createClauses (/*@only@*/ cstring p_s, /*@only@*/ qtype p_t, + /*@only@*/ functionClauseList p_clauses); + extern /*@only@*/ cstring idDecl_unparse (idDecl p_d); +extern /*@only@*/ cstring idDecl_unparseC (idDecl p_d); extern /*@exposed@*/ qtype idDecl_getTyp (idDecl p_d); extern void idDecl_setTyp (idDecl p_d, /*@only@*/ qtype p_c); extern idDecl idDecl_expectFunction (/*@returned@*/ idDecl p_d); extern idDecl idDecl_replaceCtype (/*@returned@*/ idDecl p_d, ctype p_c); extern idDecl idDecl_fixBase (/*@returned@*/ idDecl p_t, qtype p_b); extern idDecl idDecl_fixParamBase (/*@returned@*/ idDecl p_t, qtype p_b); + +extern void idDecl_addClauses (idDecl p_d, /*@only@*/ functionClauseList) /*@modifies p_d@*/ ; + extern ctype idDecl_getCtype (idDecl p_d) /*@*/ ; extern /*@exposed@*/ qualList idDecl_getQuals (idDecl p_d) /*@*/ ; +extern /*@exposed@*/ functionClauseList idDecl_getClauses (idDecl p_d) /*@*/ ; extern /*@dependent@*/ /*@observer@*/ cstring idDecl_getName (idDecl p_t) /*@*/ ; extern /*@observer@*/ cstring idDecl_observeId (idDecl p_d) /*@*/ ; diff --git a/src/Headers/idDeclList.h b/src/Headers/idDeclList.h index c07608c..8232f3c 100644 --- a/src/Headers/idDeclList.h +++ b/src/Headers/idDeclList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ idDecl o_idDecl; -abst_typedef struct _idDeclList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/importNode.h b/src/Headers/importNode.h index 07997b0..994a789 100644 --- a/src/Headers/importNode.h +++ b/src/Headers/importNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -11,8 +11,7 @@ typedef enum { IMPPLAIN, IMPBRACKET, IMPQUOTE } impkind ; -typedef struct _importNode -{ +typedef struct { impkind kind; ltoken val; } *importNode ; diff --git a/src/Headers/importNodeList.h b/src/Headers/importNodeList.h index fd6cc59..138f494 100644 --- a/src/Headers/importNodeList.h +++ b/src/Headers/importNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ importNode o_importNode; -abst_typedef struct _importNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/imports.h b/src/Headers/imports.h index 4df9ab1..4a0eebc 100644 --- a/src/Headers/imports.h +++ b/src/Headers/imports.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/initDeclNode.h b/src/Headers/initDeclNode.h index b9ac2d5..e073c81 100644 --- a/src/Headers/initDeclNode.h +++ b/src/Headers/initDeclNode.h @@ -1,12 +1,12 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _initDeclNode { +typedef struct { declaratorNode declarator; - /*@null@*/ struct _termNode *value; + /*@null@*/ termNode value; } *initDeclNode; extern bool initDeclNode_isRedeclaration (initDeclNode p_d); diff --git a/src/Headers/initDeclNodeList.h b/src/Headers/initDeclNodeList.h index 2b4bad8..71b8c76 100644 --- a/src/Headers/initDeclNodeList.h +++ b/src/Headers/initDeclNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -9,7 +9,7 @@ typedef /*@only@*/ initDeclNode o_initDeclNode; -abst_typedef struct _initDeclNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/inputStream.h b/src/Headers/inputStream.h new file mode 100644 index 0000000..300f28d --- /dev/null +++ b/src/Headers/inputStream.h @@ -0,0 +1,71 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** inputStream.h +*/ + +# ifndef INPUTSTREAM_H +# define INPUTSTREAM_H + +/*@constant int STUBMAXRECORDSIZE; @*/ +# define STUBMAXRECORDSIZE 800 + +struct s_inputStream { + cstring name; + /*@open@*/ /*@dependent@*/ /*@null@*/ FILE *file; + char buffer[STUBMAXRECORDSIZE+1]; + int lineNo; + size_t charNo; + /*@dependent@*/ /*@null@*/ char *curLine; + bool echo, fromString; + /*@owned@*/ cstring stringSource; + /*@dependent@*/ cstring stringSourceTail; +} ; + +/* in forwardTypes.h: abst_typedef null struct _inputStream *inputStream; */ + +extern /*@falsenull@*/ bool inputStream_isDefined (/*@null@*/ inputStream p_f) /*@*/ ; +extern /*@truenull@*/ bool inputStream_isUndefined (/*@null@*/ inputStream p_f) /*@*/ ; + +/*@constant null inputStream inputStream_undefined; @*/ +# define inputStream_undefined ((inputStream) NULL) +# define inputStream_isDefined(f) ((f) != inputStream_undefined) +# define inputStream_isUndefined(f) ((f) == inputStream_undefined) + +extern void inputStream_free (/*@null@*/ /*@only@*/ inputStream p_s); +extern bool inputStream_close (inputStream p_s) + /*@modifies p_s, fileSystem@*/ ; +extern inputStream + inputStream_create (/*@only@*/ cstring p_name, cstring p_suffix, bool p_echo) /*@*/ ; +extern inputStream inputStream_fromString (cstring p_name, cstring p_str) /*@*/ ; +extern /*@dependent@*/ /*@null@*/ char *inputStream_nextLine(inputStream p_s) + /*@modifies p_s@*/ ; + +extern int inputStream_nextChar (inputStream p_s) /*@modifies p_s@*/ ; + /* Returns int for EOF */ + +extern int inputStream_peekChar (inputStream p_s) /*@modifies p_s@*/ ; + /* Returns int for EOF */ + +extern int inputStream_peekNChar (inputStream p_s, int p_n) /*@modifies p_s@*/ ; + /* Returns int for EOF */ + +extern bool inputStream_open (inputStream p_s) /*@modifies p_s, fileSystem@*/ ; +extern bool inputStream_getPath (cstring p_path, inputStream p_s) + /*@modifies p_s@*/ ; + +extern /*@observer@*/ cstring inputStream_fileName (inputStream p_s) /*@*/ ; +extern bool inputStream_isOpen (/*@sef@*/ inputStream p_s) /*@*/ ; +extern int inputStream_thisLineNumber(inputStream p_s) /*@*/ ; +extern /*@open@*/ /*@exposed@*/ FILE *inputStream_getFile (inputStream p_s) /*@*/ ; + +# else +# error "Multiple include" +# endif + + + + + diff --git a/src/Headers/intSet.h b/src/Headers/intSet.h index c8a12fd..db5e9aa 100644 --- a/src/Headers/intSet.h +++ b/src/Headers/intSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,7 +12,7 @@ # ifndef intSET_H # define intSET_H -abst_typedef struct _intSet +abst_typedef struct { int entries; int nspace; diff --git a/src/Headers/intTable.h b/src/Headers/intTable.h new file mode 100644 index 0000000..9553924 --- /dev/null +++ b/src/Headers/intTable.h @@ -0,0 +1,44 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** intTable.h +*/ + +# ifndef INTTABLE_H +# define INTTABLE_H + +/* +** intTable is used to map a limited number of integers to other integers. +** The table size is fixed, and gives the maximum value. +*/ + +abst_typedef struct _intTable +{ + int size; + /*@only@*/ int *values; +} *intTable; + +extern /*@only@*/ intTable intTable_create (int p_size); +extern void intTable_set (intTable p_h, int p_key, int p_value); +extern int intTable_lookup (intTable p_h, int p_key); +extern void intTable_free (/*@only@*/ intTable p_h); + +# else +# error "Multiple include" +# endif + + + + + + + + + + + + + diff --git a/src/Headers/interfaceNode.h b/src/Headers/interfaceNode.h index 9220ab1..a9f19b3 100644 --- a/src/Headers/interfaceNode.h +++ b/src/Headers/interfaceNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -9,7 +9,7 @@ typedef enum { INF_EXPORT, INF_PRIVATE } interfaceNodeKind; -typedef struct _interfaceNode { +typedef struct { interfaceNodeKind kind; /* which kind of interface node */ union { /* evs 8 Sept 1993 */ diff --git a/src/Headers/interfaceNodeList.h b/src/Headers/interfaceNodeList.h index b5c60d0..5264d67 100644 --- a/src/Headers/interfaceNodeList.h +++ b/src/Headers/interfaceNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ interfaceNode o_interfaceNode; -abst_typedef struct _interfaceNodeList +abst_typedef struct { int nelements; int nspacehigh; diff --git a/src/Headers/iterNode.h b/src/Headers/iterNode.h index 17d0ad8..c99bff0 100644 --- a/src/Headers/iterNode.h +++ b/src/Headers/iterNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _iterNode { +typedef struct { ltoken name; paramNodeList params; } *iterNode; diff --git a/src/Headers/lclForwardTypes.h b/src/Headers/lclForwardTypes.h index 321a23b..33ccbb2 100644 --- a/src/Headers/lclForwardTypes.h +++ b/src/Headers/lclForwardTypes.h @@ -1,13 +1,18 @@ # ifndef LCL_FORWARDTYPES_H # define LCL_FORWARDTYPES_H -typedef struct _termNode *termNode; -typedef /*@null@*/ struct _lclTypeSpecNode *lclTypeSpecNode; -abst_typedef struct _termNodeList *termNodeList; +typedef struct s_opFormNode *opFormNode; +typedef struct s_termNode *termNode; +typedef struct s_abstBodyNode *abstBodyNode; +typedef struct s_lclPredicateNode *lclPredicateNode; +typedef struct s_stmtNode *stmtNode; +abst_typedef struct s_programNodeList *programNodeList; +typedef /*@null@*/ struct s_lclTypeSpecNode *lclTypeSpecNode; +abst_typedef struct s_termNodeList *termNodeList; typedef unsigned int sort; typedef long unsigned lsymbol; -typedef struct _typeExpr *typeExpr; -abst_typedef /*@null@*/ struct _ltoken *ltoken; +typedef struct s_typeExpr *typeExpr; +abst_typedef /*@null@*/ struct s_ltoken *ltoken; typedef unsigned int ltokenCode; # else diff --git a/src/Headers/lclPredicateNode.h b/src/Headers/lclPredicateNode.h index 0c9c0d5..be218a7 100644 --- a/src/Headers/lclPredicateNode.h +++ b/src/Headers/lclPredicateNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,12 +8,12 @@ typedef enum { LPD_PLAIN, LPD_CHECKS, LPD_REQUIRES, LPD_ENSURES, LPD_INTRACLAIM, LPD_CONSTRAINT, LPD_INITIALLY - } lclPredicateKind; +} lclPredicateKind; -typedef struct _lclPredicateNode { +struct s_lclPredicateNode { ltoken tok; /* for debugging */ lclPredicateKind kind; - struct _termNode *predicate; -} *lclPredicateNode; + termNode predicate; +} ; diff --git a/src/Headers/lclTypeSpecNode.h b/src/Headers/lclTypeSpecNode.h index 9012a89..d3ba22b 100644 --- a/src/Headers/lclTypeSpecNode.h +++ b/src/Headers/lclTypeSpecNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,13 +12,13 @@ typedef enum typedef lclTypeSpecNode lcltsp; -typedef struct _lclconj +typedef struct { lcltsp a; lcltsp b; } *lclconj; -struct _lclTypeSpecNode { +struct s_lclTypeSpecNode { lclTypeSpecKind kind; qualList quals; union { diff --git a/src/Headers/lcl_constants.h b/src/Headers/lcl_constants.h index 033d9b0..ede4139 100644 --- a/src/Headers/lcl_constants.h +++ b/src/Headers/lcl_constants.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -52,15 +52,9 @@ /*@constant observer char *IO_SUFFIX; @*/ # define IO_SUFFIX ".lcs" -/*@constant observer char *LCL_SUFFIX; @*/ -# define LCL_SUFFIX ".lcl" - /*@constant observer char *LCLINIT_SUFFIX; @*/ # define LCLINIT_SUFFIX ".lci" -/*@constant observer char *LH_SUFFIX; @*/ -# define LH_SUFFIX ".lh" - /*@constant observer char *CTRAITSYMSNAME; @*/ # define CTRAITSYMSNAME "CTrait.syms" diff --git a/src/Headers/lclctypes.h b/src/Headers/lclctypes.h index 7057841..ab7809e 100644 --- a/src/Headers/lclctypes.h +++ b/src/Headers/lclctypes.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lclinit.h b/src/Headers/lclinit.h index 37bd8b9..77c8a6b 100644 --- a/src/Headers/lclinit.h +++ b/src/Headers/lclinit.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lclintMacros.nf b/src/Headers/lclintMacros.nf index e9da2a5..cdae821 100644 --- a/src/Headers/lclintMacros.nf +++ b/src/Headers/lclintMacros.nf @@ -103,11 +103,14 @@ /*@notfunction@*/ # define NOALIAS(s,t) (/*@ignore@*/ (s == NULL) || (s != t) /*@end@*/) +/*@i343434*/ /*fix this before release verion*/ +/* get rid of @-formatconst@ */ + /*@notfunction@*/ # define TPRINTF(arg) \ - do { /*@-mustfree@*/ /*@-null@*/ (void) fflush (stderr); (void) fflush (stdout); \ + do { /*@-mustfree@*/ /*@-null@*/ /*@-formatconst@*/ (void) fflush (stderr); (void) fflush (stdout); \ printf ("%s:%d [%s]: >> ", __FILE__, __LINE__, cstring_toCharsSafe (fileloc_unparse(g_currentloc))); \ - (void)printf arg; printf("\n"); /*@=mustfree@*/ /*@=null@*/ (void) fflush (stdout); \ + (void)printf arg; printf("\n"); /*@=formatconst@*/ /*@=mustfree@*/ /*@=null@*/ (void) fflush (stdout); \ } while (FALSE) diff --git a/src/Headers/lcllib.h b/src/Headers/lcllib.h index 9fc403e..d94bf60 100644 --- a/src/Headers/lcllib.h +++ b/src/Headers/lcllib.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lclscan.h b/src/Headers/lclscan.h index 55d48e3..d51f333 100644 --- a/src/Headers/lclscan.h +++ b/src/Headers/lclscan.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -19,9 +19,9 @@ extern /*@dependent@*/ /*@exposed@*/ ltoken LCLScanNextToken(void) extern void LCLScanFreshToken(/*@only@*/ ltoken p_tok) /*@modifies internalState@*/ ; -extern /*@exposed@*/ tsource *LCLScanSource(void) /*@*/ ; +extern /*@exposed@*/ inputStream LCLScanSource(void) /*@*/ ; extern void LCLScanInit(void) /*@modifies internalState@*/ ; -extern void LCLScanReset(tsource *p_s) /*@modifies internalState@*/ ; +extern void LCLScanReset(inputStream p_s) /*@modifies internalState@*/ ; extern void LCLScanCleanup(void) /*@modifies internalState@*/ ; # else diff --git a/src/Headers/lclscanline.h b/src/Headers/lclscanline.h index bc86491..3e395ed 100644 --- a/src/Headers/lclscanline.h +++ b/src/Headers/lclscanline.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lclsyntable.h b/src/Headers/lclsyntable.h index 68e2014..067f9e1 100644 --- a/src/Headers/lclsyntable.h +++ b/src/Headers/lclsyntable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lcltokentable.h b/src/Headers/lcltokentable.h index 75c9159..b07ff71 100644 --- a/src/Headers/lcltokentable.h +++ b/src/Headers/lcltokentable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lctype.h b/src/Headers/lctype.h index 120c6c2..cb08c1e 100644 --- a/src/Headers/lctype.h +++ b/src/Headers/lctype.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -192,6 +192,7 @@ extern bool ctype_isSignedIntegral (ctype p_c) /*@*/ ; extern bool ctype_isInt (ctype p_c) /*@*/ ; extern bool ctype_isRegularInt (ctype p_c) /*@*/ ; extern bool ctype_isMutable (ctype p_t) /*@*/ ; +extern bool ctype_isImmutableAbstract (ctype p_t) /*@*/ ; extern bool ctype_isNumeric (ctype p_c) /*@*/ ; extern bool ctype_isPointer (ctype p_c) /*@*/ ; extern bool ctype_isReal (ctype p_c) /*@*/ ; @@ -247,6 +248,7 @@ extern ctype ctype_createUnnamedStruct (/*@only@*/ uentryList p_f) ; extern ctype ctype_createUnnamedUnion (/*@only@*/ uentryList p_f) ; extern ctype ctype_createUser (typeId p_u) ; +extern bool ctype_isUnnamedSU (ctype p_c) /*@*/ ; extern bool ctype_isUser (ctype p_c) /*@*/ ; extern ctype ctype_expectFunction(ctype p_c) ; @@ -261,7 +263,7 @@ extern ctype ctype_makeParamsFunction (ctype p_base, /*@only@*/ uentryList p_p); extern ctype ctype_makeFunction (ctype p_base, /*@only@*/ uentryList p_p) /*@*/ ; extern ctype ctype_makeNFParamsFunction (ctype p_base, /*@only@*/ uentryList p_p) /*@*/ ; extern ctype ctype_makePointer (ctype p_c); -extern ctype ctype_makeRealFunction (ctype p_base, /*@dependent@*/ uentryList p_p); +extern ctype ctype_makeRawFunction (ctype p_base, /*@only@*/ uentryList p_p); extern ctype ctype_newBase (ctype p_c, ctype p_p) /*@*/ ; extern ctype ctype_realType (ctype p_c) /*@*/ ; @@ -269,7 +271,7 @@ extern ctype ctype_realishType (ctype p_c) /*@*/ ; extern ctype ctype_removePointers (ctype p_c) /*@*/ ; extern ctype ctype_resolve (ctype p_c) /*@*/ ; extern ctype ctype_resolveNumerics (ctype p_c1, ctype p_c2) /*@*/ ; -extern ctype ctype_returnValue (ctype p_c) /*@*/ ; +extern ctype ctype_getReturnType (ctype p_c) /*@*/ ; extern bool ctype_isRefCounted (ctype p_t) /*@*/ ; extern /*@observer@*/ uentryList ctype_argsFunction (ctype p_c) /*@*/ ; @@ -354,7 +356,7 @@ extern ctype ctype_widest (ctype, ctype) /*@*/ ; /* drl modified */ -long int ctype_getArraySize (ctype c); +long int ctype_getArraySize (ctype p_c); /*end drl add functions */ /* Should only be used in uentry.c */ diff --git a/src/Headers/letDeclNode.h b/src/Headers/letDeclNode.h index 0eacfa2..4197dce 100644 --- a/src/Headers/letDeclNode.h +++ b/src/Headers/letDeclNode.h @@ -1,13 +1,13 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _letDeclNode { +typedef struct { ltoken varid; /*@null@*/ lclTypeSpecNode sortspec; - struct _termNode *term; + termNode term; sort sort; } *letDeclNode; diff --git a/src/Headers/letDeclNodeList.h b/src/Headers/letDeclNodeList.h index 6092bfb..7f2c660 100644 --- a/src/Headers/letDeclNodeList.h +++ b/src/Headers/letDeclNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ letDeclNode o_letDeclNode; -abst_typedef struct _letDeclNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/lh.h b/src/Headers/lh.h index 5adcca1..d9211dd 100644 --- a/src/Headers/lh.h +++ b/src/Headers/lh.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -9,7 +9,7 @@ extern void lhCleanup (void) /*@modifies internalState, fileSystem@*/ ; extern void lhIncludeBool (void) /*@modifies internalState@*/ ; -extern void lhInit (tsource *p_f) /*@modifies internalState, fileSystem@*/ ; +extern void lhInit (inputStream p_f) /*@modifies internalState, fileSystem@*/ ; extern void lhOutLine (/*@only@*/ cstring p_s) /*@modifies internalState@*/ ; extern void lhExternals (interfaceNodeList p_x) /*@modifies internalState@*/ ; diff --git a/src/Headers/limwr.h b/src/Headers/limwr.h index 9f00098..9a13db7 100644 --- a/src/Headers/limwr.h +++ b/src/Headers/limwr.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/llbasic.h b/src/Headers/llbasic.h index 115626e..caa8ee9 100644 --- a/src/Headers/llbasic.h +++ b/src/Headers/llbasic.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/llerror.h b/src/Headers/llerror.h index 3985390..54238bb 100644 --- a/src/Headers/llerror.h +++ b/src/Headers/llerror.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -13,6 +13,7 @@ extern bool /*@alt void@*/ check (bool p_x); extern bool doCheck (bool p_x, cstring p_pred, cstring p_file, int p_line); extern /*@falseexit@*/ void llassert (/*@sef@*/ bool p_test); +/*@-macroredef@*/ # define llassert(tst) \ do { if (!(tst)) { \ if (context_getFlag (FLG_TRYTORECOVER)) checkParseError (); \ @@ -20,6 +21,31 @@ extern /*@falseexit@*/ void llassert (/*@sef@*/ bool p_test); cstring_makeLiteralTemp (__FILE__), __LINE__)); \ llbuglit ("llassert failed: " #tst); \ }} while (FALSE) +/*@=macroredef@*/ + +extern /*@falseexit@*/ void llassertretnull (/*@sef@*/ bool p_test); +# define llassertretnull(tst) \ + do { if (!(tst)) { \ + if (context_getFlag (FLG_TRYTORECOVER)) checkParseError (); \ + lldiagmsg (message ("%s:%d: at source point", \ + cstring_makeLiteralTemp (__FILE__), __LINE__)); \ + llbuglit ("llassert failed: " #tst); \ + return NULL; \ + }} while (FALSE) + +/* +** Use this for assertions in error-generation code (that +** might lead to infinite loops of failed assertions if +** the normal error generation routines are used). +*/ + +extern /*@falseexit@*/ void llassertprotect (/*@sef@*/ bool p_test); +# define llassertprotect(tst) \ + do { if (!(tst)) { \ + fprintf (stderr, "%s:%d: at source point: ", __FILE__, __LINE__); \ + fprintf (stderr, "protected fatal llassert failed: " #tst "\n"); \ + llexit (EXIT_FAILURE); \ + }} while (FALSE) extern /*@falseexit@*/ void llassertfatal (/*@sef@*/ bool p_test); # define llassertfatal(tst) \ @@ -33,21 +59,60 @@ extern /*@falseexit@*/ void llassertfatal (/*@sef@*/ bool p_test); */ extern void llmsg (/*@only@*/ cstring p_s) /*@modifies g_msgstream@*/ ; + extern void lldiagmsg (/*@only@*/ cstring p_s) /*@modifies stderr@*/ ; extern void llmsgplain (/*@only@*/ cstring p_s) /*@modifies g_msgstream@*/ ; extern void llhint (/*@only@*/ cstring p_s) /*@globals g_currentloc, g_msgstream;@*/ /*@modifies g_msgstream@*/ ; + +extern /*@private@*/ /*@exits@*/ void xllfatalbug (char *p_srcFile, int p_srcLine, + /*@only@*/ cstring p_s) + /*@globals g_currentloc@*/ + /*@modifies stderr@*/ ; + extern /*@exits@*/ void llfatalbug (/*@only@*/ cstring p_s) /*@globals g_currentloc@*/ /*@modifies stderr@*/ ; +# define llfatalbug(p_s) \ + xllfatalbug (__FILE__, __LINE__, p_s) + +extern /*@private@*/ void xllgloberror (char *p_srcFile, int p_srcLine, + /*@only@*/ cstring p_s) + /*@modifies g_msgstream@*/ ; + extern void llgloberror (/*@only@*/ cstring p_s) /*@modifies g_msgstream@*/ ; -extern bool llgenerror (flagcode p_o, /*@only@*/ cstring p_s, fileloc p_fl) /*@modifies g_msgstream@*/ ; +# define llgloberror(p_s) \ + xllgloberror (__FILE__, __LINE__, p_s) + +extern /*@private@*/ bool xllgenerror (char *p_srcFile, int p_srcLine, flagcode p_o, + /*@only@*/ cstring p_s, fileloc p_fl) + /*@modifies g_msgstream@*/ ; + +extern bool llgenerror (flagcode p_o, /*@only@*/ cstring p_s, fileloc p_fl) + /*@modifies g_msgstream@*/ ; +# define llgenerror(p_o, p_s, p_fl) \ + xllgenerror (__FILE__, __LINE__, p_o, p_s, p_fl) + +extern /*@private@*/ bool + xllgenhinterror (char *p_srcFile, int p_srcLine, + flagcode p_o, /*@only@*/ cstring p_s, /*@only@*/ cstring p_hint, + fileloc p_fl) + /*@modifies g_msgstream@*/ ; + extern bool llgenhinterror (flagcode p_o, /*@only@*/ cstring p_s, /*@only@*/ cstring p_hint, fileloc p_fl) /*@modifies g_msgstream@*/ ; + +# define llgenhinterror(p_o, p_s, p_hint, p_fl) \ + xllgenhinterror (__FILE__, __LINE__, p_o, p_s, p_hint, p_fl) + + extern void llerror (flagcode p_o, /*@only@*/ cstring p_s) /*@globals g_msgstream, g_currentloc@*/ /*@modifies g_msgstream@*/ ; +# define llerror(p_o, p_s) \ + ((void) llgenerror (p_o, p_s, g_currentloc)) + extern void llgenmsg (/*@only@*/ cstring p_s, fileloc p_fl) /*@modifies g_msgstream@*/ ; extern /*@exits@*/ void llfatalerror (/*@only@*/ cstring p_s) /*@modifies g_msgstream@*/ ; extern /*@exits@*/ void llfatalerrorLoc (/*@only@*/ cstring p_s) @@ -63,7 +128,12 @@ extern /*@exits@*/ void lclfatalbug (/*@temp@*/ char *p_msg) /*@modifies g_msgst extern int lclNumberErrors (void) /*@*/ ; extern bool lclHadNewError (void) /*@modifies internalState@*/ ; extern /*@exits@*/ void lclfatalerror (ltoken p_t, /*@only@*/ cstring p_msg); + +extern void xlclerror (char *p_srcFile, int p_srcLine, ltoken p_t, /*@only@*/ cstring p_msg) ; + extern void lclerror (ltoken p_t, /*@only@*/ cstring p_msg); +# define lclerror(p_t,p_msg) \ + xlclerror (__FILE__, __LINE__, p_t, p_msg) extern void lclbug (/*@only@*/ cstring p_s); extern void lclplainerror (/*@only@*/ cstring p_msg); @@ -100,34 +170,77 @@ extern void cleanupMessages (void) ** Report error iff f1 and f2 are set. */ +extern bool +xoptgenerror2 (char *p_srcFile, int p_srcLine, + flagcode p_f1, flagcode p_f2, /*@only@*/ cstring p_s, fileloc p_loc) + /*@modifies *g_msgstream, internalState@*/ ; + extern bool optgenerror2 (flagcode p_f1, flagcode p_f2, /*@only@*/ cstring p_s, fileloc p_loc) /*@modifies *g_msgstream, internalState@*/ ; +# define optgenerror2(p_f1, p_f2, p_s, p_loc) \ + (xoptgenerror2 (__FILE__, __LINE__, p_f1, p_f2, p_s, p_loc)) /* ** Report error if f1 is set and f2 is not set. */ +extern bool +xoptgenerror2n (char *p_srcFile, int p_srcLine, + flagcode p_f1, flagcode p_f2, /*@only@*/ cstring p_s, fileloc p_loc) + /*@modifies *g_msgstream, internalState@*/ ; + extern bool optgenerror2n (flagcode p_f1, flagcode p_f2, /*@only@*/ cstring p_s, fileloc p_loc) /*@modifies *g_msgstream, internalState@*/ ; +# define optgenerror2n(p_f1, p_f2, p_s, p_loc) \ + (xoptgenerror2n (__FILE__, __LINE__, p_f1, p_f2, p_s, p_loc)) + +extern /*@private@*/ bool xlloptgenerror (char *p_srcFile, int p_srcLine, flagcode p_o, /*@only@*/ cstring p_s, fileloc p_loc) + /*@modifies *g_msgstream, internalState@*/ ; extern bool lloptgenerror (flagcode p_o, /*@only@*/ cstring p_s, fileloc p_loc) /*@modifies *g_msgstream, internalState@*/ ; +# define lloptgenerror(p_o, p_s, p_loc) \ + (xlloptgenerror (__FILE__, __LINE__, p_o, p_s, p_loc)) + +extern bool xllnoptgenerror (char *p_srcFile, int p_srcLine, + flagcode p_o, /*@only@*/ cstring p_s, fileloc p_loc) + /*@modifies *g_msgstream, internalState@*/ ; extern bool llnoptgenerror (flagcode p_o, /*@only@*/ cstring p_s, fileloc p_loc) /*@modifies *g_msgstream, internalState@*/ ; +# define llnoptgenerror(p_o, p_s, p_loc) \ + (xllnoptgenerror (__FILE__, __LINE__, p_o, p_s, p_loc)) + +extern /*@private@*/ bool + xllgenformattypeerror (char *p_srcFile, int p_srcLine, + ctype p_t1, exprNode p_e1, + ctype p_t2, exprNode p_e2, + /*@only@*/ cstring p_s, fileloc p_fl) + /*@modifies *g_msgstream, internalState@*/ ; extern bool llgenformattypeerror (ctype p_t1, exprNode p_e1, ctype p_t2, exprNode p_e2, /*@only@*/ cstring p_s, fileloc p_fl) /*@modifies *g_msgstream, internalState@*/ ; +# define llgenformattypeerror(p_t1, p_e1, p_t2, p_e2, p_s, p_fl) \ + xllgenformattypeerror (__FILE__, __LINE__, p_t1, p_e1, p_t2, p_e2, p_s, p_fl) + +extern bool xllgentypeerror (char *p_srcFile, int p_srcLine, + ctype p_t1, exprNode p_e1, + ctype p_t2, exprNode p_e2, + /*@only@*/ cstring p_s, + fileloc p_fl) + /*@modifies *g_msgstream, internalState@*/ ; extern bool llgentypeerror (ctype p_t1, exprNode p_e1, ctype p_t2, exprNode p_e2, /*@only@*/ cstring p_s, fileloc p_fl) /*@modifies *g_msgstream, internalState@*/ ; +# define llgentypeerror(p_t1, p_e1, p_t2, p_e2, p_s, p_fl) \ + xllgentypeerror (__FILE__, __LINE__, p_t1, p_e1, p_t2, p_e2, p_s, p_fl) extern bool gentypeerror (/*@sef@*/ ctype p_t1, /*@sef@*/ exprNode p_e1, @@ -166,11 +279,35 @@ extern void /*@modifies *g_msgstream, internalState@*/ ; #define voptgenerror(o, s, loc) ((void) optgenerror(o,s,loc)) +extern /*@private@*/ bool + xfsgenerror (char *p_srcFile, int p_srcLine, + flagSpec p_fs, /*@only@*/ cstring p_s, fileloc p_fl) + /*@modifies g_msgstream, internalState@*/ ; + +extern bool fsgenerror (flagSpec p_fs, /*@only@*/ cstring p_s, fileloc p_fl) + /*@modifies g_msgstream, internalState@*/ ; +# define fsgenerror(p_fs, p_s, p_fl) \ + xfsgenerror (__FILE__, __LINE__, p_fs, p_s, p_fl) + +extern void +vfsgenerror (/*@sef@*/ flagSpec p_fs, /*@sef@*/ /*@only@*/ cstring p_s, + /*@sef@*/ fileloc p_loc) + /*@modifies *g_msgstream, internalState@*/ ; +#define vfsgenerror(fs, s, loc) ((void) fsgenerror(fs,s,loc)) + +/* +** Reports a warning when f1 is ON and f2 is ON +*/ + extern void voptgenerror2 (/*@sef@*/ flagcode p_f1, /*@sef@*/ flagcode p_f2, - /*@sef@*/ /*@only@*/ cstring p_s, /*@sef@*/ fileloc p_loc); + /*@sef@*/ /*@only@*/ cstring p_s, /*@sef@*/ fileloc p_loc); #define voptgenerror2(f1, f2, s, loc) ((void) optgenerror2 (f1, f2, s, loc)) +/* +** Reports a warning when f1 is ON and f2 is OFF +*/ + extern void voptgenerror2n (/*@sef@*/ flagcode p_f1, /*@sef@*/ flagcode p_f2, /*@sef@*/ /*@only@*/ cstring p_s, /*@sef@*/ fileloc p_loc); @@ -197,20 +334,28 @@ extern void # define vgenhinterror(o, s, h, loc) \ ((void) llgenhinterror(o, s, h, loc)) -extern void llforceerror (flagcode p_code, /*@only@*/ cstring p_s, fileloc p_fl) /*@modifies g_msgstream@*/ ; + +extern /*@private@*/ bool /*@alt void@*/ xllforceerror (char *p_srcFile, int p_srcLine, flagcode p_code, /*@only@*/ cstring p_s, fileloc p_fl) + /*@modifies g_msgstream@*/ ; + +extern bool /*@alt void@*/ llforceerror (flagcode p_code, /*@only@*/ cstring p_s, fileloc p_fl) + /*@modifies g_msgstream@*/ ; +# define llforceerror(p_code, p_s, p_fl) \ + (xllforceerror (__FILE__, __LINE__, p_code, p_s, p_fl)) extern void llerrorlit (flagcode p_o, char *p_s); +# define llerrorlit(o, s) ((void) llerror (o, cstring_makeLiteral (s))) + extern void llgenindentmsg (/*@only@*/ cstring p_s, fileloc p_fl) /*@modifies g_msgstream@*/ ; extern /*@exits@*/ void llbugexitlit (char *p_s); -extern void llbuglit (char *p_s); -extern void llcontbuglit (char *p_s); +# define llbugexitlit(s) (llbug (cstring_makeLiteral (s))) -# define llerror(o, s) ((void) llgenerror (o, s, g_currentloc)) -# define llerrorlit(o, s) ((void) llerror (o, cstring_makeLiteral (s))) +extern void llbuglit (char *p_s); # define llbuglit(s) (llbug (cstring_makeLiteral (s))) + +extern void llcontbuglit (char *p_s); # define llcontbuglit(s) (llbug (cstring_makeLiteral (s))) -# define llbugexitlit(s) (llbug (cstring_makeLiteral (s))) extern void checkParseError (void); diff --git a/src/Headers/llglobals.h b/src/Headers/llglobals.h index 64afd46..44f727b 100644 --- a/src/Headers/llglobals.h +++ b/src/Headers/llglobals.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/llmain.h b/src/Headers/llmain.h index ed27200..3d8f18d 100644 --- a/src/Headers/llmain.h +++ b/src/Headers/llmain.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -45,7 +45,7 @@ extern int lslparse (void); /*@=redecl@*/ /*@-incondefs@*/ /*@-redecl@*/ -extern /*@dependent@*/ FILE *yyin; +extern /*@open@*/ /*@dependent@*/ FILE *yyin; /*@=incondefs@*/ /*@=redecl@*/ diff --git a/src/Headers/lltok.h b/src/Headers/lltok.h index dcd6004..52ffe8a 100644 --- a/src/Headers/lltok.h +++ b/src/Headers/lltok.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,7 +10,7 @@ # ifndef LLTOK_H # define LLTOK_H -typedef struct _lltok +typedef struct { int tok; fileloc loc; @@ -22,6 +22,8 @@ extern /*@observer@*/ cstring lltok_unparse (lltok p_tok) /*@*/ ; extern void lltok_release (/*@special@*/ lltok p_t) /*@releases p_t.loc@*/ ; extern /*@dependent@*/ /*@exposed@*/ fileloc lltok_getLoc (lltok p_t) /*@*/ ; +extern /*@only@*/ fileloc lltok_stealLoc (lltok p_t) /*@releases p_t.loc@*/ ; + extern int lltok_getTok (lltok p_t) /*@*/ ; # define lltok_getTok(t) ((t).tok) @@ -30,48 +32,47 @@ extern int lltok_getTok (lltok p_t) /*@*/ ; extern bool lltok_isSemi (lltok p_tok); /* DRL added 10/23/2000 for boolean stuff */ -extern bool lltok_isEq_Op (lltok tok); +extern bool lltok_isEq_Op (lltok p_tok); -extern bool lltok_isMult (lltok tok); +extern bool lltok_isMult (lltok p_tok); -extern bool lltok_isInc_Op (lltok tok); +extern bool lltok_isInc_Op (lltok p_tok); -extern bool lltok_isAnd_Op (lltok tok); +extern bool lltok_isAnd_Op (lltok p_tok); -extern bool lltok_isOr_Op (lltok tok); +extern bool lltok_isOr_Op (lltok p_tok); -extern bool lltok_isNot_Op (lltok tok); +extern bool lltok_isNot_Op (lltok p_tok); /*drl7x added this function 11/20/00 */ -bool lltok_isLt_Op (lltok tok); +bool lltok_isLt_Op (lltok p_tok); -bool lltok_isGt_Op (lltok tok); +bool lltok_isGt_Op (lltok p_tok); -bool lltok_isGe_Op (lltok tok); +bool lltok_isGe_Op (lltok p_tok); -bool lltok_isLe_Op (lltok tok); +bool lltok_isLe_Op (lltok p_tok); /* end drl7x added */ /*drl7x added 11 30 2000*/ -bool lltok_isPlus_Op (lltok tok); +bool lltok_isPlus_Op (lltok p_tok); -bool lltok_isMinus_Op (lltok tok); +bool lltok_isMinus_Op (lltok p_tok); /*end drl added */ /*drl added 1/14/2001 */ -bool lltok_isDec_Op (lltok tok); -bool lltok_isAmpersand_Op (lltok tok); +bool lltok_isDec_Op (lltok p_tok); +bool lltok_isAmpersand_Op (lltok p_tok); -extern bool lltok_isExcl_Op (lltok tok); -extern bool lltok_isTilde_Op (lltok tok); +extern bool lltok_isExcl_Op (lltok p_tok); +extern bool lltok_isTilde_Op (lltok p_tok); # else # error "Multiple include" # endif - diff --git a/src/Headers/lslOp.h b/src/Headers/lslOp.h index bb5a0c0..d0a6e4d 100644 --- a/src/Headers/lslOp.h +++ b/src/Headers/lslOp.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _lslOp { +typedef struct { /*@null@*/ /*@only@*/ nameNode name; /*@dependent@*/ sigNode signature; /* optional */ } *lslOp; diff --git a/src/Headers/lslOpList.h b/src/Headers/lslOpList.h index 007fc4d..1626a86 100644 --- a/src/Headers/lslOpList.h +++ b/src/Headers/lslOpList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@exposed@*/ lslOp e_lslOp; -abst_typedef struct _lslOpList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/lslOpSet.h b/src/Headers/lslOpSet.h index 7c86388..5e92ead 100644 --- a/src/Headers/lslOpSet.h +++ b/src/Headers/lslOpSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,7 +12,7 @@ # ifndef lslOpSET_H # define lslOpSET_H -abst_typedef /*@null@*/ struct _lslOpSet +abst_typedef /*@null@*/ struct { int entries; int nspace; diff --git a/src/Headers/lslinit.h b/src/Headers/lslinit.h index 7ba10fc..bc7d259 100644 --- a/src/Headers/lslinit.h +++ b/src/Headers/lslinit.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lslparse.h b/src/Headers/lslparse.h index 1c378fe..1915b71 100644 --- a/src/Headers/lslparse.h +++ b/src/Headers/lslparse.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -15,7 +15,7 @@ extern int lsldebug; /* defined by bison (not a bool) */ /*@=namechecks@*/ extern lsymbol processTraitSortId (lsymbol p_sortid); -extern int parseSignatures (cstring p_infile); -extern /*@only@*/ lslOp parseOpLine (char *p_fname, char *p_line); +extern int parseSignatures (/*@only@*/ cstring p_infile); +extern /*@only@*/ lslOp parseOpLine (cstring p_fname, cstring p_line); extern void readlsignatures (interfaceNode p_n); -extern void callLSL (char *p_specfile, /*@only@*/ char *p_text); +extern void callLSL (cstring p_specfile, /*@only@*/ cstring p_text); diff --git a/src/Headers/lsymbol.h b/src/Headers/lsymbol.h index 915d8bb..08bb3fa 100644 --- a/src/Headers/lsymbol.h +++ b/src/Headers/lsymbol.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/lsymbolList.h b/src/Headers/lsymbolList.h index ab493e5..8534fdb 100644 --- a/src/Headers/lsymbolList.h +++ b/src/Headers/lsymbolList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -7,7 +7,7 @@ # ifndef LSYMBOLLIST_H # define LSYMBOLLIST_H -abst_typedef struct _lsymbolList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/lsymbolSet.h b/src/Headers/lsymbolSet.h index 69ac3e8..a380c34 100644 --- a/src/Headers/lsymbolSet.h +++ b/src/Headers/lsymbolSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,7 +12,7 @@ # ifndef LSYMBOLSET_H # define LSYMBOLSET_H -abst_typedef /*@null@*/ struct _lsymbolSet +abst_typedef /*@null@*/ struct { int entries; int nspace; diff --git a/src/Headers/ltoken.h b/src/Headers/ltoken.h index 8a26d95..685a1bd 100644 --- a/src/Headers/ltoken.h +++ b/src/Headers/ltoken.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -22,25 +22,23 @@ typedef enum { SID_SORT /* sortId */ } SimpleIdCode; -struct _ltoken { - unsigned int code; - unsigned int col: 8; - unsigned int line: 16; - - - /* if idtype is SID_SORT, then text field keeps the sort */ - - lsymbol text; /* string handle */ - lsymbol fname; /* source handle */ - lsymbol rawText; /* original text */ - bool defined: 1; /* token predefined */ - bool hasSyn: 1; /* synonym exists */ - - /* just for simpleId: for distinguish simpleId into varId, fcnId, TypeId, ... */ - /*@reldef@*/ SimpleIdCode idtype; - - /* quick and dirty: just for ctypes */ - /*@reldef@*/ unsigned int intfield; +struct s_ltoken { + ltokenCode code; + int col; + int line; + + /* if idtype is SID_SORT, then text field keeps the sort */ + lsymbol text; /* string handle */ + lsymbol fname; /* source handle */ + lsymbol rawText; /* original text */ + bool defined: 1; /* token predefined */ + bool hasSyn: 1; /* synonym exists */ + + /* just for simpleId: for distinguish simpleId into varId, fcnId, TypeId, ... */ + /*@reldef@*/ SimpleIdCode idtype; + + /* quick and dirty: just for ctypes */ + /*@reldef@*/ unsigned int intfield; } ; typedef /*@only@*/ ltoken o_ltoken; @@ -63,32 +61,32 @@ extern void ltoken_setDefined (/*@sef@*/ ltoken p_tok, bool p_def); (ltoken_isValid (t) ? (t)->defined = (def) : (def)) extern ltoken - ltoken_createType (unsigned int p_code, SimpleIdCode p_idtype, lsymbol p_text) /*@*/ ; + ltoken_createType (ltokenCode p_code, SimpleIdCode p_idtype, lsymbol p_text) /*@*/ ; -extern ltoken ltoken_create (unsigned int p_code, lsymbol p_text) /*@*/ ; +extern ltoken ltoken_create (ltokenCode p_code, lsymbol p_text) /*@*/ ; extern void ltoken_setIntField (/*@sef@*/ ltoken p_tok, unsigned int p_i); # define ltoken_setIntField(tok,i) \ (ltoken_isValid (tok) ? (tok)->intfield = (i) : (i)) -extern unsigned int ltoken_getLine (/*@sef@*/ ltoken p_tok); +extern int ltoken_getLine (/*@sef@*/ ltoken p_tok); # define ltoken_getLine(tok) \ (ltoken_isValid (tok) ? (tok)->line : 0) -extern void ltoken_setLine (/*@sef@*/ ltoken p_tok, /*@sef@*/ unsigned int p_line); +extern void ltoken_setLine (/*@sef@*/ ltoken p_tok, /*@sef@*/ int p_line); # define ltoken_setLine(tok, ln) \ (ltoken_isValid (tok) ? (tok)->line = (ln) : 0) -extern unsigned int ltoken_getCol (/*@sef@*/ ltoken p_tok); +extern int ltoken_getCol (/*@sef@*/ ltoken p_tok); # define ltoken_getCol(tok) \ (ltoken_isValid (tok) ? (tok)->col : 0) -extern void ltoken_setCol (/*@sef@*/ ltoken p_tok, unsigned int p_col) +extern void ltoken_setCol (/*@sef@*/ ltoken p_tok, int p_col) /*@modifies p_tok@*/ ; # define ltoken_setCol(tok, c) \ (ltoken_isValid (tok) ? (tok)->col = (c) : (c)) -extern unsigned int ltoken_getCode (/*@sef@*/ ltoken p_tok) /*@*/ ; +extern ltokenCode ltoken_getCode (/*@sef@*/ ltoken p_tok) /*@*/ ; # define ltoken_getCode(tok) \ (ltoken_isValid (tok) ? (tok)->code : NOTTOKEN) @@ -151,7 +149,7 @@ extern cstring ltoken_unparseCodeName (ltoken p_tok) /*@*/ ; extern /*@observer@*/ cstring ltoken_unparse (ltoken p_s); -extern void ltoken_setCode (/*@sef@*/ ltoken p_s, unsigned int p_code); +extern void ltoken_setCode (/*@sef@*/ ltoken p_s, ltokenCode p_code); # define ltoken_setCode(s,c) (ltoken_isValid (s) ? (s)->code = (c) : (c)) extern void ltoken_setRawText (/*@sef@*/ ltoken p_s, lsymbol p_t); @@ -182,9 +180,9 @@ extern /*@observer@*/ cstring ltoken_fileName (/*@sef@*/ ltoken p_s); # define ltoken_fileName(s) \ (ltoken_isValid(s) ? lsymbol_toString ((s)->fname) : cstring_undefined) -extern void ltoken_setFileName (/*@sef@*/ ltoken p_tok, /*@sef@*/ char *p_fname); +extern void ltoken_setFileName (/*@sef@*/ ltoken p_tok, /*@sef@*/ cstring p_fname); # define ltoken_setFileName(tok,f) \ - (ltoken_isValid(tok) ? (tok)->fname = lsymbol_fromChars (f) : lsymbol_undefined) + (ltoken_isValid(tok) ? (tok)->fname = lsymbol_fromString (f) : lsymbol_undefined) extern bool ltoken_isChar (ltoken p_tok); # define ltoken_isChar(t) \ @@ -196,11 +194,10 @@ extern void ltoken_setHasSyn (/*@sef@*/ ltoken p_tok, bool p_def); extern void ltoken_free (/*@only@*/ ltoken); -extern ltoken ltoken_createFull (unsigned int p_code, lsymbol p_text, - cstring p_file, unsigned int p_line, - unsigned int p_col) /*@*/ ; +extern ltoken ltoken_createFull (ltokenCode p_code, lsymbol p_text, + cstring p_file, int p_line, int p_col) /*@*/ ; -extern ltoken ltoken_createRaw (unsigned int p_code, lsymbol p_text) /*@*/ ; +extern ltoken ltoken_createRaw (ltokenCode p_code, lsymbol p_text) /*@*/ ; extern cstring ltoken_unparseLoc (ltoken p_t) /*@*/ ; extern void ltoken_markOwned (/*@owned@*/ ltoken); diff --git a/src/Headers/ltokenList.h b/src/Headers/ltokenList.h index 9fd8037..3bcf1ef 100644 --- a/src/Headers/ltokenList.h +++ b/src/Headers/ltokenList.h @@ -1,12 +1,12 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ # ifndef LTOKENLIST_H # define LTOKENLIST_H -abst_typedef /*@null@*/ struct _ltokenList +abst_typedef /*@null@*/ struct { int nelements; int nspace; diff --git a/src/Headers/macrocache.h b/src/Headers/macrocache.h index e85b419..065357f 100644 --- a/src/Headers/macrocache.h +++ b/src/Headers/macrocache.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,7 +10,7 @@ # ifndef MACROCACHE_H # define MACROCACHE_H -typedef struct _mce +typedef struct { fileloc fl; cstring def; @@ -20,7 +20,7 @@ typedef struct _mce typedef /*@only@*/ mce o_mce; -typedef struct _mcelist +typedef struct { int nspace; int entries; diff --git a/src/Headers/mapping.h b/src/Headers/mapping.h index 1e78dc1..5315019 100644 --- a/src/Headers/mapping.h +++ b/src/Headers/mapping.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,23 +10,23 @@ # ifndef MAPPING_H # define MAPPING_H -typedef struct _mappair { +typedef struct s_mappair { lsymbol domain, range; - /*@null@*/ struct _mappair *next; + /*@null@*/ struct s_mappair *next; } mappair; typedef /*@relnull@*/ /*@only@*/ mappair *o_mappair; -typedef struct { +typedef /*@abstract@*/ struct { unsigned int count; /*@relnull@*/ /*@only@*/ o_mappair *buckets; -} mapping; +} *mapping; -extern /*@only@*/ mapping *mapping_create (void); -extern lsymbol mapping_find (mapping *p_t, lsymbol p_domain); -extern void mapping_bind (mapping *p_t, lsymbol p_domain, lsymbol p_range); -extern void mapping_free (/*@only@*/ mapping *p_m); +extern /*@only@*/ mapping mapping_create (void); +extern lsymbol mapping_find (mapping p_t, lsymbol p_domain); +extern void mapping_bind (mapping p_t, lsymbol p_domain, lsymbol p_range); +extern void mapping_free (/*@only@*/ mapping p_m); # else # error "Multiple include" diff --git a/src/Headers/message.h b/src/Headers/message.h index 3ed7f70..e520f6c 100644 --- a/src/Headers/message.h +++ b/src/Headers/message.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/messageLog.h b/src/Headers/messageLog.h index ce869bb..5221959 100644 --- a/src/Headers/messageLog.h +++ b/src/Headers/messageLog.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,7 +10,7 @@ # ifndef messageLog_H # define messageLog_H -typedef struct _msgentry +typedef struct { fileloc loc; cstring msg; @@ -18,7 +18,7 @@ typedef struct _msgentry typedef /*@only@*/ msgentry o_msgentry; -abst_typedef /*@null@*/ struct _messageLog +abst_typedef /*@null@*/ struct { int nelements; int nspace; diff --git a/src/Headers/metaStateInfo.h b/src/Headers/metaStateInfo.h new file mode 100644 index 0000000..f249a74 --- /dev/null +++ b/src/Headers/metaStateInfo.h @@ -0,0 +1,91 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** metaStateInfo.h +** +** A record that keeps information on a user-defined state including: +** +** o A name +** o State Type (what kinds of things have this state value) +** o Number of values, and their mnemonics +** o A combination table (stateCombinationTable) for how different states combine as l/rvalues +** o Annotations (and map between annotation and value) +** o Context information (where can annotations be used) +*/ + +# ifndef MSINFO_H +# define MSINFO_H + +/*@constant int metaState_error@*/ +# define metaState_error -1 + +struct s_metaStateInfo { + /*@only@*/ cstring name; + fileloc loc; + /* metaStateKind type; */ + cstringList valueNames; + stateCombinationTable sctable; + stateCombinationTable mergetable; + + /* Default values */ + int default_ref; + int default_parameter; + + /* context */ + mtContextNode context; +} ; + +/* in forwardTypes: abst_typedef null struct _metaStateInfo *metaStateInfo; */ + +/*@constant null metaStateInfo metaStateInfo_undefined; @*/ +# define metaStateInfo_undefined ((metaStateInfo) NULL) + +extern /*@falsenull@*/ bool metaStateInfo_isDefined (metaStateInfo) /*@*/ ; +# define metaStateInfo_isDefined(p_info) ((p_info) != NULL) + +extern /*@truenull@*/ bool metaStateInfo_isUndefined (metaStateInfo) /*@*/ ; +# define metaStateInfo_isUndefined(p_info) ((p_info) == NULL) + +extern /*@notnull@*/ metaStateInfo +metaStateInfo_create (/*@only@*/ cstring p_name, + /*@only@*/ cstringList p_valueNames, + /*@only@*/ mtContextNode p_context, + /*@only@*/ stateCombinationTable p_sctable, + /*@only@*/ stateCombinationTable p_mergetable, + /*@only@*/ fileloc p_loc) ; + +extern void metaStateInfo_setDefaultRefValue (metaStateInfo p_info, int p_val) + /*@modifies p_info@*/ ; + +extern void metaStateInfo_setDefaultParamValue (metaStateInfo p_info, int p_val) + /*@modifies p_info@*/ ; + +extern int metaStateInfo_getDefaultValue (metaStateInfo p_info, sRef p_s) /*@*/ ; + +extern int metaStateInfo_getDefaultRefValue (metaStateInfo p_info) /*@*/ ; +extern int metaStateInfo_getDefaultParamValue (metaStateInfo p_info) /*@*/ ; +extern int metaStateInfo_getDefaultGlobalValue (metaStateInfo p_info) /*@*/ ; + +extern /*@observer@*/ mtContextNode metaStateInfo_getContext (metaStateInfo p_info) /*@*/ ; +extern /*@observer@*/ cstring metaStateInfo_getName (metaStateInfo p_info) /*@*/ ; +extern /*@observer@*/ fileloc metaStateInfo_getLoc (metaStateInfo p_info) /*@*/ ; + +extern /*@exposed@*/ stateCombinationTable metaStateInfo_getTransferTable (metaStateInfo p_info) /*@*/ ; + +extern /*@exposed@*/ stateCombinationTable metaStateInfo_getMergeTable (metaStateInfo p_info) /*@*/ ; + +extern /*@only@*/ cstring metaStateInfo_unparse (metaStateInfo p_info) /*@*/ ; + +extern /*@observer@*/ cstring metaStateInfo_unparseValue (metaStateInfo p_info, int p_value) /*@*/ ; + +extern void metaStateInfo_free (/*@only@*/ metaStateInfo) ; + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/metaStateTable.h b/src/Headers/metaStateTable.h new file mode 100644 index 0000000..9420cd9 --- /dev/null +++ b/src/Headers/metaStateTable.h @@ -0,0 +1,87 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** metaStateTable.h +** +** A global table that keeps information on the user-defined states. +** +** For each state definition, we need: +** +** o A name +** o State Type (what kinds of things have this state value) +** o Number of values, and their mnemonics +** o A combination table (stateCombinationTable) for how different states combine as l/rvalues +** o Annotations (and map between annotation and value) +** o Context information (where can annotations be used) +*/ + +# ifndef MSTABLE_H +# define MSTABLE_H + +/*@constant null metaStateTable metaStateTable_undefined; @*/ +# define metaStateTable_undefined genericTable_undefined + +extern /*@falsenull@*/ bool metaStateTable_isDefined(metaStateTable) /*@*/ ; +# define metaStateTable_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) + +extern /*@truenull@*/ bool metaStateTable_isUndefined(metaStateTable) /*@*/ ; +# define metaStateTable_isUndefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) + +/*@constant int DEFAULT_MSTABLE_SIZE@*/ +# define DEFAULT_MSTABLE_SIZE 32 + +extern /*@only@*/ metaStateTable metaStateTable_create (void) /*@*/ ; +# define metaStateTable_create() ((metaStateTable) genericTable_create (DEFAULT_MSTABLE_SIZE)) + +extern void metaStateTable_insert (metaStateTable p_h, + /*@only@*/ cstring p_key, + /*@only@*/ metaStateInfo p_metaState) + /*@modifies p_h@*/ ; + +extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ metaStateInfo + metaStateTable_lookup (metaStateTable p_h, cstring p_key) /*@*/ ; + +# define metaStateTable_lookup(p_h,p_key) \ + (/*@i523@*/ /*@access metaStateInfo@*/ (metaStateInfo) genericTable_lookup ((genericTable) (p_h), p_key) /*@noaccess metaStateInfo@*/) + +extern bool metaStateTable_contains (metaStateTable p_h, cstring p_key) /*@*/ ; +# define metaStateTable_contains(p_h,p_key) \ + (genericTable_contains ((genericTable) (p_h), p_key)) + +extern /*@unused@*/ /*@only@*/ cstring metaStateTable_stats(metaStateTable p_h); +# define metaStateTable_stats(p_h) genericTable_stats ((genericTable) (p_h)) + +extern void metaStateTable_free (/*@only@*/ metaStateTable p_h); +# define metaStateTable_free(p_h) (genericTable_free ((genericTable) (p_h))) + +/*@iter metaStateTable_elements (sef metaStateTable p_g, yield exposed cstring m_key, yield exposed metaStateInfo m_el)@*/ + +/*@access genericTable@*/ +# define metaStateTable_elements(p_g, m_key, m_el) \ + { int m_ind; if (metaStateTable_isDefined (p_g)) \ + { for (m_ind = 0 ; m_ind < (p_g)->size; m_ind++) \ + { ghbucket m_hb; m_hb = (p_g)->buckets[m_ind]; \ + if (m_hb != NULL) { \ + int m_j; \ + for (m_j = 0; m_j < (m_hb)->size; m_j++) { \ + cstring m_key; metaStateInfo m_el; m_key = (m_hb)->entries[m_j]->key; \ + /*@access metaStateInfo@*/ \ + m_el = (metaStateInfo) ((m_hb)->entries[m_j]->val); \ + /*@noaccess metaStateInfo@*/ +# define end_metaStateTable_elements }}}}} +/*@noaccess genericTable@*/ + +extern cstring metaStateTable_unparse (metaStateTable p_h) ; + +extern int metaStateTable_size (metaStateTable p_h); +# define metaStateTable_size(p_h) (genericTable_size(p_h)) + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/misc.h b/src/Headers/misc.h index 7231b59..d631e16 100644 --- a/src/Headers/misc.h +++ b/src/Headers/misc.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -20,31 +20,6 @@ extern void assertSet (/*@special@*/ /*@sef@*/ /*@unused@*/ void *p_x) /*@sets p_x, *p_x@*/ ; # define assertSet(x) ; -extern bool isLCLfile (cstring p_s) /*@*/ ; -extern bool isCext(char *p_ext) /*@*/ ; -extern char *addExtension(char *p_s, const char *p_suffix); - -extern char *removeExtension (char *p_s, const char *p_suffix) /*@*/ ; - -# ifndef NOLCL -extern char *removePath (char *p_s) /*@*/ ; -# endif - -extern char *removePathFree (/*@only@*/ char *p_s) /*@*/ ; -extern char *removeAnyExtension (char *p_s) /*@*/ ; - -extern int getInt (char **p_s) /*@modifies *p_s@*/ ; -extern char loadChar (char **p_s) /*@modifies *p_s@*/ ; -extern double getDouble (char **p_s) /*@modifies *p_s@*/ ; -extern void docheckChar (char ** p_s, char p_c, char *p_file, int p_line) - /*@modifies *p_s;@*/; - -extern bool optCheckChar (char **p_s, char p_c) /*@modifies *p_s;@*/ ; -extern void checkChar (char **p_s, char p_c) /*@modifies *p_s;@*/ ; -# define checkChar(s,c) (docheckChar (s, c, __FILE__, __LINE__)) -extern /*@only@*/ /*@null@*/ char *getWord (char **p_s) /*@modifies *p_s@*/ ; -extern cstring getStringWord (char **p_s) /*@modifies *p_s@*/ ; - /*@-czechfcns@*/ extern int size_toInt (size_t p_x) /*@*/ ; extern long size_toLong (size_t p_x) /*@*/ ; @@ -70,6 +45,7 @@ extern char *mstring_append (/*@only@*/ char *p_s1, char p_c); extern char *mstring_copy (/*@null@*/ char *p_s1) /*@*/ ; extern bool mstring_equalPrefix (const char *p_c1, const char *p_c2) /*@*/ ; extern bool mstring_equal (/*@null@*/ const char *p_s1, /*@null@*/ const char *p_s2) /*@*/ ; +extern bool mstring_containsChar (const char *p_s, char p_c) /*@*/ ; extern int mstring_length (/*@sef@*/ /*@null@*/ char *p_s) /*@*/ ; # define mstring_length(s) \ @@ -103,6 +79,7 @@ extern int int_compare (/*@sef@*/ int p_x, /*@sef@*/ int p_y) /*@*/ ; /*@notfunction@*/ # define GET(s) ((s *)smalloc(sizeof(s))) +/*@-czechfcns@*/ extern bool isHeaderFile (cstring) /*@*/ ; extern void fputline (FILE *p_out, char *p_s) /*@modifies p_out@*/; @@ -111,16 +88,18 @@ extern int int_log (int p_x) /*@*/ ; extern char char_fromInt (int p_x) /*@*/ ; -extern /*@observer@*/ /*@null@*/ char * - filenameExtension (/*@returned@*/ char *p_s) /*@*/ ; - -extern /*@exposed@*/ char *removePreDirs (char *p_s); -extern void checkUngetc (int p_c, FILE *p_f) /*@modifies *p_f@*/ ; +extern /*@exposed@*/ cstring removePreDirs (cstring p_s); /* These are defined by the bison library (?) */ extern /*@external@*/ int isatty (int); extern /*@external@*/ int yywrap (void); +/*@=czechfcns@*/ # else # error "Multiple include" # endif + + + + + diff --git a/src/Headers/modifyNode.h b/src/Headers/modifyNode.h index 8e9bce0..7e55ab9 100644 --- a/src/Headers/modifyNode.h +++ b/src/Headers/modifyNode.h @@ -1,9 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _modifyNode { + +typedef struct { ltoken tok; bool modifiesNothing; bool hasStoreRefList; diff --git a/src/Headers/mtAnnotationDecl.h b/src/Headers/mtAnnotationDecl.h new file mode 100644 index 0000000..89d69f8 --- /dev/null +++ b/src/Headers/mtAnnotationDecl.h @@ -0,0 +1,41 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtAnnotationDecl.h +*/ + +# ifndef MTANNOTATIONDECL_H +# define MTANNOTATIONDECL_H + +struct s_mtAnnotationDecl { + cstring name; + cstring value; + mtContextNode context; + fileloc loc; +} ; + +extern cstring mtAnnotationDecl_unparse (mtAnnotationDecl p_node) /*@*/ ; + +extern mtAnnotationDecl +mtAnnotationDecl_create (/*@only@*/ mttok p_id, /*@only@*/ mtContextNode p_c, /*@only@*/ mttok p_value) /*@*/ ; + +extern /*@observer@*/ cstring mtAnnotationDecl_getName (mtAnnotationDecl p_annot) /*@*/ ; +# define mtAnnotationDecl_getName(annot) ((annot)->name) + +extern /*@observer@*/ cstring mtAnnotationDecl_getValue (mtAnnotationDecl p_annot) /*@*/ ; +# define mtAnnotationDecl_getValue(annot) ((annot)->value) + +extern /*@only@*/ mtContextNode mtAnnotationDecl_stealContext (mtAnnotationDecl p_annot) /*@modifies p_annot@*/ ; + +extern /*@observer@*/ mtContextNode mtAnnotationDecl_getContext (mtAnnotationDecl p_annot) /*@*/ ; +# define mtAnnotationDecl_getContext(annot) ((annot)->context) + +extern /*@observer@*/ fileloc mtAnnotationDecl_getLoc (mtAnnotationDecl p_annot) /*@*/ ; +# define mtAnnotationDecl_getLoc(annot) ((annot)->loc) /*@i25@*/ + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtAnnotationList.h b/src/Headers/mtAnnotationList.h new file mode 100644 index 0000000..43632e4 --- /dev/null +++ b/src/Headers/mtAnnotationList.h @@ -0,0 +1,63 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +# ifndef MTANNOTATIONLIST_H +# define MTANNOTATIONLIST_H + +struct s_mtAnnotationList +{ + int nelements; + int nspace; + /*@reldef@*/ /*@relnull@*/ mtAnnotationDecl *elements; +} ; + +/*@constant null mtAnnotationList mtAnnotationList_undefined;@*/ +# define mtAnnotationList_undefined ((mtAnnotationList) NULL) + +extern /*@falsenull@*/ bool mtAnnotationList_isDefined (mtAnnotationList p_s) /*@*/ ; +# define mtAnnotationList_isDefined(s) ((s) != mtAnnotationList_undefined) + +extern int mtAnnotationList_size (/*@sef@*/ mtAnnotationList) /*@*/ ; +# define mtAnnotationList_size(s) (mtAnnotationList_isDefined (s) ? (s)->nelements : 0) + +extern /*@unused@*/ /*@falsenull@*/ bool mtAnnotationList_empty (/*@sef@*/ mtAnnotationList) /*@*/ ; +# define mtAnnotationList_empty(s) (mtAnnotationList_size(s) == 0) + +extern cstring mtAnnotationList_unparseSep (mtAnnotationList p_s, cstring p_sep) /*@*/ ; + +extern /*@unused@*/ /*@only@*/ mtAnnotationList mtAnnotationList_new (void) /*@*/ ; + +extern /*@only@*/ mtAnnotationList mtAnnotationList_single (/*@keep@*/ mtAnnotationDecl p_el) /*@*/ ; + +extern mtAnnotationList + mtAnnotationList_add (/*@returned@*/ mtAnnotationList p_s, /*@keep@*/ mtAnnotationDecl p_el) + /*@modifies p_s@*/ ; + +extern mtAnnotationList + mtAnnotationList_prepend (/*@returned@*/ mtAnnotationList p_s, /*@keep@*/ mtAnnotationDecl p_el) + /*@modifies p_s@*/ ; + +extern /*@unused@*/ /*@only@*/ cstring mtAnnotationList_unparse (mtAnnotationList p_s) ; +extern void mtAnnotationList_free (/*@only@*/ mtAnnotationList p_s) ; + +/*@constant int mtAnnotationListBASESIZE;@*/ +# define mtAnnotationListBASESIZE MIDBASESIZE + +/*@iter mtAnnotationList_elements (sef mtAnnotationList x, yield exposed mtAnnotationDecl el); @*/ +# define mtAnnotationList_elements(x, m_el) \ + { if (mtAnnotationList_isDefined (x)) { \ + int m_ind; mtAnnotationDecl *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { mtAnnotationDecl m_el = *(m_elements++); + +# define end_mtAnnotationList_elements }}} + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/mtAnnotationsNode.h b/src/Headers/mtAnnotationsNode.h new file mode 100644 index 0000000..d795f14 --- /dev/null +++ b/src/Headers/mtAnnotationsNode.h @@ -0,0 +1,27 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtAnnotationsNode.h +*/ + +# ifndef MTANNOTATIONSNODE_H +# define MTANNOTATIONSNODE_H + +struct s_mtAnnotationsNode { + mtAnnotationList annots; +} ; + +extern mtAnnotationsNode mtAnnotationsNode_create (/*@only@*/ mtAnnotationList p_annots) /*@*/ ; + +extern /*@observer@*/ mtAnnotationList mtAnnotationsNode_getAnnotations (mtAnnotationsNode p_node) /*@*/ ; +# define mtAnnotationsNode_getAnnotations(node) ((node)->annots) + +extern cstring mtAnnotationsNode_unparse (mtAnnotationsNode p_node) /*@*/ ; +extern void mtAnnotationsNode_free (/*@only@*/ mtAnnotationsNode) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtContextNode.h b/src/Headers/mtContextNode.h new file mode 100644 index 0000000..b87e6d9 --- /dev/null +++ b/src/Headers/mtContextNode.h @@ -0,0 +1,50 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtContextNode.h +*/ + +# ifndef MTCONTEXTNODE_H +# define MTCONTEXTNODE_H + +typedef enum +{ + MTC_ANY, MTC_PARAM, MTC_REFERENCE, MTC_CLAUSE +} mtContextKind ; + +struct s_mtContextNode { + mtContextKind context; + ctype type; /* This state only applies to types matching. */ +} ; + +/*@constant null mtContextNode mtContextNode_undefined@*/ +# define mtContextNode_undefined ((mtContextNode) 0) + +extern /*@falsenull@*/ bool mtContextNode_isDefined (mtContextNode p_s) /*@*/ ; +# define mtContextNode_isDefined(s) ((s) != mtContextNode_undefined) + +extern cstring mtContextNode_unparse (mtContextNode) /*@*/ ; + +extern mtContextNode mtContextNode_createAny (void) /*@*/ ; +extern mtContextNode mtContextNode_createParameter (ctype) /*@*/ ; +extern mtContextNode mtContextNode_createReference (ctype) /*@*/ ; +extern mtContextNode mtContextNode_createClause (ctype) /*@*/ ; + +extern void mtContextNode_free (/*@only@*/ mtContextNode) ; + +extern bool mtContextNode_isRef (mtContextNode) /*@*/; +extern bool mtContextNode_isParameter (mtContextNode) /*@*/; +extern bool mtContextNode_isClause (mtContextNode) /*@*/; + +extern bool mtContextNode_matchesEntry (mtContextNode, uentry) /*@*/ ; +extern bool mtContextNode_matchesRef (mtContextNode, sRef) /*@*/ ; + +extern bool mtContextNode_matchesRefStrict (mtContextNode, sRef) /*@*/ ; + /* Doesn't allow matches with unknown type. */ + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtDeclarationNode.h b/src/Headers/mtDeclarationNode.h new file mode 100644 index 0000000..fe4ecfe --- /dev/null +++ b/src/Headers/mtDeclarationNode.h @@ -0,0 +1,34 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtDeclarationNode.h +*/ + +# ifndef MTDECLARATIONNODE_H +# define MTDECLARATIONNODE_H + +struct s_mtDeclarationNode { + fileloc loc; + cstring name; + mtDeclarationPieces pieces; +} ; + +/* mtDeclarationNode defined in forwardTypes.h */ + +extern mtDeclarationNode mtDeclarationNode_create (/*@only@*/ mttok, + /*@only@*/ mtDeclarationPieces) /*@*/ ; + +extern /*@observer@*/ cstring mtDeclarationNode_getName (mtDeclarationNode) /*@*/ ; + +extern /*@observer@*/ fileloc mtDeclarationNode_getLoc (mtDeclarationNode) /*@*/ ; + +extern cstring mtDeclarationNode_unparse (mtDeclarationNode p_node) /*@*/ ; +extern void mtDeclarationNode_process (mtDeclarationNode p_node, bool p_isglobal) /*@modifies internalState@*/ ; +extern void mtDeclarationNode_free (/*@only@*/ mtDeclarationNode p_node) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtDeclarationPiece.h b/src/Headers/mtDeclarationPiece.h new file mode 100644 index 0000000..9cfb196 --- /dev/null +++ b/src/Headers/mtDeclarationPiece.h @@ -0,0 +1,69 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtDeclarationPiece.h +*/ + +# ifndef MTDECLARATIONPIECE_H +# define MTDECLARATIONPIECE_H + +/*@private@*/ typedef enum { + MTP_DEAD, + MTP_CONTEXT, MTP_VALUES, MTP_DEFAULTS, MTP_DEFAULTVALUE, + MTP_ANNOTATIONS, MTP_MERGE, + MTP_TRANSFERS, MTP_PRECONDITIONS, MTP_POSTCONDITIONS, + MTP_LOSERS +} mtPieceKind; + +struct s_mtDeclarationPiece { + mtPieceKind kind; + /*@relnull@*/ void *node; /* oneof mt*Node or mttok */ +} ; + +/* mtDeclarationPiece defined in forwardTypes.h */ + +/*@constant null mtDeclarationPiece mtDeclarationPiece_undefined; @*/ +# define mtDeclarationPiece_undefined NULL + +extern /*@falsenull@*/ bool mtDeclarationPiece_isDefined(mtDeclarationPiece) /*@*/ ; +# define mtDeclarationPiece_isDefined(p_h) ((p_h) != mtDeclarationPiece_undefined) + +extern /*@truenull@*/ bool mtDeclarationPiece_isUndefined(mtDeclarationPiece) /*@*/ ; +# define mtDeclarationPiece_isUndefined(p_h) ((p_h) == mtDeclarationPiece_undefined) + +extern mtDeclarationPiece mtDeclarationPiece_createContext (/*@only@*/ mtContextNode) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createValues (/*@only@*/ mtValuesNode) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createDefaults (/*@only@*/ mtDefaultsNode) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createValueDefault (/*@only@*/ mttok) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createAnnotations (/*@only@*/ mtAnnotationsNode) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createMerge (/*@only@*/ mtMergeNode) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createTransfers (/*@only@*/ mtTransferClauseList) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createPostconditions (/*@only@*/ mtTransferClauseList) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createPreconditions (/*@only@*/ mtTransferClauseList) /*@*/ ; +extern mtDeclarationPiece mtDeclarationPiece_createLosers (/*@only@*/ mtLoseReferenceList) /*@*/ ; + +extern /*@observer@*/ mtContextNode mtDeclarationPiece_getContext (mtDeclarationPiece) /*@*/ ; +extern /*@only@*/ mtContextNode mtDeclarationPiece_stealContext (mtDeclarationPiece p_node) /*@modifies p_node@*/ ; + +extern /*@observer@*/ mtValuesNode mtDeclarationPiece_getValues (mtDeclarationPiece) /*@*/ ; +extern /*@observer@*/ mtDefaultsNode mtDeclarationPiece_getDefaults (mtDeclarationPiece) /*@*/ ; +extern /*@observer@*/ mtAnnotationsNode mtDeclarationPiece_getAnnotations (mtDeclarationPiece) /*@*/ ; +extern /*@observer@*/ mtMergeNode mtDeclarationPiece_getMerge (mtDeclarationPiece) /*@*/ ; +extern /*@observer@*/ mtTransferClauseList mtDeclarationPiece_getTransfers (mtDeclarationPiece) /*@*/ ; +extern /*@observer@*/ mtTransferClauseList mtDeclarationPiece_getPostconditions (mtDeclarationPiece) /*@*/ ; +extern /*@observer@*/ mtTransferClauseList mtDeclarationPiece_getPreconditions (mtDeclarationPiece) /*@*/ ; +extern /*@observer@*/ cstring mtDeclarationPiece_getDefaultValue (mtDeclarationPiece) /*@*/ ; + +extern /*@observer@*/ mtLoseReferenceList mtDeclarationPiece_getLosers (mtDeclarationPiece) /*@*/ ; + +extern bool mtDeclarationPiece_matchKind (mtDeclarationPiece p_p, mtPieceKind p_kind) /*@*/ ; + +extern void mtDeclarationPiece_free (/*@only@*/ mtDeclarationPiece p_node) ; +extern /*@only@*/ cstring mtDeclarationPiece_unparse (mtDeclarationPiece p_p) /*@*/ ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtDeclarationPieces.h b/src/Headers/mtDeclarationPieces.h new file mode 100644 index 0000000..26be9cd --- /dev/null +++ b/src/Headers/mtDeclarationPieces.h @@ -0,0 +1,44 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtDeclarationPieces.h +*/ + +# ifndef mtDeclarationPieces_H +# define mtDeclarationPieces_H + +struct s_mtDeclarationPieces { + mtDeclarationPiece thisPiece; + /*@null@*/ mtDeclarationPieces rest; +} ; + +/* mtDeclarationPieces defined in forwardTypes.h */ + +/*@constant null mtDeclarationPieces mtDeclarationPieces_undefined; @*/ +# define mtDeclarationPieces_undefined NULL + +extern /*@falsenull@*/ bool mtDeclarationPieces_isDefined(mtDeclarationPieces) /*@*/ ; +# define mtDeclarationPieces_isDefined(p_h) ((p_h) != mtDeclarationPieces_undefined) + +extern /*@truenull@*/ bool mtDeclarationPieces_isUndefined(mtDeclarationPieces) /*@*/ ; +# define mtDeclarationPieces_isUndefined(p_h) ((p_h) == mtDeclarationPieces_undefined) + +extern mtDeclarationPieces mtDeclarationPieces_create (void) /*@*/ ; + +extern /*@only@*/ mtDeclarationPieces +mtDeclarationPieces_append (/*@only@*/ mtDeclarationPieces p_node, + /*@only@*/ mtDeclarationPiece) + /*@modifies p_node*/ ; + +extern /*@exposed@*/ mtDeclarationPiece +mtDeclarationPieces_findPiece (mtDeclarationPieces, mtPieceKind) /*@*/ ; + +extern cstring mtDeclarationPieces_unparse (mtDeclarationPieces p_node) /*@*/ ; +extern void mtDeclarationPieces_free (/*@only@*/ mtDeclarationPieces p_node) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtDefaultsDecl.h b/src/Headers/mtDefaultsDecl.h new file mode 100644 index 0000000..66a0d15 --- /dev/null +++ b/src/Headers/mtDefaultsDecl.h @@ -0,0 +1,38 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtDefaultsDecl.h +*/ + +# ifndef mtDefaultsDecl_H +# define mtDefaultsDecl_H + +struct s_mtDefaultsDecl { + mtContextNode context; + cstring value; + fileloc loc; +} ; + +extern cstring mtDefaultsDecl_unparse (mtDefaultsDecl p_node) /*@*/ ; + +extern mtDefaultsDecl +mtDefaultsDecl_create (/*@only@*/ mtContextNode p_context, + /*@only@*/ mttok p_value) /*@*/ ; + +extern /*@observer@*/ fileloc mtDefaultsDecl_getLoc (mtDefaultsDecl) /*@*/ ; +# define mtDefaultsDecl_getLoc(p_dd) ((p_dd)->loc) + +extern /*@observer@*/ mtContextNode mtDefaultsDecl_getContext (mtDefaultsDecl) /*@*/ ; +# define mtDefaultsDecl_getContext(p_dd) ((p_dd)->context) + +extern /*@observer@*/ cstring mtDefaultsDecl_getValue (mtDefaultsDecl) /*@*/ ; +# define mtDefaultsDecl_getValue(p_dd) ((p_dd)->value) + +extern void mtDefaultsDecl_free (/*@only@*/ mtDefaultsDecl) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtDefaultsDeclList.h b/src/Headers/mtDefaultsDeclList.h new file mode 100644 index 0000000..3fb005b --- /dev/null +++ b/src/Headers/mtDefaultsDeclList.h @@ -0,0 +1,68 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ + +# ifndef mtDefaultsDeclLIST_H +# define mtDefaultsDeclLIST_H + +/*@private@*/ typedef /*@only@*/ mtDefaultsDecl o_mtDefaultsDecl; + +struct s_mtDefaultsDeclList +{ + int nelements; + int nspace; + /*@reldef@*/ /*@relnull@*/ o_mtDefaultsDecl *elements; +} ; + +/*@constant null mtDefaultsDeclList mtDefaultsDeclList_undefined;@*/ +# define mtDefaultsDeclList_undefined ((mtDefaultsDeclList) NULL) + +extern /*@falsenull@*/ bool mtDefaultsDeclList_isDefined (mtDefaultsDeclList p_s) /*@*/ ; +# define mtDefaultsDeclList_isDefined(s) ((s) != mtDefaultsDeclList_undefined) + +extern int mtDefaultsDeclList_size (/*@sef@*/ mtDefaultsDeclList) /*@*/ ; +# define mtDefaultsDeclList_size(s) (mtDefaultsDeclList_isDefined (s) ? (s)->nelements : 0) + +extern /*@unused@*/ /*@falsenull@*/ bool mtDefaultsDeclList_empty (/*@sef@*/ mtDefaultsDeclList) /*@*/ ; +# define mtDefaultsDeclList_empty(s) (mtDefaultsDeclList_size(s) == 0) + +extern cstring mtDefaultsDeclList_unparseSep (mtDefaultsDeclList p_s, cstring p_sep) /*@*/ ; + +extern /*@unused@*/ /*@only@*/ mtDefaultsDeclList mtDefaultsDeclList_new (void) /*@*/ ; + +extern /*@only@*/ mtDefaultsDeclList mtDefaultsDeclList_single (/*@keep@*/ mtDefaultsDecl p_el) /*@*/ ; + +extern mtDefaultsDeclList + mtDefaultsDeclList_add (/*@returned@*/ mtDefaultsDeclList p_s, /*@keep@*/ mtDefaultsDecl p_el) + /*@modifies p_s@*/ ; + +extern mtDefaultsDeclList + mtDefaultsDeclList_prepend (/*@returned@*/ mtDefaultsDeclList p_s, /*@keep@*/ mtDefaultsDecl p_el) + /*@modifies p_s@*/ ; + +extern /*@unused@*/ /*@only@*/ cstring + mtDefaultsDeclList_unparse (mtDefaultsDeclList p_s) ; + +extern void mtDefaultsDeclList_free (/*@only@*/ mtDefaultsDeclList p_s) ; + +/*@constant int mtDefaultsDeclListBASESIZE;@*/ +# define mtDefaultsDeclListBASESIZE MIDBASESIZE + +/*@iter mtDefaultsDeclList_elements (sef mtDefaultsDeclList x, yield exposed mtDefaultsDecl el); @*/ +# define mtDefaultsDeclList_elements(x, m_el) \ + { if (mtDefaultsDeclList_isDefined (x)) { \ + int m_ind; mtDefaultsDecl *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { mtDefaultsDecl m_el = *(m_elements++); + +# define end_mtDefaultsDeclList_elements }}} + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/mtDefaultsNode.h b/src/Headers/mtDefaultsNode.h new file mode 100644 index 0000000..90fd292 --- /dev/null +++ b/src/Headers/mtDefaultsNode.h @@ -0,0 +1,30 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtDefaultsNode.h +*/ + +# ifndef MTDEFAULTSNODE_H +# define MTDEFAULTSNODE_H + +struct s_mtDefaultsNode { + mtDefaultsDeclList decls; + fileloc loc; +} ; + +extern mtDefaultsNode mtDefaultsNode_create (/*@only@*/ mttok, + /*@only@*/ mtDefaultsDeclList) /*@*/ ; + +extern void mtDefaultsNode_free (/*@only@*/ mtDefaultsNode) ; + +extern /*@observer@*/ mtDefaultsDeclList mtDefaultsNode_getDecls (mtDefaultsNode) /*@*/ ; +# define mtDefaultsNode_getDecls(n) ((n)->decls) + +extern cstring mtDefaultsNode_unparse (mtDefaultsNode p_node) /*@*/ ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtLoseReference.h b/src/Headers/mtLoseReference.h new file mode 100644 index 0000000..0636d1a --- /dev/null +++ b/src/Headers/mtLoseReference.h @@ -0,0 +1,38 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtLoseReference.h +*/ + +# ifndef MTLoseReference_H +# define MTLoseReference_H + +struct s_mtLoseReference { + fileloc loc; + cstring fromname; + mtTransferAction action; +} ; + +extern cstring mtLoseReference_unparse (mtLoseReference p_node) /*@*/ ; + +extern mtLoseReference +mtLoseReference_create (/*@only@*/ mttok p_fromname, + /*@only@*/ mtTransferAction p_action) /*@*/ ; + +extern /*@observer@*/ cstring mtLoseReference_getFrom (mtLoseReference) /*@*/ ; +# define mtLoseReference_getFrom(p_trans) ((p_trans)->fromname) + +extern /*@observer@*/ mtTransferAction mtLoseReference_getAction (mtLoseReference) /*@*/ ; +# define mtLoseReference_getAction(p_trans) ((p_trans)->action) + +extern /*@observer@*/ fileloc mtLoseReference_getLoc (mtLoseReference) /*@*/ ; +# define mtLoseReference_getLoc(p_trans) ((p_trans)->loc) + +extern void mtLoseReference_free (/*@only@*/ mtLoseReference p_transfer) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtLoseReferenceList.h b/src/Headers/mtLoseReferenceList.h new file mode 100644 index 0000000..c58b9c2 --- /dev/null +++ b/src/Headers/mtLoseReferenceList.h @@ -0,0 +1,66 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ + +# ifndef MTLoseReferenceLIST_H +# define MTLoseReferenceLIST_H + +/*@private@*/ typedef /*@only@*/ mtLoseReference o_mtLoseReference; + +struct s_mtLoseReferenceList +{ + int nelements; + int nspace; + /*@reldef@*/ /*@relnull@*/ o_mtLoseReference *elements; +} ; + +/*@constant null mtLoseReferenceList mtLoseReferenceList_undefined;@*/ +# define mtLoseReferenceList_undefined ((mtLoseReferenceList) NULL) + +extern /*@falsenull@*/ bool mtLoseReferenceList_isDefined (mtLoseReferenceList p_s) /*@*/ ; +# define mtLoseReferenceList_isDefined(s) ((s) != mtLoseReferenceList_undefined) + +extern int mtLoseReferenceList_size (/*@sef@*/ mtLoseReferenceList) /*@*/ ; +# define mtLoseReferenceList_size(s) (mtLoseReferenceList_isDefined (s) ? (s)->nelements : 0) + +extern /*@unused@*/ /*@falsenull@*/ bool mtLoseReferenceList_empty (/*@sef@*/ mtLoseReferenceList) /*@*/ ; +# define mtLoseReferenceList_empty(s) (mtLoseReferenceList_size(s) == 0) + +extern cstring mtLoseReferenceList_unparseSep (mtLoseReferenceList p_s, cstring p_sep) /*@*/ ; + +extern /*@unused@*/ /*@only@*/ mtLoseReferenceList mtLoseReferenceList_new (void) /*@*/ ; + +extern /*@only@*/ mtLoseReferenceList mtLoseReferenceList_single (/*@keep@*/ mtLoseReference p_el) /*@*/ ; + +extern mtLoseReferenceList + mtLoseReferenceList_add (/*@returned@*/ mtLoseReferenceList p_s, /*@keep@*/ mtLoseReference p_el) + /*@modifies p_s@*/ ; + +extern mtLoseReferenceList + mtLoseReferenceList_prepend (/*@returned@*/ mtLoseReferenceList p_s, /*@keep@*/ mtLoseReference p_el) + /*@modifies p_s@*/ ; + +extern /*@unused@*/ /*@only@*/ cstring mtLoseReferenceList_unparse (mtLoseReferenceList p_s) ; +extern void mtLoseReferenceList_free (/*@only@*/ mtLoseReferenceList p_s) ; + +/*@constant int mtLoseReferenceListBASESIZE;@*/ +# define mtLoseReferenceListBASESIZE MIDBASESIZE + +/*@iter mtLoseReferenceList_elements (sef mtLoseReferenceList x, yield exposed mtLoseReference el); @*/ +# define mtLoseReferenceList_elements(x, m_el) \ + { if (mtLoseReferenceList_isDefined (x)) { \ + int m_ind; mtLoseReference *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { mtLoseReference m_el = *(m_elements++); + +# define end_mtLoseReferenceList_elements }}} + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/mtMergeClause.h b/src/Headers/mtMergeClause.h new file mode 100644 index 0000000..6f9697f --- /dev/null +++ b/src/Headers/mtMergeClause.h @@ -0,0 +1,40 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtMergeClause.h +*/ + +# ifndef MTMERGECLAUSE_H +# define MTMERGECLAUSE_H + +struct s_mtMergeClause { + mtMergeItem item1, item2; + mtTransferAction action; +} ; + +extern cstring mtMergeClause_unparse (mtMergeClause p_node) /*@*/ ; + +extern mtMergeClause +mtMergeClause_create (/*@only@*/ mtMergeItem p_item1, /*@only@*/ mtMergeItem p_item2, + /*@only@*/ mtTransferAction p_action) ; + +extern /*@observer@*/ mtMergeItem mtMergeClause_getItem1 (mtMergeClause) /*@*/ ; +# define mtMergeClause_getItem1(p_merge) ((p_merge)->item1) + +extern /*@observer@*/ mtMergeItem mtMergeClause_getItem2 (mtMergeClause) /*@*/ ; +# define mtMergeClause_getItem2(p_merge) ((p_merge)->item2) + +extern /*@observer@*/ mtTransferAction mtMergeClause_getAction (mtMergeClause) /*@*/ ; +# define mtMergeClause_getAction(p_merge) ((p_merge)->action) + +extern /*@observer@*/ fileloc mtMergeClause_getLoc (mtMergeClause) /*@*/ ; +# define mtMergeClause_getLoc(p_merge) (mtMergeItem_getLoc ((p_merge)->item1)) + +extern void mtMergeClause_free (/*@only@*/ mtMergeClause p_merge) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtMergeClauseList.h b/src/Headers/mtMergeClauseList.h new file mode 100644 index 0000000..30c7c1b --- /dev/null +++ b/src/Headers/mtMergeClauseList.h @@ -0,0 +1,66 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ + +# ifndef MTMERGECLAUSELIST_H +# define MTMERGECLAUSELIST_H + +/*@private@*/ typedef /*@only@*/ mtMergeClause o_mtMergeClause; + +struct s_mtMergeClauseList +{ + int nelements; + int nspace; + /*@reldef@*/ /*@relnull@*/ o_mtMergeClause *elements; +} ; + +/*@constant null mtMergeClauseList mtMergeClauseList_undefined;@*/ +# define mtMergeClauseList_undefined ((mtMergeClauseList) NULL) + +extern /*@falsenull@*/ bool mtMergeClauseList_isDefined (mtMergeClauseList p_s) /*@*/ ; +# define mtMergeClauseList_isDefined(s) ((s) != mtMergeClauseList_undefined) + +extern int mtMergeClauseList_size (/*@sef@*/ mtMergeClauseList) /*@*/ ; +# define mtMergeClauseList_size(s) (mtMergeClauseList_isDefined (s) ? (s)->nelements : 0) + +extern /*@unused@*/ /*@falsenull@*/ bool mtMergeClauseList_empty (/*@sef@*/ mtMergeClauseList) /*@*/ ; +# define mtMergeClauseList_empty(s) (mtMergeClauseList_size(s) == 0) + +extern cstring mtMergeClauseList_unparseSep (mtMergeClauseList p_s, cstring p_sep) /*@*/ ; + +extern /*@unused@*/ /*@only@*/ mtMergeClauseList mtMergeClauseList_new (void) /*@*/ ; + +extern /*@only@*/ mtMergeClauseList mtMergeClauseList_single (/*@keep@*/ mtMergeClause p_el) /*@*/ ; + +extern /*@unused@*/ mtMergeClauseList + mtMergeClauseList_add (/*@returned@*/ mtMergeClauseList p_s, /*@keep@*/ mtMergeClause p_el) + /*@modifies p_s@*/ ; + +extern mtMergeClauseList + mtMergeClauseList_prepend (/*@returned@*/ mtMergeClauseList p_s, /*@keep@*/ mtMergeClause p_el) + /*@modifies p_s@*/ ; + +extern /*@unused@*/ /*@only@*/ cstring mtMergeClauseList_unparse (mtMergeClauseList p_s) ; +extern void mtMergeClauseList_free (/*@only@*/ mtMergeClauseList p_s) ; + +/*@constant int mtMergeClauseListBASESIZE;@*/ +# define mtMergeClauseListBASESIZE MIDBASESIZE + +/*@iter mtMergeClauseList_elements (sef mtMergeClauseList x, yield exposed mtMergeClause el); @*/ +# define mtMergeClauseList_elements(x, m_el) \ + { if (mtMergeClauseList_isDefined (x)) { \ + int m_ind; mtMergeClause *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { mtMergeClause m_el = *(m_elements++); + +# define end_mtMergeClauseList_elements }}} + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/mtMergeItem.h b/src/Headers/mtMergeItem.h new file mode 100644 index 0000000..cfc58e0 --- /dev/null +++ b/src/Headers/mtMergeItem.h @@ -0,0 +1,40 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtMergeItem.h +*/ + +# ifndef MTMERGEITEM_H +# define MTMERGEITEM_H + +struct s_mtMergeItem { + enum { MTMK_VALUE, MTMK_STAR } kind; + cstring value; /* for MTAK_VALUE only */ + fileloc loc; +} ; + +extern void mtMergeItem_free (/*@only@*/ mtMergeItem p_node) ; + +extern cstring mtMergeItem_unparse (mtMergeItem p_node) /*@*/ ; + +extern mtMergeItem +mtMergeItem_createValue (/*@only@*/ mttok p_value) /*@*/ ; + +extern mtMergeItem +mtMergeItem_createStar (/*@only@*/ mttok p_value) /*@*/ ; + +extern bool mtMergeItem_isStar (mtMergeItem) /*@*/ ; +# define mtMergeItem_isStar(p_mi) ((p_mi)->kind == MTMK_STAR) + +extern /*@observer@*/ cstring mtMergeItem_getValue (mtMergeItem) /*@*/ ; +# define mtMergeItem_getValue(node) ((node)->value) + +extern /*@observer@*/ fileloc mtMergeItem_getLoc (mtMergeItem) /*@*/ ; +# define mtMergeItem_getLoc(node) ((node)->loc) + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtMergeNode.h b/src/Headers/mtMergeNode.h new file mode 100644 index 0000000..a82e706 --- /dev/null +++ b/src/Headers/mtMergeNode.h @@ -0,0 +1,27 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtMergeNode.h +*/ + +# ifndef MTMERGENODE_H +# define MTMERGENODE_H + +struct s_mtMergeNode { + mtMergeClauseList mlist; +} ; + +extern mtMergeNode mtMergeNode_create (/*@only@*/ mtMergeClauseList) /*@*/ ; +extern void mtMergeNode_free (/*@only@*/ mtMergeNode) ; + +extern cstring mtMergeNode_unparse (mtMergeNode p_node) /*@*/ ; + +extern /*@observer@*/ mtMergeClauseList mtMergeNode_getClauses (mtMergeNode p_node) /*@*/ ; +# define mtMergeNode_getClauses(p_node) ((p_node)->mlist) + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtTransferAction.h b/src/Headers/mtTransferAction.h new file mode 100644 index 0000000..8bd4821 --- /dev/null +++ b/src/Headers/mtTransferAction.h @@ -0,0 +1,45 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtTransferAction.h +*/ + +# ifndef MTTRANSFERACTION_H +# define MTTRANSFERACTION_H + +struct s_mtTransferAction { + enum { MTAK_VALUE, MTAK_ERROR } kind; + cstring value; /* for MTAK_VALUE only */ + cstring message; + fileloc loc; +} ; + +extern void mtTransferAction_free (/*@only@*/ mtTransferAction p_node) ; + +extern cstring mtTransferAction_unparse (mtTransferAction p_node) /*@*/ ; + +extern mtTransferAction +mtTransferAction_createValue (/*@only@*/ mttok p_value) /*@*/ ; + +extern /*@observer@*/ cstring mtTransferAction_getValue (mtTransferAction) /*@*/ ; +# define mtTransferAction_getValue(node) ((node)->value) + +extern /*@observer@*/ fileloc mtTransferAction_getLoc (mtTransferAction) /*@*/ ; +# define mtTransferAction_getLoc(node) ((node)->loc) + +extern /*@observer@*/ cstring mtTransferAction_getMessage (mtTransferAction) /*@*/ ; + +extern bool mtTransferAction_isError (mtTransferAction) /*@*/ ; +# define mtTransferAction_isError(node) ((node)->kind == MTAK_ERROR) + +extern mtTransferAction mtTransferAction_createError (/*@only@*/ mttok) /*@*/ ; + +extern mtTransferAction +mtTransferAction_createErrorMessage (/*@only@*/ mttok p_message) /*@*/ ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtTransferClause.h b/src/Headers/mtTransferClause.h new file mode 100644 index 0000000..13def17 --- /dev/null +++ b/src/Headers/mtTransferClause.h @@ -0,0 +1,42 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtTransferClause.h +*/ + +# ifndef MTTRANSFERCLAUSE_H +# define MTTRANSFERCLAUSE_H + +struct s_mtTransferClause { + fileloc loc; + cstring fromname; + cstring toname; + mtTransferAction action; +} ; + +extern cstring mtTransferClause_unparse (mtTransferClause p_node) /*@*/ ; + +extern mtTransferClause +mtTransferClause_create (/*@only@*/ mttok p_fromname, /*@only@*/ mttok p_toname, + /*@only@*/ mtTransferAction p_action) /*@*/ ; + +extern /*@observer@*/ cstring mtTransferClause_getFrom (mtTransferClause) /*@*/ ; +# define mtTransferClause_getFrom(p_trans) ((p_trans)->fromname) + +extern /*@observer@*/ cstring mtTransferClause_getTo (mtTransferClause) /*@*/ ; +# define mtTransferClause_getTo(p_trans) ((p_trans)->toname) + +extern /*@observer@*/ mtTransferAction mtTransferClause_getAction (mtTransferClause) /*@*/ ; +# define mtTransferClause_getAction(p_trans) ((p_trans)->action) + +extern /*@observer@*/ fileloc mtTransferClause_getLoc (mtTransferClause) /*@*/ ; +# define mtTransferClause_getLoc(p_trans) ((p_trans)->loc) + +extern void mtTransferClause_free (/*@only@*/ mtTransferClause p_transfer) ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtTransferClauseList.h b/src/Headers/mtTransferClauseList.h new file mode 100644 index 0000000..12bd70d --- /dev/null +++ b/src/Headers/mtTransferClauseList.h @@ -0,0 +1,66 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ + +# ifndef MTTRANSFERCLAUSELIST_H +# define MTTRANSFERCLAUSELIST_H + +/*@private@*/ typedef /*@only@*/ mtTransferClause o_mtTransferClause; + +struct s_mtTransferClauseList +{ + int nelements; + int nspace; + /*@reldef@*/ /*@relnull@*/ o_mtTransferClause *elements; +} ; + +/*@constant null mtTransferClauseList mtTransferClauseList_undefined;@*/ +# define mtTransferClauseList_undefined ((mtTransferClauseList) NULL) + +extern /*@falsenull@*/ bool mtTransferClauseList_isDefined (mtTransferClauseList p_s) /*@*/ ; +# define mtTransferClauseList_isDefined(s) ((s) != mtTransferClauseList_undefined) + +extern int mtTransferClauseList_size (/*@sef@*/ mtTransferClauseList) /*@*/ ; +# define mtTransferClauseList_size(s) (mtTransferClauseList_isDefined (s) ? (s)->nelements : 0) + +extern /*@unused@*/ /*@falsenull@*/ bool mtTransferClauseList_empty (/*@sef@*/ mtTransferClauseList) /*@*/ ; +# define mtTransferClauseList_empty(s) (mtTransferClauseList_size(s) == 0) + +extern cstring mtTransferClauseList_unparseSep (mtTransferClauseList p_s, cstring p_sep) /*@*/ ; + +extern /*@unused@*/ /*@only@*/ mtTransferClauseList mtTransferClauseList_new (void) /*@*/ ; + +extern /*@only@*/ mtTransferClauseList mtTransferClauseList_single (/*@keep@*/ mtTransferClause p_el) /*@*/ ; + +extern mtTransferClauseList + mtTransferClauseList_add (/*@returned@*/ mtTransferClauseList p_s, /*@keep@*/ mtTransferClause p_el) + /*@modifies p_s@*/ ; + +extern mtTransferClauseList + mtTransferClauseList_prepend (/*@returned@*/ mtTransferClauseList p_s, /*@keep@*/ mtTransferClause p_el) + /*@modifies p_s@*/ ; + +extern /*@unused@*/ /*@only@*/ cstring mtTransferClauseList_unparse (mtTransferClauseList p_s) ; +extern void mtTransferClauseList_free (/*@only@*/ mtTransferClauseList p_s) ; + +/*@constant int mtTransferClauseListBASESIZE;@*/ +# define mtTransferClauseListBASESIZE MIDBASESIZE + +/*@iter mtTransferClauseList_elements (sef mtTransferClauseList x, yield exposed mtTransferClause el); @*/ +# define mtTransferClauseList_elements(x, m_el) \ + { if (mtTransferClauseList_isDefined (x)) { \ + int m_ind; mtTransferClause *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { mtTransferClause m_el = *(m_elements++); + +# define end_mtTransferClauseList_elements }}} + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/mtValuesNode.h b/src/Headers/mtValuesNode.h new file mode 100644 index 0000000..eda98e0 --- /dev/null +++ b/src/Headers/mtValuesNode.h @@ -0,0 +1,28 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtValuesNode.h +*/ + +# ifndef MTVALUESNODE_H +# define MTVALUESNODE_H + +struct s_mtValuesNode { + cstringList values; +} ; + +extern mtValuesNode mtValuesNode_create (/*@only@*/ cstringList p_values) /*@*/ ; +extern void mtValuesNode_free (/*@only@*/ mtValuesNode) ; + +extern cstring mtValuesNode_unparse (mtValuesNode p_node) /*@*/ ; + +/*@i32 why no warning without observer!??*/ +extern /*@observer@*/ cstringList mtValuesNode_getValues (mtValuesNode p_node) /*@*/ ; +# define mtValuesNode_getValues(node) ((node)->values) + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtgrammar.h b/src/Headers/mtgrammar.h new file mode 100644 index 0000000..6f569b4 --- /dev/null +++ b/src/Headers/mtgrammar.h @@ -0,0 +1,20 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtgrammar.h +*/ + +# ifndef MTGRAMMAR_H +# define MTGRAMMAR_H + +# include "mtgrammar_tokens.h" +# include "mtincludes.h" + +extern int mtparse (void); + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtgrammar.tab.h b/src/Headers/mtgrammar.tab.h new file mode 100644 index 0000000..3a86359 --- /dev/null +++ b/src/Headers/mtgrammar.tab.h @@ -0,0 +1,5 @@ +typedef union { + lltok ltok; /* a leaf is also an ltoken */ +} YYSTYPE; +#define MT_STATE 257 + diff --git a/src/Headers/mtgrammar_tokens.h b/src/Headers/mtgrammar_tokens.h new file mode 100644 index 0000000..d4d959a --- /dev/null +++ b/src/Headers/mtgrammar_tokens.h @@ -0,0 +1,159 @@ +/* +** Inserted at beginning of c files generated by bison +** REMEMBER: Change bison.reset too. +*/ + +/*@-allmacros@*/ +/*@+boolint@*/ +/*@+charint@*/ +/*@-macroparams@*/ +/*@-macroundef@*/ +/*@-unreachable@*/ +/*@-macrospec@*/ +/*@-varuse@*/ +/*@+ignorequals@*/ +/*@-macrostmt@*/ +/*@-noeffect@*/ +/*@-shadow@*/ +/*@-exitarg@*/ +/*@-macroredef@*/ +/*@-uniondef@*/ +/*@-compdef@*/ +/*@-matchfields@*/ +/*@-exportlocal@*/ +/*@-evalorderuncon@*/ +/*@-exportheader@*/ +/*@-typeuse@*/ +/*@-redecl@*/ +/*@-redef@*/ +/*@-noparams@*/ +/*@-ansireserved@*/ +/*@-fielduse@*/ +/*@-ifblock@*/ +/*@-elseifcomplete@*/ +/*@-whileblock@*/ +/*@-forblock@*/ +/*@-branchstate@*/ +/*@-readonlytrans@*/ +/*@-namechecks@*/ +/*@-usedef@*/ +/*@-systemunrecog@*/ +/*@-dependenttrans@*/ +/*@-unqualifiedtrans@*/ +/*@-nullassign@*/ + +/* < end of bison.head > */ + +typedef union { + mttok tok; + mtDeclarationNode mtdecl; + mtDeclarationPiece mtpiece; + mtDeclarationPieces mtpieces; + mtContextNode mtcontext; + mtValuesNode mtvalues; + mtDefaultsNode mtdefaults; + mtDefaultsDeclList mtdeflist; + mtAnnotationsNode mtannotations; + mtAnnotationList mtannotlist; + mtAnnotationDecl mtannotdecl; + mtMergeNode mtmerge; + mtMergeItem mtmergeitem; + mtMergeClauseList mtmergeclauselist; + mtMergeClause mtmergeclause; + mtTransferClauseList mttransferclauselist; + mtTransferClause mttransferclause; + mtTransferAction mttransferaction; + mtLoseReferenceList mtlosereferencelist; + mtLoseReference mtlosereference; + + /*@only@*/ cstringList cstringlist; + ctype ctyp; + /*@only@*/ qtype qtyp; + int count; +} YYSTYPE; +#define MT_BADTOK 257 +#define MT_END 258 +#define MT_STATE 259 +#define MT_GLOBAL 260 +#define MT_CONTEXT 261 +#define MT_ONEOF 262 +#define MT_DEFAULTS 263 +#define MT_DEFAULT 264 +#define MT_REFERENCE 265 +#define MT_PARAMETER 266 +#define MT_CLAUSE 267 +#define MT_ANNOTATIONS 268 +#define MT_ARROW 269 +#define MT_MERGE 270 +#define MT_TRANSFERS 271 +#define MT_PRECONDITIONS 272 +#define MT_POSTCONDITIONS 273 +#define MT_LOSEREFERENCE 274 +#define MT_AS 275 +#define MT_ERROR 276 +#define MT_PLUS 277 +#define MT_STAR 278 +#define MT_BAR 279 +#define MT_LPAREN 280 +#define MT_RPAREN 281 +#define MT_LBRACKET 282 +#define MT_RBRACKET 283 +#define MT_LBRACE 284 +#define MT_RBRACE 285 +#define MT_COMMA 286 +#define MT_CHAR 287 +#define MT_INT 288 +#define MT_FLOAT 289 +#define MT_DOUBLE 290 +#define MT_VOID 291 +#define MT_ANYTYPE 292 +#define MT_INTEGRALTYPE 293 +#define MT_UNSIGNEDINTEGRALTYPE 294 +#define MT_SIGNEDINTEGRALTYPE 295 +#define MT_CONST 296 +#define MT_VOLATILE 297 +#define MT_STRINGLIT 298 +#define MT_IDENT 299 + +/* +** Resets all flags in bison.head +*/ + + +/*@=allmacros@*/ +/*@=boolint@*/ +/*@=charint@*/ +/*@=macroparams@*/ +/*@=macroundef@*/ +/*@=unreachable@*/ +/*@=macrospec@*/ +/*@=varuse@*/ +/*@=ignorequals@*/ +/*@=macrostmt@*/ +/*@=noeffect@*/ +/*@=shadow@*/ +/*@=exitarg@*/ +/*@=macroredef@*/ +/*@=uniondef@*/ +/*@=compdef@*/ +/*@=matchfields@*/ +/*@=exportlocal@*/ +/*@=evalorderuncon@*/ +/*@=exportheader@*/ +/*@=typeuse@*/ +/*@=redecl@*/ +/*@=redef@*/ +/*@=noparams@*/ +/*@=ansireserved@*/ +/*@=fielduse@*/ +/*@=ifblock@*/ +/*@=elseifcomplete@*/ +/*@=whileblock@*/ +/*@=forblock@*/ +/*@=branchstate@*/ +/*@=readonlytrans@*/ +/*@=namechecks@*/ +/*@=usedef@*/ +/*@=systemunrecog@*/ +/*@=dependenttrans@*/ +/*@=unqualifiedtrans@*/ diff --git a/src/Headers/mtincludes.h b/src/Headers/mtincludes.h new file mode 100644 index 0000000..e837405 --- /dev/null +++ b/src/Headers/mtincludes.h @@ -0,0 +1,22 @@ +# include "mttok.h" +# include "mtreader.h" +# include "mtDeclarationNode.h" +# include "mtDeclarationPiece.h" +# include "mtDeclarationPieces.h" +# include "mtContextNode.h" +# include "mtValuesNode.h" +# include "mtDefaultsNode.h" +# include "mtDefaultsDecl.h" +# include "mtDefaultsDeclList.h" +# include "mtAnnotationsNode.h" +# include "mtAnnotationList.h" +# include "mtAnnotationDecl.h" +# include "mtMergeNode.h" +# include "mtTransferClauseList.h" +# include "mtTransferClause.h" +# include "mtLoseReferenceList.h" +# include "mtLoseReference.h" +# include "mtTransferAction.h" +# include "mtMergeItem.h" +# include "mtMergeClause.h" +# include "mtMergeClauseList.h" diff --git a/src/Headers/mtreader.h b/src/Headers/mtreader.h new file mode 100644 index 0000000..8a5ae88 --- /dev/null +++ b/src/Headers/mtreader.h @@ -0,0 +1,24 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtreader.h +*/ + +# ifndef MTREADER_H +# define MTREADER_H + +extern void mtreader_readFile (/*@only@*/ cstring p_infile) + /*@modifies internalState@*/ ; + +extern void mtreader_processDeclaration (/*@only@*/ mtDeclarationNode p_decl) + /*@modifies internalState@*/ ; + +extern void mtreader_processGlobalDeclaration (/*@only@*/ mtDeclarationNode p_decl) + /*@modifies internalState@*/ ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mtscanner.h b/src/Headers/mtscanner.h new file mode 100644 index 0000000..bc82c5b --- /dev/null +++ b/src/Headers/mtscanner.h @@ -0,0 +1,26 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mtscanner.h +*/ + +# ifndef MTSCANNER_H +# define MTSCANNER_H + +extern void mtscanner_reset (inputStream p_sourceFile) + /*@modifies internalState@*/ ; + +/*@-redecl@*/ +extern int mtlex (YYSTYPE *p_mtlval) + /*@modifies internalState, p_mtlval@*/ ; +/*@=redecl@*/ + +extern ctype mtscanner_lookupType (mttok p_tok) /*@modifies p_tok@*/ ; + /* Can steal p_tok's location. */ + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/mttok.h b/src/Headers/mttok.h new file mode 100644 index 0000000..0d01f4a --- /dev/null +++ b/src/Headers/mttok.h @@ -0,0 +1,47 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** mttok.h +*/ + +# ifndef MTTOK_H +# define MTTOK_H + +struct s_mttok +{ + int tok; + cstring text; + fileloc loc; +} ; + +/* in forwardTypes.h: abst_typedef struct _mttok *mttok; */ + +extern mttok mttok_create (int p_tok, + /*@only@*/ cstring p_text, + /*@only@*/ fileloc p_loc) /*@modifies nothing@*/ ; +extern /*@only@*/ cstring mttok_unparse (mttok p_tok) /*@*/ ; + +extern void mttok_free (/*@only@*/ mttok p_t) ; + +extern int mttok_getTok (mttok p_t) /*@*/ ; +# define mttok_getTok(t) ((t)->tok) + +extern /*@dependent@*/ /*@exposed@*/ fileloc mttok_getLoc (mttok p_t) /*@*/ ; +# define mttok_getLoc(t) ((t)->loc) + +extern /*@only@*/ fileloc mttok_stealLoc (mttok p_t) /*@modifies p_t@*/ ; + +extern /*@only@*/ cstring mttok_getText (mttok p_t) /*@*/ ; +# define mttok_getText(t) (cstring_copy ((t)->text)) + +extern /*@observer@*/ cstring mttok_observeText (mttok p_t) /*@*/ ; +# define mttok_observeText(t) ((t)->text) + +extern bool mttok_isIdentifier (mttok p_t) /*@*/ ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/multiVal.h b/src/Headers/multiVal.h index 487f829..18377c8 100644 --- a/src/Headers/multiVal.h +++ b/src/Headers/multiVal.h @@ -7,17 +7,16 @@ typedef enum { MVLONG, MVCHAR, MVDOUBLE, MVSTRING } mvkind; -typedef /*@null@*/ struct _multiVal +typedef /*@null@*/ struct { mvkind kind; - union _mval - { - long int ival; - char cval; - double fval; - /*@only@*/ cstring sval; - } value; - + union + { + long int ival; + char cval; + double fval; + /*@only@*/ cstring sval; + } value; } *multiVal; extern /*@falsenull@*/ bool multiVal_isDefined (multiVal p_m) /*@*/ ; diff --git a/src/Headers/nameChecks.h b/src/Headers/nameChecks.h index 9246279..be55699 100644 --- a/src/Headers/nameChecks.h +++ b/src/Headers/nameChecks.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -7,12 +7,14 @@ # ifndef NAMECHECKS_H # define NAMECHECKS_H -extern bool checkCppName (cstring p_name, fileloc p_loc) /*@modifies g_msgstream@*/ ; -extern void checkGlobalName (uentry p_ue); -extern void checkLocalName (uentry p_ue); -extern void checkPrefix (uentry p_ue); -extern bool checkAnsiName (cstring p_name, fileloc p_loc); -extern void checkParamNames (uentry p_ue) /*@modifies g_msgstream@*/ ; +extern void checkCppName (uentry p_ue) /*@modifies g_msgstream, p_ue@*/ ; +extern void checkExternalName (uentry p_ue) /*@modifies g_msgstream, p_ue@*/ ; +extern void checkLocalName (uentry p_ue) /*@modifies g_msgstream, p_ue@*/ ; +extern void checkFileScopeName (uentry p_ue) /*@modifies g_msgstream, p_ue@*/ ; +extern void checkPrefix (uentry p_ue) /*@modifies g_msgstream, p_ue@*/ ; +extern void checkAnsiName (uentry p_ue) /*@modifies g_msgstream, p_ue@*/ ; +extern void checkParamNames (uentry p_ue) /*@modifies g_msgstream@*/; +/*@i32! should get error without modifies p_ue@*/ # else # error "Multiple include" diff --git a/src/Headers/nameNode.h b/src/Headers/nameNode.h index 5dbc0db..92fbe60 100644 --- a/src/Headers/nameNode.h +++ b/src/Headers/nameNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _nameNode { +typedef struct { bool isOpId; /* TRUE means is opId */ union { ltoken opid; diff --git a/src/Headers/opFormNode.h b/src/Headers/opFormNode.h index b83c9ad..a8114eb 100644 --- a/src/Headers/opFormNode.h +++ b/src/Headers/opFormNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -11,7 +11,7 @@ typedef enum { OPF_BMIDDLEM, OPF_BMMIDDLEM, OPF_SELECT, OPF_MAP, OPF_MSELECT, OPF_MMAP - } opFormKind; +} opFormKind; typedef union { int middle; @@ -19,13 +19,13 @@ typedef union { ltoken id; } opFormUnion; -typedef struct _opFormNode { +struct s_opFormNode { ltoken tok; /* keeps the openSym token */ opFormKind kind; opFormUnion content; unsigned int key; ltoken close; /* keeps the closeSym token */ -} *opFormNode; +} ; extern /*@unused@*/ /*@only@*/ cstring opFormNode_unparse (/*@null@*/ opFormNode p_n) /*@*/ ; diff --git a/src/Headers/osd.h b/src/Headers/osd.h index 3a604f6..8722100 100644 --- a/src/Headers/osd.h +++ b/src/Headers/osd.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -50,37 +50,36 @@ typedef enum { OSD_FILENOTFOUND, OSD_PATHTOOLONG } filestatus; -extern /*@only@*/ char *LSLRootName (char *p_filespec) /*@*/ ; +extern /*@only@*/ cstring LSLRootName (cstring p_filespec) /*@*/ ; extern filestatus - osd_getPath (char *p_path, char *p_file, /*@out@*/ char **p_returnPath) + osd_getPath (cstring p_path, cstring p_file, /*@out@*/ cstring *p_returnPath) /*@modifies *p_returnPath@*/ ; extern filestatus - osd_getExePath (char *p_path, char *p_file, /*@out@*/ char **p_returnPath) + osd_getExePath (cstring p_path, cstring p_file, /*@out@*/ cstring *p_returnPath) /*@modifies *p_returnPath@*/ ; -extern bool osd_fileExists (char *p_filespec) /*@*/ ; -extern /*@observer@*/ char * - osd_getEnvironment (char *p_env, /*@returned@*/ char *p_def) /*@*/ ; +extern bool osd_fileExists (cstring p_filespec) /*@*/ ; +extern /*@observer@*/ cstring + osd_getEnvironment (cstring p_env, /*@returned@*/ cstring p_def) /*@*/ ; -extern filestatus osd_findOnLarchPath (char *p_file, /*@out@*/ char **p_returnPath) +extern filestatus osd_findOnLarchPath (cstring p_file, /*@out@*/ cstring *p_returnPath) /*@modifies *p_returnPath@*/ ; -extern /*@observer@*/ /*@null@*/ char *osd_getHomeDir (void) /*@*/ ; +extern /*@observer@*/ cstring osd_getHomeDir (void) /*@*/ ; -extern /*@observer@*/ /*@null@*/ char *osd_getEnvironmentVariable (char *) ; +extern /*@observer@*/ cstring osd_getEnvironmentVariable (cstring) ; # ifndef NOLCL /*@constant int CALL_SUCCESS@*/ # define CALL_SUCCESS 0 - -extern int osd_system (const char *p_cmd) /*@modifies fileSystem@*/ ; +extern int osd_system (cstring p_cmd) /*@modifies fileSystem@*/ ; # endif -extern int osd_unlink (const char *) /*@modifies fileSystem@*/ ; -extern cstring osd_fixDefine (char *); -extern bool osd_fileIsReadable (char *); +extern int osd_unlink (cstring) /*@modifies fileSystem@*/ ; +extern cstring osd_fixDefine (cstring); +extern bool osd_fileIsReadable (cstring); extern bool osd_isConnectChar (char) /*@*/ ; diff --git a/src/Headers/pairNode.h b/src/Headers/pairNode.h index 15d6731..f9228e4 100644 --- a/src/Headers/pairNode.h +++ b/src/Headers/pairNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -9,7 +9,7 @@ ** needs sort_type.h, ltoken_type.h */ -typedef struct _pairNode { +typedef struct { sort sort; ltoken tok; /* enable error message to pinpoint location */ } *pairNode; diff --git a/src/Headers/pairNodeList.h b/src/Headers/pairNodeList.h index 5368e2e..a904d9b 100644 --- a/src/Headers/pairNodeList.h +++ b/src/Headers/pairNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ pairNode o_pairNode; -abst_typedef /*@null@*/ struct _pairNodeList +abst_typedef /*@null@*/ struct { int nelements; int nspace; diff --git a/src/Headers/paramNode.h b/src/Headers/paramNode.h index a33030a..addbf13 100644 --- a/src/Headers/paramNode.h +++ b/src/Headers/paramNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -10,12 +10,12 @@ # ifndef PARAMNODEH # define PARAMNODEH -typedef enum _paramtype { PNORMAL, PYIELD, PELIPSIS } paramkind ; +typedef enum { PNORMAL, PYIELD, PELIPSIS } paramkind ; /* add PREF later? PYIELD is for iterators only (~ POUT) */ -typedef struct _paramNode { +typedef struct { /*@null@*/ lclTypeSpecNode type; - /*@null@*/ struct _typeExpr *paramdecl; + /*@null@*/ struct s_typeExpr *paramdecl; paramkind kind; } *paramNode; diff --git a/src/Headers/paramNodeList.h b/src/Headers/paramNodeList.h index 953d5b6..97ba6e0 100644 --- a/src/Headers/paramNodeList.h +++ b/src/Headers/paramNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@null@*/ /*@only@*/ paramNode o_paramNode; -abst_typedef /*@null@*/ struct _paramNodeList +abst_typedef /*@null@*/ struct { int nelements; int nspace; diff --git a/src/Headers/privateNode.h b/src/Headers/privateNode.h index e7d8ead..e753352 100644 --- a/src/Headers/privateNode.h +++ b/src/Headers/privateNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -9,7 +9,7 @@ typedef enum { PRIV_TYPE, PRIV_FUNCTION } privateKind; -typedef struct _privateNode { +typedef struct { privateKind kind; union { constDeclarationNode constdeclaration; diff --git a/src/Headers/programNode.h b/src/Headers/programNode.h index 160c059..a859c30 100644 --- a/src/Headers/programNode.h +++ b/src/Headers/programNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -7,14 +7,14 @@ typedef enum { ACT_SELF, ACT_ITER, ACT_ALTERNATE, ACT_SEQUENCE - } actionKind; +} actionKind; -typedef struct _programNode { +typedef struct { int wrapped; /* number of balanced parentheses around this program node */ actionKind kind; union { - struct _stmtNode *self; - struct _programNodeList *args; + stmtNode self; + programNodeList args; } content; } *programNode; diff --git a/src/Headers/programNodeList.h b/src/Headers/programNodeList.h index 2ba94f8..cf7127a 100644 --- a/src/Headers/programNodeList.h +++ b/src/Headers/programNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,12 +8,12 @@ typedef /*@only@*/ programNode o_programNode; -abst_typedef struct _programNodeList +struct s_programNodeList { int nelements; int nspace; /*@reldef@*/ /*@relnull@*/ o_programNode *elements; -} *programNodeList ; +} ; /*@iter programNodeList_elements (sef programNodeList x, yield exposed programNode el); @*/ # define programNodeList_elements(x, m_el) \ diff --git a/src/Headers/qtype.h b/src/Headers/qtype.h index eefceea..88275f6 100644 --- a/src/Headers/qtype.h +++ b/src/Headers/qtype.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,7 +12,7 @@ # ifndef QTYPEH # define QTYPEH -abst_typedef /*@null@*/ struct _qtype +abst_typedef /*@null@*/ struct { ctype type; qualList quals; diff --git a/src/Headers/qual.h b/src/Headers/qual.h index fe4ffb0..d243470 100644 --- a/src/Headers/qual.h +++ b/src/Headers/qual.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -17,15 +17,16 @@ ** (tokens are defined in cgrammar.y) */ -typedef enum _quals { - QU_UNKNOWN, +typedef enum { + QU_UNKNOWN = 0, QU_CONST, QU_VOLATILE, QU_INLINE, QU_EXTERN, QU_STATIC, QU_AUTO, QU_REGISTER, QU_SHORT, QU_LONG, QU_SIGNED, QU_UNSIGNED, QU_OUT, QU_IN, QU_ONLY, QU_IMPONLY, QU_TEMP, QU_SHARED, QU_KEEP, QU_KEPT, QU_PARTIAL, QU_SPECIAL, - QU_NULL, QU_RELNULL, QU_NULLTERMINATED, + QU_NULL, QU_RELNULL, QU_ISNULL, + QU_NULLTERMINATED, QU_SETBUFFERSIZE, QU_EXPOSED, QU_RETURNED, QU_OBSERVER, QU_UNIQUE, QU_OWNED, QU_DEPENDENT, QU_RELDEF, @@ -40,8 +41,18 @@ typedef enum _quals { QU_CHECKED, QU_UNCHECKED, QU_CHECKEDSTRICT, QU_CHECKMOD, QU_UNDEF, QU_KILLED, QU_PRINTFLIKE, QU_SCANFLIKE, QU_MESSAGELIKE, + QU_USERANNOT, QU_LAST -} qual ; +} quenum; + +immut_typedef struct { + quenum kind; + /*@observer@*/ /*@null@*/ annotationInfo info; /* for QU_USERANNOT only */ +} *qual; + +extern /*@only@*/ cstring qual_dump (qual) ; +extern qual qual_undump (char **p_s) /*@modifies *p_s@*/ ; + /* ** qualifiers correspond to tokens in the grammar: @@ -57,8 +68,7 @@ typedef enum _quals { extern qual qual_fromInt (int p_q) /*@*/ ; extern /*@observer@*/ cstring qual_unparse (qual p_q) /*@*/ ; -extern bool qual_equal (qual p_q1, qual p_q2) /*@*/ ; -# define qual_equal(q1,q2) ((q1) == (q2)) +extern bool qual_match (qual p_q1, qual p_q2) /*@*/ ; extern bool qual_isUnknown (qual) /*@*/ ; extern bool qual_isTrueNull (qual) /*@*/ ; @@ -104,6 +114,7 @@ extern bool qual_isCheckMod (qual) /*@*/ ; extern bool qual_isCheckedStrict (qual) /*@*/ ; extern bool qual_isUnchecked (qual) /*@*/ ; extern bool qual_isNull (qual) /*@*/ ; +extern bool qual_isIsNull (qual) /*@*/ ; extern bool qual_isRelNull (qual) /*@*/ ; extern bool qual_isNotNull (qual) /*@*/ ; extern bool qual_isReturned (qual) /*@*/ ; @@ -129,71 +140,91 @@ extern bool qual_isGlobalQual (/*@sef@*/ qual) /*@*/ ; extern bool qual_isImplied (/*@sef@*/ qual) /*@*/ ; extern bool qual_isExQual (/*@sef@*/ qual) /*@*/ ; extern bool qual_isAliasQual (/*@sef@*/ qual) /*@*/ ; -/* start modifications */ -extern bool qual_isNullTerminated (qual) /*@*/ ; -extern bool qual_isBufQualifier (qual) /*@*/ ; -/* end modifications */ +extern bool qual_isPrintfLike (/*@sef@*/ qual) /*@*/ ; +extern bool qual_isScanfLike (/*@sef@*/ qual) /*@*/ ; +extern bool qual_isMessageLike (/*@sef@*/ qual) /*@*/ ; +extern bool qual_isMetaState (/*@sef@*/ qual) /*@*/ ; +extern bool qual_isNullTerminated( /*@sef@*/ qual ) /*@*/ ; + +extern bool qual_isMemoryAllocation (/*@sef@*/ qual) /*@*/ ; +# define qual_isMemoryAllocation(q) \ + (qual_isOnly (q) || qual_isShared (q) || \ + qual_isDependent (q) || qual_isOwned (q)) -# define qual_isUnknown(q) ((q) == QU_UNKNOWN) -# define qual_isTrueNull(q) ((q) == QU_TRUENULL) -# define qual_isFalseNull(q) ((q) == QU_FALSENULL) -# define qual_isOwned(q) ((q) == QU_OWNED) -# define qual_isDependent(q) ((q) == QU_DEPENDENT) -# define qual_isRefCounted(q) ((q) == QU_REFCOUNTED) -# define qual_isRefs(q) ((q) == QU_REFS) -# define qual_isNewRef(q) ((q) == QU_NEWREF) -# define qual_isKillRef(q) ((q) == QU_KILLREF) -# define qual_isTempRef(q) ((q) == QU_TEMPREF) -# define qual_isLong(q) ((q) == QU_LONG) -# define qual_isShort(q) ((q) == QU_SHORT) -# define qual_isSigned(q) ((q) == QU_SIGNED) -# define qual_isUnsigned(q) ((q) == QU_UNSIGNED) -# define qual_isUnique(q) ((q) == QU_UNIQUE) -# define qual_isExits(q) ((q) == QU_EXITS) -# define qual_isMayExit(q) ((q) == QU_MAYEXIT) -# define qual_isNeverExit(q) ((q) == QU_NEVEREXIT) -# define qual_isTrueExit(q) ((q) == QU_TRUEEXIT) -# define qual_isFalseExit(q) ((q) == QU_FALSEEXIT) -# define qual_isConst(q) ((q) == QU_CONST) -# define qual_isVolatile(q) ((q) == QU_VOLATILE) -# define qual_isInline(q) ((q) == QU_INLINE) -# define qual_isExtern(q) ((q) == QU_EXTERN) -# define qual_isStatic(q) ((q) == QU_STATIC) -# define qual_isAuto(q) ((q) == QU_AUTO) -# define qual_isRegister(q) ((q) == QU_REGISTER) -# define qual_isOut(q) ((q) == QU_OUT) -# define qual_isIn(q) ((q) == QU_IN) -# define qual_isYield(q) ((q) == QU_YIELD) -# define qual_isOnly(q) ((q) == QU_ONLY) -# define qual_isImpOnly(q) ((q) == QU_IMPONLY) -# define qual_isPartial(q) ((q) == QU_PARTIAL) -# define qual_isSpecial(q) ((q) == QU_SPECIAL) -# define qual_isKeep(q) ((q) == QU_KEEP) -# define qual_isKept(q) ((q) == QU_KEPT) -# define qual_isTemp(q) ((q) == QU_TEMP) -# define qual_isShared(q) ((q) == QU_SHARED) -# define qual_isRelDef(q) ((q) == QU_RELDEF) -# define qual_isNull(q) ((q) == QU_NULL) -# define qual_isRelNull(q) ((q) == QU_RELNULL) -# define qual_isNotNull(q) ((q) == QU_NOTNULL) -# define qual_isReturned(q) ((q) == QU_RETURNED) -# define qual_isExposed(q) ((q) == QU_EXPOSED) -# define qual_isObserver(q) ((q) == QU_OBSERVER) -# define qual_isUnused(q) ((q) == QU_UNUSED) -# define qual_isExternal(q) ((q) == QU_EXTERNAL) -# define qual_isSef(q) ((q) == QU_SEF) -# define qual_isAbstract(q) ((q) == QU_ABSTRACT) -# define qual_isConcrete(q) ((q) == QU_CONCRETE) -# define qual_isMutable(q) ((q) == QU_MUTABLE) -# define qual_isImmutable(q) ((q) == QU_IMMUTABLE) -# define qual_isChecked(q) ((q) == QU_CHECKED) -# define qual_isCheckMod(q) ((q) == QU_CHECKMOD) -# define qual_isCheckedStrict(q) ((q) == QU_CHECKEDSTRICT) -# define qual_isUnchecked(q) ((q) == QU_UNCHECKED) -# define qual_isUndef(q) ((q) == QU_UNDEF) -# define qual_isKilled(q) ((q) == QU_KILLED) -# define qual_isNullTerminated(q) ((q) == QU_NULLTERMINATED) +extern bool qual_isSharing (/*@sef@*/ qual) /*@*/ ; +# define qual_isSharing(q) \ + (qual_isObserver (q) || qual_isExposed (q)) +extern /*@observer@*/ annotationInfo qual_getAnnotationInfo (qual) /*@*/ ; + +# define qual_isUnknown(q) ((q)->kind == QU_UNKNOWN) +# define qual_isTrueNull(q) ((q)->kind == QU_TRUENULL) +# define qual_isFalseNull(q) ((q)->kind == QU_FALSENULL) +# define qual_isOwned(q) ((q)->kind == QU_OWNED) +# define qual_isDependent(q) ((q)->kind == QU_DEPENDENT) +# define qual_isRefCounted(q) ((q)->kind == QU_REFCOUNTED) +# define qual_isRefs(q) ((q)->kind == QU_REFS) +# define qual_isNewRef(q) ((q)->kind == QU_NEWREF) +# define qual_isKillRef(q) ((q)->kind == QU_KILLREF) +# define qual_isTempRef(q) ((q)->kind == QU_TEMPREF) +# define qual_isLong(q) ((q)->kind == QU_LONG) +# define qual_isShort(q) ((q)->kind == QU_SHORT) +# define qual_isSigned(q) ((q)->kind == QU_SIGNED) +# define qual_isUnsigned(q) ((q)->kind == QU_UNSIGNED) +# define qual_isUnique(q) ((q)->kind == QU_UNIQUE) +# define qual_isExits(q) ((q)->kind == QU_EXITS) +# define qual_isMayExit(q) ((q)->kind == QU_MAYEXIT) +# define qual_isNeverExit(q) ((q)->kind == QU_NEVEREXIT) +# define qual_isTrueExit(q) ((q)->kind == QU_TRUEEXIT) +# define qual_isFalseExit(q) ((q)->kind == QU_FALSEEXIT) +# define qual_isConst(q) ((q)->kind == QU_CONST) +# define qual_isVolatile(q) ((q)->kind == QU_VOLATILE) +# define qual_isInline(q) ((q)->kind == QU_INLINE) +# define qual_isExtern(q) ((q)->kind == QU_EXTERN) +# define qual_isStatic(q) ((q)->kind == QU_STATIC) +# define qual_isAuto(q) ((q)->kind == QU_AUTO) +# define qual_isRegister(q) ((q)->kind == QU_REGISTER) +# define qual_isOut(q) ((q)->kind == QU_OUT) +# define qual_isIn(q) ((q)->kind == QU_IN) +# define qual_isYield(q) ((q)->kind == QU_YIELD) +# define qual_isOnly(q) ((q)->kind == QU_ONLY) +# define qual_isImpOnly(q) ((q)->kind == QU_IMPONLY) +# define qual_isPartial(q) ((q)->kind == QU_PARTIAL) +# define qual_isSpecial(q) ((q)->kind == QU_SPECIAL) +# define qual_isKeep(q) ((q)->kind == QU_KEEP) +# define qual_isKept(q) ((q)->kind == QU_KEPT) +# define qual_isTemp(q) ((q)->kind == QU_TEMP) +# define qual_isShared(q) ((q)->kind == QU_SHARED) +# define qual_isRelDef(q) ((q)->kind == QU_RELDEF) +# define qual_isNull(q) ((q)->kind == QU_NULL) +# define qual_isIsNull(q) ((q)->kind == QU_ISNULL) +# define qual_isRelNull(q) ((q)->kind == QU_RELNULL) +# define qual_isNotNull(q) ((q)->kind == QU_NOTNULL) +# define qual_isReturned(q) ((q)->kind == QU_RETURNED) +# define qual_isExposed(q) ((q)->kind == QU_EXPOSED) +# define qual_isObserver(q) ((q)->kind == QU_OBSERVER) +# define qual_isUnused(q) ((q)->kind == QU_UNUSED) +# define qual_isExternal(q) ((q)->kind == QU_EXTERNAL) +# define qual_isSef(q) ((q)->kind == QU_SEF) +# define qual_isAbstract(q) ((q)->kind == QU_ABSTRACT) +# define qual_isConcrete(q) ((q)->kind == QU_CONCRETE) +# define qual_isMutable(q) ((q)->kind == QU_MUTABLE) +# define qual_isImmutable(q) ((q)->kind == QU_IMMUTABLE) +# define qual_isChecked(q) ((q)->kind == QU_CHECKED) +# define qual_isCheckMod(q) ((q)->kind == QU_CHECKMOD) +# define qual_isCheckedStrict(q) ((q)->kind == QU_CHECKEDSTRICT) +# define qual_isUnchecked(q) ((q)->kind == QU_UNCHECKED) +# define qual_isUndef(q) ((q)->kind == QU_UNDEF) +# define qual_isKilled(q) ((q)->kind == QU_KILLED) +# define qual_isPrintfLike(q) ((q)->kind == QU_PRINTFLIKE) +# define qual_isScanfLike(q) ((q)->kind == QU_SCANFLIKE) +# define qual_isMessageLike(q) ((q)->kind == QU_MESSAGELIKE) +# define qual_isMetaState(q) ((q)->kind == QU_USERANNOT) + +# define qual_isNullTerminated(q) ((q)->kind == QU_NULLTERMINATED) + +extern qual qual_createPlain (quenum) /*@*/ ; +extern qual qual_createMetaState (annotationInfo) /*@*/ ; extern qual qual_createTrueNull (void) /*@*/ ; extern qual qual_createFalseNull (void) /*@*/ ; extern qual qual_createRefCounted (void) /*@*/ ; @@ -237,7 +268,8 @@ extern qual qual_createKeep (void) /*@*/ ; extern qual qual_createKept (void) /*@*/ ; extern qual qual_createTemp (void) /*@*/ ; extern qual qual_createShared (void) /*@*/ ; -extern qual qual_createNull (void) /*@*/ ; +extern qual qual_createNull (void) /*@*/ ; +extern qual qual_createIsNull (void) /*@*/ ; extern qual qual_createRelNull (void) /*@*/ ; extern qual qual_createReturned (void) /*@*/ ; extern qual qual_createExposed (void) /*@*/ ; @@ -253,78 +285,97 @@ extern qual qual_createUndef (void) /*@*/ ; extern qual qual_createKilled (void) /*@*/ ; extern qual qual_createNullTerminated (void) /*@*/ ; -# ifndef NOLCL extern qual qual_createUnknown (void) /*@*/ ; -# define qual_createUnknown() (QU_UNKNOWN) +# define qual_createUnknown() (qual_createPlain (QU_UNKNOWN)) extern qual qual_createPrintfLike (void) /*@*/ ; extern qual qual_createScanfLike (void) /*@*/ ; extern qual qual_createMessageLike (void) /*@*/ ; -# define qual_createPrintfLike() (QU_PRINTFLIKE) -# define qual_createScanfLike() (QU_SCANFLIKE) -# define qual_createMessageLike() (QU_MESSAGELIKE) -# endif +# define qual_createPrintfLike() (qual_createPlain (QU_PRINTFLIKE)) +# define qual_createScanfLike() (qual_createPlain (QU_SCANFLIKE)) +# define qual_createMessageLike() (qual_createPlain (QU_MESSAGELIKE)) + +# define qual_createTrueNull() qual_createPlain (QU_TRUENULL) +# define qual_createFalseNull() qual_createPlain (QU_FALSENULL) +# define qual_createRefCounted() qual_createPlain (QU_REFCOUNTED) +# define qual_createRefs() qual_createPlain (QU_REFS) +# define qual_createNewRef() qual_createPlain (QU_NEWREF) +# define qual_createKillRef() qual_createPlain (QU_KILLREF) +# define qual_createTempRef() qual_createPlain (QU_TEMPREF) +# define qual_createNotNull() qual_createPlain (QU_NOTNULL) +# define qual_createAbstract() qual_createPlain (QU_ABSTRACT) +# define qual_createConcrete() qual_createPlain (QU_CONCRETE) +# define qual_createMutable() qual_createPlain (QU_MUTABLE) +# define qual_createImmutable() qual_createPlain (QU_IMMUTABLE) +# define qual_createShort() qual_createPlain (QU_SHORT) +# define qual_createLong() qual_createPlain (QU_LONG) +# define qual_createSigned() qual_createPlain (QU_SIGNED) +# define qual_createUnsigned() qual_createPlain (QU_UNSIGNED) +# define qual_createUnique() qual_createPlain (QU_UNIQUE) +# define qual_createMayExit() qual_createPlain (QU_MAYEXIT) +# define qual_createExits() qual_createPlain (QU_EXITS) +# define qual_createNeverExit() qual_createPlain (QU_NEVEREXIT) +# define qual_createTrueExit() qual_createPlain (QU_TRUEEXIT) +# define qual_createFalseExit() qual_createPlain (QU_FALSEEXIT) +# define qual_createConst() qual_createPlain (QU_CONST) +# define qual_createVolatile() qual_createPlain (QU_VOLATILE) +# define qual_createInline() qual_createPlain (QU_INLINE) +# define qual_createExtern() qual_createPlain (QU_EXTERN) +# define qual_createStatic() qual_createPlain (QU_STATIC) +# define qual_createAuto() qual_createPlain (QU_AUTO) +# define qual_createRegister() qual_createPlain (QU_REGISTER) +# define qual_createOut() qual_createPlain (QU_OUT) +# define qual_createIn() qual_createPlain (QU_IN) +# define qual_createYield() qual_createPlain (QU_YIELD) +# define qual_createOnly() qual_createPlain (QU_ONLY) +# define qual_createOwned() qual_createPlain (QU_OWNED) +# define qual_createDependent() qual_createPlain (QU_DEPENDENT) +# define qual_createRelDef() qual_createPlain (QU_RELDEF) +# define qual_createImpOnly() qual_createPlain (QU_IMPONLY) +# define qual_createPartial() qual_createPlain (QU_PARTIAL) +# define qual_createSpecial() qual_createPlain (QU_SPECIAL) +# define qual_createKeep() qual_createPlain (QU_KEEP) +# define qual_createKept() qual_createPlain (QU_KEPT) +# define qual_createTemp() qual_createPlain (QU_TEMP) +# define qual_createShared() qual_createPlain (QU_SHARED) +# define qual_createNull() qual_createPlain (QU_NULL) +# define qual_createIsNull() qual_createPlain (QU_ISNULL) +# define qual_createRelNull() qual_createPlain (QU_RELNULL) +# define qual_createReturned() qual_createPlain (QU_RETURNED) +# define qual_createExposed() qual_createPlain (QU_EXPOSED) +# define qual_createObserver() qual_createPlain (QU_OBSERVER) +# define qual_createUnused() qual_createPlain (QU_UNUSED) +# define qual_createExternal() qual_createPlain (QU_EXTERNAL) +# define qual_createSef() qual_createPlain (QU_SEF) +# define qual_createChecked() qual_createPlain (QU_CHECKED) +# define qual_createCheckMod() qual_createPlain (QU_CHECKMOD) +# define qual_createCheckedStrict() qual_createPlain (QU_CHECKEDSTRICT) +# define qual_createUnchecked() qual_createPlain (QU_UNCHECKED) +# define qual_createUndef() qual_createPlain (QU_UNDEF) +# define qual_createKilled() qual_createPlain (QU_KILLED) -# define qual_createTrueNull() (QU_TRUENULL) -# define qual_createFalseNull() (QU_FALSENULL) -# define qual_createRefCounted() (QU_REFCOUNTED) -# define qual_createRefs() (QU_REFS) -# define qual_createNewRef() (QU_NEWREF) -# define qual_createKillRef() (QU_KILLREF) -# define qual_createTempRef() (QU_TEMPREF) -# define qual_createNotNull() (QU_NOTNULL) -# define qual_createAbstract() (QU_ABSTRACT) -# define qual_createConcrete() (QU_CONCRETE) -# define qual_createMutable() (QU_MUTABLE) -# define qual_createImmutable() (QU_IMMUTABLE) -# define qual_createShort() (QU_SHORT) -# define qual_createLong() (QU_LONG) -# define qual_createSigned() (QU_SIGNED) -# define qual_createUnsigned() (QU_UNSIGNED) -# define qual_createUnique() (QU_UNIQUE) -# define qual_createMayExit() (QU_MAYEXIT) -# define qual_createExits() (QU_EXITS) -# define qual_createNeverExit() (QU_NEVEREXIT) -# define qual_createTrueExit() (QU_TRUEEXIT) -# define qual_createFalseExit() (QU_FALSEEXIT) -# define qual_createConst() (QU_CONST) -# define qual_createVolatile() (QU_VOLATILE) -# define qual_createInline() (QU_INLINE) -# define qual_createExtern() (QU_EXTERN) -# define qual_createStatic() (QU_STATIC) -# define qual_createAuto() (QU_AUTO) -# define qual_createRegister() (QU_REGISTER) -# define qual_createOut() (QU_OUT) -# define qual_createIn() (QU_IN) -# define qual_createYield() (QU_YIELD) -# define qual_createOnly() (QU_ONLY) -# define qual_createOwned() (QU_OWNED) -# define qual_createDependent() (QU_DEPENDENT) -# define qual_createRelDef() (QU_RELDEF) -# define qual_createImpOnly() (QU_IMPONLY) -# define qual_createPartial() (QU_PARTIAL) -# define qual_createSpecial() (QU_SPECIAL) -# define qual_createKeep() (QU_KEEP) -# define qual_createKept() (QU_KEPT) -# define qual_createTemp() (QU_TEMP) -# define qual_createShared() (QU_SHARED) -# define qual_createNull() (QU_NULL) -# define qual_createRelNull() (QU_RELNULL) -# define qual_createReturned() (QU_RETURNED) -# define qual_createExposed() (QU_EXPOSED) -# define qual_createObserver() (QU_OBSERVER) -# define qual_createUnused() (QU_UNUSED) -# define qual_createExternal() (QU_EXTERNAL) -# define qual_createSef() (QU_SEF) -# define qual_createChecked() (QU_CHECKED) -# define qual_createCheckMod() (QU_CHECKMOD) -# define qual_createCheckedStrict() (QU_CHECKEDSTRICT) -# define qual_createUnchecked() (QU_UNCHECKED) -# define qual_createUndef() (QU_UNDEF) -# define qual_createKilled() (QU_KILLED) -# define qual_createNullTerminated() (QU_NULLTERMINATED) -# define qual_createSetBufferSize() (QU_SETBUFFERSIZE) + +# define qual_createNullTerminated() qual_createPlain (QU_NULLTERMINATED) +//# define qual_createSetBufferSize() qual_createPlain (QU_SETBUFFERSIZE) + + + +/* start modifications */ +//extern bool qual_isNullTerminated (qual p_q) ; +//extern bool qual_isBufQualifier (qual p_q) ; +/* end modifications */ + +/* start modifications */ +/* This is used to check if we the qualifier matches any of the +len/size/nullterminated types */ + +extern bool qual_isBufQualifier(/*@sef@*/ qual) /*@*/; + +# define qual_isBufQualifier(q) \ + (qual_isNullTerminated(q)) + +/* end of modification/s */ extern bool qual_isGlobCheck (/*@sef@*/ qual p_q) /*@*/ ; # define qual_isGlobCheck(q) \ @@ -338,6 +389,11 @@ extern bool qual_isGlobCheck (/*@sef@*/ qual p_q) /*@*/ ; (qual_isRefCounted(q) || qual_isRefs(q) || qual_isNewRef (q) || \ qual_isKillRef (q) || qual_isTempRef (q)) +extern bool qual_isNullStateQual (/*@sef@*/ qual) /*@*/ ; +# define qual_isNullStateQual(q) \ + (qual_isNull (q) || qual_isIsNull (q) || qual_isRelNull (q) \ + || qual_isNotNull (q)) + # define qual_isTypeQual(q) \ (qual_isAbstract(q) || qual_isMutable(q) || qual_isImmutable(q)) @@ -352,20 +408,10 @@ extern bool qual_isGlobCheck (/*@sef@*/ qual p_q) /*@*/ ; (qual_isOut (q) || qual_isIn (q) || qual_isSpecial (q) \ || qual_isPartial (q) || qual_isRelDef (q)) -/* start modifications */ -/* This is used to check if we the qualifier matches any of the -len/size/nullterminated types */ - -# define qual_isBufQualifier(q) \ - (qual_isNullTerminated(q)) - -/* end of modification/s */ - # define qual_isGlobalQual(q) \ (qual_isUndef(q) || qual_isKilled (q)) # define qual_isImplied(q) (qual_isImpOnly(q)) - # define qual_isExQual(q) (qual_isExposed (q) || qual_isObserver (q)) # define qual_isAliasQual(q) \ @@ -383,3 +429,6 @@ extern bool qual_isExitQual (/*@sef@*/ qual p_q) /*@*/ ; # endif + + + diff --git a/src/Headers/qualList.h b/src/Headers/qualList.h index ee58e6e..8e80eb7 100644 --- a/src/Headers/qualList.h +++ b/src/Headers/qualList.h @@ -5,7 +5,7 @@ # ifndef QUALLIST_H # define QUALLIST_H -abst_typedef /*@null@*/ struct _qualList +abst_typedef /*@null@*/ struct { int nelements; int free; @@ -59,7 +59,8 @@ extern bool qualList_hasExposureQualifier (qualList p_s); /* start modifications */ extern bool qualList_hasNullTerminatedQualifier(qualList p_s); -//extern bool qualList_hasBufQualifiers(qualList p_s); + +extern bool qualList_hasBufQualifiers(qualList p_s); # define qualList_hasBufQualifiers(p_s) \ (qualList_hasNullTerminatedQualifier(p_s)) diff --git a/src/Headers/quantifiedTermNode.h b/src/Headers/quantifiedTermNode.h index a361cd1..04cf636 100644 --- a/src/Headers/quantifiedTermNode.h +++ b/src/Headers/quantifiedTermNode.h @@ -1,13 +1,13 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _quantifiedTermNode { +typedef struct { quantifierNodeList quantifiers; ltoken open; /* for ease of debugging */ - struct _termNode *body; + termNode body; ltoken close; /* for ease of debugging */ } *quantifiedTermNode; diff --git a/src/Headers/quantifierNode.h b/src/Headers/quantifierNode.h index e16b83e..085d2f4 100644 --- a/src/Headers/quantifierNode.h +++ b/src/Headers/quantifierNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _quantifierNode { +typedef struct { ltoken quant; varNodeList vars; bool isForall; diff --git a/src/Headers/quantifierNodeList.h b/src/Headers/quantifierNodeList.h index 3679d14..6d1b322 100644 --- a/src/Headers/quantifierNodeList.h +++ b/src/Headers/quantifierNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ quantifierNode o_quantifierNode; -abst_typedef struct _quantifierNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/randomNumbers.h b/src/Headers/randomNumbers.h new file mode 100644 index 0000000..c55864b --- /dev/null +++ b/src/Headers/randomNumbers.h @@ -0,0 +1,22 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +# ifndef RANDOMNUMBERS_H +# define RANDOMNUMBERS_H + +/*@constant int NUM_RANDOM@*/ +# define NUM_RANDOM 256 + +extern unsigned int g_randomNumbers[NUM_RANDOM]; + +# else +# error "Multiple include" +# endif + + + + + + diff --git a/src/Headers/reader.h b/src/Headers/reader.h new file mode 100644 index 0000000..dadb083 --- /dev/null +++ b/src/Headers/reader.h @@ -0,0 +1,41 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ + +# ifndef READER_H +# define READER_H + +extern /*@null@*/ char *reader_readLine (FILE *p_f, /*@returned@*/ char *p_s, int p_max) + /*@modifies *p_f, p_s@*/ ; + +extern int reader_getInt (char **p_s) /*@modifies *p_s@*/ ; +extern char reader_loadChar (char **p_s) /*@modifies *p_s@*/ ; +extern double reader_getDouble (char **p_s) /*@modifies *p_s@*/ ; + +extern void reader_doCheckChar (char ** p_s, char p_c, char *p_file, int p_line) + /*@modifies *p_s;@*/; + +extern bool reader_optCheckChar (char **p_s, char p_c) /*@modifies *p_s;@*/ ; +extern void reader_checkChar (char **p_s, char p_c) /*@modifies *p_s;@*/ ; +# define reader_checkChar(s,c) (reader_doCheckChar (s, c, __FILE__, __LINE__)) +extern /*@only@*/ /*@null@*/ char *reader_getWord (char **p_s) /*@modifies *p_s@*/ ; + +extern cstring reader_getStringWord (char **p_s) /*@modifies *p_s@*/ ; +# define reader_getStringWord(s) (cstring_fromChars(reader_getWord(s))) + +extern cstring reader_readUntil (char **p_s, char p_x) /*@modifies *p_s@*/ ; +extern cstring reader_readUntilOne (char **p_s, char *p_x) /*@modifies *p_s@*/ ; + +extern void reader_checkUngetc (int p_c, FILE *p_f) /*@modifies *p_f@*/ ; + +# else +# error "Multiple include" +# endif + + + + + + diff --git a/src/Headers/refTable-branch.h b/src/Headers/refTable-branch.h new file mode 100644 index 0000000..c120fb4 --- /dev/null +++ b/src/Headers/refTable-branch.h @@ -0,0 +1,31 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** refTable.h +*/ + +# ifndef REFTABLE_H +# define REFTABLE_H + +/*@private@*/ typedef struct _refentry { int level; int index; } *refentry; +/*@private@*/ typedef /*@only@*/ refentry o_refentry; + +typedef /*@null@*/ struct s_refTable { + int nelements; + int nspace; + o_refentry *elements; +} *refTable; + +extern /*@only@*/ refTable refTable_create (void) /*@*/ ; +static void refTable_free (/*@only@*/ refTable p_x); + + + +# else +# error "Multiple include" +# endif + + + diff --git a/src/Headers/renamingNode.h b/src/Headers/renamingNode.h index 58e26ab..3febe8d 100644 --- a/src/Headers/renamingNode.h +++ b/src/Headers/renamingNode.h @@ -1,15 +1,15 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _nameAndReplaceNode { +typedef struct { typeNameNodeList namelist; /* the positional arguments */ replaceNodeList replacelist; /* the rest of replace renamings */ } *nameAndReplaceNode; -typedef struct _renamingNode { +typedef struct { bool is_replace; /* TRUE means replace, false means name */ union { replaceNodeList replace; diff --git a/src/Headers/replaceNode.h b/src/Headers/replaceNode.h index 4557019..2bdc0e7 100644 --- a/src/Headers/replaceNode.h +++ b/src/Headers/replaceNode.h @@ -1,16 +1,17 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _replaceNode { + +typedef struct { ltoken tok; typeNameNode typename; bool isCType; /* TRUE means it is a CType */ union { struct { - /*@null@*/ nameNode name; - /*@null@*/ sigNode signature; + /*@only@*/ /*@null@*/ nameNode name; + /*@only@*/ /*@null@*/ sigNode signature; } renamesortname; ltoken ctype; } content; diff --git a/src/Headers/replaceNodeList.h b/src/Headers/replaceNodeList.h index b88cf76..0f958bd 100644 --- a/src/Headers/replaceNodeList.h +++ b/src/Headers/replaceNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@only@*/ replaceNode o_replaceNode; -abst_typedef struct _replaceNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/sRef.h b/src/Headers/sRef.h index 8fdd429..fe0bad3 100644 --- a/src/Headers/sRef.h +++ b/src/Headers/sRef.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -22,7 +22,8 @@ typedef enum { SR_NOTHING, SR_INTERNAL, SR_SPECSTATE, - SR_SYSTEM + SR_SYSTEM, + SR_GLOBALMARKER } speckind; typedef enum { @@ -45,37 +46,37 @@ typedef enum { SK_UNKNOWN } skind; -typedef struct _cref +typedef struct { int lexlevel; usymId index; } *cref; -typedef struct _ainfo +typedef struct { /*@exposed@*/ /*@notnull@*/ sRef arr; bool indknown; int ind; } *ainfo; -typedef struct _fldinfo +typedef struct { /*@exposed@*/ /*@notnull@*/ sRef rec; /*@observer@*/ cstring field; } *fldinfo ; -typedef struct _cjinfo +typedef struct { /*@exposed@*/ /*@notnull@*/ sRef a; /*@exposed@*/ /*@notnull@*/ sRef b; } *cjinfo ; -typedef union _sinfo +typedef union { /*@only@*/ cref cvar; int paramno; /*@only@*/ ainfo arrayfetch; - /*@only@*/ fldinfo field; + /*@only@*/ fldinfo field; ctype object; /*@observer@*/ cstring fname; /* unconstrained, new */ /*@exposed@*/ /*@notnull@*/ sRef ref; @@ -83,20 +84,16 @@ typedef union _sinfo speckind spec; } *sinfo; -typedef /*@null@*/ struct _alinfo -{ - /*@only@*/ fileloc loc; - /*@observer@*/ sRef ref; - /*@observer@*/ uentry ue; -} *alinfo; - -struct _sRef +struct s_sRef { /* does it need to be inside parens (macros) */ - bool safe BOOLBITS; + bool safe; /* has it been modified */ - bool modified BOOLBITS; + bool modified; /* BOOLBITS; */ + + /* for debugging: make this sRef as immutable. */ + bool immut; /* BOOLBITS; */ skind kind; ctype type; @@ -105,7 +102,7 @@ struct _sRef nstate nullstate; /* start modifications: We keep a track of the buf state(nullterm info)*/ - struct _bbufinfo bufinfo; + struct s_bbufinfo bufinfo; /* end modifications */ alkind aliaskind; @@ -115,31 +112,38 @@ struct _sRef exkind oexpkind; /* where it becomes observer/exposed */ - /*@null@*/ /*@only@*/ alinfo expinfo; + /*@null@*/ /*@only@*/ stateInfo expinfo; /* where it changed alias kind */ - /*@null@*/ /*@only@*/ alinfo aliasinfo; + /*@null@*/ /*@only@*/ stateInfo aliasinfo; /* where it is defined/allocated */ - /*@null@*/ /*@only@*/ alinfo definfo; + /*@null@*/ /*@only@*/ stateInfo definfo; - /* where it changes null state */ - /*@null@*/ /*@only@*/ alinfo nullinfo; + /* where it is null */ + /*@null@*/ /*@only@*/ stateInfo nullinfo; /*@only@*/ /*@relnull@*/ sinfo info; /* stores fields for structs, elements for arrays, derefs for pointers */ /*@only@*/ sRefSet deriv; + + /* sRef's include a lookup table of state variables. */ + /*@only@*/ valueTable state; } ; extern bool sRef_perhapsNull (sRef p_s); extern bool sRef_possiblyNull (sRef p_s); extern bool sRef_definitelyNull (sRef p_s); +extern bool sRef_definitelyNullContext (sRef p_s); +extern bool sRef_definitelyNullAltContext (sRef p_s); + extern void sRef_setNullError (sRef p_s); extern void sRef_setNullUnknown (sRef p_s, fileloc p_loc); extern void sRef_setNotNull (sRef p_s, fileloc p_loc); extern void sRef_setNullState (sRef p_s, nstate p_n, fileloc p_loc); +extern void sRef_setNullStateN (sRef p_s, nstate p_n); extern void sRef_setNullStateInnerComplete (sRef p_s, nstate p_n, fileloc p_loc); extern void sRef_setPosNull (sRef p_s, fileloc p_loc); extern void sRef_setDefNull (sRef p_s, fileloc p_loc); @@ -157,7 +161,6 @@ extern void sRef_copyRealDerivedComplete (sRef p_s1, sRef p_s2) /*@modifies p_s1 extern nstate sRef_getNullState (/*@sef@*/ sRef p_s) /*@*/ ; extern bool sRef_isNotNull (sRef p_s) /*@*/ ; -# define sRef_getNullState(s) (sRef_isValid(s) ? (s)->nullstate : NS_UNKNOWN) extern bool sRef_isDefinitelyNull (sRef p_s) /*@*/ ; extern /*@falsenull@*/ bool sRef_isLocalVar (sRef p_s) /*@*/ ; @@ -193,7 +196,6 @@ extern bool sRef_stateKnown (/*@sef@*/ sRef p_s) /*@*/ ; # define sRef_stateKnown(s) (sRef_isValid(s) && (s)->defstate != SS_UNKNOWN) extern alkind sRef_getAliasKind (/*@sef@*/ sRef p_s) /*@*/ ; -# define sRef_getAliasKind(s) (sRef_isValid(s) ? (s)->aliaskind : AK_ERROR) extern alkind sRef_getOrigAliasKind (/*@sef@*/ sRef p_s) /*@*/ ; # define sRef_getOrigAliasKind(s) (sRef_isValid(s) ? (s)->oaliaskind : AK_ERROR) @@ -213,7 +215,7 @@ extern void sRef_clearDerived (sRef p_s); extern void sRef_clearDerivedComplete (sRef p_s); extern /*@exposed@*/ sRef sRef_getBaseSafe (sRef p_s); -extern /*@observer@*/ sRefSet sRef_derivedFields (/*@dependent@*/ sRef p_rec) /*@*/ ; +extern /*@observer@*/ sRefSet sRef_derivedFields (/*@temp@*/ sRef p_rec) /*@*/ ; extern bool sRef_sameName (sRef p_s1, sRef p_s2) /*@*/ ; extern bool sRef_isDirectParam (sRef p_s) /*@*/ ; extern /*@exposed@*/ sRef sRef_makeAnyArrayFetch (/*@exposed@*/ sRef p_arr); @@ -236,18 +238,21 @@ extern /*@falsenull@*/ bool sRef_isKindSpecial (/*@sef@*/ sRef p_s) /*@*/ ; extern /*@observer@*/ cstring sRef_nullMessage (sRef p_s) /*@*/ ; extern bool sRef_isSystemState (sRef p_s) /*@*/ ; +extern bool sRef_isGlobalMarker (sRef p_s) /*@*/ ; extern bool sRef_isInternalState (sRef p_s) /*@*/ ; extern bool sRef_isResult (sRef p_s) /*@*/ ; extern bool sRef_isSpecInternalState (sRef p_s) /*@*/ ; extern bool sRef_isSpecState (sRef p_s) /*@*/ ; extern bool sRef_isNothing (sRef p_s) /*@*/ ; -extern bool sRef_isGlobal (sRef p_s) /*@*/ ; +extern bool sRef_isFileOrGlobalScope (sRef p_s) /*@*/ ; extern bool sRef_isReference (sRef p_s) /*@*/ ; extern ctype sRef_deriveType (sRef p_s, uentryList p_cl) /*@*/ ; extern ctype sRef_getType (sRef p_s) /*@*/ ; +extern void sRef_markImmutable (sRef p_s) /*@modifies p_s@*/ ; + extern /*@falsenull@*/ bool sRef_isAddress (sRef p_s) /*@*/ ; extern /*@falsenull@*/ bool sRef_isArrayFetch (sRef p_s) /*@*/ ; extern /*@falsenull@*/ bool sRef_isConst (sRef p_s) /*@*/ ; @@ -259,7 +264,7 @@ extern /*@falsenull@*/ bool sRef_isPointer (sRef p_s) /*@*/ ; extern void sRef_setType (sRef p_s, ctype p_t); extern void sRef_setTypeFull (sRef p_s, ctype p_t); extern void sRef_mergeNullState (sRef p_s, nstate p_n); -extern void sRef_setLastReference (sRef p_s, sRef p_ref, fileloc p_loc); +extern void sRef_setLastReference (/*@temp@*/ sRef p_s, /*@exposed@*/ sRef p_ref, fileloc p_loc); extern bool sRef_canModify (sRef p_s, sRefSet p_sl) /*@modifies p_s@*/ ; extern bool sRef_canModifyVal (sRef p_s, sRefSet p_sl) /*@modifies p_s@*/ ; extern bool sRef_isIReference (sRef p_s) /*@*/ ; @@ -269,6 +274,7 @@ extern bool sRef_isModified (sRef p_s) /*@*/ ; extern bool sRef_isExternallyVisible (sRef p_s) /*@*/ ; extern int sRef_compare (sRef p_s1, sRef p_s2) /*@*/ ; extern bool sRef_realSame (sRef p_s1, sRef p_s2) /*@*/ ; +extern bool sRef_sameObject (sRef p_s1, sRef p_s2) /*@*/ ; extern bool sRef_same (sRef p_s1, sRef p_s2) /*@*/ ; extern bool sRef_similar (sRef p_s1, sRef p_s2) /*@*/ ; extern /*@observer@*/ cstring sRef_getField (sRef p_s) /*@*/ ; @@ -285,23 +291,25 @@ extern void sRef_setDefinedNCComplete (sRef p_s, fileloc p_loc); extern int sRef_getParam (sRef p_s) /*@*/ ; extern int sRef_lexLevel (sRef p_s) /*@*/ ; extern void sRef_setOrigAliasKind (sRef p_s, alkind p_kind); + extern /*@exposed@*/ sRef sRef_fixBase (/*@returned@*/ sRef p_s, /*@returned@*/ sRef p_base) /*@modifies p_s, p_base@*/ ; extern void sRef_showNotReallyDefined (sRef p_s) /*@modifies g_msgstream@*/ ; -extern void sRef_enterFunctionScope (void); -extern void sRef_setGlobalScope (void); -extern void sRef_exitFunctionScope (void); -extern void sRef_clearGlobalScopeSafe (void); -extern void sRef_setGlobalScopeSafe (void); +extern void sRef_enterFunctionScope (void) /*@modifies internalState@*/ ; +extern void sRef_setGlobalScope (void) /*@modifies internalState@*/ ; +extern bool sRef_inGlobalScope (void) /*@*/ ; +extern void sRef_exitFunctionScope (void) /*@modifies internalState@*/ ; +extern void sRef_clearGlobalScopeSafe (void) /*@modifies internalState@*/ ; +extern void sRef_setGlobalScopeSafe (void) /*@modifies internalState@*/ ; extern /*@notnull@*/ /*@exposed@*/ sRef sRef_buildArrayFetch (/*@exposed@*/ sRef p_arr); extern /*@notnull@*/ /*@exposed@*/ sRef sRef_buildArrayFetchKnown (/*@exposed@*/ sRef p_arr, int p_i); extern /*@exposed@*/ sRef - sRef_buildField (sRef p_rec, /*@dependent@*/ cstring p_f) + sRef_buildField (/*@exposed@*/ sRef p_rec, /*@dependent@*/ cstring p_f) /*@modifies p_rec@*/ ; extern /*@exposed@*/ sRef sRef_buildPointer (/*@exposed@*/ sRef p_t) /*@modifies p_t@*/ ; @@ -313,9 +321,9 @@ extern /*@falsenull@*/ bool sRef_isUnconstrained (sRef p_s) /*@*/ ; extern /*@observer@*/ cstring sRef_unconstrainedName (sRef p_s) /*@*/ ; -extern /*@notnull@*/ /*@exposed@*/ sRef sRef_makeArrayFetch (sRef p_arr) /*@*/ ; +extern /*@notnull@*/ /*@exposed@*/ sRef sRef_makeArrayFetch (/*@exposed@*/ sRef p_arr) /*@*/ ; extern /*@notnull@*/ /*@exposed@*/ sRef - sRef_makeArrayFetchKnown (sRef p_arr, int p_i); + sRef_makeArrayFetchKnown (/*@exposed@*/ sRef p_arr, int p_i); extern /*@notnull@*/ /*@dependent@*/ sRef sRef_makeConj (/*@exposed@*/ /*@returned@*/ sRef p_a, /*@exposed@*/ sRef p_b); extern /*@notnull@*/ /*@dependent@*/ sRef @@ -327,31 +335,32 @@ extern /*@exposed@*/ sRef extern /*@notnull@*/ /*@dependent@*/ sRef sRef_makeGlobal (usymId p_l, ctype p_ct); extern /*@exposed@*/ sRef - sRef_makeNCField (sRef p_rec, /*@dependent@*/ cstring p_f) /*@*/ ; + sRef_makeNCField (/*@exposed@*/ sRef p_rec, /*@dependent@*/ cstring p_f) /*@*/ ; extern void sRef_maybeKill (sRef p_s, fileloc p_loc) /*@modifies p_s@*/ ; extern /*@unused@*/ /*@notnull@*/ /*@dependent@*/ sRef sRef_makeObject (ctype p_o) /*@*/ ; extern /*@notnull@*/ /*@dependent@*/ sRef sRef_makeType (ctype p_ct) /*@*/ ; extern /*@notnull@*/ /*@dependent@*/ sRef sRef_makeParam (int p_l, ctype p_ct) /*@*/ ; -extern /*@exposed@*/ sRef sRef_makePointer (sRef p_s) /*@modifies p_s@*/ ; +extern /*@exposed@*/ sRef sRef_makePointer (/*@exposed@*/ sRef p_s) /*@modifies p_s@*/ ; extern void sRef_makeSafe (sRef p_s) /*@modifies p_s@*/ ; extern void sRef_makeUnsafe (sRef p_s) /*@modifies p_s@*/ ; -extern sRef sRef_makeUnknown (void) /*@*/ ; -extern sRef sRef_makeNothing (void) /*@*/ ; -extern sRef sRef_makeInternalState (void) /*@*/ ; -extern sRef sRef_makeSpecState (void) /*@*/ ; -extern sRef sRef_makeSystemState (void) /*@*/ ; +extern /*@dependent@*/ sRef sRef_makeUnknown (void) /*@*/ ; +extern /*@dependent@*/ sRef sRef_makeNothing (void) /*@*/ ; +extern /*@dependent@*/ sRef sRef_makeInternalState (void) /*@*/ ; +extern /*@dependent@*/ sRef sRef_makeSpecState (void) /*@*/ ; +extern /*@dependent@*/ sRef sRef_makeGlobalMarker (void) /*@*/ ; +extern /*@dependent@*/ sRef sRef_makeSystemState (void) /*@*/ ; -extern /*@notnull@*/ sRef sRef_makeResult (void) /*@*/ ; +extern /*@dependent@*/ /*@notnull@*/ sRef sRef_makeResult (void) /*@*/ ; extern /*@exposed@*/ sRef sRef_fixResultType (/*@returned@*/ sRef p_s, ctype p_typ, uentry p_ue) /*@modifies p_s@*/; extern void sRef_setParamNo (sRef p_s, int p_l) /*@modifies p_s;@*/; -extern /*@notnull@*/ sRef - sRef_makeNew (ctype p_ct, sRef p_t, /*@exposed@*/ cstring p_name); +extern /*@notnull@*/ /*@dependent@*/ sRef + sRef_makeNew (ctype p_ct, sRef p_t, /*@exposed@*/ cstring p_name) ; extern usymId sRef_getScopeIndex (sRef p_s) /*@*/ ; extern /*@exposed@*/ uentry sRef_getBaseUentry (sRef p_s); @@ -366,7 +375,7 @@ extern /*@exposed@*/ sRef 12/24/2000 */ - /*@only@*/ constraintExpr sRef_fixConstraintParam (/*@observer@*/ sRef s, /*@observer@*/ /*@temp@*/ exprNodeList args); +/*@only@*/ constraintExpr sRef_fixConstraintParam (/*@observer@*/ sRef p_s, /*@observer@*/ /*@temp@*/ exprNodeList p_args); extern bool sRef_isUnionField (sRef p_s); extern void sRef_setModified (sRef p_s); @@ -404,6 +413,7 @@ extern void sRef_setKeptComplete (sRef p_s, fileloc p_loc) /*@modifies p_s@*/ ; extern void sRef_setFresh (sRef p_s, fileloc p_loc) /*@modifies p_s@*/ ; extern void sRef_setShared (sRef p_s, fileloc p_loc) /*@modifies p_s@*/ ; extern void sRef_showAliasInfo (sRef p_s) /*@modifies g_msgstream@*/ ; +extern void sRef_showMetaStateInfo (sRef p_s, cstring p_key) /*@modifies g_msgstream@*/ ; extern void sRef_showNullInfo (sRef p_s) /*@modifies g_msgstream@*/ ; extern void sRef_showStateInfo (sRef p_s) /*@modifies g_msgstream@*/ ; extern void sRef_setStateFromType (sRef p_s, ctype p_ct) /*@modifies p_s@*/ ; @@ -458,6 +468,10 @@ extern bool sRef_isStateSpecial (/*@sef@*/ sRef p_s) /*@*/ ; # define sRef_isStateSpecial(s) \ ((sRef_isValid(s)) && ((s)->defstate == SS_SPECIAL)) +extern bool sRef_makeStateSpecial (sRef p_s) + /*@modifies p_s@*/ + /* returns false is sRef already has an inconsistend defstate */ ; + extern bool sRef_isStateDefined (/*@sef@*/ sRef p_s) /*@*/ ; # define sRef_isStateDefined(s) \ ((sRef_isValid(s)) && (((s)->defstate == SS_DEFINED) \ @@ -523,10 +537,10 @@ extern void sRef_setExKind (sRef p_s, exkind p_exp, fileloc p_loc) /*@modifies p extern void sRef_setExposed (sRef p_s, fileloc p_loc) /*@modifies p_s@*/; extern bool sRef_isAnyParam (sRef p_s) /*@*/ ; -extern /*@observer@*/ sRef sRef_getAliasInfoRef (/*@exposed@*/ sRef p_s) /*@*/ ; +extern /*@observer@*/ sRef sRef_getAliasInfoRef (/*@temp@*/ sRef p_s) /*@*/ ; extern bool sRef_hasAliasInfoRef (sRef p_s) /*@*/ ; -extern /*@exposed@*/ sRef sRef_constructPointer (sRef p_t) /*@modifies p_t*/ ; +extern /*@exposed@*/ sRef sRef_constructPointer (/*@exposed@*/ sRef p_t) /*@modifies p_t*/ ; extern bool sRef_isAliasCheckedGlobal (sRef p_s) /*@*/ ; extern bool sRef_includedBy (sRef p_small, sRef p_big) /*@*/ ; extern /*@dependent@*/ /*@exposed@*/ sRef sRef_makeExternal (/*@exposed@*/ sRef p_t) /*@*/ ; @@ -545,7 +559,7 @@ extern void sRef_mergeOptState (sRef p_res, sRef p_other, clause p_cl, fileloc p /*@modifies p_res, p_other@*/ ; extern void sRef_mergeStateQuiet (sRef p_res, sRef p_other) /*@modifies p_res@*/ ; -extern void sRef_mergeStateQuietReverse (sRef p_res, sRef p_other) +extern void sRef_mergeStateQuietReverse (/*@dependent@*/ sRef p_res, /*@dependent@*/ sRef p_other) /*@modifies p_res@*/ ; extern void sRef_setStateFromUentry (sRef p_s, uentry p_ue) /*@modifies p_s@*/ ; @@ -560,7 +574,7 @@ extern void sRef_setDerivNullState (sRef p_set, sRef p_guide, nstate p_ns) extern void sRef_clearGlobalScope (void) /*@modifies internalState@*/ ; -extern sRef sRef_makeDerived (/*@exposed@*/ sRef p_t); +extern /*@dependent@*/ sRef sRef_makeDerived (/*@exposed@*/ sRef p_t); extern sstate sRef_getDefState (sRef p_s) /*@*/ ; extern void sRef_setDefState (sRef p_s, sstate p_defstate, fileloc p_loc); @@ -568,6 +582,9 @@ extern void sRef_showRefLost (sRef p_s); extern void sRef_showRefKilled (sRef p_s); extern /*@exposed@*/ sRef sRef_updateSref (sRef p_s); +extern void sRef_reflectAnnotation (sRef p_s, annotationInfo p_a, fileloc p_loc); +extern /*@observer@*/ valueTable sRef_getValueTable (sRef p_s) /*@*/ ; + extern void sRef_aliasCheckPred (bool (p_predf) (sRef, exprNode, sRef, exprNode), /*@null@*/ bool (p_checkAliases) (sRef), sRef p_s, exprNode p_e, exprNode p_err); @@ -587,15 +604,13 @@ extern /*@exposed@*/ /*@notnull@*/ sRef sRef_getConjB (sRef p_s) /*@*/ ; extern /*@only@*/ cstring sRef_unparsePreOpt (sRef p_s) /*@*/ ; extern bool sRef_hasName (sRef p_s) /*@*/ ; - extern void sRef_free (/*@only@*/ sRef p_s); - extern void sRef_setObserver (sRef p_s, fileloc p_loc) /*@modifies p_s@*/ ; /* start modifications */ /* functions for making modification to null-term info */ -extern void sRef_setNullTerminatedStateInnerComplete(sRef p_s, struct _bbufinfo p_b, fileloc p_loc); -extern struct _bbufinfo sRef_getNullTerminatedState(sRef p_s); +extern void sRef_setNullTerminatedStateInnerComplete(sRef p_s, struct s_bbufinfo p_b, fileloc p_loc); +extern struct s_bbufinfo sRef_getNullTerminatedState(sRef p_s); extern void sRef_setNullTerminatedState (sRef p_s); extern void sRef_setPossiblyNullTerminatedState (sRef p_s); extern void sRef_setNotNullTerminatedState (sRef p_s); @@ -613,7 +628,7 @@ extern int sRef_getLen(sRef p_s); #define sRef_getLen(p_s) \ ((p_s)->bufinfo.len) -extern void sRef_hasBufStateInfo(sRef p_s); +extern bool sRef_hasBufStateInfo(sRef p_s); # define sRef_hasBufStateInfo(p_s) \ (sRef_isValid(p_s)) @@ -641,9 +656,22 @@ extern bool sRef_isFixedArray (sRef p_s) /*@*/; extern long int sRef_getArraySize (sRef p_s) /*@*/; extern /*@observer@*/ cstring sRef_ntMessage (sRef p_s); +extern void sRef_resetLen (sRef p_s) /*@modifies p_s@*/ ; + /* end modifications */ -extern void sRef_resetLen (sRef p_s) /*@modifies p_s@*/ ; +extern void sRef_setMetaStateValueComplete (sRef p_s, cstring p_key, int p_value, fileloc p_loc) + /*@modifies p_s@*/ ; + +extern void sRef_setMetaStateValue (sRef p_s, cstring p_key, int p_value, fileloc p_loc) + /*@modifies p_s@*/ ; + +extern /*@observer@*/ stateValue sRef_getMetaStateValue (sRef p_s, cstring p_key) /*@*/ ; + +extern bool sRef_checkMetaStateValue (sRef p_s, cstring p_key, int p_value) + /*@modifies p_s@*/ ; + +extern /*@mayexit@*/ void sRef_checkValid (/*@temp@*/ sRef p_s) /*@modifies stderr@*/ ; # else # error "Multiple include" diff --git a/src/Headers/sRefList.h b/src/Headers/sRefList.h new file mode 100644 index 0000000..4bb32c3 --- /dev/null +++ b/src/Headers/sRefList.h @@ -0,0 +1,63 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** sRefList.h (from slist_templace.h) +*/ + +# ifndef sRefLIST_H +# define sRefLIST_H + +typedef /*@dependent@*/ sRef d_sRef ; + +struct s_sRefList +{ + int nelements; + int nspace; + /*@reldef@*/ /*@relnull@*/ d_sRef *elements; +} ; + +/*@iter sRefList_elements (sef sRefList x, yield exposed sRef el); @*/ +# define sRefList_elements(x, m_el) \ + { if (!sRefList_isUndefined(x)) \ + { int m_ind; sRef *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { sRef m_el = *(m_elements++); + +# define end_sRefList_elements }}} + +extern int sRefList_size (sRefList p_s) /*@*/ ; + +extern /*@truenull@*/ bool sRefList_isUndefined (sRefList p_s) /*@*/ ; +extern /*@unused@*/ /*@truenull@*/ bool sRefList_isEmpty (sRefList p_s) /*@*/ ; +extern /*@unused@*/ /*@falsenull@*/ bool sRefList_isDefined (sRefList p_s) /*@*/ ; + +# define sRefList_isEmpty(s) (sRefList_size(s) == 0) + +/*@constant null sRefList sRefList_undefined; @*/ +# define sRefList_undefined ((sRefList)0) + +# define sRefList_isUndefined(c) ((c) == sRefList_undefined) +# define sRefList_isDefined(c) ((c) != sRefList_undefined) + +extern /*@only@*/ sRefList sRefList_new (void); +extern /*@only@*/ sRefList sRefList_single (/*@dependent@*/ sRef p_el); + +extern /*@notnull@*/ sRefList + sRefList_add (/*@returned@*/ sRefList p_s, /*@exposed@*/ sRef p_el) /*@modifies p_s@*/ ; + +extern cstring sRefList_unparse (sRefList p_s) /*@*/ ; +extern void sRefList_free (/*@only@*/ sRefList p_s) ; +extern /*@only@*/ sRefList sRefList_copy (sRefList p_s) /*@*/ ; + +/*@constant int sRefListBASESIZE;@*/ +# define sRefListBASESIZE MIDBASESIZE + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/sRefSet.h b/src/Headers/sRefSet.h index 285f178..d70d5aa 100644 --- a/src/Headers/sRefSet.h +++ b/src/Headers/sRefSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,11 +12,13 @@ # ifndef sRefSET_H # define sRefSET_H -struct _sRefSet +typedef /*@exposed@*/ sRef ex_sRef; + +struct s_sRefSet { int entries; int nspace; - /*@reldef@*/ /*@relnull@*/ sRef *elements; + /*@reldef@*/ /*@relnull@*/ ex_sRef *elements; } ; /* in forwardTypes: typedef _sRefSet *sRefSet; */ @@ -74,19 +76,19 @@ extern bool sRefSet_isSameNameMember (sRefSet p_s, sRef p_el) /*@*/ ; extern /*@only@*/ sRefSet sRefSet_newCopy (/*@exposed@*/ /*@temp@*/ sRefSet p_s); extern /*@only@*/ sRefSet sRefSet_newDeepCopy (sRefSet p_s); extern int sRefSet_size(sRefSet p_s) /*@*/ ; -extern sRefSet sRefSet_union (/*@returned@*/ sRefSet p_s1, /*@exposed@*/ sRefSet p_s2); extern sRefSet sRefSet_unionFree (/*@returned@*/ sRefSet p_s1, /*@only@*/ sRefSet p_s2); extern /*@only@*/ sRefSet sRefSet_new (void) /*@*/ ; extern /*@only@*/ sRefSet sRefSet_single (/*@exposed@*/ sRef); extern sRefSet sRefSet_insert (/*@returned@*/ sRefSet p_s, /*@exposed@*/ sRef p_el); extern bool sRefSet_member (sRefSet p_s, sRef p_el) /*@*/ ; +extern bool sRefSet_containsSameObject (sRefSet p_s, sRef p_el) /*@*/ ; extern /*@only@*/ cstring sRefSet_unparse (sRefSet p_s) /*@*/ ; extern void sRefSet_free (/*@only@*/ sRefSet p_s) /*@modifies p_s@*/; extern void sRefSet_clear (sRefSet p_s) /*@modifies p_s@*/; extern /*@only@*/ sRefSet sRefSet_addIndirection (sRefSet p_s) /*@*/ ; extern /*@only@*/ sRefSet sRefSet_removeIndirection (sRefSet p_s) /*@*/ ; extern sRefSet - sRefSet_copy (/*@returned@*/ sRefSet p_s1, /*@exposed@*/ sRefSet p_s2) + sRefSet_union (/*@returned@*/ sRefSet p_s1, /*@exposed@*/ sRefSet p_s2) /*@modifies p_s1@*/ ; extern void sRefSet_levelPrune (sRefSet p_s, int p_lexlevel) /*@modifies p_s@*/ ; @@ -100,22 +102,26 @@ extern /*@only@*/ sRefSet sRefSet_accessField (sRefSet p_s, /*@observer@*/ cstri extern /*@only@*/ sRefSet sRefSet_realNewUnion (sRefSet p_s1, sRefSet p_s2); extern /*@only@*/ cstring sRefSet_unparseDebug (sRefSet p_s) /*@*/ ; extern /*@unused@*/ cstring sRefSet_unparseFull (sRefSet p_s) /*@*/ ; -# define sRefSet_unparseFull(s) sRefSet_unparseDebug(s) extern int sRefSet_compare (sRefSet p_s1, sRefSet p_s2) /*@*/ ; extern bool sRefSet_modifyMember (sRefSet p_s, sRef p_m) /*@modifies p_m@*/ ; extern /*@only@*/ sRefSet sRefSet_undump (char **p_s) /*@modifies *p_s@*/ ; extern /*@only@*/ cstring sRefSet_dump (sRefSet p_sl) /*@*/ ; extern bool sRefSet_deleteBase (sRefSet p_s, sRef p_base) /*@modifies p_s@*/ ; extern /*@exposed@*/ sRef sRefSet_choose (sRefSet p_s) /*@*/ ; -extern sRef sRefSet_mergeIntoOne (sRefSet p_s) /*@*/ ; +extern /*@exposed@*/ sRef sRefSet_mergeIntoOne (sRefSet p_s) /*@*/ ; extern /*@only@*/ sRefSet sRefSet_levelCopy (/*@exposed@*/ sRefSet p_s, int p_lexlevel) /*@*/ ; extern sRefSet sRefSet_unionExcept (/*@returned@*/ sRefSet p_s1, sRefSet p_s2, sRef p_ex) /*@modifies p_s1@*/ ; +sRefSet sRefSet_copyInto (/*@returned@*/ sRefSet p_s1, /*@exposed@*/ sRefSet p_s2) + /*@modifies p_s1@*/ ; + extern bool sRefSet_hasStatic (sRefSet p_s) /*@*/ ; +extern void sRefSet_markImmutable (sRefSet p_s) /*@modifies p_s@*/ ; + # else # error "Multiple include" # endif diff --git a/src/Headers/sRefSetList.h b/src/Headers/sRefSetList.h index 018e8e5..e90e9cf 100644 --- a/src/Headers/sRefSetList.h +++ b/src/Headers/sRefSetList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -8,7 +8,7 @@ typedef /*@dependent@*/ sRefSet d_sRefSet; -abst_typedef /*@null@*/ struct _sRefSetList +abst_typedef /*@null@*/ struct { int nelements; int nspace; diff --git a/src/Headers/sRefSetStack.h b/src/Headers/sRefSetStack.h index 4a18b66..d656d4e 100644 --- a/src/Headers/sRefSetStack.h +++ b/src/Headers/sRefSetStack.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/sRefTable.h b/src/Headers/sRefTable.h index 43beeb2..6ed695f 100644 --- a/src/Headers/sRefTable.h +++ b/src/Headers/sRefTable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -14,7 +14,7 @@ typedef /*@owned@*/ sRef ow_sRef; -abst_typedef /*@null@*/ struct _sRefTable +abst_typedef /*@null@*/ struct { int entries; int nspace; diff --git a/src/Headers/scan.h b/src/Headers/scan.h index 483e1fb..85990f9 100644 --- a/src/Headers/scan.h +++ b/src/Headers/scan.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -13,9 +13,9 @@ extern unsigned int lsllex (YYSTYPE *p_lval); extern ltoken LSLScanNextToken(void) /*@modifies internalState@*/ ; extern void LSLScanFreshToken(ltoken p_tok) /*@modifies internalState@*/ ; -extern /*@exposed@*/ tsource *LSLScanSource (void) /*@*/ ; +extern /*@exposed@*/ inputStream LSLScanSource (void) /*@*/ ; extern void LSLScanInit (void) /*@modifies internalState@*/ ; -extern void LSLScanReset (tsource *p_s) /*@modifies internalState@*/ ; +extern void LSLScanReset (inputStream p_s) /*@modifies internalState@*/ ; extern void LSLScanCleanup (void) /*@modifies internalState@*/ ; diff --git a/src/Headers/scanline.h b/src/Headers/scanline.h index 20b950e..393f7cd 100644 --- a/src/Headers/scanline.h +++ b/src/Headers/scanline.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/shift.h b/src/Headers/shift.h index f58bf22..7257dfe 100644 --- a/src/Headers/shift.h +++ b/src/Headers/shift.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/sigNode.h b/src/Headers/sigNode.h index 166a5e7..193c2ac 100644 --- a/src/Headers/sigNode.h +++ b/src/Headers/sigNode.h @@ -1,10 +1,10 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _sigNode { +typedef struct { ltoken tok; ltokenList domain; ltoken range; diff --git a/src/Headers/sigNodeSet.h b/src/Headers/sigNodeSet.h index 08fe060..e576d71 100644 --- a/src/Headers/sigNodeSet.h +++ b/src/Headers/sigNodeSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -14,7 +14,7 @@ typedef /*@owned@*/ sigNode o_sigNode; -abst_typedef /*@null@*/ struct _sigNodeSet +abst_typedef /*@null@*/ struct { int entries; int nspace; diff --git a/src/Headers/signNode.h b/src/Headers/signNode.h index 3814352..77e749a 100644 --- a/src/Headers/signNode.h +++ b/src/Headers/signNode.h @@ -1,9 +1,9 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ -typedef struct _signNode { +typedef struct { ltoken tok; sortList domain; sort range; diff --git a/src/Headers/signature.h b/src/Headers/signature.h index ce12aea..1567db4 100644 --- a/src/Headers/signature.h +++ b/src/Headers/signature.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ diff --git a/src/Headers/sort.h b/src/Headers/sort.h index a55ed35..63c52b1 100644 --- a/src/Headers/sort.h +++ b/src/Headers/sort.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -34,17 +34,17 @@ typedef enum { SRT_LAST } sortKind; -typedef struct _smemberInfo { +typedef struct s_smemberInfo { lsymbol name; sort sort; /*@reldef@*/ lsymbol sortname; /* useful for sort_imports (yuk!) */ - /*@null@*/ /*@dependent@*/ struct _smemberInfo *next; + /*@null@*/ /*@dependent@*/ struct s_smemberInfo *next; } smemberInfo; /*@constant null smemberInfo *smemberInfo_undefined; @*/ # define smemberInfo_undefined ((smemberInfo *)NULL) -typedef struct _sortNode +typedef struct { sortKind kind; @@ -92,7 +92,7 @@ typedef struct _sortNode bool mutable; /* TRUE if sort represents a mutable sort */ bool abstract; /* TRUE if sort represents an LCL abstract type */ bool imported; /* TRUE if sort was imported */ -} sortNode; +} *sortNode; extern cstring sort_unparse (sort p_s) /*@*/ ; extern /*@exposed@*/ cstring sort_unparseName (sort p_s) /*@*/ ; @@ -154,11 +154,11 @@ extern bool sort_setExporting (bool p_flag) /*@modifies internalState@*/ ; extern /*@unused@*/ void sort_printStats(void) /*@modifies g_msgstream@*/ ; -extern bool sort_equal (sort *p_s1, sort *p_s2) /*@*/ ; +extern bool sort_equal (sort p_s1, sort p_s2) /*@*/ ; extern sort sort_fromLsymbol (lsymbol p_sortid) /*@modifies internalState@*/ ; -extern void sort_import(tsource *p_imported, ltoken p_tok, mapping *p_map) - /*@modifies *p_imported, internalState@*/ ; +extern void sort_import (inputStream p_imported, ltoken p_tok, mapping p_map) + /*@modifies p_imported, internalState@*/ ; /*@-namechecks@*/ extern sort sort_bool; diff --git a/src/Headers/sortList.h b/src/Headers/sortList.h index 79f4704..72845ca 100644 --- a/src/Headers/sortList.h +++ b/src/Headers/sortList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -7,12 +7,12 @@ # ifndef SORTLIST_H # define SORTLIST_H -abst_typedef struct _sortList +abst_typedef struct { int nelements; int nspace; int current; - /*@reldef@*/ /*@relnull@*/ sort *elements; + /*@reldef@*/ /*@relnull@*/ sort *elements; } *sortList ; extern /*@only@*/ sortList sortList_new (void); diff --git a/src/Headers/sortSet.h b/src/Headers/sortSet.h index bc040b9..7639dbc 100644 --- a/src/Headers/sortSet.h +++ b/src/Headers/sortSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. ** */ @@ -12,7 +12,7 @@ # ifndef SORTSET_H # define SORTSET_H -abst_typedef /*@null@*/ struct _sortSet +abst_typedef /*@null@*/ struct { int entries; int nspace; diff --git a/src/Headers/sortSetList.h b/src/Headers/sortSetList.h index d9d081e..e157859 100644 --- a/src/Headers/sortSetList.h +++ b/src/Headers/sortSetList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef sortSetLIST_H @@ -7,7 +7,7 @@ typedef /*@dependent@*/ sortSet o_sortSet; -abst_typedef struct _sortSetList +abst_typedef struct { int nelements; int free; diff --git a/src/Headers/stDeclNode.h b/src/Headers/stDeclNode.h index fa0371f..3ac8dbe 100644 --- a/src/Headers/stDeclNode.h +++ b/src/Headers/stDeclNode.h @@ -1,9 +1,9 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ -typedef struct _stDeclNode { +typedef struct { lclTypeSpecNode lcltypespec; declaratorNodeList declarators; } *stDeclNode; diff --git a/src/Headers/stDeclNodeList.h b/src/Headers/stDeclNodeList.h index 551da99..380cc70 100644 --- a/src/Headers/stDeclNodeList.h +++ b/src/Headers/stDeclNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ @@ -8,7 +8,7 @@ typedef /*@only@*/ stDeclNode o_stDeclNode; -abst_typedef struct _stDeclNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/stateClause.h b/src/Headers/stateClause.h new file mode 100644 index 0000000..a237bc1 --- /dev/null +++ b/src/Headers/stateClause.h @@ -0,0 +1,118 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** stateClause.h +*/ + +# ifndef STATECLAUSE_H +# define STATECLAUSE_H + +typedef enum +{ + SP_USES, + SP_DEFINES, + SP_ALLOCATES, + SP_RELEASES, + SP_SETS, + SP_QUAL, + SP_GLOBAL +} stateClauseKind ; + +typedef enum +{ + TK_BEFORE, + TK_AFTER, + TK_BOTH +} stateConstraint; + +struct s_stateClause +{ + stateConstraint state; + stateClauseKind kind; + qual squal; /* only for SP_QUAL and SP_GLOBAL */ + sRefSet refs; + fileloc loc; +} ; + +/* in forwardTypes.h: abst_typedef struct _stateClause *stateClause; */ + +typedef /*@only@*/ stateClause o_stateClause; + +extern /*@unused@*/ cstring stateClause_unparse (stateClause p_s) /*@*/ ; + +extern /*@null@*/ sRefMod + stateClause_getEffectFunction (stateClause p_cl) /*@*/ ; + +extern /*@null@*/ sRefModVal + stateClause_getEnsuresFunction (stateClause p_cl) /*@*/ ; + +extern /*@null@*/ sRefModVal + stateClause_getRequiresBodyFunction (stateClause p_cl) /*@*/ ; + +extern int + stateClause_getStateParameter (stateClause p_cl) /*@*/ ; + +extern /*@null@*/ sRefMod + stateClause_getReturnEffectFunction (stateClause p_cl) /*@*/ ; + +extern /*@null@*/ sRefMod + stateClause_getEntryFunction (stateClause p_cl) /*@*/ ; + +extern bool stateClause_isGlobal (stateClause p_cl) /*@*/ ; +# define stateClause_isGlobal(cl) ((cl)->kind == SP_GLOBAL) + +extern bool stateClause_isBefore (stateClause p_cl) /*@*/ ; +extern bool stateClause_isBeforeOnly (stateClause p_cl) /*@*/ ; +extern bool stateClause_isAfter (stateClause p_cl) /*@*/ ; +extern bool stateClause_isEnsures (stateClause p_cl) /*@*/ ; + +extern bool stateClause_sameKind (stateClause p_s1, stateClause p_s2) /*@*/ ; + +extern /*@observer@*/ sRefSet stateClause_getRefs (stateClause p_cl) /*@*/ ; +# define stateClause_getRefs(cl) ((cl)->refs) + +extern flagcode stateClause_preErrorCode (stateClause p_cl) /*@*/ ; +extern /*@observer@*/ cstring + stateClause_preErrorString (stateClause p_cl, sRef p_sr) /*@*/ ; + +extern flagcode stateClause_postErrorCode (stateClause p_cl) /*@*/ ; +extern /*@observer@*/ cstring + stateClause_postErrorString (stateClause p_cl, sRef p_sr) /*@*/ ; + +extern sRefTest stateClause_getPreTestFunction (stateClause p_cl) /*@*/ ; +extern sRefTest stateClause_getPostTestFunction (stateClause p_cl) /*@*/ ; +extern sRefShower stateClause_getPostTestShower (stateClause p_cl) /*@*/ ; + +extern stateClause + stateClause_create (lltok p_tok, qual p_q, /*@only@*/ sRefSet p_s) /*@*/ ; + +extern stateClause + stateClause_createPlain (lltok p_tok, /*@only@*/ sRefSet p_s) /*@*/ ; + +extern stateClause stateClause_createDefines (/*@only@*/ sRefSet p_s) /*@*/ ; +extern stateClause stateClause_createUses (/*@only@*/ sRefSet p_s) /*@*/ ; +extern stateClause stateClause_createAllocates (/*@only@*/ sRefSet p_s) /*@*/ ; +extern stateClause stateClause_createReleases (/*@only@*/ sRefSet p_s) /*@*/ ; +extern stateClause stateClause_createSets (/*@only@*/ sRefSet p_s) /*@*/ ; + +extern /*@observer@*/ fileloc stateClause_loc (stateClause) /*@*/ ; +extern bool stateClause_isMemoryAllocation (stateClause p_cl) /*@*/ ; +extern void stateClause_free (/*@only@*/ stateClause p_s) ; +extern cstring stateClause_dump (stateClause p_s) /*@*/ ; +extern stateClause stateClause_undump (char **p_s) /*@modifies *p_s@*/ ; +extern stateClause stateClause_copy (stateClause p_s) /*@*/ ; +extern bool stateClause_matchKind (stateClause p_s1, stateClause p_s2) /*@*/ ; + +extern bool stateClause_hasEnsures (stateClause p_cl) /*@*/ ; +extern bool stateClause_hasRequires (stateClause p_cl) /*@*/ ; + +extern bool stateClause_setsMetaState (stateClause p_cl) /*@*/ ; +extern qual stateClause_getMetaQual (stateClause p_cl) /*@*/ ; + +# else +# error "Multiple include" +# endif + + diff --git a/src/Headers/stateClauseList.h b/src/Headers/stateClauseList.h new file mode 100644 index 0000000..79b3348 --- /dev/null +++ b/src/Headers/stateClauseList.h @@ -0,0 +1,89 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** stateClauseList.h +*/ + +# ifndef STATECLAUSELIST_H +# define STATECLAUSELIST_H + +struct s_stateClauseList +{ + int nelements; + int nspace; + /*@relnull@*/ /*@reldef@*/ o_stateClause *elements; +} ; + +extern void stateClauseList_checkAll (uentry p_ue) + /*@modifies p_ue, g_msgstream@*/ ; + +/*@constant null stateClauseList stateClauseList_undefined@*/ +# define stateClauseList_undefined ((stateClauseList) 0) + +extern /*@falsenull@*/ bool stateClauseList_isDefined (stateClauseList p_s) /*@*/ ; +# define stateClauseList_isDefined(s) ((s) != stateClauseList_undefined) + +extern /*@truenull@*/ bool stateClauseList_isUndefined (stateClauseList p_s) /*@*/ ; +# define stateClauseList_isUndefined(s) ((s) == stateClauseList_undefined) + +extern /*@unused@*/ int + stateClauseList_size (/*@sef@*/ stateClauseList p_s) /*@*/ ; +# define stateClauseList_size(s) (stateClauseList_isDefined (s) ? (s)->nelements : 0) + +extern cstring stateClause_unparseKind (stateClause p_s) /*@*/ ; + +extern stateClauseList + stateClauseList_add (/*@returned@*/ stateClauseList p_s, + /*@only@*/ stateClause p_el) + /*@modifies p_s@*/ ; + +extern /*@unused@*/ cstring stateClauseList_unparse (stateClauseList p_s) /*@*/ ; +extern void stateClauseList_free (/*@only@*/ stateClauseList p_s) ; + +extern /*@only@*/ stateClauseList stateClauseList_copy (stateClauseList p_s) /*@*/ ; + +extern cstring stateClauseList_dump (stateClauseList p_s) /*@*/ ; +extern stateClauseList stateClauseList_undump (char **p_s) /*@modifies *p_s@*/ ; + +extern int stateClauseList_compare (stateClauseList p_s1, stateClauseList p_s2) /*@*/ ; + +/*@constant int stateClauseListBASESIZE;@*/ +# define stateClauseListBASESIZE MIDBASESIZE + +extern void stateClauseList_checkEqual (uentry p_old, uentry p_unew) + /*@modifies g_msgstream@*/ ; + +/*@iter stateClauseList_elements (sef stateClauseList x, yield exposed stateClause el); @*/ +# define stateClauseList_elements(x, m_el) \ + { if (!stateClauseList_isUndefined(x)) \ + { int m_ind; stateClause *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { stateClause m_el = *(m_elements++); + +# define end_stateClauseList_elements }}} + +/*@iter stateClauseList_preElements (sef stateClauseList x, yield exposed stateClause el); @*/ +# define stateClauseList_preElements(x, m_el) \ + { if (!stateClauseList_isUndefined(x)) \ + { int m_ind; stateClause *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { stateClause m_el = *(m_elements++); if (stateClause_isBefore (m_el)) { \ + +# define end_stateClauseList_preElements }}}} + +/*@iter stateClauseList_postElements (sef stateClauseList x, yield exposed stateClause el); @*/ +# define stateClauseList_postElements(x, m_el) \ + { if (!stateClauseList_isUndefined(x)) \ + { int m_ind; stateClause *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { stateClause m_el = *(m_elements++); if (stateClause_isAfter (m_el)) { \ + +# define end_stateClauseList_postElements }}}} + +# else +# error "Multiple include" +# endif + + diff --git a/src/Headers/stateCombinationTable.h b/src/Headers/stateCombinationTable.h new file mode 100644 index 0000000..e8a30c4 --- /dev/null +++ b/src/Headers/stateCombinationTable.h @@ -0,0 +1,83 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** stateCombinationTable.h +*/ + +# ifndef STATECOMBINATIONTABLE_H +# define STATECOMBINATIONTABLE_H + +/* +** stateCombinationTable is a mapping: int x int -> int x cstring +** The int values must be in a fixed (pre-defined) range, 0, ..., max. +*/ + +typedef struct { + int value; + cstring msg; +} *stateEntry; + +/*@i23 typedef @only@ stateEntry o_stateEntry; */ + +typedef struct +{ + int size; + /*@only@*/ stateEntry *entries; +} *stateRow; + +# if 0 +this breaks comething? typedef /*@only@*/ stateRow o_stateRow; /*@i324*/ +# endif + +abst_typedef struct +{ + int size; + /*@only@*/ stateRow *rows; +} *stateCombinationTable; + +extern /*@only@*/ stateCombinationTable stateCombinationTable_create (int p_size); + +extern void stateCombinationTable_set (stateCombinationTable p_h, + int p_from, int p_to, + int p_value, + /*@only@*/ cstring p_msg); + +extern void stateCombinationTable_update (stateCombinationTable p_h, + int p_from, int p_to, + int p_value, + /*@only@*/ cstring p_msg); + +extern int stateCombinationTable_lookup + (stateCombinationTable p_h, int p_from, + int p_to, /*@out@*/ /*@observer@*/ cstring *p_msg); + +extern int stateCombinationTable_lookupLoseReference + (stateCombinationTable p_h, int p_from, + /*@out@*/ /*@observer@*/ cstring *p_msg); + +extern void stateCombinationTable_free (/*@only@*/ stateCombinationTable p_t); + +extern int stateCombinationTable_size (stateCombinationTable p_h) /*@*/ ; +# define stateCombinationTable_size(h) ((h)->size) + +extern cstring stateCombinationTable_unparse (stateCombinationTable) /*@*/ ; + +# else +# error "Multiple include" +# endif + + + + + + + + + + + + + diff --git a/src/Headers/stateInfo.h b/src/Headers/stateInfo.h new file mode 100644 index 0000000..a446b4b --- /dev/null +++ b/src/Headers/stateInfo.h @@ -0,0 +1,44 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** stateInfo.h +*/ + +# ifndef STATEINFO_H +# define STATEINFO_H + +typedef /*@null@*/ struct +{ + /*@only@*/ fileloc loc; + /*@observer@*/ sRef ref; + /*@observer@*/ uentry ue; +} *stateInfo; + +/*@constant null stateInfo stateInfo_undefined@*/ +# define stateInfo_undefined (NULL) + +extern /*@falsenull@*/ bool stateInfo_isDefined (stateInfo p_s) /*@*/ ; +# define stateInfo_isDefined(p_s) ((p_s) != stateInfo_undefined) + +extern void stateInfo_free (/*@only@*/ stateInfo p_a); + +extern /*@only@*/ stateInfo stateInfo_update (/*@only@*/ stateInfo p_old, stateInfo p_newinfo); + +extern /*@only@*/ stateInfo stateInfo_updateLoc (/*@only@*/ stateInfo p_old, fileloc p_loc) ; + +extern /*@only@*/ stateInfo + stateInfo_updateRefLoc (/*@only@*/ stateInfo p_old, /*@exposed@*/ sRef p_ref, fileloc p_loc) ; + +extern /*@only@*/ stateInfo stateInfo_copy (stateInfo p_a); + +extern /*@only@*/ /*@notnull@*/ stateInfo stateInfo_makeLoc (fileloc p_loc) ; +extern /*@only@*/ stateInfo stateInfo_makeRefLoc (/*@exposed@*/ sRef p_ref, fileloc p_loc) ; + +extern /*@observer@*/ fileloc stateInfo_getLoc (stateInfo p_info) ; +extern /*@only@*/ cstring stateInfo_unparse (stateInfo p_s) /*@*/ ; + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/stateValue.h b/src/Headers/stateValue.h new file mode 100644 index 0000000..587c060 --- /dev/null +++ b/src/Headers/stateValue.h @@ -0,0 +1,68 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** stateValue.h +*/ + +# ifndef STATEVALUE_H +# define STATEVALUE_H + +/* +** Keeps track of the value of a state variable, as well as tracking +** information about its history. +*/ + +struct s_stateValue +{ + int value; + /*@only@*/ stateInfo info; +}; + +extern stateValue stateValue_create (int p_value, /*@only@*/ stateInfo p_info) /*@*/ ; + +/*@constant null stateValue stateValue_undefined@*/ +# define stateValue_undefined (NULL) + +extern /*@truenull@*/ bool stateValue_isUndefined (stateValue) /*@*/ ; +# define stateValue_isUndefined(p_s) ((p_s) == stateValue_undefined) + +extern /*@falsenull@*/ bool stateValue_isDefined (stateValue) /*@*/ ; +# define stateValue_isDefined(p_s) ((p_s) != NULL) + +extern int stateValue_getValue (stateValue p_s) /*@*/ ; + +extern void stateValue_update (stateValue p_res, stateValue p_val) /*@modifies p_res@*/ ; + +extern /*@observer@*/ fileloc stateValue_getLoc (stateValue p_s) /*@*/ ; +# define stateValue_getLoc(p_s) (stateInfo_getLoc (stateValue_getInfo (p_s))) + +extern bool stateValue_hasLoc (stateValue p_s) /*@*/ ; + +extern /*@observer@*/ stateInfo stateValue_getInfo (stateValue p_s) /*@*/ ; + +extern void stateValue_updateValue (/*@sef@*/ stateValue p_s, int p_value, /*@only@*/ stateInfo p_info) /*@modifies p_s@*/ ; + +extern void stateValue_updateValueLoc (stateValue p_s, int p_value, fileloc p_loc) /*@modifies p_s@*/ ; + +extern void stateValue_show (stateValue p_s, metaStateInfo p_msinfo) ; + +extern stateValue stateValue_copy (stateValue p_s) /*@*/ ; + +extern /*@observer@*/ cstring + stateValue_unparseValue (stateValue p_s, metaStateInfo p_msinfo) /*@*/ ; + +extern cstring stateValue_unparse (stateValue p_s) /*@*/ ; + +extern bool stateValue_sameValue (stateValue p_s1, stateValue p_s2) /*@*/ ; + +extern bool stateValue_isError (stateValue p_s) /*@*/ ; +# define stateValue_isError(p_s) (stateValue_getValue (p_s) == stateValue_error) + +/*@constant int stateValue_error@*/ +# define stateValue_error -1 + +# else +# error "Multiple include" +# endif diff --git a/src/Headers/stmtNode.h b/src/Headers/stmtNode.h index 9220af5..b166c51 100644 --- a/src/Headers/stmtNode.h +++ b/src/Headers/stmtNode.h @@ -1,12 +1,12 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ -typedef struct _stmtNode { +struct s_stmtNode { ltoken lhs; ltoken operator; termNodeList args; -} *stmtNode; +} ; extern /*@unused@*/ /*@notnull@*/ /*@only@*/ cstring stmtNode_unparse (stmtNode p_x); diff --git a/src/Headers/storeRefNode.h b/src/Headers/storeRefNode.h index 7d7152f..a881235 100644 --- a/src/Headers/storeRefNode.h +++ b/src/Headers/storeRefNode.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ @@ -7,12 +7,12 @@ typedef enum { SRN_TERM, SRN_TYPE, SRN_OBJ, SRN_SPECIAL } storeRefNodeKind; -typedef struct _storeRefNode { +typedef struct { storeRefNodeKind kind; union { - struct _termNode *term; /* for SRN_TERM */ - lclTypeSpecNode type; /* for SRN_OBJ and SRN_TYPE */ - sRef ref; /* for SRN_SPECIAL */ + termNode term; /* for SRN_TERM */ + lclTypeSpecNode type; /* for SRN_OBJ and SRN_TYPE */ + /*@dependent@*/ sRef ref; /* for SRN_SPECIAL */ } content; } *storeRefNode; diff --git a/src/Headers/storeRefNodeList.h b/src/Headers/storeRefNodeList.h index f45ea4c..d940736 100644 --- a/src/Headers/storeRefNodeList.h +++ b/src/Headers/storeRefNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef STOREREFNODELIST_H @@ -7,7 +7,7 @@ typedef /*@only@*/ storeRefNode o_storeRefNode; -abst_typedef struct _storeRefNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/strOrUnionNode.h b/src/Headers/strOrUnionNode.h index 90b3cd9..6977a13 100644 --- a/src/Headers/strOrUnionNode.h +++ b/src/Headers/strOrUnionNode.h @@ -1,11 +1,11 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ typedef enum {SU_STRUCT, SU_UNION} suKind; -typedef struct _strOrUnionNode { +typedef struct { suKind kind; ltoken tok; /* also encodes if it's struct or union */ ltoken opttagid; diff --git a/src/Headers/structNames.h b/src/Headers/structNames.h index 43d4d4a..b8ca478 100644 --- a/src/Headers/structNames.h +++ b/src/Headers/structNames.h @@ -7,11 +7,12 @@ extern /*@only@*/ cstring makeEnum(cstring p_s); extern /*@only@*/ cstring makeParam (cstring p_s); extern void setTagNo (unsigned int p_n); -extern bool isFakeTag (cstring p_s); +extern bool isFakeTag (cstring p_s) /*@*/ ; extern /*@only@*/ cstring fakeTag (void); extern /*@only@*/ cstring fixTagName (cstring p_s); extern /*@observer@*/ cstring fixParamName (cstring p_s); +extern /*@observer@*/ cstring plainTagName (cstring p_s) /*@*/ ; # else # error "Multiple include" diff --git a/src/Headers/symtable.h b/src/Headers/symtable.h index b6e6508..aed7481 100644 --- a/src/Headers/symtable.h +++ b/src/Headers/symtable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* @@ -24,14 +24,14 @@ N2 and N3, each keyed on the lsymbol of the identifier. */ typedef long unsigned symbolKey; -typedef struct _fctInfo { +typedef struct { ltoken id; bool export; /* all HOF maps to one sort kind: SRT_HOF */ /*@only@*/ signNode signature; /* in terms of sorts, no HOF */ /*@only@*/ pairNodeList globals; /* list of (sort globalnameSym) */ } *fctInfo; -typedef struct _typeInfo { +typedef struct { ltoken id; sort basedOn; bool abstract; /* TRUE means LCL abstract type */ @@ -52,9 +52,9 @@ typedef enum VRK_LET, /* local let variable in a function decl */ VRK_PARAM, /* formal parameters of a function/claim */ VRK_QUANT /* bound by a quantifier */ - } varKind; +} varKind; -typedef struct _varInfo { +typedef struct { ltoken id; sort sort; varKind kind; @@ -66,12 +66,12 @@ typedef struct _varInfo { as one of {opId, anyOp, logicalOp, simpleOp, eqOp, MULOP} ltoken. Each occurrence in an LSL file appears as an lslOp AST. */ -typedef struct _opInfo { +typedef struct { /*@only@*/ nameNode name; /*@only@*/ sigNodeSet signatures; } *opInfo; -typedef struct _tagInfo { +typedef struct { ltoken id; tagKind kind; bool imported; @@ -100,7 +100,7 @@ typedef enum { SPE_ABSTRACT, SPE_INVALID } scopeKind; -typedef struct _scopeInfo { +typedef struct { scopeKind kind; } *scopeInfo; @@ -113,9 +113,9 @@ typedef struct _scopeInfo { ** data_key: htData * -> unsigned int */ -typedef struct _htEntry { +typedef struct s_htEntry { /*@only@*/ htData *data; - /*@only@*/ struct _htEntry *next; + /*@only@*/ struct s_htEntry *next; } htEntry; /* Each bucket is a linked list of entries */ @@ -131,7 +131,7 @@ typedef struct { /* Local to implementation */ -typedef struct _symtableStruct *symtable; +typedef struct s_symtableStruct *symtable; extern /*@falsenull@*/ bool typeInfo_exists(/*@null@*/ typeInfo p_ti); # define typeInfo_exists(ti) ((ti) != NULL) @@ -172,13 +172,13 @@ extern /*@observer@*/ /*@null@*/ tagInfo symtable_tagInfo(symtable p_st, lsymbol extern void symtable_export(symtable p_stable, bool p_yesNo); extern void symtable_dump(symtable p_stable, FILE *p_f, bool p_lco); -extern void symtable_import(tsource *p_imported, ltoken p_tok, mapping *p_map); +extern void symtable_import(inputStream p_imported, ltoken p_tok, mapping p_map); extern /*@unused@*/ void symtable_printStats (symtable p_s); extern lsymbol lsymbol_sortFromType (symtable, lsymbol); extern cstring tagKind_unparse (tagKind p_k); -extern lsymbol lsymbol_translateSort (mapping *p_m, lsymbol p_s); +extern lsymbol lsymbol_translateSort (mapping p_m, lsymbol p_s); extern void varInfo_free (/*@only@*/ varInfo p_v); extern /*@only@*/ lslOpSet diff --git a/src/Headers/syntable.h b/src/Headers/syntable.h index a6bf754..82b08e8 100644 --- a/src/Headers/syntable.h +++ b/src/Headers/syntable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* diff --git a/src/Headers/system_constants.h b/src/Headers/system_constants.h index 05b58b8..c7a34d6 100644 --- a/src/Headers/system_constants.h +++ b/src/Headers/system_constants.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef SYSTEM_CONSTANTS_H diff --git a/src/Headers/taggedUnionNode.h b/src/Headers/taggedUnionNode.h index 8e4ac34..eddd930 100644 --- a/src/Headers/taggedUnionNode.h +++ b/src/Headers/taggedUnionNode.h @@ -1,9 +1,9 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ -typedef struct _taggedUnionNode { +typedef struct { stDeclNodeList structdecls; declaratorNode declarator; } *taggedUnionNode; diff --git a/src/Headers/termNode.h b/src/Headers/termNode.h index 251ebb7..35b4541 100644 --- a/src/Headers/termNode.h +++ b/src/Headers/termNode.h @@ -1,9 +1,9 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ -struct _termNode +struct s_termNode { int wrapped; /* the number of matched parentheses around this term */ termKIND kind; @@ -13,7 +13,7 @@ struct _termNode bool error_reported; /* to prevent multiple sort checking error messages */ lslOpSet possibleOps; /* only for TRM_ZEROARY and TRM_APPLICATION */ /* should make a union but skip this for now */ - /*@null@*/ struct _nameNode *name; + /*@null@*/ nameNode name; termNodeList args; /* in order */ /*@reldef@*/ ltoken literal; /* for TRM_LITERAL, TRM_UNCHANGEDALL, TRM_SIZEOF, LCLvariableKIND, diff --git a/src/Headers/termNodeList.h b/src/Headers/termNodeList.h index 4574248..0adeec9 100644 --- a/src/Headers/termNodeList.h +++ b/src/Headers/termNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ @@ -8,7 +8,7 @@ typedef /*@only@*/ termNode o_termNode; -struct _termNodeList +struct s_termNodeList { int nelements; int nspacehigh; diff --git a/src/Headers/tokentable.h b/src/Headers/tokentable.h index 065b79f..4d547c4 100644 --- a/src/Headers/tokentable.h +++ b/src/Headers/tokentable.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* diff --git a/src/Headers/traitRefNode.h b/src/Headers/traitRefNode.h index a7ae092..c703672 100644 --- a/src/Headers/traitRefNode.h +++ b/src/Headers/traitRefNode.h @@ -1,9 +1,9 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ -typedef struct _traitRefNode { +typedef struct { ltokenList traitid; /* a list of traitId ltoken's */ /*@null@*/ renamingNode rename; /* a list of renamings */ } *traitRefNode; diff --git a/src/Headers/traitRefNodeList.h b/src/Headers/traitRefNodeList.h index b77e684..5f68149 100644 --- a/src/Headers/traitRefNodeList.h +++ b/src/Headers/traitRefNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef traitRefNodeLIST_H @@ -7,7 +7,7 @@ typedef /*@only@*/ traitRefNode o_traitRefNode; -abst_typedef struct _traitRefNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/transferChecks.h b/src/Headers/transferChecks.h new file mode 100644 index 0000000..7e41133 --- /dev/null +++ b/src/Headers/transferChecks.h @@ -0,0 +1,35 @@ +/* +** transferChecks.h +*/ + +extern alkind alkind_resolve (alkind p_a1, alkind p_a2) /*@*/ ; +extern bool checkGlobalDestroyed (sRef p_fref, fileloc p_loc) + /*@modifies g_msgstream@*/ ; +extern void checkLocalDestroyed (sRef p_fref, fileloc p_loc) + /*@modifies g_msgstream@*/ ; + +extern void checkAssignTransfer (exprNode p_lhs, exprNode p_rhs); +extern void checkPassTransfer (exprNode p_fexp, uentry p_arg, bool p_isSpec, + /*@dependent@*/ exprNode p_fcn, int p_argno, int p_totargs); +extern void checkReturnTransfer (exprNode p_fexp, uentry p_rval); +extern void checkGlobReturn (uentry p_glob); +extern void checkParamReturn (uentry p_actual); +extern void checkLoseRef (uentry p_actual); +extern bool canLoseReference (/*@dependent@*/ sRef p_sr, fileloc p_loc); +extern void checkInitTransfer (exprNode p_lhs, exprNode p_rhs); +extern void checkStructDestroyed (sRef p_fref, fileloc p_loc); + +/* transfer types: */ + +typedef enum +{ + TT_FCNRETURN, + TT_DOASSIGN, + TT_FIELDASSIGN, + TT_FCNPASS, + TT_GLOBPASS, + TT_GLOBRETURN, + TT_PARAMRETURN, + TT_LEAVETRANS, + TT_GLOBINIT +} transferKind; diff --git a/src/Headers/typeExpr.h b/src/Headers/typeExpr.h index bcf8b6d..e8508a0 100644 --- a/src/Headers/typeExpr.h +++ b/src/Headers/typeExpr.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* @@ -11,7 +11,7 @@ typedef enum TEXPR_BASE, TEXPR_PTR, TEXPR_ARRAY, TEXPR_FCN } typeExprKind; -struct _typeExpr +struct s_typeExpr { int wrapped; /* number of balanced parentheses around this program node */ typeExprKind kind; /* different kinds of type constructors */ diff --git a/src/Headers/typeIdSet.h b/src/Headers/typeIdSet.h index cca2900..0f0cdee 100644 --- a/src/Headers/typeIdSet.h +++ b/src/Headers/typeIdSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* diff --git a/src/Headers/typeNameNode.h b/src/Headers/typeNameNode.h index bc7d118..c51931a 100644 --- a/src/Headers/typeNameNode.h +++ b/src/Headers/typeNameNode.h @@ -1,12 +1,12 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ -typedef struct _typeNameNode { +typedef struct { bool isTypeName; /*@null@*/ typeNamePack typename; - /*@null@*/ struct _opFormNode *opform; + /*@null@*/ opFormNode opform; } *typeNameNode; extern void typeNameNode_free (/*@only@*/ /*@null@*/ typeNameNode p_n); diff --git a/src/Headers/typeNameNodeList.h b/src/Headers/typeNameNodeList.h index 9f7f759..128164c 100644 --- a/src/Headers/typeNameNodeList.h +++ b/src/Headers/typeNameNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ @@ -8,7 +8,7 @@ typedef /*@only@*/ typeNameNode o_typeNameNode; -abst_typedef struct _typeNameNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/typeNamePack.h b/src/Headers/typeNamePack.h index 3030f41..36d27e0 100644 --- a/src/Headers/typeNamePack.h +++ b/src/Headers/typeNamePack.h @@ -1,9 +1,9 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ -typedef struct _typeNamePack { +typedef struct { bool isObj; lclTypeSpecNode type; abstDeclaratorNode abst; diff --git a/src/Headers/typeNode.h b/src/Headers/typeNode.h index 9ff18d0..e1626fb 100644 --- a/src/Headers/typeNode.h +++ b/src/Headers/typeNode.h @@ -1,12 +1,12 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef TYPENODE_H # define TYPENODE_H -typedef struct _typeNode { +typedef struct { typeKind kind; union { abstractNode abstract; diff --git a/src/Headers/uentry.h b/src/Headers/uentry.h index caaa6c3..e804f3a 100644 --- a/src/Headers/uentry.h +++ b/src/Headers/uentry.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef UENTRY_H @@ -15,7 +15,7 @@ ** vkind --- need to fix value for consistency in dump files */ -typedef struct _ucinfo +typedef struct { /*@only@*/ multiVal val; typeIdSet access; @@ -47,19 +47,19 @@ typedef enum } chkind; /* start modifications */ -typedef enum _bbufstate { +typedef enum { BB_POSSIBLYNULLTERMINATED, /* buffer is possibly nullterm(can't decide statically) */ BB_NULLTERMINATED, /*buffer is known to be nullterminated */ BB_NOTNULLTERMINATED /* buffer is known to be not nullterm */ } bbufstate; -typedef struct _bbufinfo { +typedef struct s_bbufinfo { bbufstate bufstate; /* state of the buffer */ int size; /* size of the buffer allocated */ int len; /* len of the buffer VALID ONLY IF state is NULLTERM */ } *bbufinfo ; -typedef struct _uvinfo +typedef struct { vkind kind; /* kind (parameter, specified) */ chkind checked; /* how is it checked */ @@ -70,7 +70,7 @@ typedef struct _uvinfo } *uvinfo ; /* end modifications */ -typedef struct _udinfo +typedef struct { ynm abs; ynm mut; @@ -88,7 +88,7 @@ typedef enum SPC_LAST } specCode; -typedef struct _ufinfo +typedef struct { qual nullPred; specCode specialCode; @@ -98,7 +98,7 @@ typedef struct _ufinfo /*@owned@*/ globSet globs; /* globals list */ /*@owned@*/ sRefSet mods; /* modifies */ - specialClauses specclauses; + stateClauseList specclauses; /*@dependent@*/ uentryList defparams; bool hasGlobs BOOLBITS; @@ -109,19 +109,19 @@ typedef struct _ufinfo } *ufinfo ; -typedef struct _uiinfo +typedef struct { typeIdSet access; /*@owned@*/ globSet globs; /* globals list */ /*@owned@*/ sRefSet mods; /* modifies */ } *uiinfo ; -typedef struct _ueinfo +typedef struct { typeIdSet access; } *ueinfo ; -typedef union _uinfo +typedef union { ucinfo uconst; uvinfo var; @@ -131,7 +131,7 @@ typedef union _uinfo ueinfo enditer; } *uinfo ; -struct _uentry +struct s_uentry { ekind ukind; cstring uname; @@ -146,8 +146,11 @@ struct _uentry ** functions state of return value ** types state of datatype */ + /*@exposed@*/ /*@null@*/ sRef sref; + warnClause warn; + /* Location list is complete only if showalluses is set. */ filelocList uses; @@ -295,6 +298,8 @@ extern /*@falsenull@*/ bool uentry_isDeclared (/*@special@*/ uentry p_e) /*@uses p_e->whereDeclared@*/ /*@*/ ; extern /*@observer@*/ cstring uentry_ekindName (uentry p_ue) /*@*/ ; +extern /*@observer@*/ cstring uentry_ekindNameLC (uentry p_ue) /*@*/ ; + extern void uentry_showWhereDefined (uentry p_spec); extern /*@falsenull@*/ bool uentry_isEndIter (uentry p_e) /*@*/ ; extern /*@falsenull@*/ bool uentry_isEnumTag (/*@special@*/ uentry p_ue) @@ -327,6 +332,9 @@ extern /*@falsenull@*/ bool uentry_isVariable (/*@special@*/ uentry p_e) extern cstring uentry_dump (uentry p_v) ; extern cstring uentry_dumpParam (uentry p_v); + +extern /*@observer@*/ cstring uentry_observeRealName (uentry p_e) /*@*/ ; + extern cstring uentry_getName (/*@special@*/ uentry p_e) /*@uses p_e->ukind, p_e->info, p_e->uname@*/ /*@*/ ; @@ -352,7 +360,7 @@ extern /*@notnull@*/ uentry uentry_makeExpandedMacro (cstring p_s, extern void uentry_checkMatchParam (uentry p_u1, uentry p_u2, int p_paramno, exprNode p_e) /*@modifies g_msgstream@*/ ; -extern /*@observer@*/ specialClauses uentry_getSpecialClauses (uentry p_ue) /*@*/ ; +extern /*@observer@*/ stateClauseList uentry_getStateClauseList (uentry p_ue) /*@*/ ; extern void uentry_showWhereLastExtra (uentry p_spec, /*@only@*/ cstring p_extra) /*@modifies g_msgstream@*/ ; @@ -402,11 +410,11 @@ extern /*@notnull@*/ /*@only@*/ uentry /*@keep@*/ fileloc p_f, bool p_priv, /*@only@*/ multiVal p_m) /*@*/ ; extern /*@notnull@*/ /*@only@*/ uentry - uentry_makeDatatype (/*@temp@*/ cstring p_n, ctype p_t, ynm p_mut, ynm p_abs, + uentry_makeDatatype (/*@temp@*/ cstring p_n, ctype p_t, ynm p_mut, ynm p_abstract, /*@only@*/ fileloc p_f) /*@*/ ; extern /*@notnull@*/ /*@only@*/ uentry uentry_makeDatatypeAux (/*@temp@*/ cstring p_n, ctype p_t, ynm p_mut, - ynm p_abs, /*@keep@*/ fileloc p_f, bool p_priv) /*@*/ ; + ynm p_abstract, /*@keep@*/ fileloc p_f, bool p_priv) /*@*/ ; extern /*@notnull@*/ uentry uentry_makeElipsisMarker (void) /*@*/ ; extern void uentry_makeVarFunction (/*@temp@*/ uentry p_ue) /*@modifies p_ue@*/ ; @@ -426,6 +434,7 @@ extern /*@notnull@*/ uentry uentry_makeFunction (cstring p_n, ctype p_t, typeId p_access, /*@only@*/ globSet p_globs, /*@only@*/ sRefSet p_mods, + /*@only@*/ warnClause p_warn, /*@only@*/ fileloc p_f); extern /*@notnull@*/ uentry @@ -453,13 +462,13 @@ extern /*@notnull@*/ /*@only@*/ extern /*@notnull@*/ /*@only@*/ uentry uentry_makeVariableSrefParam (cstring p_n, ctype p_t, - sRef p_s); + /*@exposed@*/ sRef p_s); extern /*@notnull@*/ /*@only@*/ uentry uentry_makeIdFunction (idDecl p_id); extern /*@notnull@*/ /*@only@*/ uentry uentry_makeIdDatatype (idDecl p_id); extern /*@notnull@*/ /*@only@*/ - uentry uentry_makeBoolDatatype (ynm p_abs); + uentry uentry_makeBoolDatatype (ynm p_abstract); extern void uentry_mergeDefinition (uentry p_old, /*@only@*/ uentry p_unew); extern void uentry_mergeEntries (uentry p_spec, /*@only@*/ uentry p_def); extern uentry uentry_nameCopy (/*@only@*/ cstring p_name, uentry p_e); @@ -490,7 +499,12 @@ extern void uentry_setStatic (uentry p_c); extern void uentry_setModifies (uentry p_ue, /*@owned@*/ sRefSet p_sr) /*@modifies p_ue, p_sr@*/; -extern void uentry_setSpecialClauses (uentry p_ue, /*@only@*/ specialClauses p_clauses) +extern bool uentry_hasWarning (uentry p_ue) /*@*/ ; + +extern void uentry_addWarning (uentry p_ue, /*@only@*/ warnClause p_warn) + /*@modifies p_ue*/; + +extern void uentry_setStateClauseList (uentry p_ue, /*@only@*/ stateClauseList p_clauses) /*@modifies p_ue@*/ ; extern void uentry_setType (uentry p_e, ctype p_t); @@ -524,12 +538,13 @@ extern void uentry_setRefParam (uentry p_e) /*@modifies p_e@*/ ; extern void uentry_setDeclaredForce (uentry p_e, fileloc p_f) /*@modifies p_e@*/; extern bool uentry_isNonLocal (uentry p_ue) /*@*/ ; -extern bool uentry_isGlobal (uentry p_ue) /*@*/; +extern bool uentry_isGlobalVariable (uentry p_ue) /*@*/; +extern bool uentry_isVisibleExternally (uentry p_ue) /*@*/; extern bool uentry_isRefParam (uentry p_u) /*@*/ ; extern bool uentry_hasGlobs (uentry p_ue) /*@*/ ; extern bool uentry_hasMods (uentry p_ue) /*@*/ ; -extern bool uentry_hasSpecialClauses (uentry p_ue) /*@*/ ; +extern bool uentry_hasStateClauseList (uentry p_ue) /*@*/ ; extern exitkind uentry_getExitCode (uentry p_ue) /*@*/ ; extern void uentry_checkYieldParam (uentry p_old, uentry p_unew); @@ -545,7 +560,7 @@ extern alkind uentry_getAliasKind (uentry p_u) /*@*/ ; extern exkind uentry_getExpKind (uentry p_u) /*@*/ ; extern /*@observer@*/ multiVal uentry_getConstantValue (uentry p_e) /*@*/ ; extern void uentry_fixupSref (uentry p_ue) /*@modifies p_ue@*/ ; -extern void uentry_setGlobals (uentry p_ue, /*@owned@*/ globSet p_globs) /*@modifies p_ue@*/ ; +extern void uentry_setGlobals (uentry p_ue, /*@owned@*/ globSet p_globs) /*@modifies p_ue, p_globs@*/ ; extern bool uentry_isYield (uentry p_ue) /*@*/ ; extern /*@notnull@*/ uentry uentry_makeIdConstant (idDecl p_t) /*@*/ ; extern /*@observer@*/ cstring uentry_getRealName (uentry p_e) /*@*/ ; @@ -583,8 +598,8 @@ extern void uentry_setCheckedStrict (uentry p_ue) /*@modifies p_ue@*/ ; extern bool uentry_hasAccessType (uentry p_e); -extern /*@exposed@*/ uentry uentry_makeUnrecognized (cstring p_c, /*@keep@*/ fileloc p_loc); - +/*@constant cstring GLOBAL_MARKER_NAME@*/ +# define GLOBAL_MARKER_NAME cstring_makeLiteralTemp ("#GM#") /* start modifications */ //extern void uentry_setBufferSize (uentry p_e, exprNode cconstant); @@ -620,6 +635,11 @@ extern bool uentry_hasBufStateInfo (uentry p_ue); /* end modifications */ +extern uentry uentry_makeGlobalMarker (void) ; +extern bool uentry_isGlobalMarker (uentry) /*@*/ ; + +extern /*@exposed@*/ uentry uentry_makeUnrecognized (cstring p_c, /*@keep@*/ fileloc p_loc); + # ifdef DOANNOTS typedef enum { AN_UNKNOWN, AN_FCNRETURN, AN_FCNPARAM, AN_SUFIELD, AN_TDEFN, AN_GSVAR, AN_CONST, AN_LAST @@ -633,13 +653,13 @@ extern void uentry_tallyAnnots (uentry u, ancontext kind); /* start modifications */ //extern void uentry_setBufferSize (uentry p_e, exprNode p_cconstant); /*drl7x*/ -extern constraintList uentry_getFcnPreconditions (uentry ue); -extern constraintList uentry_getFcnPostconditions (uentry ue); +extern constraintList uentry_getFcnPreconditions (uentry p_ue); +extern constraintList uentry_getFcnPostconditions (uentry p_ue); extern void -uentry_setPostconditions (uentry ue, /*@only@*/ constraintList postconditions); +uentry_setPostconditions (uentry p_ue, /*@only@*/ constraintList p_postconditions); extern void -uentry_setPreconditions (uentry ue, /*@only@*/ constraintList preconditions); +uentry_setPreconditions (uentry p_ue, /*@only@*/ constraintList p_preconditions); /*end mods*/ diff --git a/src/Headers/uentryList.h b/src/Headers/uentryList.h index b6a1a48..7aae25b 100644 --- a/src/Headers/uentryList.h +++ b/src/Headers/uentryList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* @@ -9,15 +9,12 @@ # ifndef uentryLIST_H # define uentryLIST_H -abst_typedef /*@null@*/ struct _uentryList *uentryList ; - -struct _uentryList -{ +abst_typedef /*@null@*/ struct { int nelements; int nspace; int current; /*@reldef@*/ /*@relnull@*/ o_uentry *elements; -} ; +} *uentryList; /*@iter uentryList_elements (sef uentryList x, yield exposed uentry el); @*/ # define uentryList_elements(x, m_el) \ @@ -68,6 +65,8 @@ extern void uentryList_fixMissingNames (uentryList p_cl) /*@modifies p_cl@*/ ; extern int uentryList_compareStrict (uentryList p_s, uentryList p_t) /*@*/ ; extern int uentryList_compareParams (uentryList p_s, uentryList p_t) /*@*/ ; extern int uentryList_compareFields (uentryList p_s, uentryList p_t) /*@*/ ; +extern bool uentryList_equivFields (uentryList p_p1, uentryList p_p2) /*@*/ ; + extern cstring uentryList_dumpParams (uentryList p_s) /*@*/ ; extern uentryList uentryList_undump (char **p_s) /*@modifies *p_s@*/ ; @@ -90,9 +89,6 @@ extern bool uentryList_matchParams (uentryList p_p1, uentryList p_p2, bool p_for # define uentryList_sameObject(s,t) ((s) == (t)) -/*@constant int PRINTBREADTH;@*/ -# define PRINTBREADTH 3 - /*@constant int uentryListBASESIZE;@*/ # define uentryListBASESIZE MIDBASESIZE diff --git a/src/Headers/usymId.h b/src/Headers/usymId.h index 9832d89..cdd6a37 100644 --- a/src/Headers/usymId.h +++ b/src/Headers/usymId.h @@ -1,6 +1,7 @@ # ifndef USYMID_H # define USYMID_H +/*@i32 make them abstract/? */ typedef int usymId; typedef usymId typeId; diff --git a/src/Headers/usymIdSet.h b/src/Headers/usymIdSet.h index 2933c2a..4ec5cdf 100644 --- a/src/Headers/usymIdSet.h +++ b/src/Headers/usymIdSet.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* @@ -13,7 +13,7 @@ # include "usymId.h" -abst_typedef /*@null@*/ struct _usymIdSet +abst_typedef /*@null@*/ struct { int entries; int nspace; diff --git a/src/Headers/usymtab-branch.h b/src/Headers/usymtab-branch.h new file mode 100644 index 0000000..2eae7a3 --- /dev/null +++ b/src/Headers/usymtab-branch.h @@ -0,0 +1,436 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** usymtab.h +*/ + +# ifndef USYMTAB_H +# define USYMTAB_H + +/*@constant null usymtab GLOBAL_ENV; @*/ +# define GLOBAL_ENV usymtab_undefined + +typedef enum { + US_GLOBAL, + US_NORMAL, + US_TBRANCH, US_FBRANCH, + US_CBRANCH, US_SWITCH +} uskind; + +typedef struct s_usentry +{ + /*@only@*/ uentry entry; + bool istrace; + + /* + ** Trace entries have a level and index that identify the original entry. + ** Not used for normal entries. + */ + + int level; + int index; +} usentry; + +struct _usymtab +{ + uskind kind; + int nentries; + int nspace; + int lexlevel; + bool mustBreak; + exitkind exitCode; + /*@reldef@*/ /*@only@*/ usentry *entries; + + /* Optional. Used for the global environment to speed lookups. */ + /*@null@*/ /*@only@*/ cstringTable htable; + + /* Guarded references - these references are not null along this path. */ + /*@i32 This seems unnecessary - the trace entries should cover it...? */ + /*@only@*/ guardSet guards; + + aliasTable aliases; + + /*@owned@*/ usymtab env; +} ; + +/* +** rep invariant: +** +** (left as exercise to reader) ;) +*/ + +extern void usymtab_printTypes (void) + /*@globals internalState@*/ + /*@modifies g_msgstream@*/ ; + +extern void usymtab_setMustBreak (void) /*@modifies internalState@*/ ; + +extern bool usymtab_inGlobalScope (void) /*@globals internalState@*/ ; +extern bool usymtab_inFunctionScope (void) /*@globals internalState@*/ ; +extern bool usymtab_inFileScope (void) /*@globals internalState@*/ ; +extern void usymtab_checkFinalScope (bool p_isReturn) + /*@globals internalState@*/ + /*@modifies *g_msgstream@*/ ; + +extern void usymtab_allUsed (void) + /*@globals internalState@*/ + /*@modifies *g_msgstream@*/ ; + +extern void usymtab_allDefined (void) + /*@globals internalState@*/ + /*@modifies *g_msgstream@*/ ; + +extern void usymtab_prepareDump (void) + /*@modifies internalState@*/ ; + +extern void usymtab_dump (FILE *p_fout) + /*@globals internalState@*/ + /*@modifies *p_fout@*/ ; + + +extern void usymtab_load (FILE *p_f) /*@modifies p_f, internalState@*/ ; + +extern /*@exposed@*/ /*@dependent@*/ uentry + usymtab_getRefQuiet (int p_level, usymId p_index) + /*@globals internalState@*/ ; + +extern void usymtab_printLocal (void) + /*@globals internalState@*/ + /*@modifies stdout@*/ ; + +extern /*@exposed@*/ /*@dependent@*/ uentry usymtab_getParam (int p_paramno) + /*@globals internalState@*/; +extern void usymtab_free (void) /*@modifies internalState@*/ ; +extern bool usymtab_inDeepScope (void) /*@globals internalState@*/ ; + +extern /*@exposed@*/ uentry usymtab_lookupExpose (cstring p_k) + /*@globals internalState@*/ ; + +extern /*@observer@*/ uentry usymtab_lookup (cstring p_k) + /*@globals internalState@*/ ; + +# define usymtab_lookup(s) (usymtab_lookupExpose (s)) + +extern /*@observer@*/ uentry usymtab_lookupGlob (cstring p_k) + /*@globals internalState@*/ ; +extern /*@exposed@*/ uentry usymtab_lookupExposeGlob (cstring p_k) + /*@globals internalState@*/ ; +extern /*@observer@*/ uentry usymtab_lookupUnionTag (cstring p_k) + /*@globals internalState@*/ ; +extern /*@observer@*/ uentry usymtab_lookupStructTag (cstring p_k) + /*@globals internalState@*/ ; +extern /*@observer@*/ uentry usymtab_lookupEither (cstring p_k) + /*@globals internalState@*/ ; + +# ifndef NOLCL +extern ctype usymtab_lookupType (cstring p_k) + /*@globals internalState@*/ ; +# endif + +extern bool usymtab_isDefinitelyNull (sRef p_s) + /*@globals internalState@*/ ; +extern bool usymtab_isDefinitelyNullDeep (sRef p_s) + /*@globals internalState@*/ ; + +# ifndef NOLCL +extern usymId usymtab_supExposedTypeEntry (/*@only@*/ uentry p_e, bool p_dodef) + /*@modifies internalState, p_e@*/ ; +# endif + +extern ctype usymtab_supTypeEntry (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern /*@exposed@*/ uentry usymtab_supReturnTypeEntry (/*@only@*/ uentry p_e) + /*@modifies internalState@*/ ; + +extern /*@observer@*/ uentry usymtab_lookupSafe (cstring p_k) + /*@globals internalState@*/ ; + +extern /*@observer@*/ uentry usymtab_getGlobalEntry (usymId p_uid) + /*@globals internalState@*/ ; + +extern bool usymtab_exists (cstring p_k) + /*@globals internalState@*/ ; + +# ifndef NOLCL +extern bool usymtab_existsVar (cstring p_k) + /*@globals internalState@*/ ; +# endif + +extern bool usymtab_existsGlob (cstring p_k) + /*@globals internalState@*/ ; + +extern bool usymtab_existsType (cstring p_k) + /*@globals internalState@*/ ; + +# ifndef NOLCL +extern bool usymtab_existsEither (cstring p_k) + /*@globals internalState@*/ ; +# endif + +extern bool usymtab_existsTypeEither (cstring p_k) + /*@globals internalState@*/ ; + +extern usymId usymtab_getId (cstring p_k) /*@globals internalState@*/ ; +extern usymId usymtab_getTypeId (cstring p_k) /*@globals internalState@*/ ; + +extern void usymtab_supEntry (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +# ifndef NOLCL +extern void usymtab_replaceEntry (/*@only@*/ uentry p_s) + /*@modifies internalState, p_s@*/ ; +# endif + +extern void usymtab_supEntrySref (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern void usymtab_supGlobalEntry (/*@only@*/ uentry p_e) + /*@modifies internalState@*/ ; + +extern void usymtab_addGlobalEntry (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern /*@exposed@*/ uentry + usymtab_supEntryReturn (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern usymId usymtab_addEntry (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern ctype usymtab_lookupAbstractType (cstring p_k) + /*@globals internalState@*/ /*@modifies nothing@*/ ; + +extern bool usymtab_matchForwardStruct (usymId p_u1, usymId p_u2) + /*@globals internalState@*/ ; + +extern bool usymtab_existsEnumTag (cstring p_k) + /*@globals internalState@*/ ; +extern bool usymtab_existsUnionTag (cstring p_k) + /*@globals internalState@*/ ; +extern bool usymtab_existsStructTag (cstring p_k) + /*@globals internalState@*/ ; + +extern usymId usymId_fromInt (int p_i) /*@*/ ; +# define usymId_fromInt(i) ((usymId)(i)) + +extern bool usymId_isInvalid (usymId p_u) /*@*/ ; +# define usymId_isInvalid(u) ((u) == USYMIDINVALID) + +extern bool usymId_isValid (usymId p_u) /*@*/ ; +# define usymId_isValid(u) ((u) != USYMIDINVALID) + +extern bool typeId_isInvalid (typeId p_u) /*@*/ ; +# define typeId_isInvalid(u) ((u) == typeId_invalid) + +extern bool typeId_isValid (typeId p_u) /*@*/ ; +# define typeId_isValid(u) ((u) != typeId_invalid) + +extern bool typeId_equal (typeId p_u1, typeId p_u2) /*@*/ ; +# define typeId_equal(u1,u2) ((u1) == (u2)) + +extern typeId typeId_fromInt (int p_i); +# define typeId_fromInt(i) ((typeId)(i)) + +/*@iter usymtab_entries (sef usymtab u, yield exposed uentry el); @*/ +# define usymtab_entries(x, m_i) \ + { int m_ind; \ + if (usymtab_isDefined (x)) \ + for (m_ind = 0; m_ind < (x)->nentries; m_ind++) \ + { uentry m_i = (x)->entries[m_ind]; + +# define end_usymtab_entries }} + +extern /*@unused@*/ void usymtab_displayAllUses (void) + /*@globals internalState@*/ + /*@modifies *g_msgstream@*/ ; + +extern /*@unused@*/ void usymtab_printOut (void) + /*@globals internalState@*/ + /*@modifies *g_msgstream@*/ ; + +extern /*@unused@*/ void usymtab_printAll (void) + /*@globals internalState@*/ + /*@modifies *g_msgstream@*/ ; + +extern void usymtab_enterScope (void) + /*@modifies internalState;@*/ ; +extern void usymtab_enterFunctionScope (uentry p_fcn) + /*@modifies internalState;@*/ ; +extern void usymtab_quietExitScope (fileloc p_loc) + /*@modifies internalState;@*/ ; +extern void usymtab_exitScope (exprNode p_expr) /*@modifies internalState@*/ ; +extern void usymtab_addGuards (guardSet p_guards) /*@modifies internalState@*/ ; +extern void usymtab_setExitCode (exitkind p_ex) /*@modifies internalState@*/ ; +extern void usymtab_exitFile (void) /*@modifies internalState@*/ ; +extern void usymtab_enterFile (void) /*@modifies internalState@*/ ; + +extern /*@observer@*/ uentry usymtab_lookupEnumTag (cstring p_k) + /*@globals internalState@*/ ; + +extern usymId usymtab_convertId (usymId p_uid) /*@globals internalState@*/ ; +extern void usymtab_initMod (void) /*@modifies internalState@*/ ; +extern void usymtab_initBool (void) /*@modifies internalState@*/ ; +extern void usymtab_initGlobalMarker (void) /*@modifies internalState@*/ ; + +extern void usymtab_exportHeader (void) + /*@modifies internalState@*/ ; + +extern ctype usymtab_structFieldsType (uentryList p_f) + /*@globals internalState@*/ ; + +extern ctype usymtab_unionFieldsType (uentryList p_f) + /*@globals internalState@*/ ; + +extern ctype usymtab_enumEnumNameListType (enumNameList p_f) + /*@globals internalState@*/ ; + +extern /*@exposed@*/ uentry usymtab_getTypeEntrySafe (usymId p_uid) + /*@globals internalState@*/ ; + +extern void usymtab_popOrBranch (exprNode p_pred, exprNode p_expr) + /*@modifies internalState@*/ ; +extern void usymtab_popAndBranch (exprNode p_pred, exprNode p_expr) + /*@modifies internalState@*/ ; + +extern void usymtab_trueBranch (/*@only@*/ guardSet p_guards) + /*@modifies internalState@*/ ; +extern void usymtab_altBranch (/*@only@*/ guardSet p_guards) + /*@modifies internalState@*/ ; + +extern void usymtab_popTrueBranch (exprNode p_pred, exprNode p_expr, clause p_cl) + /*@modifies internalState@*/ ; + +extern void + usymtab_popTrueExecBranch (exprNode p_pred, exprNode p_expr, clause p_cl) + /*@modifies internalState@*/ ; + +extern void + usymtab_popBranches (exprNode p_pred, exprNode p_tbranch, exprNode p_fbranch, + bool p_isOpt, clause p_cl) + /*@modifies internalState@*/ ; + +extern void usymtab_unguard (sRef p_s) /*@modifies internalState@*/ ; +extern bool usymtab_isGuarded (sRef p_s) /*@globals internalState@*/ ; +extern void usymtab_printGuards (void) /*@globals internalState@*/ /*@modifies *g_msgstream@*/ ; +extern void usymtab_quietPlainExitScope (void) /*@modifies internalState@*/ ; +extern void usymtab_printComplete (void) /*@globals internalState@*/ /*@modifies *stdout@*/ ; + +# ifndef NOLCL +extern bool usymtab_existsGlobEither (cstring p_k) /*@globals internalState@*/ ; +# endif + +extern bool usymtab_isBoolType (usymId p_uid) /*@globals internalState@*/ ; +extern /*@only@*/ cstring + usymtab_getTypeEntryName (usymId p_uid) + /*@globals internalState@*/ ; +extern /*@exposed@*/ uentry usymtab_getTypeEntry (usymId p_uid) + /*@globals internalState@*/ ; + +extern usymId + usymtab_supAbstractTypeEntry (/*@only@*/ uentry p_e, bool p_dodef) + /*@modifies internalState, p_e@*/ ; +extern ctype usymtab_supForwardTypeEntry (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern /*@exposed@*/ uentry + usymtab_supGlobalEntryReturn (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern /*@exposed@*/ uentry + usymtab_supEntrySrefReturn (/*@only@*/ uentry p_e) + /*@modifies internalState, p_e@*/ ; + +extern int uentry_directParamNo (uentry p_ue) + /*@globals internalState@*/ ; + +extern bool usymtab_newCase (exprNode p_pred, exprNode p_last) + /*@modifies internalState@*/ ; + +extern void usymtab_switchBranch (exprNode p_s) + /*@modifies internalState@*/ ; + +extern /*@only@*/ cstring usymtab_unparseStack (void) + /*@globals internalState@*/ ; +extern void usymtab_exitSwitch (exprNode p_sw, bool p_allpaths) + /*@modifies internalState@*/ ; + +extern /*@observer@*/ uentry usymtab_lookupGlobSafe (cstring p_k) + /*@globals internalState@*/ ; + +extern /*@only@*/ sRefSet usymtab_aliasedBy (sRef p_s) + /*@globals internalState@*/ ; + +extern /*@only@*/ sRefSet usymtab_canAlias (sRef p_s) + /*@globals internalState@*/ ; + +extern void usymtab_clearAlias (sRef p_s) + /*@modifies internalState, p_s@*/ ; + +extern void usymtab_addMustAlias (/*@exposed@*/ sRef p_s, /*@exposed@*/ sRef p_al) + /*@modifies internalState@*/ ; + +extern void usymtab_addForceMustAlias (/*@exposed@*/ sRef p_s, /*@exposed@*/ sRef p_al) + /*@modifies internalState@*/ ; + +extern /*@only@*/ cstring usymtab_unparseAliases (void) + /*@globals internalState@*/ ; + +extern /*@exposed@*/ uentry + usymtab_supReturnFileEntry (/*@only@*/ uentry p_e) + /*@modifies internalState@*/ ; + +extern bool usymtab_isAltDefinitelyNullDeep (sRef p_s) + /*@globals internalState@*/ ; + +extern bool usymtab_existsReal (cstring p_k) + /*@globals internalState@*/ ; + +extern /*@only@*/ sRefSet usymtab_allAliases (sRef p_s) + /*@globals internalState@*/ ; + +extern void usymtab_exportLocal (void) + /*@modifies internalState@*/ ; + +extern void usymtab_popCaseBranch (void) + /*@modifies internalState@*/ ; + +/* special scopes */ + +/*@constant int invalidScope;@*/ +# define invalidScope -1 /* invalid scope */ + +/*@constant int globScope;@*/ +# define globScope 0 /* global variables */ + +/*@constant int fileScope;@*/ +# define fileScope 1 /* file-level static variables */ + +/*@constant int paramsScope;@*/ +# define paramsScope 2 /* function parameters */ + +/*@constant int functionScope;@*/ +# define functionScope 3 + +extern /*@falsenull@*/ bool usymtab_isDefined (usymtab p_u) /*@*/ ; + +/*@constant null usymtab usymtab_undefined; @*/ +# define usymtab_undefined ((usymtab)NULL) +# define usymtab_isDefined(u) ((u) != usymtab_undefined) + +extern void usymtab_checkDistinctName (uentry p_e, int p_scope) + /*@globals internalState@*/ + /*@modifies *g_msgstream, p_e@*/ ; + +extern /*@exposed@*/ sRef usymtab_lookupGlobalMarker (void) /*@globals internalState@*/ ; + +extern int usymtab_getCurrentDepth (void) /*@globals internalState@*/ ; + +# else +# error "Multiple include" +# endif + + + diff --git a/src/Headers/usymtab.h b/src/Headers/usymtab.h index 3a5a298..09840ae 100644 --- a/src/Headers/usymtab.h +++ b/src/Headers/usymtab.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* @@ -8,7 +8,6 @@ # ifndef USYMTAB_H # define USYMTAB_H -//#include "environmentTable.h" /*@constant null usymtab GLOBAL_ENV; @*/ # define GLOBAL_ENV usymtab_undefined @@ -20,11 +19,11 @@ typedef enum { US_CBRANCH, US_SWITCH } uskind; -typedef struct _refentry { int level; int index; } *refentry; +typedef struct { int level; int index; } *refentry; typedef /*@only@*/ refentry o_refentry; typedef o_refentry *refTable; -struct _usymtab +struct s_usymtab { uskind kind; int nentries; @@ -33,12 +32,11 @@ struct _usymtab bool mustBreak; exitkind exitCode; /*@reldef@*/ /*@only@*/ o_uentry *entries; - /*@null@*/ /*@only@*/ hashTable htable; /* for the global environment */ + /*@null@*/ /*@only@*/ cstringTable htable; /* for the global environment */ /*@null@*/ /*@only@*/ refTable reftable; /* for branched environments */ /*@only@*/ guardSet guards; /* guarded references (not null) */ aliasTable aliases; /*@owned@*/ usymtab env; - // environmentTable environment; } ; /* @@ -93,8 +91,10 @@ extern bool usymtab_inDeepScope (void) /*@globals internalState@*/ ; extern /*@exposed@*/ uentry usymtab_lookupExpose (cstring p_k) /*@globals internalState@*/ ; + extern /*@observer@*/ uentry usymtab_lookup (cstring p_k) /*@globals internalState@*/ ; + # define usymtab_lookup(s) (usymtab_lookupExpose (s)) extern /*@observer@*/ uentry usymtab_lookupGlob (cstring p_k) @@ -113,9 +113,9 @@ extern ctype usymtab_lookupType (cstring p_k) /*@globals internalState@*/ ; # endif -extern bool usymtab_isProbableNull (sRef p_s) +extern bool usymtab_isDefinitelyNull (sRef p_s) /*@globals internalState@*/ ; -extern bool usymtab_isProbableDeepNull (sRef p_s) +extern bool usymtab_isDefinitelyNullDeep (sRef p_s) /*@globals internalState@*/ ; # ifndef NOLCL @@ -185,9 +185,10 @@ extern usymId usymtab_addEntry (/*@only@*/ uentry p_e) /*@modifies internalState, p_e@*/ ; extern ctype usymtab_lookupAbstractType (cstring p_k) - /*@globals internalState@*/ ; + /*@globals internalState@*/ /*@modifies nothing@*/ ; + extern bool usymtab_matchForwardStruct (usymId p_u1, usymId p_u2) - /*@globals internalState@*/ ; + /*@globals internalState@*/ ; extern bool usymtab_existsEnumTag (cstring p_k) /*@globals internalState@*/ ; @@ -256,6 +257,7 @@ extern /*@observer@*/ uentry usymtab_lookupEnumTag (cstring p_k) extern usymId usymtab_convertId (usymId p_uid) /*@globals internalState@*/ ; extern void usymtab_initMod (void) /*@modifies internalState@*/ ; extern void usymtab_initBool (void) /*@modifies internalState@*/ ; +extern void usymtab_initGlobalMarker (void) /*@modifies internalState@*/ ; extern void usymtab_exportHeader (void) /*@modifies internalState@*/ ; @@ -269,7 +271,7 @@ extern ctype usymtab_unionFieldsType (uentryList p_f) extern ctype usymtab_enumEnumNameListType (enumNameList p_f) /*@globals internalState@*/ ; -extern /*@exposed@*/ uentry usymtab_getTypeEntrySafe (usymId p_uid) +extern /*@exposed@*/ uentry usymtab_getTypeEntrySafe (typeId p_uid) /*@globals internalState@*/ ; extern void usymtab_popOrBranch (exprNode p_pred, exprNode p_expr) @@ -284,6 +286,7 @@ extern void usymtab_altBranch (/*@only@*/ guardSet p_guards) extern void usymtab_popTrueBranch (exprNode p_pred, exprNode p_expr, clause p_cl) /*@modifies internalState@*/ ; + extern void usymtab_popTrueExecBranch (exprNode p_pred, exprNode p_expr, clause p_cl) /*@modifies internalState@*/ ; @@ -303,14 +306,13 @@ extern void usymtab_printComplete (void) /*@globals internalState@*/ /*@modifies extern bool usymtab_existsGlobEither (cstring p_k) /*@globals internalState@*/ ; # endif -extern bool usymtab_isBoolType (usymId p_uid) /*@globals internalState@*/ ; -extern /*@only@*/ cstring - usymtab_getTypeEntryName (usymId p_uid) +extern bool usymtab_isBoolType (typeId p_uid) /*@globals internalState@*/ ; +extern /*@only@*/ cstring usymtab_getTypeEntryName (typeId p_uid) /*@globals internalState@*/ ; -extern /*@exposed@*/ uentry usymtab_getTypeEntry (usymId p_uid) +extern /*@exposed@*/ uentry usymtab_getTypeEntry (typeId p_uid) /*@globals internalState@*/ ; -extern usymId +extern typeId usymtab_supAbstractTypeEntry (/*@only@*/ uentry p_e, bool p_dodef) /*@modifies internalState, p_e@*/ ; extern ctype usymtab_supForwardTypeEntry (/*@only@*/ uentry p_e) @@ -350,10 +352,10 @@ extern /*@only@*/ sRefSet usymtab_canAlias (sRef p_s) extern void usymtab_clearAlias (sRef p_s) /*@modifies internalState, p_s@*/ ; -extern void usymtab_addMustAlias (sRef p_s, sRef p_al) +extern void usymtab_addMustAlias (/*@exposed@*/ sRef p_s, /*@exposed@*/ sRef p_al) /*@modifies internalState@*/ ; -extern void usymtab_addForceMustAlias (sRef p_s, sRef p_al) +extern void usymtab_addForceMustAlias (/*@exposed@*/ sRef p_s, /*@exposed@*/ sRef p_al) /*@modifies internalState@*/ ; extern /*@only@*/ cstring usymtab_unparseAliases (void) @@ -363,7 +365,7 @@ extern /*@exposed@*/ uentry usymtab_supReturnFileEntry (/*@only@*/ uentry p_e) /*@modifies internalState@*/ ; -extern bool usymtab_isAltProbablyDeepNull (sRef p_s) +extern bool usymtab_isAltDefinitelyNullDeep (sRef p_s) /*@globals internalState@*/ ; extern bool usymtab_existsReal (cstring p_k) @@ -402,6 +404,10 @@ extern void usymtab_checkDistinctName (uentry p_e, int p_scope) /*@globals internalState@*/ /*@modifies *g_msgstream, p_e@*/ ; +extern /*@exposed@*/ sRef usymtab_lookupGlobalMarker (void) /*@globals internalState@*/ ; + +extern int usymtab_getCurrentDepth (void) /*@globals internalState@*/ ; + # else # error "Multiple include" # endif diff --git a/src/Headers/usymtab_interface.h b/src/Headers/usymtab_interface.h index 929ac60..cb2abf2 100644 --- a/src/Headers/usymtab_interface.h +++ b/src/Headers/usymtab_interface.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ diff --git a/src/Headers/valueMatrix.h b/src/Headers/valueMatrix.h new file mode 100644 index 0000000..d7efcbe --- /dev/null +++ b/src/Headers/valueMatrix.h @@ -0,0 +1,66 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** valueMatrix.h +*/ + +/* +** key -> (int x int -> int x cstring) +** e.g., "null" -> null x notnull -> error x "attempt to ..." +*/ + +# ifndef VALUEMATRIX_H +# define VALUEMATRIX_H + +/* in forward types: +abst_typedef genericTable valueMatrix; +*/ + +/*@constant null valueMatrix valueMatrix_undefined; @*/ +# define valueMatrix_undefined genericTable_undefined + +extern /*@falsenull@*/ bool valueMatrix_isDefined(valueMatrix) /*@*/ ; +# define valueMatrix_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) + +extern /*@truenull@*/ bool valueMatrix_isUndefined(valueMatrix) /*@*/ ; +# define valueMatrix_isUndefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) + +extern /*@only@*/ valueMatrix valueMatrix_create(int p_size); +# define valueMatrix_create(p_s) ((valueMatrix) genericTable_create (p_s)) + +extern void valueMatrix_insert (valueMatrix p_h, /*@dependent@*/ cstring p_key, + /*@only@*/ stateCombinationTable p_value); + +# define valueMatrix_insert(p_h,p_key,p_value) \ + (genericTable_insert ((valueMatrxi) (p_h), p_key, (void *) (p_value))) + +extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ stateCombinationTable valueMatrix_lookup (valueMatrix p_h, cstring p_key) /*@*/ ; +# define valueMatrix_lookup(p_h,p_key) \ + ((stateCombinationTable) genericTable_lookup ((genericTable) (p_h), p_key)) + +extern /*@unused@*/ /*@only@*/ cstring valueMatrix_stats(valueMatrix p_h); +# define valueMatrix_stats(p_h) genericTable_stats ((genericTable) (p_h)) + +extern void valueMatrix_free (/*@only@*/ valueMatrix p_h); +# define valueMatrix_free(p_h) (genericTable_free ((genericTable) (p_h))) + +extern void valueMatrix_remove (valueMatrix p_h, cstring p_key) /*@modifies p_h@*/ ; +# define valueMatrix_remove(p_h,p_key) (genericTable_remove ((genericTable) (p_h), p_key)) + +/*@iter valueMatrix_elements (sef valueMatrix p_g, yield exposed cstring m_key, yield exposed stateCombinationTable m_el)@*/ + +# define valueMatrix_elements(p_g,m_key,m_el) genericTable_elements((genericTable) (p_g), m_key, m_el) +# define end_valueMatrix_elements end_genericTable_elements + +extern int valueMatrix_size (valueMatrix p_h); +# define valueMatrix_size(p_h) (genericTable_size(p_h)) + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/valueTable.h b/src/Headers/valueTable.h new file mode 100644 index 0000000..0c24a7f --- /dev/null +++ b/src/Headers/valueTable.h @@ -0,0 +1,76 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +*/ +/* +** valueTable.h +*/ + +/* +** valueTable is a table of stateValue's. +** Based on genericTable +*/ + +# ifndef VTABLE_H +# define VTABLE_H + +/*@constant null valueTable valueTable_undefined; @*/ +# define valueTable_undefined genericTable_undefined + +extern /*@falsenull@*/ bool valueTable_isDefined(valueTable) /*@*/ ; +# define valueTable_isDefined(p_h) (genericTable_isDefined ((genericTable) (p_h))) + +extern /*@truenull@*/ bool valueTable_isUndefined(valueTable) /*@*/ ; +# define valueTable_isUndefined(p_h) (genericTable_isUndefined ((genericTable) (p_h))) + +extern /*@only@*/ valueTable valueTable_create(int p_size); +# define valueTable_create(p_s) ((valueTable) genericTable_create (p_s)) + +extern void valueTable_insert (valueTable p_h, + /*@only@*/ cstring p_key, + /*@only@*/ stateValue p_value); + +/*@access stateValue@*/ +extern /*@null@*/ /*@dependent@*/ /*@exposed@*/ stateValue + valueTable_lookup (valueTable p_h, cstring p_key) /*@*/ ; +# define valueTable_lookup(p_h,p_key) \ + ((stateValue) genericTable_lookup ((genericTable) (p_h), p_key)) +/*@noaccess stateValue@*/ + +extern /*@unused@*/ /*@only@*/ cstring valueTable_stats(valueTable p_h); +# define valueTable_stats(p_h) genericTable_stats ((genericTable) (p_h)) + +extern void valueTable_free (/*@only@*/ valueTable p_h); +# define valueTable_free(p_h) (genericTable_free ((genericTable) (p_h))) + +extern /*@only@*/ cstring valueTable_unparse (valueTable p_h) /*@*/ ; + +extern void valueTable_update (valueTable p_h, cstring p_key, /*@owned@*/ stateValue p_newval) /*@modifies p_h@*/ ; + +extern /*@only@*/ valueTable valueTable_copy (valueTable p_s) ; + +/*@iter valueTable_elements (sef valueTable p_g, yield exposed cstring m_key, yield exposed stateValue m_el)@*/ + +# define valueTable_elements(p_g, m_key, m_el) \ + { if (valueTable_isDefined (p_g)) { int m_ind; \ + { /*@i32@*/ for (m_ind = 0 ; m_ind < (p_g)->size; m_ind++) \ + { ghbucket m_hb; m_hb = (p_g)->buckets[m_ind]; \ + if (m_hb != NULL) { \ + int m_j; \ + for (m_j = 0; m_j < (m_hb)->size; m_j++) { \ + cstring m_key; stateValue m_el; m_key = (m_hb)->entries[m_j]->key; \ + /*@access stateValue@*/ m_el = (stateValue) (m_hb)->entries[m_j]->val; /*@noaccess stateValue@*/ + +# define end_valueTable_elements }}}}}} + +extern int valueTable_size (valueTable p_h) /*@*/ ; +# define valueTable_size(p_h) (genericTable_size(p_h)) + + +# else +# error "Multiple include" +# endif + + + + diff --git a/src/Headers/varDeclarationNode.h b/src/Headers/varDeclarationNode.h index 8d54dce..4086c67 100644 --- a/src/Headers/varDeclarationNode.h +++ b/src/Headers/varDeclarationNode.h @@ -1,14 +1,14 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef VARDECLNODE_H # define VARDECLNODE_H -typedef struct _varDeclarationNode { +typedef struct { bool isSpecial; - /*@reldef@*/ sRef sref; + /*@dependent@*/ /*@reldef@*/ sRef sref; bool isGlobal; /* global or varDeclaration */ bool isPrivate; /* static variable, within a function defn */ qualifierKind qualifier; /* QLF_NONE, QLF_CONST, or QLF_VOLATILE */ diff --git a/src/Headers/varDeclarationNodeList.h b/src/Headers/varDeclarationNodeList.h index b139aa1..7102c65 100644 --- a/src/Headers/varDeclarationNodeList.h +++ b/src/Headers/varDeclarationNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ @@ -8,7 +8,7 @@ typedef /*@only@*/ varDeclarationNode o_varDeclarationNode; -abst_typedef struct _varDeclarationNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/varKinds.h b/src/Headers/varKinds.h index 5c256ff..8b804d0 100644 --- a/src/Headers/varKinds.h +++ b/src/Headers/varKinds.h @@ -41,7 +41,7 @@ typedef enum { SCSTATIC } storageClassCode ; -typedef enum _nstate { +typedef enum { NS_ERROR = -1, /* error (suppress messages) */ NS_UNKNOWN = 0, /* no annotation */ NS_NOTNULL, /* definitely not null */ @@ -60,6 +60,9 @@ typedef enum _nstate { extern bool nstate_isKnown (nstate p_n) /*@*/ ; # define nstate_isKnown(n) ((n) != NS_UNKNOWN) +extern bool nstate_isValid (/*@sef@*/ nstate p_n) /*@*/ ; +# define nstate_isValid(n) ((n) >= NS_ERROR && (n) <= NS_ABSNULL) + /* ** aliasing states */ @@ -78,11 +81,11 @@ typedef enum { AK_IMPONLY, AK_KEEP, AK_KEPT, - AK_TEMP, + AK_TEMP, /* 6 */ AK_IMPTEMP, AK_SHARED, AK_UNIQUE, - AK_RETURNED, + AK_RETURNED, /* 10 */ AK_FRESH, /* local only storage (may be shared) */ AK_STACK, /* allocated on local stack */ AK_REFCOUNTED, @@ -90,7 +93,7 @@ typedef enum { AK_KILLREF, AK_NEWREF, AK_OWNED, - AK_DEPENDENT, + AK_DEPENDENT, /* 18 */ AK_IMPDEPENDENT, AK_STATIC, AK_LOCAL /* AK_LOCAL must be last */ @@ -115,6 +118,9 @@ extern bool exkind_isUnknown (exkind p_e) /*@*/ ; extern bool exkind_isKnown (/*@sef@*/ exkind p_e) /*@*/ ; # define exkind_isKnown(e) ((e) != XO_UNKNOWN && (e) != XO_NORMAL) +extern bool alkind_isValid (/*@sef@*/ alkind p_a) /*@*/ ; +# define alkind_isValid(a) ((a) >= AK_UNKNOWN && (a) <= AK_LOCAL) + extern bool alkind_isImplicit (/*@sef@*/ alkind p_a) /*@*/ ; extern bool alkind_isDependent (/*@sef@*/ alkind p_a) /*@*/ ; extern bool alkind_isOnly (/*@sef@*/ alkind p_a) /*@*/ ; @@ -184,7 +190,7 @@ extern sstate sstate_fromQual (qual p_q) /*@*/ ; extern bool alkind_compatible (alkind p_a1, alkind p_a2) /*@*/ ; extern alkind alkind_fixImplicit (alkind p_a) /*@*/ ; -typedef enum _exitkind +typedef enum { XK_ERROR, XK_UNKNOWN, diff --git a/src/Headers/varNode.h b/src/Headers/varNode.h index b6688d0..26b6014 100644 --- a/src/Headers/varNode.h +++ b/src/Headers/varNode.h @@ -1,12 +1,12 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef VARNODE_H # define VARNODE_H -typedef struct _varNode { /* with sort, useful in quantified */ +typedef struct { /* with sort, useful in quantified */ ltoken varid; bool isObj; lclTypeSpecNode type; diff --git a/src/Headers/varNodeList.h b/src/Headers/varNodeList.h index 9c789ed..cd3e92a 100644 --- a/src/Headers/varNodeList.h +++ b/src/Headers/varNodeList.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ # ifndef VARNODELIST_H @@ -7,7 +7,7 @@ typedef /*@only@*/ varNode o_varNode; -abst_typedef struct _varNodeList +abst_typedef struct { int nelements; int nspace; diff --git a/src/Headers/version.h b/src/Headers/version.h index 319e832..ff60553 100644 --- a/src/Headers/version.h +++ b/src/Headers/version.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ /* diff --git a/src/Headers/warnClause.h b/src/Headers/warnClause.h new file mode 100644 index 0000000..eaa9293 --- /dev/null +++ b/src/Headers/warnClause.h @@ -0,0 +1,60 @@ +/* +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. +** See ../LICENSE for license information. +** +*/ +/* +** warnClause.h +*/ + +# ifndef WARNCLAUSE_H +# define WARNCLAUSE_H + +struct s_warnClause +{ + /*@only@*/ fileloc loc; + /*@only@*/ flagSpec flag; + /*@only@*/ exprNode msg; +} ; + +/*@constant null warnClause warnClause_undefined; @*/ +# define warnClause_undefined ((warnClause) NULL) + +extern /*@falsenull@*/ bool warnClause_isDefined (/*@null@*/ warnClause p_f) /*@*/ ; +extern /*@truenull@*/ bool warnClause_isUndefined (/*@null@*/ warnClause p_f) /*@*/ ; + +# define warnClause_isDefined(f) ((f) != warnClause_undefined) +# define warnClause_isUndefined(f) ((f) == warnClause_undefined) + +extern warnClause warnClause_create (/*@only@*/ lltok, + /*@only@*/ flagSpec p_flag, + /*@only@*/ exprNode p_msg) /*@*/ ; + +extern /*@observer@*/ flagSpec warnClause_getFlag (warnClause p_w) /*@*/ ; + +extern /*@only@*/ cstring warnClause_dump (warnClause p_wc) /*@*/ ; +extern /*@only@*/ warnClause warnClause_undump (char **p_s) /*@modifies p_s@*/ ; + +extern bool warnClause_hasMessage (warnClause p_w) /*@*/ ; + +extern /*@observer@*/ cstring warnClause_getMessage (warnClause p_w) /*@*/ ; +extern /*@only@*/ cstring warnClause_unparse (warnClause p_w) /*@*/ ; + +extern void warnClause_free (/*@only@*/ warnClause p_w); + +# else +# error "Multiple include" +# endif + + + + + + + + + + + + + diff --git a/src/Headers/ynm.h b/src/Headers/ynm.h index d340949..7f2da0e 100644 --- a/src/Headers/ynm.h +++ b/src/Headers/ynm.h @@ -1,5 +1,5 @@ /* -** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2000. +** Copyright (C) University of Virginia, Massachusetts Institue of Technology 1994-2001. ** See ../LICENSE for license information. */ diff --git a/src/Makefile b/src/Makefile index c4b34c4..0ff9bdd 100644 --- a/src/Makefile +++ b/src/Makefile @@ -30,7 +30,7 @@ ### .SUFFIXES : .h .c .o .l .check -.PHONY : all dorerelease retest rerelease homeversion +.PHONY : all dorerelease retest rerelease homeversion test updateversion .IGNORE : dorerelease retest rerelease ### @@ -46,8 +46,10 @@ include Makefile.sys CHECK = 0 ### set to 1 -LCLINT = //tmp/lclint-2.5q/bin/lclint -#LCLINT = ../bin/lclint +#LCLINT = //tmp/lclint-2.5q/bin/lclint +LCLINTNEW = //afs/cert.org/usr/dlaroche/evLCLintDev/bin/lclint +#LCLINTNEW = /home/drl7x/evLCLintDev/evLCLintDev/bin/lclint +LCLINT = ../bin/lclint ### ### source files @@ -63,13 +65,17 @@ all : dorelease quick: lclint +nocheck: + CHECK=0; export CHECK; ${MAKE} -e + lclint : $(OBJ) @echo '// ' @echo '// Linking:' @echo '// ' $(CC) -o lclint $(OBJ) $(LINKFLAGS) -object: $(OBJ) +purify: ${OBJ} + purify ${CC} -o lclint ${OBJ} ${LINKFLAGS} ### ### grammars @@ -83,9 +89,9 @@ object: $(OBJ) signature.c : signature.c.der signature.y ifdef BISON @$(BISON) $(YFLAGS) -p lsl signature.y - @$(CAT) bison.head signature.tab.c > signature.c + @$(CAT) bison.head signature.tab.c bison.reset > signature.c -@$(MV) Headers/signature_gen.h Headers/signature_gen.bak - @$(CAT) bison.head signature.tab.h > Headers/signature_gen.h + @$(CAT) bison.head signature.tab.h bison.reset > Headers/signature_gen.h else $(CP) signature.c.der signature.c endif @@ -93,26 +99,46 @@ endif cgrammar.c : cgrammar.c.der cgrammar.y ifdef BISON $(BISON) $(YFLAGS) cgrammar.y - @echo '// Expect 119 shift/reduce conflicts and 114 reduce/reduce conflicts.' + @echo '// Expect 119 shift/reduce conflicts and 115 reduce/reduce conflicts.' @echo '// (see cgrammar.y for explanation)' - @$(CAT) bison.head cgrammar.tab.c > cgrammar.c + @$(CAT) bison.head cgrammar.tab.c bison.reset > cgrammar.c -@$(MV) Headers/cgrammar_tokens.h Headers/cgrammar_tokens.bak - @$(CAT) bison.head cgrammar.tab.h > Headers/cgrammar_tokens.h + @$(CAT) bison.head cgrammar.tab.h bison.reset > Headers/cgrammar_tokens.h + @$(RM) cgrammar.tab.c cgrammar.tab.h + chmod 600 cgrammar.c + chmod 600 Headers/cgrammar_tokens.h else $(CP) cgrammar.c.der cgrammar.c endif +mtgrammar.c: mtgrammar.y +ifdef BISON + $(BISON) $(YFLAGS) -p mt mtgrammar.y + @$(CAT) bison.head mtgrammar.tab.c bison.reset > mtgrammar.c +# @$(MV) Headers/mtgrammar_tokens.h Headers/mtgrammar_tokens.bak + @$(CAT) bison.head mtgrammar.tab.h bison.reset > Headers/mtgrammar_tokens.h + @$(RM) mtgrammar.tab.c mtgrammar.tab.h + chmod 600 mtgrammar.c + chmod 600 Headers/mtgrammar_tokens.h +else + $(CP) mtgrammar.c.der mtgrammar.c +endif + ### llgrammar2.h is necessary so +singleinclude may be used llgrammar.c : llgrammar.c.der llgrammar.y ifdef BISON $(BISON) $(YFLAGS) -p yl llgrammar.y @echo '// Expect 2 shift/reduce conflicts.' - @$(CAT) bison.head llgrammar.tab.c > llgrammar.c + @$(CAT) bison.head llgrammar.tab.c bison.reset > llgrammar.c -@$(MV) Headers/llgrammar_gen2.h Headers/llgrammar_gen2.bak - @$(CAT) bison.head llgrammar.tab.h > Headers/llgrammar_gen2.h + @$(CAT) bison.head llgrammar.tab.h bison.reset > Headers/llgrammar_gen2.h -@$(MV) Headers/llgrammar_gen.h Headers/llgrammar_gen.bak - @$(CAT) bison.head llgrammar.tab.h > Headers/llgrammar_gen.h + @$(CAT) bison.head llgrammar.tab.h bison.reset > Headers/llgrammar_gen.h + @$(RM) llgrammar.tab.c llgrammar.tab.h + chmod 400 llgrammar.c + chmod 400 Headers/llgrammar_gen.h + chmod 400 Headers/llgrammar_gen2.h else $(CP) llgrammar.c.der llgrammar.c endif @@ -120,7 +146,9 @@ endif cscanner.c : cscanner.c.der cscanner.l ifdef FLEX $(FLEX) $(LFLAGS) cscanner.l - $(CAT) flex.head lex.yy.c > cscanner.c + -chmod 600 cscanner.c + $(CAT) flex.head lex.yy.c flex.reset > cscanner.c + chmod 400 cscanner.c else $(CP) cscanner.c.der cscanner.c endif @@ -135,41 +163,51 @@ signature.o : signature.c cgrammar.o : cgrammar.c $(CC) $(CPPFLAGS) -c $*.c -llgrammar.o : llgrammar.c +cscanner.o : cscanner.c $(CC) $(CPPFLAGS) -c $*.c -cscanner.o : cscanner.c +llgrammar.o : llgrammar.c $(CC) $(CPPFLAGS) -c $*.c + ### ### header files dependant on grammars ### Headers/signature2.h : signature.c +Headers/signature_gen.h : signature.c Headers/cgrammar2.h : cgrammar.c Headers/cgrammar_tokens.h : cgrammar.c Headers/llgrammar.h : llgrammar.c +Headers/flag_codes.gen : flags.def + grep "FLG_" flags.def > Headers/flag_codes.gen + ### ### defaults ### ### Flags for checking a single file -SINGLEFLAGS = +neverinclude -supcounts +partial -showsummary -load lclint.lcd +SINGLEFLAGS = -f lclint.lclintrc -supcounts +partial -unrecogcomments + +LCLINT29 = ${HOME}/lclint-2.9c/src/lclint .c.check: lclint.lcd lclint - $(LCLINT) $(LINTFLAGS) $(SINGLEFLAGS) $*.c + -../bin/lclint $(CPPFLAGS) $(LINTFLAGS) $(SINGLEFLAGS) -load lclint.lcd +neverinclude $*.c +showsourceloc -mts file +# -$(LCLINT29) $(CPPFLAGS) $(LINTFLAGS) $(SINGLEFLAGS) -load lclint.lcd +neverinclude $*.c +showsourceloc lcllib.c: Headers/llgrammar.h clabstract.c: Headers/cgrammar_tokens.h -scan.c: Headers/signature2.h +scan.c: Headers/signature2.h Headers/signature_gen.h +stateClause.c: Headers/cgrammar_tokens.h + .c.o: ifeq ($(CHECK), 1) - $(LCLINT) $(LINTFLAGS) $(SINGLEFLAGS) $*.c + ${MAKE} $*.check endif - @echo '// Compiling '$*.c' / compiled: '`$(OFILES)`' (of 120 files)' - @$(CC) $(CFLAGS) -c $*.c + @echo '// Compiling '$*.c' / compiled: '`$(OFILES)`' (of 161 files)' + $(CC) $(CFLAGS) -c $*.c ### ### alternatives (tests, releases, backups, etc.) @@ -177,7 +215,22 @@ endif ### -e option makes environment variables take precedence -.PHONY : test quicktest opt up +.PHONY : test quicktest opt up backup + +backup: + tar zcvf ../lclint-`date +%Y-%d-%m-%H-%M`.tgz ${ALLSRC} ${GRAMS} Headers/*.h *.i flags.def + +betarelease: + mkdir ~/temp/lclint-`cat ${VERSION_NUMBER}` + mkdir ~/temp/lclint-`cat ${VERSION_NUMBER}`/src + cp Makefile* ${ALLSRC} ${GRAMS} *.i flags.def ~/temp/lclint-`cat ${VERSION_NUMBER}`/src/ + cp -r Headers ~/temp/lclint-`cat ${VERSION_NUMBER}`/src/ + cp -r ../lib ~/temp/lclint-`cat ${VERSION_NUMBER}`/lib + cp -r ../imports ~/temp/lclint-`cat ${VERSION_NUMBER}`/imports + cp -r ../test ~/temp/lclint-`cat ${VERSION_NUMBER}`/test + cp ../configure ../Makefile* ../README ~/temp/lclint-`cat ${VERSION_NUMBER}`/ + cd ~/temp/lclint-`cat ${VERSION_NUMBER}`; rm */*.core ; tar zcvf ~/public_html/lclint/lclint-`cat ~/lclint-dev/src/${VERSION_NUMBER}`-beta.tgz * + chmod 644 ~/public_html/lclint/lclint-`cat ${VERSION_NUMBER}`.tgz opt : ifneq (,$(findstring csh, $(SHELL))) @@ -248,19 +301,12 @@ endif @echo '// Updating version information' @$(MAKE) -e updateversion @echo '// Updating local constants' -### @$(MAKE) -e localconstants + @$(MAKE) -e localconstants @echo '// ' @echo '// Compiling:' @echo '// ' @$(MAKE) -e opt - @echo '// Done Release '`cat $(VERSION_NUMBER)` - - -Headers/flag_codes.h: flags - -flags: flags.def - grep "FLG_" flags.def > Headers/flag_codes.gen - + @echo '// Done Release' ### ### cleaning ### @@ -292,7 +338,7 @@ tidy: -$(RM) ,* .,* *.CKP *.BAK .emacs_[0-9]* core a.out *.*~ up: - -$(RM) cgrammar.c llgrammar.c signature.c cscanner.c + -$(RM) cgrammar.c llgrammar.c signature.c cscanner.c mtgrammar.c *.tab.[c,h] -$(RM) *.o ### @@ -320,19 +366,71 @@ depend: $(CHECKS): lclint.lcd +flags: flags.def + grep "FLG_" flags.def > Headers/flag_codes.gen + touch flags.c + ### ### other flags are in .lclintrc file ### -#lint: -# $(LCLINT) -f lclint.lclintrc $(CPPFLAGS) +forcehints +singleinclude -nestcomments -fcnuse -allimponly -modglobsnomods -uniondef -exportlocal -exportheader -abstract -namechecks -protoparammatch -boolops $(ALLSRC) -dump lclint +tags: + etags ${ALLSRC} ${GRAMS} Headers/*.h *.i + +lintweak: + ${HOME}/lclint-build/lclint-2.5q-freebsdbin/lclint -f weak.lclintrc $(CPPFLAGS) +singleinclude $(ALLSRC) + +lintnew: + ${LCLINTNEW} -f lclint.lclintrc $(CPPFLAGS) +singleinclude $(ALLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -supcounts -fcnuse -exportlocal -constuse -mts file lint: - $(LCLINT) -f lclint.lclintrc $(CPPFLAGS) +forcehints +singleinclude -exportlocal -exportheader -abstract -namechecks -protoparammatch -temptrans -boolops $(ALLSRC) -dump lclint + ../bin/lclint -f lclint.lclintrc $(CPPFLAGS) +singleinclude $(ALLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -supcounts -fcnuse -exportlocal -constuse + +# -mts file + +lintabstract: + lclint -f lclint.lclintrc $(CPPFLAGS) +singleinclude -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -supcounts -fcnuse -exportlocal -constuse test.c +partial + +# -fcnuse -constuse -exportlocal -supcounts + +lintnodestroy: + lclint -f lclint.lclintrc $(CPPFLAGS) +singleinclude $(ALLSRC) -dump lclint +forcehints -misplacedsharequal -unrecogcomments -fcnuse -constuse -exportlocal -supcounts -compdestroy +linttest: + lclint -f lclint.lclintrc $(CPPFLAGS) +singleinclude +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -fcnuse -constuse -exportlocal -supcounts test.c + +linttest1g: + lclint -f lclint.lclintrc $(CPPFLAGS) +singleinclude test.c -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -fcnuse -constuse -exportlocal -supcounts +partial + +lint26: + ${HOME}/lclint-2.6b/bin/lclint -f lclint.lclintrc $(CPPFLAGS) +singleinclude $(ALLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -fcnuse -constuse -exportlocal -supcounts + +lint28: + ${HOME}/lclint-2.8a/bin/lclint -f lclint.lclintrc $(CPPFLAGS) +singleinclude $(ALLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -fcnuse -constuse -exportlocal -supcounts + +lint29: + ${HOME}/lclint-2.9a/bin/lclint -f lclint.lclintrc $(CPPFLAGS) -larchpath .:${HOME}/lclint-2.9a/lib/ +singleinclude $(ALLSRC) -dump lclint +forcehints -misplacedsharequal +showsourceloc -unrecogcomments -fcnuse -constuse -exportlocal -supcounts + +lintm: + lclint-2.5m -f lclint.lclintrc $(CPPFLAGS) +singleinclude $(ALLSRC) -dump lclint + +test: + cp lclint ../bin/lclint + cd ..; ${MAKE} test + +libs: + cd ../lib ; ${MAKE} myall: -$(RM) -f ../bin/lclint; \ - gmake -C .. + ${MAKE} -C .. + +ctype.o: ctbase.i cttable.i +#exprNode.o: exprData.i +ctype.c: ctbase.i cttable.i +tokentable.c: Headers/signature_gen.h + +#lint: +# $(LCLINT) -f lclint.lclintrc $(CPPFLAGS) +forcehints +singleinclude -exportlocal -exportheader -abstract -namechecks -protoparammatch -temptrans -boolops $(ALLSRC) -dump lclint diff --git a/src/Makefile.sources b/src/Makefile.sources index 9134a64..6574cc0 100644 --- a/src/Makefile.sources +++ b/src/Makefile.sources @@ -7,23 +7,26 @@ SETSRC = globSet.c intSet.c typeIdSet.c guardSet.c usymIdSet.c sRefSet.c LISTSRC = clauseStack.c filelocStack.c \ cstringList.c cstringSList.c sRefSetList.c ctypeList.c \ enumNameList.c enumNameSList.c exprNodeList.c exprNodeSList.c \ - uentryList.c fileIdList.c filelocList.c qualList.c \ - flagMarkerList.c idDeclList.c + uentryList.c fileIdList.c filelocList.c qualList.c sRefList.c \ + flagMarkerList.c idDeclList.c flagSpec.c CPPSRC = cppmain.c cpplib.c cppexp.c cpphash.c cpperror.c -CSRC = uentry.c cprim.c macrocache.c qual.c qtype.c specialClauses.c \ - ctype.c cvar.c clabstract.c idDecl.c clause.c +CSRC = uentry.c cprim.c macrocache.c qual.c qtype.c stateClause.c \ + stateClauseList.c ctype.c cvar.c clabstract.c idDecl.c clause.c \ + globalsClause.c modifiesClause.c warnClause.c functionClause.c \ + functionClauseList.c LCLINTSRC = exprNode.c exprChecks.c llmain.c - CHECKSRC = structNames.c aliasChecks.c varKinds.c nameChecks.c + CHECKSRC = structNames.c transferChecks.c varKinds.c nameChecks.c - GLOBSRC = context.c globals.c flags.c general.c osd.c +GLOBSRC = context.c globals.c flags.c general.c osd.c reader.c -GRAMS = cgrammar.y cscanner.l llgrammar.y signature.y -GRAMSRC = cgrammar.c cscanner.c +GRAMS = cgrammar.y cscanner.l llgrammar.y signature.y mtgrammar.y +GRAMSRC = cgrammar.c cscanner.c mtscanner.c mtreader.c mtgrammar.c -GENERALSRC = constraintTerm.c \ +OVERFLOWCHSRC = \ + constraintTerm.c \ constraintExprData.c \ constraintExpr.c \ constraint.c \ @@ -31,12 +34,26 @@ GENERALSRC = constraintTerm.c \ constraintResolve.c \ constraintGeneration.c \ constraintOutput.c \ - forjunk.c \ + forjunk.c + +GENERALSRC = \ exprData.c \ - cstring.c fileloc.c message.c source.c \ - fileTable.c hashTable.c llerror.c messageLog.c \ - flagMarker.c aliasTable.c ynm.c sRefTable.c \ - ekind.c usymtab.c multiVal.c lltok.c sRef.c lcllib.c + cstring.c fileloc.c message.c inputStream.c \ + fileTable.c cstringTable.c valueTable.c stateValue.c llerror.c messageLog.c \ + flagMarker.c aliasTable.c ynm.c sRefTable.c genericTable.c \ + ekind.c usymtab.c multiVal.c lltok.c sRef.c lcllib.c randomNumbers.c \ + fileLib.c + +METASTATESRC = \ + stateInfo.c stateCombinationTable.c metaStateTable.c \ + metaStateInfo.c annotationTable.c annotationInfo.c mttok.c \ + mtDeclarationNode.c mtDeclarationPieces.c mtDeclarationPiece.c mtContextNode.c \ + mtValuesNode.c mtDefaultsNode.c mtAnnotationsNode.c mtMergeNode.c \ + mtAnnotationList.c mtAnnotationDecl.c \ + mtTransferClauseList.c mtTransferClause.c mtTransferAction.c \ + mtLoseReferenceList.c mtLoseReference.c \ + mtDefaultsDeclList.c mtDefaultsDecl.c \ + mtMergeItem.c mtMergeClause.c mtMergeClauseList.c ### ### These source files are relevant for LCL only. @@ -69,11 +86,12 @@ else LCLSRC = $(LCLSETSRC) $(LCLLISTSRC) $(LSLSRC) $(CMNSRC) $(LCLONLYSRC) $(LCLGRAMSSRC) endif -COMMONSRC = $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) $(GLOBSRC) \ - $(IFACESRC) $(LISTSRC) $(SETSRC) $(LCLSRC) $(LCLGRAMSRC) +COMMONSRC = $(OVERFLOWCHSRC) $(CPPSRC) $(CSRC) $(CHECKSRC) $(GENERALSRC) $(GLOBSRC) \ + $(IFACESRC) $(LISTSRC) $(SETSRC) $(LCLSRC) $(LCLGRAMSRC) \ + $(METASTATESRC) SRC = $(COMMONSRC) $(LCLINTSRC) -ALLSRC = $(SRC) $(GRAMSRC) +ALLSRC = $(GRAMSRC) $(SRC) ## all except cscanner.c ALMOSTALLSRC = llgrammar.c cgrammar.c signature.c $(SRC) diff --git a/src/abstract.c b/src/abstract.c index dc4d135..8340c03 100644 --- a/src/abstract.c +++ b/src/abstract.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -102,7 +102,7 @@ resetImports (cstring current) g_currentImports = lsymbolSet_new (); /* equal_symbol; */ (void) lsymbolSet_insert (g_currentImports, - lsymbol_fromChars (cstring_toCharsSafe (current))); + lsymbol_fromString (current)); } void @@ -935,7 +935,7 @@ sort_member_modulo_cstring (sort s, /*@null@*/ termNode t) sn = sort_lookup (s); - if (sn.kind == SRT_PTR) + if (sn->kind == SRT_PTR) { char *lit = lsymbol_toChars (ltoken_getText (t->literal)); @@ -980,7 +980,7 @@ sort_member_modulo_cstring (sort s, /*@null@*/ termNode t) { errtok = termNode_errorToken (term); - /* errorShowPoint (tsource_thisLine (lclsource), ltoken_getCol (errtok)); */ + /* errorShowPoint (inputStream_thisLine (lclsource), ltoken_getCol (errtok)); */ /* sprintf (ERRMSG, "expect `%s' type but given term has `%s' type", sort_unparse (s), sort_unparse (termsort)); */ @@ -1097,7 +1097,7 @@ importNode_makeQuoted (/*@only@*/ ltoken t) imp->kind = IMPQUOTE; - ltoken_setRawText (t, lsymbol_fromChars (cstring_toCharsSafe (q))); + ltoken_setRawText (t, lsymbol_fromString (q)); imp->val = t; @@ -1250,7 +1250,7 @@ makeReplaceNameNode (ltoken t, typeNameNode tn, nameNode nn) r->isCType = FALSE; r->typename = tn; r->content.renamesortname.name = nn; - r->content.renamesortname.signature = (sigNode)NULL; + r->content.renamesortname.signature = (sigNode) NULL; return (r); } @@ -2895,7 +2895,7 @@ static /*@observer@*/ paramNodeList fcnNode_fromDeclarator (/*@only@*/ /*@null@*/ lclTypeSpecNode t, /*@only@*/ declaratorNode d) { - return (makeFcnNode (QU_UNKNOWN, t, d, + return (makeFcnNode (qual_createUnknown (), t, d, varDeclarationNodeList_new (), varDeclarationNodeList_new (), letDeclNodeList_new (), @@ -2949,15 +2949,14 @@ makeFcnNode (qual specQual, /*@null@*/ lclPredicateNode claims) { fcnNode x = (fcnNode) dmalloc (sizeof (*x)); - + if (d->type != (typeExpr)0 && (d->type)->kind != TEXPR_FCN) { lclerror (d->id, cstring_makeLiteral ("Attempt to specify function without parameter list")); d->type = makeFunctionNode (d->type, paramNodeList_new ()); } - - + x->special = specQual; x->typespec = t; x->declarator = d; @@ -3247,8 +3246,8 @@ paramNode_checkQualifiers (lclTypeSpecNode t, typeExpr d) sn = sort_quietLookup (sort_getUnderlying ((t->content.type)->sort)); - if (sn.kind == SRT_PTR || sn.kind == SRT_ARRAY - || sn.kind == SRT_HOF || sn.kind == SRT_NONE) + if (sn->kind == SRT_PTR || sn->kind == SRT_ARRAY + || sn->kind == SRT_HOF || sn->kind == SRT_NONE) { isPointer = TRUE; } @@ -3268,8 +3267,8 @@ paramNode_checkQualifiers (lclTypeSpecNode t, typeExpr d) llassert (t->content.type != NULL); sn = sort_quietLookup (sort_getUnderlying ((t->content.type)->sort)); - if (sn.kind == SRT_PTR || sn.kind == SRT_ARRAY - || sn.kind == SRT_HOF || sn.kind == SRT_NONE) + if (sn->kind == SRT_PTR || sn->kind == SRT_ARRAY + || sn->kind == SRT_HOF || sn->kind == SRT_NONE) { isUser = TRUE; } @@ -3665,7 +3664,7 @@ makeInfixTermNode (termNode x, ltoken op, termNode y) t->kind = TRM_APPLICATION; t->sort = sort_makeNoSort (); t->given = t->sort; - t->possibleSorts = sortSet_new (); /* sort_equal */ + t->possibleSorts = sortSet_new (); /* sort_equal */ t->possibleOps = lslOpSet_new (); return (t); } @@ -5094,10 +5093,10 @@ makeTypeSpecifier (ltoken typedefname) if (typeInfo_exists (ti)) { - /* must we be concern about whether this type is exported by module? - No. Because all typedef's are exported. No hiding supported. */ - /* Later, may want to keep types around too */ - /* 3/2/93, use underlying sort */ + /* must we be concern about whether this type is exported by module? + No. Because all typedef's are exported. No hiding supported. */ + /* Later, may want to keep types around too */ + /* 3/2/93, use underlying sort */ newnode->sort = sort_getUnderlying (ti->basedOn); } else @@ -5105,7 +5104,7 @@ makeTypeSpecifier (ltoken typedefname) lclerror (typedefname, message ("Unrecognized type: %s", ltoken_getRawString (typedefname))); /* evs --- Don't know how to get this message */ - + newnode->sort = sort_makeNoSort (); } @@ -5682,7 +5681,12 @@ static /*@null@*/ opFormNode opFormNode_copy (/*@null@*/ opFormNode op) void opFormNode_free (/*@null@*/ opFormNode op) { - sfree (op); + if (op != NULL) + { + ltoken_free (op->tok); + ltoken_free (op->close); + sfree (op); + } } void nameNode_free (nameNode n) @@ -5814,7 +5818,14 @@ bool initDeclNode_isRedeclaration (initDeclNode d) void termNode_free (/*@only@*/ /*@null@*/ termNode t) { - sfree (t); + if (t != NULL) + { + sortSet_free (t->possibleSorts); + lslOpSet_free (t->possibleOps); + nameNode_free (t->name); + termNodeList_free (t->args); + sfree (t); + } } /*@only@*/ termNode termNode_copySafe (termNode t) @@ -5876,7 +5887,11 @@ void termNode_free (/*@only@*/ /*@null@*/ termNode t) void importNode_free (/*@only@*/ /*@null@*/ importNode x) { - sfree (x); + if (x != NULL) + { + ltoken_free (x->val); + sfree (x); + } } void initDeclNode_free (/*@only@*/ /*@null@*/ initDeclNode x) @@ -5902,7 +5917,11 @@ void letDeclNode_free (/*@only@*/ /*@null@*/ letDeclNode x) void pairNode_free (/*@only@*/ /*@null@*/ pairNode x) { - sfree (x); + if (x != NULL) + { + ltoken_free (x->tok); + sfree (x); + } } /*@null@*/ paramNode paramNode_copy (/*@null@*/ paramNode p) diff --git a/src/aliasChecks.c b/src/aliasChecks.c index 64ab91e..c6bebd6 100644 --- a/src/aliasChecks.c +++ b/src/aliasChecks.c @@ -2034,7 +2034,7 @@ checkAssignTransfer (exprNode lhs, exprNode rhs) sRef srhs = exprNode_getSref (rhs); sRef base = sRef_getBaseSafe (slhs); nstate ns; - struct _bbufinfo bs; + struct s_bbufinfo bs; DPRINTF (("Check assign: %s = %s", exprNode_unparse (lhs), exprNode_unparse (rhs))); diff --git a/src/aliasTable.c b/src/aliasTable.c index 14bf663..1359d92 100644 --- a/src/aliasTable.c +++ b/src/aliasTable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -108,12 +108,15 @@ static int aliasTable_lookupRefs (/*@notnull@*/ aliasTable s, sRef sr) aliasTable aliasTable_addMustAlias (/*@returned@*/ aliasTable s, /*@exposed@*/ sRef sr, - sRef al) + /*@exposed@*/ sRef al) { int ind; sRefSet ss; llassert (NOALIAS (sr, al)); + + DPRINTF (("Adding alias: %s / %s", sRef_unparseFull (sr), + sRef_unparseFull (al))); if (aliasTable_isUndefined (s)) { @@ -126,7 +129,7 @@ aliasTable_addMustAlias (/*@returned@*/ aliasTable s, } ss = aliasTable_canAlias (s, al); - + DPRINTF (("Previous aliases: %s", sRefSet_unparse (ss))); if (ind == ATINVALID) { @@ -146,6 +149,7 @@ aliasTable_addMustAlias (/*@returned@*/ aliasTable s, } s->values[ind] = sRefSet_unionExcept (s->values[ind], ss, s->keys[ind]); + DPRINTF (("New aliases: %s", sRefSet_unparse (s->values[ind]))); sRefSet_free (ss); return s; @@ -483,9 +487,9 @@ static /*@only@*/ sRefSet { ret = sRefSet_union (ret, s->values[ind]); } - + sRefSet_free (tmp); - return ret; + return ret; } if (ind == ATINVALID) return sRefSet_undefined; @@ -703,8 +707,8 @@ aliasTable_unparse (aliasTable s) aliasTable_elements (s, key, value) { - st = message ("%q\t%q -> %q\n", st, sRef_unparse (key), - sRefSet_unparse (value)); + st = message ("%q\t%q -> %q\n", st, sRef_unparseFull (key), + sRefSet_unparseFull (value)); } end_aliasTable_elements; return st; diff --git a/src/annotationInfo.c b/src/annotationInfo.c new file mode 100644 index 0000000..32fafc7 --- /dev/null +++ b/src/annotationInfo.c @@ -0,0 +1,176 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** annotationInfo.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtContextNode.h" + +annotationInfo annotationInfo_create (cstring name, + metaStateInfo state, mtContextNode context, + int value, fileloc loc) +{ + annotationInfo res = (annotationInfo) dmalloc (sizeof (*res)); + + res->name = name; + res->state = state; + res->context = context; + res->value = value; + res->loc = loc; + + return res; +} + +void annotationInfo_free (annotationInfo ainfo) +{ + if (annotationInfo_isDefined (ainfo)) + { + cstring_free (ainfo->name); + fileloc_free (ainfo->loc); + sfree (ainfo); + } +} + +cstring annotationInfo_getName (annotationInfo ainfo) +{ + llassert (annotationInfo_isDefined (ainfo)); + return ainfo->name; +} + +/*@observer@*/ cstring annotationInfo_unparse (annotationInfo ainfo) +{ + return annotationInfo_getName (ainfo); +} + +/*@observer@*/ metaStateInfo annotationInfo_getState (annotationInfo a) /*@*/ +{ + llassert (annotationInfo_isDefined (a)); + return a->state; +} + +/*@observer@*/ fileloc annotationInfo_getLoc (annotationInfo ainfo) /*@*/ +{ + llassert (annotationInfo_isDefined (ainfo)); + return ainfo->loc; +} + +int annotationInfo_getValue (annotationInfo a) /*@*/ +{ + llassert (annotationInfo_isDefined (a)); + return a->value; +} + + +bool annotationInfo_matchesContext (annotationInfo a, uentry ue) +{ + /* + ** Returns true iff the annotation context matches the uentry. + */ + + mtContextNode mcontext; + + llassert (annotationInfo_isDefined (a)); + mcontext = a->context; + + if (mtContextNode_matchesEntry (mcontext, ue)) + { + /* Matches annotation context, must also match meta state context. */ + metaStateInfo minfo = a->state; + + if (mtContextNode_matchesEntry (metaStateInfo_getContext (minfo), ue)) + { + return TRUE; + } + else + { + return FALSE; + } + } + else + { + return FALSE; + } +} + +bool annotationInfo_matchesContextRef (annotationInfo a, sRef sr) +{ + /* + ** Returns true iff the annotation context matches the uentry. + */ + + mtContextNode mcontext; + + llassert (annotationInfo_isDefined (a)); + mcontext = a->context; + + if (mtContextNode_matchesRef (mcontext, sr)) + { + /* Matches annotation context, must also match meta state context. */ + metaStateInfo minfo = a->state; + + if (mtContextNode_matchesRef (metaStateInfo_getContext (minfo), sr)) + { + return TRUE; + } + else + { + return FALSE; + } + } + else + { + return FALSE; + } +} + +cstring annotationInfo_dump (annotationInfo ainfo) +{ + llassert (annotationInfo_isDefined (ainfo)); + return ainfo->name; +} + +/*@observer@*/ annotationInfo annotationInfo_undump (char **s) +{ + cstring mname = reader_readUntil (s, '.'); + annotationInfo ainfo; + + llassert (cstring_isDefined (mname)); + ainfo = context_lookupAnnotation (mname); + + if (annotationInfo_isUndefined (ainfo)) + { + llfatalerrorLoc + (message ("Library uses undefined annotation %s. Must use same -mts flags as when library was created.", + mname)); + } + else + { + cstring_free (mname); + return ainfo; + } + + BADBRANCH; +} diff --git a/src/annotationTable.c b/src/annotationTable.c new file mode 100644 index 0000000..702a48d --- /dev/null +++ b/src/annotationTable.c @@ -0,0 +1,54 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** annotationTable.c +** Based on genericTable.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "randomNumbers.h" + +cstring annotationTable_unparse (annotationTable h) +{ + cstring res = cstring_newEmpty (); + + annotationTable_elements (h, key, el) { + res = cstring_concatFree (res, message ("%s: %s\n", key, annotationInfo_unparse (el))); + } end_annotationTable_elements ; + + return res; +} + +void annotationTable_insert (annotationTable h, annotationInfo annotation) +{ + cstring name = cstring_copy (annotationInfo_getName (annotation)); + llassert (annotationInfo_isDefined (annotation)); + + genericTable_insert ((genericTable) h, + name, + (void *) annotation); +} + + diff --git a/src/cgrammar.tab.c b/src/cgrammar.tab.c deleted file mode 100644 index bfba8e7..0000000 --- a/src/cgrammar.tab.c +++ /dev/null @@ -1,5718 +0,0 @@ - -/* A Bison parser, made from cgrammar.y - by GNU Bison version 1.28 */ - -#define YYBISON 1 /* Identify Bison output. */ - -#define BADTOK 257 -#define SKIPTOK 258 -#define CTOK_ELIPSIS 259 -#define CASE 260 -#define DEFAULT 261 -#define CIF 262 -#define CELSE 263 -#define SWITCH 264 -#define WHILE 265 -#define DO 266 -#define CFOR 267 -#define GOTO 268 -#define CONTINUE 269 -#define BREAK 270 -#define RETURN 271 -#define TSEMI 272 -#define TLBRACE 273 -#define TRBRACE 274 -#define TCOMMA 275 -#define TCOLON 276 -#define TASSIGN 277 -#define TLPAREN 278 -#define TRPAREN 279 -#define TLSQBR 280 -#define TRSQBR 281 -#define TDOT 282 -#define TAMPERSAND 283 -#define TEXCL 284 -#define TTILDE 285 -#define TMINUS 286 -#define TPLUS 287 -#define TMULT 288 -#define TDIV 289 -#define TPERCENT 290 -#define TLT 291 -#define TGT 292 -#define TCIRC 293 -#define TBAR 294 -#define TQUEST 295 -#define CSIZEOF 296 -#define CALIGNOF 297 -#define ARROW_OP 298 -#define CTYPEDEF 299 -#define COFFSETOF 300 -#define INC_OP 301 -#define DEC_OP 302 -#define LEFT_OP 303 -#define RIGHT_OP 304 -#define LE_OP 305 -#define GE_OP 306 -#define EQ_OP 307 -#define NE_OP 308 -#define AND_OP 309 -#define OR_OP 310 -#define MUL_ASSIGN 311 -#define DIV_ASSIGN 312 -#define MOD_ASSIGN 313 -#define ADD_ASSIGN 314 -#define SUB_ASSIGN 315 -#define LEFT_ASSIGN 316 -#define RIGHT_ASSIGN 317 -#define AND_ASSIGN 318 -#define XOR_ASSIGN 319 -#define OR_ASSIGN 320 -#define CSTRUCT 321 -#define CUNION 322 -#define CENUM 323 -#define VA_ARG 324 -#define VA_DCL 325 -#define QGLOBALS 326 -#define QMODIFIES 327 -#define QNOMODS 328 -#define QCONSTANT 329 -#define QFUNCTION 330 -#define QITER 331 -#define QDEFINES 332 -#define QUSES 333 -#define QALLOCATES 334 -#define QSETS 335 -#define QRELEASES 336 -#define QPRECLAUSE 337 -#define QPOSTCLAUSE 338 -#define QALT 339 -#define QUNDEF 340 -#define QKILLED 341 -#define QENDMACRO 342 -#define LLMACRO 343 -#define LLMACROITER 344 -#define LLMACROEND 345 -#define TENDMACRO 346 -#define QSWITCHBREAK 347 -#define QLOOPBREAK 348 -#define QINNERBREAK 349 -#define QSAFEBREAK 350 -#define QINNERCONTINUE 351 -#define QFALLTHROUGH 352 -#define QLINTNOTREACHED 353 -#define QLINTFALLTHROUGH 354 -#define QLINTFALLTHRU 355 -#define QARGSUSED 356 -#define QPRINTFLIKE 357 -#define QLINTPRINTFLIKE 358 -#define QSCANFLIKE 359 -#define QMESSAGELIKE 360 -#define QNOTREACHED 361 -#define QCONST 362 -#define QVOLATILE 363 -#define QINLINE 364 -#define QEXTENSION 365 -#define QEXTERN 366 -#define QSTATIC 367 -#define QAUTO 368 -#define QREGISTER 369 -#define QOUT 370 -#define QIN 371 -#define QYIELD 372 -#define QONLY 373 -#define QTEMP 374 -#define QSHARED 375 -#define QREF 376 -#define QUNIQUE 377 -#define QCHECKED 378 -#define QUNCHECKED 379 -#define QCHECKEDSTRICT 380 -#define QCHECKMOD 381 -#define QKEEP 382 -#define QKEPT 383 -#define QPARTIAL 384 -#define QSPECIAL 385 -#define QOWNED 386 -#define QDEPENDENT 387 -#define QRETURNED 388 -#define QEXPOSED 389 -#define QNULL 390 -#define QOBSERVER 391 -#define QISNULL 392 -#define QEXITS 393 -#define QMAYEXIT 394 -#define QNEVEREXIT 395 -#define QTRUEEXIT 396 -#define QFALSEEXIT 397 -#define QLONG 398 -#define QSIGNED 399 -#define QUNSIGNED 400 -#define QSHORT 401 -#define QUNUSED 402 -#define QSEF 403 -#define QNOTNULL 404 -#define QRELNULL 405 -#define QABSTRACT 406 -#define QCONCRETE 407 -#define QMUTABLE 408 -#define QIMMUTABLE 409 -#define QTRUENULL 410 -#define QFALSENULL 411 -#define QEXTERNAL 412 -#define QREFCOUNTED 413 -#define QREFS 414 -#define QNEWREF 415 -#define QTEMPREF 416 -#define QKILLREF 417 -#define QRELDEF 418 -#define CGCHAR 419 -#define CBOOL 420 -#define CINT 421 -#define CGFLOAT 422 -#define CDOUBLE 423 -#define CVOID 424 -#define QANYTYPE 425 -#define QINTEGRALTYPE 426 -#define QUNSIGNEDINTEGRALTYPE 427 -#define QSIGNEDINTEGRALTYPE 428 -#define QNULLTERMINATED 429 -#define QSETBUFFERSIZE 430 -#define QBUFFERCONSTRAINT 431 -#define QENSURESCONSTRAINT 432 -#define QSETSTRINGLENGTH 433 -#define QMAXSET 434 -#define QMAXREAD 435 -#define QTESTINRANGE 436 -#define TCAND 437 -#define IDENTIFIER 438 -#define NEW_IDENTIFIER 439 -#define TYPE_NAME_OR_ID 440 -#define CCONSTANT 441 -#define ITER_NAME 442 -#define ITER_ENDNAME 443 -#define TYPE_NAME 444 - -#line 19 "cgrammar.y" - -/* -** -** cgrammar.y -** -** Yacc/Bison grammar for extended ANSI C used by LCLint. -** -** original grammar by Nate Osgood --- -** hacrat@catfish.lcs.mit.edu Mon Jun 14 13:06:32 1993 -** -** changes for LCLint --- handle typedef names correctly -** fix struct/union parsing bug (empty struct is accepted) -** add productions to handle macros --- require -** error correction --- main source of conflicts in grammar. -** need to process initializations sequentially, L->R -** -** production names are cryptic, so more productions fit on one line -** -** conflicts: 87 shift/reduce, 18 reduce/reduce -** most of these are due to handling macros -** a few are due to handling type expressions -*/ - -/*@=allmacros@*/ - -extern int yylex (); -extern void swallowMacro (void); - -# include "lclintMacros.nf" -# include "basic.h" -# include "cgrammar.h" -# include "exprChecks.h" - -/*@-allmacros@*/ -/*@-matchfields@*/ - -# define SHOWCSYM FALSE -void yyerror (char *s); - -/* -** This is necessary, or else when the bison-generated code #include's malloc.h, -** there will be a parse error. -** -** Unfortunately, it means the error checking on malloc, etc. is lost for allocations -** in bison-generated files under Win32. -*/ - -# ifdef WIN32 -# undef malloc -# undef calloc -# undef realloc -# endif - - -#line 74 "cgrammar.y" -typedef union -{ - lltok tok; - int count; - specialClauseKind sck; - qual typequal; - qualList tquallist; - ctype ctyp; - sRef sr; - /*@only@*/ qtype qtyp; - /*@only@*/ cstring cname; - /*@only@*/ idDecl ntyp; - /*@only@*/ idDeclList ntyplist; - /*@only@*/ uentryList flist; - /*@owned@*/ uentryList entrylist; - /*@observer@*/ /*@dependent@*/ uentry entry; - /*@only@*/ uentry oentry; - /*@only@*/ exprNode expr; - /*@only@*/ enumNameList enumnamelist; - /*@only@*/ exprNodeList alist; - /*@only@*/ sRefSet srset; - /*@only@*/ cstringList cstringlist; - /*drl - added 1/19/2001 - */ - constraint con; - constraintList conL; - constraintExpr conE; - /* drl */ -} YYSTYPE; -#ifndef YYDEBUG -#define YYDEBUG 1 -#endif - -#include - -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif -#endif - - - -#define YYFINAL 1218 -#define YYFLAG -32768 -#define YYNTBASE 191 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 444 ? yytranslate[x] : 434) - -static const short yytranslate[] = { 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, - 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, - 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, - 187, 188, 189, 190 -}; - -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 1, 3, 5, 8, 11, 13, 15, 17, 19, - 21, 23, 32, 44, 45, 51, 53, 57, 59, 62, - 64, 71, 75, 82, 83, 91, 92, 101, 103, 110, - 114, 121, 122, 129, 130, 138, 139, 140, 151, 155, - 159, 163, 166, 168, 169, 172, 173, 176, 179, 180, - 186, 187, 188, 194, 195, 199, 201, 205, 207, 209, - 211, 213, 215, 217, 222, 228, 230, 232, 234, 236, - 240, 245, 248, 252, 256, 260, 262, 264, 266, 267, - 270, 271, 274, 276, 279, 281, 284, 286, 289, 291, - 295, 298, 300, 302, 304, 306, 308, 310, 312, 313, - 316, 317, 324, 325, 332, 334, 336, 337, 338, 344, - 345, 351, 353, 355, 356, 358, 359, 360, 364, 365, - 369, 371, 373, 375, 377, 379, 381, 383, 385, 387, - 389, 391, 393, 395, 397, 399, 401, 403, 404, 412, - 413, 422, 424, 428, 429, 433, 434, 438, 441, 445, - 448, 451, 453, 455, 457, 461, 466, 469, 473, 477, - 481, 483, 485, 487, 491, 493, 495, 499, 504, 507, - 511, 515, 519, 521, 525, 527, 529, 531, 535, 537, - 539, 541, 546, 550, 555, 562, 568, 574, 577, 580, - 582, 586, 588, 591, 594, 597, 600, 603, 606, 609, - 612, 614, 616, 620, 622, 632, 633, 637, 642, 645, - 650, 653, 655, 660, 662, 666, 670, 674, 676, 680, - 684, 686, 690, 694, 696, 700, 704, 708, 712, 714, - 718, 722, 724, 728, 730, 734, 736, 740, 742, 743, - 748, 750, 751, 756, 758, 759, 760, 768, 770, 774, - 778, 782, 786, 790, 794, 798, 802, 806, 810, 814, - 816, 820, 821, 823, 825, 827, 829, 831, 835, 836, - 846, 847, 859, 862, 863, 870, 871, 879, 884, 889, - 890, 891, 894, 896, 901, 902, 907, 909, 913, 918, - 920, 924, 926, 928, 930, 932, 934, 937, 940, 943, - 946, 949, 952, 955, 958, 961, 964, 967, 970, 973, - 976, 979, 982, 985, 988, 991, 994, 997, 1000, 1003, - 1006, 1009, 1012, 1015, 1018, 1021, 1024, 1027, 1030, 1033, - 1036, 1039, 1042, 1045, 1048, 1051, 1054, 1057, 1060, 1063, - 1066, 1069, 1072, 1074, 1076, 1078, 1080, 1083, 1086, 1089, - 1092, 1095, 1098, 1101, 1104, 1107, 1110, 1113, 1116, 1119, - 1122, 1126, 1128, 1133, 1135, 1139, 1142, 1145, 1148, 1149, - 1151, 1152, 1153, 1165, 1166, 1167, 1179, 1186, 1193, 1194, - 1195, 1206, 1207, 1208, 1219, 1225, 1231, 1236, 1241, 1242, - 1244, 1246, 1249, 1255, 1259, 1262, 1267, 1269, 1273, 1278, - 1285, 1286, 1295, 1300, 1302, 1306, 1309, 1311, 1316, 1318, - 1320, 1323, 1326, 1328, 1331, 1333, 1336, 1338, 1340, 1342, - 1345, 1347, 1350, 1353, 1357, 1359, 1363, 1365, 1369, 1371, - 1373, 1377, 1378, 1381, 1382, 1387, 1392, 1394, 1396, 1399, - 1401, 1403, 1406, 1407, 1409, 1415, 1418, 1422, 1426, 1431, - 1435, 1440, 1445, 1451, 1453, 1455, 1457, 1459, 1461, 1463, - 1465, 1467, 1469, 1472, 1474, 1476, 1478, 1481, 1484, 1492, - 1499, 1502, 1503, 1504, 1515, 1516, 1523, 1525, 1527, 1529, - 1531, 1534, 1536, 1538, 1540, 1542, 1544, 1546, 1548, 1552, - 1554, 1557, 1560, 1563, 1565, 1567, 1569, 1571, 1573, 1575, - 1577, 1579, 1581, 1583, 1587, 1589, 1591, 1594, 1597, 1598, - 1603, 1604, 1610, 1611, 1615, 1616, 1621, 1625, 1628, 1632, - 1633, 1634, 1635, 1636, 1637, 1639, 1642, 1645, 1649, 1652, - 1656, 1660, 1665, 1668, 1671, 1675, 1679, 1684, 1686, 1689, - 1691, 1694, 1696, 1699, 1701, 1704, 1706, 1709, 1711, 1716, - 1719, 1720, 1726, 1727, 1734, 1739, 1744, 1745, 1746, 1757, - 1759, 1760, 1765, 1767, 1769, 1771, 1773, 1775, 1779, 1781, - 1786, 1790, 1795, 1802, 1808, 1814, 1817, 1820, 1822, 1825, - 1828, 1831, 1834, 1837, 1840, 1843, 1846, 1848, 1850, 1855, - 1857, 1861, 1865, 1869, 1871, 1875, 1879, 1881, 1885, 1889, - 1891, 1895, 1899, 1903, 1907, 1909, 1913, 1917, 1919, 1923, - 1925, 1929, 1931, 1935, 1937, 1941, 1943, 1947, 1949, 1950, - 1951, 1959, 1961, 1965, 1969, 1973, 1977, 1981, 1985, 1989, - 1993, 1997, 2001, 2005, 2007, 2008, 2010, 2013, 2021, 2024, - 2027, 2035, 2042, 2045, 2049, 2052, 2056, 2059, 2063, 2067, - 2071, 2075, 2078, 2082, 2083, 2085, 2087, 2089, 2091, 2093, - 2095, 2097, 2099 -}; - -static const short yyrhs[] = { -1, - 192, 0, 193, 0, 192, 193, 0, 261, 430, 0, - 194, 0, 195, 0, 205, 0, 208, 0, 298, 0, - 1, 0, 75, 318, 331, 341, 331, 430, 306, 88, - 0, 75, 318, 331, 341, 331, 23, 306, 311, 310, - 430, 88, 0, 0, 76, 196, 197, 430, 88, 0, - 198, 0, 318, 331, 198, 0, 202, 0, 345, 202, - 0, 432, 0, 306, 24, 331, 341, 306, 25, 0, - 199, 26, 27, 0, 199, 26, 306, 297, 27, 331, - 0, 0, 199, 307, 24, 25, 200, 210, 212, 0, - 0, 199, 307, 24, 342, 25, 201, 210, 212, 0, - 432, 0, 306, 24, 331, 198, 306, 25, 0, 202, - 26, 27, 0, 202, 26, 306, 297, 27, 331, 0, - 0, 202, 307, 24, 25, 203, 228, 0, 0, 202, - 307, 24, 342, 25, 204, 228, 0, 0, 0, 77, - 432, 24, 342, 25, 206, 228, 207, 430, 88, 0, - 89, 371, 92, 0, 90, 358, 92, 0, 91, 359, - 92, 0, 89, 92, 0, 257, 0, 0, 211, 230, - 0, 0, 213, 214, 0, 217, 215, 0, 0, 216, - 178, 219, 430, 88, 0, 0, 0, 218, 177, 219, - 430, 88, 0, 0, 220, 183, 219, 0, 220, 0, - 223, 222, 223, 0, 180, 0, 181, 0, 52, 0, - 51, 0, 53, 0, 224, 0, 226, 24, 223, 25, - 0, 24, 223, 227, 223, 25, 0, 225, 0, 187, - 0, 431, 0, 185, 0, 225, 26, 27, 0, 225, - 26, 187, 27, 0, 34, 225, 0, 24, 225, 25, - 0, 225, 28, 432, 0, 225, 44, 432, 0, 221, - 0, 33, 0, 32, 0, 0, 0, 231, 0, 0, - 229, 231, 0, 238, 0, 232, 238, 0, 241, 0, - 232, 241, 0, 254, 0, 254, 232, 0, 234, 0, - 233, 21, 234, 0, 237, 235, 0, 431, 0, 185, - 0, 86, 0, 87, 0, 116, 0, 117, 0, 130, - 0, 0, 236, 237, 0, 0, 72, 239, 391, 430, - 88, 244, 0, 0, 72, 240, 233, 430, 88, 244, - 0, 74, 0, 245, 0, 0, 0, 72, 242, 391, - 430, 244, 0, 0, 72, 243, 233, 430, 244, 0, - 74, 0, 247, 0, 0, 245, 0, 0, 0, 73, - 246, 262, 0, 0, 73, 248, 263, 0, 78, 0, - 79, 0, 80, 0, 81, 0, 82, 0, 88, 0, - 88, 0, 83, 0, 84, 0, 119, 0, 137, 0, - 135, 0, 133, 0, 132, 0, 121, 0, 138, 0, - 150, 0, 0, 249, 331, 255, 268, 430, 251, 306, - 0, 0, 252, 331, 253, 256, 268, 430, 250, 306, - 0, 341, 0, 318, 331, 341, 0, 0, 19, 259, - 387, 0, 0, 391, 260, 380, 0, 209, 258, 0, - 266, 430, 88, 0, 430, 88, 0, 266, 430, 0, - 430, 0, 431, 0, 185, 0, 264, 26, 27, 0, - 264, 26, 265, 27, 0, 34, 264, 0, 24, 264, - 25, 0, 264, 28, 432, 0, 264, 44, 432, 0, - 264, 0, 187, 0, 264, 0, 266, 21, 264, 0, - 431, 0, 185, 0, 267, 26, 27, 0, 267, 26, - 265, 27, 0, 34, 267, 0, 24, 267, 25, 0, - 267, 28, 432, 0, 267, 44, 432, 0, 267, 0, - 268, 21, 267, 0, 431, 0, 185, 0, 187, 0, - 24, 295, 25, 0, 186, 0, 111, 0, 269, 0, - 270, 26, 295, 27, 0, 270, 24, 25, 0, 270, - 24, 271, 25, 0, 70, 24, 294, 21, 353, 25, - 0, 270, 331, 28, 432, 306, 0, 270, 331, 44, - 432, 306, 0, 270, 47, 0, 270, 48, 0, 294, - 0, 271, 21, 294, 0, 270, 0, 47, 272, 0, - 48, 272, 0, 29, 278, 0, 34, 278, 0, 33, - 278, 0, 32, 278, 0, 31, 278, 0, 30, 278, - 0, 275, 0, 274, 0, 273, 28, 432, 0, 432, - 0, 46, 306, 24, 353, 331, 21, 273, 25, 306, - 0, 0, 306, 276, 277, 0, 42, 24, 353, 25, - 0, 42, 272, 0, 43, 24, 353, 25, 0, 43, - 272, 0, 272, 0, 24, 353, 25, 278, 0, 278, - 0, 279, 34, 278, 0, 279, 35, 278, 0, 279, - 36, 278, 0, 279, 0, 280, 33, 279, 0, 280, - 32, 279, 0, 280, 0, 281, 49, 280, 0, 281, - 50, 280, 0, 281, 0, 282, 37, 281, 0, 282, - 38, 281, 0, 282, 51, 281, 0, 282, 52, 281, - 0, 282, 0, 283, 53, 282, 0, 283, 54, 282, - 0, 283, 0, 284, 29, 283, 0, 284, 0, 285, - 39, 284, 0, 285, 0, 286, 40, 285, 0, 286, - 0, 0, 287, 55, 288, 286, 0, 287, 0, 0, - 289, 56, 290, 287, 0, 289, 0, 0, 0, 289, - 41, 292, 295, 22, 293, 291, 0, 291, 0, 272, - 23, 294, 0, 272, 57, 294, 0, 272, 58, 294, - 0, 272, 59, 294, 0, 272, 60, 294, 0, 272, - 61, 294, 0, 272, 62, 294, 0, 272, 63, 294, - 0, 272, 64, 294, 0, 272, 65, 294, 0, 272, - 66, 294, 0, 294, 0, 295, 21, 294, 0, 0, - 295, 0, 291, 0, 299, 0, 71, 0, 304, 0, - 318, 306, 18, 0, 0, 318, 331, 341, 331, 300, - 306, 310, 18, 306, 0, 0, 318, 331, 341, 331, - 23, 301, 306, 311, 310, 18, 306, 0, 341, 331, - 0, 0, 341, 331, 23, 303, 306, 311, 0, 0, - 45, 318, 305, 331, 308, 306, 18, 0, 45, 318, - 306, 18, 0, 45, 308, 306, 18, 0, 0, 0, - 309, 306, 0, 302, 0, 308, 21, 331, 302, 0, - 0, 310, 21, 331, 302, 0, 294, 0, 19, 312, - 20, 0, 19, 312, 21, 20, 0, 311, 0, 312, - 21, 311, 0, 112, 0, 110, 0, 113, 0, 114, - 0, 115, 0, 108, 306, 0, 109, 306, 0, 116, - 306, 0, 117, 306, 0, 130, 306, 0, 131, 306, - 0, 132, 306, 0, 133, 306, 0, 118, 306, 0, - 120, 306, 0, 119, 306, 0, 128, 306, 0, 129, - 306, 0, 121, 306, 0, 123, 306, 0, 139, 306, - 0, 140, 306, 0, 142, 306, 0, 143, 306, 0, - 141, 306, 0, 136, 306, 0, 151, 306, 0, 134, - 306, 0, 135, 306, 0, 137, 306, 0, 124, 306, - 0, 127, 306, 0, 125, 306, 0, 126, 306, 0, - 156, 306, 0, 157, 306, 0, 148, 306, 0, 158, - 306, 0, 149, 306, 0, 152, 306, 0, 153, 306, - 0, 154, 306, 0, 155, 306, 0, 150, 306, 0, - 159, 306, 0, 160, 306, 0, 163, 306, 0, 164, - 306, 0, 161, 306, 0, 162, 306, 0, 175, 306, - 0, 147, 0, 144, 0, 145, 0, 146, 0, 165, - 331, 0, 167, 331, 0, 166, 331, 0, 168, 331, - 0, 169, 331, 0, 170, 331, 0, 171, 331, 0, - 172, 331, 0, 173, 331, 0, 174, 331, 0, 433, - 331, 0, 322, 331, 0, 336, 331, 0, 315, 331, - 0, 306, 318, 306, 0, 320, 0, 320, 85, 319, - 88, 0, 353, 0, 353, 21, 319, 0, 313, 321, - 0, 314, 321, 0, 316, 321, 0, 0, 318, 0, - 0, 0, 331, 67, 432, 306, 19, 323, 384, 332, - 385, 324, 20, 0, 0, 0, 331, 68, 432, 306, - 19, 325, 384, 332, 385, 326, 20, 0, 331, 67, - 432, 306, 19, 20, 0, 331, 68, 432, 306, 19, - 20, 0, 0, 0, 331, 67, 306, 19, 327, 384, - 332, 385, 328, 20, 0, 0, 0, 331, 68, 306, - 19, 329, 384, 332, 385, 330, 20, 0, 331, 67, - 306, 19, 20, 0, 331, 68, 306, 19, 20, 0, - 331, 67, 432, 331, 0, 331, 68, 432, 331, 0, - 0, 333, 0, 208, 0, 332, 333, 0, 318, 331, - 334, 306, 18, 0, 318, 306, 18, 0, 335, 331, - 0, 334, 21, 335, 331, 0, 341, 0, 22, 306, - 297, 0, 341, 22, 306, 297, 0, 331, 69, 19, - 338, 20, 306, 0, 0, 331, 69, 432, 19, 337, - 338, 20, 306, 0, 331, 69, 432, 306, 0, 339, - 0, 338, 21, 339, 0, 338, 21, 0, 432, 0, - 432, 23, 306, 297, 0, 199, 0, 355, 0, 345, - 190, 0, 345, 340, 0, 199, 0, 345, 199, 0, - 348, 0, 331, 346, 0, 108, 0, 109, 0, 343, - 0, 344, 343, 0, 34, 0, 34, 344, 0, 34, - 345, 0, 34, 344, 345, 0, 347, 0, 347, 21, - 5, 0, 432, 0, 347, 21, 432, 0, 5, 0, - 349, 0, 349, 21, 5, 0, 0, 350, 352, 0, - 0, 349, 21, 351, 352, 0, 306, 318, 340, 306, - 0, 432, 0, 317, 0, 317, 354, 0, 345, 0, - 356, 0, 345, 356, 0, 0, 356, 0, 306, 24, - 331, 354, 25, 0, 26, 27, 0, 26, 297, 27, - 0, 356, 26, 27, 0, 356, 26, 297, 27, 0, - 306, 24, 25, 0, 306, 24, 348, 25, 0, 356, - 306, 24, 25, 0, 356, 306, 24, 348, 25, 0, - 373, 0, 374, 0, 377, 0, 380, 0, 393, 0, - 396, 0, 427, 0, 401, 0, 429, 0, 22, 432, - 0, 360, 0, 358, 0, 367, 0, 360, 367, 0, - 400, 360, 0, 426, 372, 11, 24, 295, 25, 18, - 0, 426, 372, 11, 24, 295, 25, 0, 362, 367, - 0, 0, 0, 13, 24, 296, 18, 296, 18, 363, - 296, 364, 25, 0, 0, 188, 382, 24, 366, 404, - 25, 0, 189, 0, 373, 0, 374, 0, 377, 0, - 369, 391, 0, 369, 0, 370, 0, 393, 0, 368, - 0, 361, 0, 365, 0, 429, 0, 24, 367, 25, - 0, 1, 0, 395, 367, 0, 382, 19, 0, 386, - 20, 0, 372, 0, 390, 0, 373, 0, 374, 0, - 377, 0, 381, 0, 394, 0, 396, 0, 401, 0, - 428, 0, 24, 372, 25, 0, 429, 0, 1, 0, - 432, 22, 0, 107, 357, 0, 0, 6, 297, 375, - 22, 0, 0, 98, 6, 297, 376, 22, 0, 0, - 7, 378, 22, 0, 0, 98, 7, 379, 22, 0, - 24, 380, 25, 0, 382, 388, 0, 382, 389, 383, - 0, 0, 0, 0, 0, 0, 20, 0, 107, 20, - 0, 392, 20, 0, 392, 107, 20, 0, 391, 20, - 0, 391, 107, 20, 0, 391, 392, 20, 0, 391, - 392, 107, 20, 0, 19, 387, 0, 19, 20, 0, - 19, 390, 20, 0, 19, 391, 20, 0, 19, 391, - 392, 20, 0, 372, 0, 390, 372, 0, 298, 0, - 391, 298, 0, 357, 0, 392, 357, 0, 18, 0, - 295, 18, 0, 18, 0, 295, 18, 0, 295, 0, - 8, 24, 295, 25, 0, 395, 357, 0, 0, 395, - 357, 9, 397, 357, 0, 0, 10, 24, 295, 398, - 25, 357, 0, 11, 24, 295, 25, 0, 11, 24, - 295, 25, 0, 0, 0, 188, 402, 382, 24, 403, - 404, 25, 380, 425, 383, 0, 406, 0, 0, 404, - 405, 21, 406, 0, 424, 0, 431, 0, 186, 0, - 185, 0, 187, 0, 24, 295, 25, 0, 407, 0, - 270, 26, 295, 27, 0, 270, 24, 25, 0, 270, - 24, 271, 25, 0, 70, 24, 294, 21, 353, 25, - 0, 270, 331, 28, 432, 306, 0, 270, 331, 44, - 432, 306, 0, 270, 47, 0, 270, 48, 0, 408, - 0, 47, 272, 0, 48, 272, 0, 29, 278, 0, - 34, 278, 0, 33, 278, 0, 32, 278, 0, 31, - 278, 0, 30, 278, 0, 275, 0, 409, 0, 24, - 353, 25, 278, 0, 410, 0, 279, 34, 278, 0, - 279, 35, 278, 0, 279, 36, 278, 0, 411, 0, - 280, 33, 279, 0, 280, 32, 279, 0, 412, 0, - 281, 49, 280, 0, 281, 50, 280, 0, 413, 0, - 282, 37, 281, 0, 282, 38, 281, 0, 282, 51, - 281, 0, 282, 52, 281, 0, 414, 0, 283, 53, - 282, 0, 283, 54, 282, 0, 415, 0, 284, 29, - 283, 0, 416, 0, 285, 39, 284, 0, 417, 0, - 286, 40, 285, 0, 418, 0, 287, 55, 286, 0, - 419, 0, 289, 56, 287, 0, 420, 0, 0, 0, - 289, 41, 422, 295, 22, 423, 291, 0, 421, 0, - 272, 23, 294, 0, 272, 57, 294, 0, 272, 58, - 294, 0, 272, 59, 294, 0, 272, 60, 294, 0, - 272, 61, 294, 0, 272, 62, 294, 0, 272, 63, - 294, 0, 272, 64, 294, 0, 272, 65, 294, 0, - 272, 66, 294, 0, 189, 0, 0, 12, 0, 399, - 357, 0, 426, 357, 11, 24, 295, 25, 18, 0, - 362, 357, 0, 399, 372, 0, 426, 372, 11, 24, - 295, 25, 18, 0, 426, 372, 11, 24, 295, 25, - 0, 362, 372, 0, 14, 432, 18, 0, 15, 18, - 0, 97, 15, 18, 0, 16, 18, 0, 93, 16, - 18, 0, 94, 16, 18, 0, 95, 16, 18, 0, - 96, 16, 18, 0, 17, 18, 0, 17, 295, 18, - 0, 0, 18, 0, 184, 0, 185, 0, 188, 0, - 189, 0, 431, 0, 186, 0, 190, 0, 186, 0 -}; - -#endif - -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 269, 270, 273, 274, 277, 278, 279, 280, 281, 282, - 283, 286, 288, 292, 292, 297, 303, 307, 308, 312, - 313, 315, 317, 321, 324, 332, 335, 343, 344, 346, - 348, 364, 368, 375, 379, 385, 387, 387, 391, 392, - 393, 394, 397, 400, 401, 407, 408, 412, 416, 421, - 428, 432, 437, 444, 447, 448, 451, 456, 457, 460, - 461, 462, 465, 466, 467, 472, 473, 481, 484, 486, - 487, 492, 493, 494, 496, 512, 516, 517, 522, 523, - 533, 534, 537, 538, 541, 542, 545, 546, 549, 550, - 553, 556, 557, 560, 561, 562, 563, 564, 567, 568, - 571, 571, 574, 574, 577, 581, 582, 585, 585, 588, - 588, 591, 595, 596, 599, 600, 603, 609, 616, 622, - 629, 630, 631, 632, 633, 636, 639, 642, 643, 646, - 647, 648, 649, 650, 651, 652, 653, 656, 662, 669, - 675, 684, 690, 694, 696, 700, 703, 710, 720, 721, - 724, 725, 728, 729, 730, 731, 732, 733, 734, 735, - 739, 740, 744, 745, 748, 750, 752, 753, 754, 755, - 756, 758, 762, 766, 778, 779, 780, 781, 782, 783, - 786, 787, 788, 789, 790, 791, 792, 793, 794, 797, - 798, 801, 802, 803, 804, 805, 806, 807, 808, 809, - 810, 811, 814, 815, 818, 822, 823, 826, 827, 828, - 829, 832, 833, 837, 838, 839, 840, 843, 844, 845, - 848, 849, 850, 853, 854, 855, 856, 857, 860, 861, - 862, 865, 866, 869, 870, 874, 875, 878, 879, 884, - 890, 891, 897, 903, 904, 904, 906, 909, 910, 911, - 912, 913, 914, 915, 916, 917, 918, 919, 920, 923, - 924, 927, 928, 931, 936, 937, 938, 941, 954, 958, - 959, 962, 967, 968, 968, 973, 974, 975, 976, 979, - 982, 985, 988, 989, 992, 993, 996, 997, 998, 1002, - 1004, 1013, 1014, 1015, 1016, 1017, 1020, 1021, 1022, 1023, - 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, - 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, - 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, - 1064, 1065, 1071, 1072, 1073, 1074, 1077, 1078, 1079, 1080, - 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, - 1093, 1097, 1098, 1102, 1103, 1107, 1108, 1109, 1112, 1113, - 1116, 1118, 1120, 1121, 1123, 1125, 1126, 1128, 1130, 1132, - 1134, 1135, 1137, 1139, 1140, 1142, 1144, 1145, 1148, 1151, - 1152, 1153, 1156, 1158, 1162, 1164, 1168, 1169, 1170, 1174, - 1176, 1176, 1178, 1181, 1183, 1185, 1188, 1193, 1200, 1201, - 1202, 1209, 1213, 1214, 1218, 1219, 1222, 1223, 1226, 1227, - 1230, 1231, 1232, 1233, 1236, 1237, 1240, 1241, 1244, 1245, - 1246, 1249, 1249, 1250, 1251, 1254, 1266, 1282, 1283, 1286, - 1287, 1288, 1291, 1292, 1295, 1297, 1298, 1300, 1301, 1303, - 1305, 1307, 1309, 1315, 1316, 1317, 1318, 1319, 1320, 1321, - 1322, 1323, 1338, 1343, 1346, 1349, 1350, 1354, 1356, 1358, - 1360, 1364, 1365, 1367, 1371, 1373, 1375, 1378, 1379, 1380, - 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, - 1393, 1399, 1402, 1405, 1406, 1409, 1410, 1411, 1412, 1413, - 1414, 1415, 1416, 1417, 1418, 1419, 1422, 1423, 1429, 1430, - 1431, 1432, 1435, 1436, 1437, 1438, 1441, 1442, 1446, 1449, - 1452, 1455, 1458, 1461, 1464, 1465, 1466, 1467, 1469, 1470, - 1472, 1474, 1481, 1485, 1487, 1489, 1491, 1495, 1496, 1499, - 1500, 1503, 1504, 1507, 1508, 1511, 1512, 1513, 1516, 1524, - 1529, 1530, 1534, 1535, 1538, 1543, 1546, 1547, 1548, 1556, - 1557, 1557, 1561, 1562, 1563, 1574, 1581, 1582, 1585, 1586, - 1587, 1588, 1589, 1591, 1592, 1593, 1594, 1597, 1598, 1599, - 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1609, 1610, 1613, - 1614, 1615, 1616, 1619, 1620, 1621, 1624, 1625, 1626, 1629, - 1630, 1631, 1632, 1633, 1636, 1637, 1638, 1641, 1642, 1645, - 1646, 1650, 1651, 1654, 1655, 1658, 1659, 1662, 1663, 1664, - 1665, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, - 1677, 1678, 1679, 1682, 1683, 1686, 1689, 1691, 1693, 1697, - 1698, 1700, 1702, 1705, 1706, 1707, 1709, 1710, 1711, 1712, - 1713, 1714, 1715, 1718, 1719, 1722, 1725, 1726, 1727, 1728, - 1729, 1732, 1733 -}; -#endif - - -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","BADTOK", -"SKIPTOK","CTOK_ELIPSIS","CASE","DEFAULT","CIF","CELSE","SWITCH","WHILE","DO", -"CFOR","GOTO","CONTINUE","BREAK","RETURN","TSEMI","TLBRACE","TRBRACE","TCOMMA", -"TCOLON","TASSIGN","TLPAREN","TRPAREN","TLSQBR","TRSQBR","TDOT","TAMPERSAND", -"TEXCL","TTILDE","TMINUS","TPLUS","TMULT","TDIV","TPERCENT","TLT","TGT","TCIRC", -"TBAR","TQUEST","CSIZEOF","CALIGNOF","ARROW_OP","CTYPEDEF","COFFSETOF","INC_OP", -"DEC_OP","LEFT_OP","RIGHT_OP","LE_OP","GE_OP","EQ_OP","NE_OP","AND_OP","OR_OP", -"MUL_ASSIGN","DIV_ASSIGN","MOD_ASSIGN","ADD_ASSIGN","SUB_ASSIGN","LEFT_ASSIGN", -"RIGHT_ASSIGN","AND_ASSIGN","XOR_ASSIGN","OR_ASSIGN","CSTRUCT","CUNION","CENUM", -"VA_ARG","VA_DCL","QGLOBALS","QMODIFIES","QNOMODS","QCONSTANT","QFUNCTION","QITER", -"QDEFINES","QUSES","QALLOCATES","QSETS","QRELEASES","QPRECLAUSE","QPOSTCLAUSE", -"QALT","QUNDEF","QKILLED","QENDMACRO","LLMACRO","LLMACROITER","LLMACROEND","TENDMACRO", -"QSWITCHBREAK","QLOOPBREAK","QINNERBREAK","QSAFEBREAK","QINNERCONTINUE","QFALLTHROUGH", -"QLINTNOTREACHED","QLINTFALLTHROUGH","QLINTFALLTHRU","QARGSUSED","QPRINTFLIKE", -"QLINTPRINTFLIKE","QSCANFLIKE","QMESSAGELIKE","QNOTREACHED","QCONST","QVOLATILE", -"QINLINE","QEXTENSION","QEXTERN","QSTATIC","QAUTO","QREGISTER","QOUT","QIN", -"QYIELD","QONLY","QTEMP","QSHARED","QREF","QUNIQUE","QCHECKED","QUNCHECKED", -"QCHECKEDSTRICT","QCHECKMOD","QKEEP","QKEPT","QPARTIAL","QSPECIAL","QOWNED", -"QDEPENDENT","QRETURNED","QEXPOSED","QNULL","QOBSERVER","QISNULL","QEXITS","QMAYEXIT", -"QNEVEREXIT","QTRUEEXIT","QFALSEEXIT","QLONG","QSIGNED","QUNSIGNED","QSHORT", -"QUNUSED","QSEF","QNOTNULL","QRELNULL","QABSTRACT","QCONCRETE","QMUTABLE","QIMMUTABLE", -"QTRUENULL","QFALSENULL","QEXTERNAL","QREFCOUNTED","QREFS","QNEWREF","QTEMPREF", -"QKILLREF","QRELDEF","CGCHAR","CBOOL","CINT","CGFLOAT","CDOUBLE","CVOID","QANYTYPE", -"QINTEGRALTYPE","QUNSIGNEDINTEGRALTYPE","QSIGNEDINTEGRALTYPE","QNULLTERMINATED", -"QSETBUFFERSIZE","QBUFFERCONSTRAINT","QENSURESCONSTRAINT","QSETSTRINGLENGTH", -"QMAXSET","QMAXREAD","QTESTINRANGE","TCAND","IDENTIFIER","NEW_IDENTIFIER","TYPE_NAME_OR_ID", -"CCONSTANT","ITER_NAME","ITER_ENDNAME","TYPE_NAME","file","externalDefs","externalDef", -"constantDecl","fcnDecl","@1","plainFcn","plainNamedDecl","namedDeclBase","@2", -"@3","plainNamedDeclBase","@4","@5","iterDecl","@6","@7","macroDef","fcnDefHdr", -"optGlobMods","@8","optGlobBufConstraints","@9","optGlobBufConstraintsRest", -"optGlobEnsuresConstraintsAux","@10","optGlobBufConstraintsAux","@11","BufConstraintList", -"BufConstraint","bufferModifier","relationalOp","BufConstraintExpr","BufConstraintTerm", -"BufConstraintSrefExpr","BufUnaryOp","BufBinaryOp","optPlainGlobMods","@13", -"optGlobModsRest","optPlainGlobModsRest","specialClauses","globIdList","globIdListExpr", -"globId","globQual","optGlobQuals","optGlobModsAux","@14","@15","optPlainGlobModsAux", -"@16","@17","optMods","fcnMods","@18","fcnPlainMods","@19","specialTag","endStateTag", -"endSpecialTag","stateSpecialClause","specialClauseType","specialClause","@20", -"@21","fcnDefHdrAux","fcnBody","@22","@23","fcnDef","locModifies","locPlainModifies", -"modListExpr","mExpr","modList","specClauseListExpr","specClauseList","primaryExpr", -"postfixExpr","argumentExprList","unaryExpr","fieldDesignator","offsetofExpr", -"sizeofExpr","@24","sizeofExprAux","castExpr","timesExpr","plusExpr","shiftExpr", -"relationalExpr","equalityExpr","bitandExpr","xorExpr","bitorExpr","andExpr", -"@25","orExpr","@26","conditionalExpr","@27","@28","assignExpr","expr","optExpr", -"constantExpr","initializer","instanceDecl","@29","@30","namedInitializer","@31", -"typeDecl","@32","IsType","PushType","namedInitializerList","namedInitializerListAux", -"optDeclarators","init","initList","storageSpecifier","typeQualifier","typeModifier", -"typeSpecifier","completeType","completeTypeSpecifier","altType","completeTypeSpecifierAux", -"optCompleteType","suSpc","@33","@34","@35","@36","@37","@38","@39","@40","NotType", -"structDeclList","structDecl","structNamedDeclList","structNamedDecl","enumSpc", -"@41","enumeratorList","enumerator","optNamedDecl","namedDecl","genericParamList", -"innerMods","innerModsList","pointers","paramIdList","idList","paramTypeList", -"paramList","@42","@43","paramDecl","typeExpression","abstractDecl","optAbstractDeclBase", -"abstractDeclBase","stmt","iterBody","endBody","iterDefStmtList","iterDefIterationStmt", -"forPred","@44","@45","partialIterStmt","@46","iterDefStmt","iterSelectionStmt", -"openScope","closeScope","macroBody","stmtErr","labeledStmt","caseStmt","@47", -"@48","defaultStmt","@49","@50","compoundStmt","compoundStmtErr","CreateInnerScope", -"DeleteInnerScope","CreateStructInnerScope","DeleteStructInnerScope","DeleteInnerScopeSafe", -"compoundStmtRest","compoundStmtAux","compoundStmtAuxErr","stmtListErr","initializerList", -"stmtList","expressionStmt","expressionStmtErr","ifPred","selectionStmt","@51", -"@52","whilePred","iterWhilePred","iterStmt","@53","@54","iterArgList","@55", -"iterArgExpr","primaryIterExpr","postfixIterExpr","unaryIterExpr","castIterExpr", -"timesIterExpr","plusIterExpr","shiftIterExpr","relationalIterExpr","equalityIterExpr", -"bitandIterExpr","xorIterExpr","bitorIterExpr","andIterExpr","orIterExpr","conditionalIterExpr", -"@56","@57","assignIterExpr","endIter","doHeader","iterationStmt","iterationStmtErr", -"jumpStmt","optSemi","id","newId","typeName", NULL -}; -#endif - -static const short yyr1[] = { 0, - 191, 191, 192, 192, 193, 193, 193, 193, 193, 193, - 193, 194, 194, 196, 195, 197, 197, 198, 198, 199, - 199, 199, 199, 200, 199, 201, 199, 202, 202, 202, - 202, 203, 202, 204, 202, 206, 207, 205, 208, 208, - 208, 208, 209, 211, 210, 213, 212, 214, 216, 215, - 215, 218, 217, 217, 219, 219, 220, 221, 221, 222, - 222, 222, 223, 223, 223, 224, 224, 225, 225, 225, - 225, 225, 225, 225, 225, 226, 227, 227, -1, -1, - 229, 228, 230, 230, 231, 231, 232, 232, 233, 233, - 234, 235, 235, 236, 236, 236, 236, 236, 237, 237, - 239, 238, 240, 238, 238, 238, 238, 242, 241, 243, - 241, 241, 241, 241, 244, 244, 246, 245, 248, 247, - 249, 249, 249, 249, 249, 250, 251, 252, 252, 253, - 253, 253, 253, 253, 253, 253, 253, 255, 254, 256, - 254, 257, 257, 259, 258, 260, 258, 261, 262, 262, - 263, 263, 264, 264, 264, 264, 264, 264, 264, 264, - 265, 265, 266, 266, 267, 267, 267, 267, 267, 267, - 267, 267, 268, 268, 269, 269, 269, 269, 269, 269, - 270, 270, 270, 270, 270, 270, 270, 270, 270, 271, - 271, 272, 272, 272, 272, 272, 272, 272, 272, 272, - 272, 272, 273, 273, 274, 276, 275, 277, 277, 277, - 277, 278, 278, 279, 279, 279, 279, 280, 280, 280, - 281, 281, 281, 282, 282, 282, 282, 282, 283, 283, - 283, 284, 284, 285, 285, 286, 286, 287, 288, 287, - 289, 290, 289, 291, 292, 293, 291, 294, 294, 294, - 294, 294, 294, 294, 294, 294, 294, 294, 294, 295, - 295, 296, 296, 297, 298, 298, 298, 299, 300, 299, - 301, 299, 302, 303, 302, 305, 304, 304, 304, 306, - 307, 308, 309, 309, 310, 310, 311, 311, 311, 312, - 312, 313, 313, 313, 313, 313, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 314, 314, 314, 314, 314, 314, 314, 314, - 314, 314, 315, 315, 315, 315, 316, 316, 316, 316, - 316, 316, 316, 316, 316, 316, 316, 316, 316, 316, - 317, 318, 318, 319, 319, 320, 320, 320, 321, 321, - 323, 324, 322, 325, 326, 322, 322, 322, 327, 328, - 322, 329, 330, 322, 322, 322, 322, 322, 331, 332, - 332, 332, 333, 333, 334, 334, 335, 335, 335, 336, - 337, 336, 336, 338, 338, 338, 339, 339, 340, 340, - 340, 340, 341, 341, 342, 342, 343, 343, 344, 344, - 345, 345, 345, 345, 346, 346, 347, 347, 348, 348, - 348, 350, 349, 351, 349, 352, 352, 353, 353, 354, - 354, 354, 355, 355, 356, 356, 356, 356, 356, 356, - 356, 356, 356, 357, 357, 357, 357, 357, 357, 357, - 357, 357, -1, 358, 359, 360, 360, 361, 361, 361, - 361, 363, 364, 362, 366, 365, 365, 367, 367, 367, - 367, 367, 367, 367, 367, 367, 367, 367, 367, 367, - 368, 369, 370, 371, 371, 372, 372, 372, 372, 372, - 372, 372, 372, 372, 372, 372, 373, 373, 375, 374, - 376, 374, 378, 377, 379, 377, 380, 380, 381, 382, - 383, 384, 385, 386, 387, 387, 387, 387, 387, 387, - 387, 387, 388, 389, 389, 389, 389, 390, 390, 391, - 391, 392, 392, 393, 393, 394, 394, 394, 395, 396, - 397, 396, 398, 396, 399, 400, 402, 403, 401, 404, - 405, 404, 406, 406, 406, 406, 407, 407, 408, 408, - 408, 408, 408, 408, 408, 408, 408, 409, 409, 409, - 409, 409, 409, 409, 409, 409, 409, 410, 410, 411, - 411, 411, 411, 412, 412, 412, 413, 413, 413, 414, - 414, 414, 414, 414, 415, 415, 415, 416, 416, 417, - 417, 418, 418, 419, 419, 420, 420, 421, 422, 423, - 421, 424, 424, 424, 424, 424, 424, 424, 424, 424, - 424, 424, 424, 425, 425, 426, 427, 427, 427, 428, - 428, 428, 428, 429, 429, 429, 429, 429, 429, 429, - 429, 429, 429, 430, 430, 431, 432, 432, 432, 432, - 432, 433, 433 -}; - -static const short yyr2[] = { 0, - 0, 1, 1, 2, 2, 1, 1, 1, 1, 1, - 1, 8, 11, 0, 5, 1, 3, 1, 2, 1, - 6, 3, 6, 0, 7, 0, 8, 1, 6, 3, - 6, 0, 6, 0, 7, 0, 0, 10, 3, 3, - 3, 2, 1, 0, 2, 0, 2, 2, 0, 5, - 0, 0, 5, 0, 3, 1, 3, 1, 1, 1, - 1, 1, 1, 4, 5, 1, 1, 1, 1, 3, - 4, 2, 3, 3, 3, 1, 1, 1, 0, 2, - 0, 2, 1, 2, 1, 2, 1, 2, 1, 3, - 2, 1, 1, 1, 1, 1, 1, 1, 0, 2, - 0, 6, 0, 6, 1, 1, 0, 0, 5, 0, - 5, 1, 1, 0, 1, 0, 0, 3, 0, 3, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 0, 7, 0, - 8, 1, 3, 0, 3, 0, 3, 2, 3, 2, - 2, 1, 1, 1, 3, 4, 2, 3, 3, 3, - 1, 1, 1, 3, 1, 1, 3, 4, 2, 3, - 3, 3, 1, 3, 1, 1, 1, 3, 1, 1, - 1, 4, 3, 4, 6, 5, 5, 2, 2, 1, - 3, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 1, 1, 3, 1, 9, 0, 3, 4, 2, 4, - 2, 1, 4, 1, 3, 3, 3, 1, 3, 3, - 1, 3, 3, 1, 3, 3, 3, 3, 1, 3, - 3, 1, 3, 1, 3, 1, 3, 1, 0, 4, - 1, 0, 4, 1, 0, 0, 7, 1, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, - 3, 0, 1, 1, 1, 1, 1, 3, 0, 9, - 0, 11, 2, 0, 6, 0, 7, 4, 4, 0, - 0, 2, 1, 4, 0, 4, 1, 3, 4, 1, - 3, 1, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 1, 1, 1, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 3, 1, 4, 1, 3, 2, 2, 2, 0, 1, - 0, 0, 11, 0, 0, 11, 6, 6, 0, 0, - 10, 0, 0, 10, 5, 5, 4, 4, 0, 1, - 1, 2, 5, 3, 2, 4, 1, 3, 4, 6, - 0, 8, 4, 1, 3, 2, 1, 4, 1, 1, - 2, 2, 1, 2, 1, 2, 1, 1, 1, 2, - 1, 2, 2, 3, 1, 3, 1, 3, 1, 1, - 3, 0, 2, 0, 4, 4, 1, 1, 2, 1, - 1, 2, 0, 1, 5, 2, 3, 3, 4, 3, - 4, 4, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 1, 1, 1, 2, 2, 7, 6, - 2, 0, 0, 10, 0, 6, 1, 1, 1, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 3, 1, - 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 1, 2, 2, 0, 4, - 0, 5, 0, 3, 0, 4, 3, 2, 3, 0, - 0, 0, 0, 0, 1, 2, 2, 3, 2, 3, - 3, 4, 2, 2, 3, 3, 4, 1, 2, 1, - 2, 1, 2, 1, 2, 1, 2, 1, 4, 2, - 0, 5, 0, 6, 4, 4, 0, 0, 10, 1, - 0, 4, 1, 1, 1, 1, 1, 3, 1, 4, - 3, 4, 6, 5, 5, 2, 2, 1, 2, 2, - 2, 2, 2, 2, 2, 2, 1, 1, 4, 1, - 3, 3, 3, 1, 3, 3, 1, 3, 3, 1, - 3, 3, 3, 3, 1, 3, 3, 1, 3, 1, - 3, 1, 3, 1, 3, 1, 3, 1, 0, 0, - 7, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 1, 0, 1, 2, 7, 2, 2, - 7, 6, 2, 3, 2, 3, 2, 3, 3, 3, - 3, 2, 3, 0, 1, 1, 1, 1, 1, 1, - 1, 1, 1 -}; - -static const short yydefact[] = { 0, - 11, 421, 389, 266, 389, 14, 0, 0, 0, 0, - 280, 280, 293, 292, 294, 295, 296, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 344, 345, 346, 343, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 389, 389, 389, 389, 389, 389, - 389, 389, 389, 389, 280, 656, 657, 661, 658, 659, - 662, 0, 3, 6, 7, 413, 8, 9, 389, 43, - 654, 10, 265, 267, 0, 369, 369, 389, 369, 389, - 362, 389, 0, 389, 142, 280, 660, 20, 389, 417, - 418, 419, 422, 423, 283, 280, 280, 276, 389, 663, - 389, 389, 661, 0, 506, 280, 513, 0, 0, 0, - 636, 0, 0, 0, 0, 280, 546, 0, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 0, 42, 0, - 0, 0, 0, 0, 0, 280, 180, 176, 179, 177, - 557, 181, 192, 212, 202, 201, 214, 218, 221, 224, - 229, 232, 234, 236, 238, 241, 244, 248, 260, 548, - 206, 0, 0, 538, 496, 497, 498, 499, 0, 0, - 500, 280, 501, 0, 502, 0, 503, 505, 175, 0, - 490, 0, 544, 0, 520, 477, 0, 0, 0, 486, - 0, 487, 466, 485, 482, 483, 478, 479, 480, 0, - 0, 484, 0, 0, 0, 488, 465, 0, 297, 298, - 299, 300, 305, 307, 306, 310, 311, 322, 324, 325, - 323, 308, 309, 301, 302, 303, 304, 319, 320, 317, - 321, 312, 313, 316, 314, 315, 328, 330, 335, 318, - 331, 332, 333, 334, 326, 327, 329, 336, 337, 340, - 341, 338, 339, 347, 349, 348, 350, 351, 352, 353, - 354, 355, 356, 342, 4, 280, 0, 144, 148, 540, - 389, 389, 655, 5, 389, 370, 366, 367, 360, 368, - 0, 280, 280, 358, 280, 280, 0, 359, 414, 357, - 420, 424, 389, 0, 282, 389, 0, 273, 280, 654, - 16, 18, 0, 389, 280, 28, 432, 280, 176, 179, - 212, 264, 509, 175, 0, 280, 280, 280, 280, 0, - 645, 647, 652, 0, 0, 389, 438, 0, 0, 195, - 200, 199, 198, 197, 196, 0, 280, 193, 194, 280, - 0, 0, 0, 0, 0, 280, 515, 280, 508, 280, - 454, 455, 456, 457, 0, 458, 459, 280, 461, 280, - 460, 462, 520, 280, 280, 188, 189, 0, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 239, 245, 242, 547, 280, - 0, 643, 39, 0, 521, 539, 550, 640, 0, 507, - 280, 0, 0, 0, 545, 40, 467, 471, 481, 492, - 493, 491, 0, 0, 41, 22, 280, 432, 389, 280, - 520, 541, 280, 268, 143, 389, 0, 364, 0, 389, - 0, 389, 0, 280, 280, 279, 280, 278, 274, 389, - 0, 280, 0, 389, 280, 19, 429, 0, 0, 415, - 430, 280, 0, 0, 514, 0, 553, 0, 263, 0, - 644, 653, 178, 280, 280, 0, 440, 439, 441, 280, - 504, 280, 0, 648, 649, 650, 651, 646, 511, 0, - 0, 639, 389, 518, 637, 0, 0, 183, 0, 190, - 0, 0, 0, 249, 250, 251, 252, 253, 254, 255, - 256, 257, 258, 259, 215, 216, 217, 220, 219, 222, - 223, 225, 226, 227, 228, 230, 231, 233, 235, 237, - 280, 280, 280, 261, 280, 280, 207, 534, 179, 538, - 0, 389, 519, 551, 0, 0, 489, 475, 0, 0, - 24, 0, 525, 280, 542, 145, 389, 280, 389, 520, - 147, 280, 269, 363, 280, 379, 0, 387, 382, 0, - 388, 0, 404, 407, 401, 403, 284, 280, 280, 654, - 15, 30, 280, 432, 280, 17, 416, 425, 427, 36, - 434, 389, 433, 437, 510, 549, 0, 555, 280, 361, - 446, 0, 432, 442, 280, 0, 213, 389, 280, 0, - 516, 517, 533, 0, 558, 280, 184, 182, 280, 280, - 240, 0, 243, 280, 209, 280, 211, 535, 536, 280, - 280, 280, 556, 280, 280, 389, 44, 26, 526, 529, - 280, 280, 527, 280, 543, 0, 271, 280, 365, 385, - 522, 371, 386, 522, 374, 280, 406, 280, 0, 0, - 280, 280, 280, 0, 32, 0, 280, 0, 81, 431, - 280, 443, 280, 0, 447, 450, 280, 0, 448, 0, - 432, 0, 0, 512, 280, 280, 191, 186, 187, 246, - 0, 0, 537, 552, 0, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 0, 176, 179, 177, 192, 212, - 201, 218, 221, 224, 229, 232, 234, 236, 238, 241, - 0, 561, 560, 569, 578, 588, 590, 594, 597, 600, - 605, 608, 610, 612, 614, 616, 618, 622, 563, 175, - 0, 23, 46, 107, 44, 530, 531, 280, 528, 21, - 280, 285, 389, 377, 522, 389, 378, 522, 400, 405, - 280, 0, 277, 280, 287, 275, 280, 0, 389, 81, - 34, 0, 426, 428, 37, 114, 435, 409, 0, 280, - 443, 410, 444, 554, 472, 0, 451, 449, 452, 0, - 0, 185, 0, 561, 280, 208, 210, 642, 0, 0, - 195, 200, 199, 198, 197, 196, 193, 194, 280, 280, - 280, 188, 189, 0, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 280, 280, 280, 280, 280, 280, 280, 280, 280, - 280, 239, 619, 242, 476, 0, 470, 25, 54, 101, - 117, 105, 121, 122, 123, 124, 125, 128, 129, 45, - 107, 83, 106, 389, 389, 87, 46, 532, 280, 0, - 391, 389, 389, 390, 389, 389, 389, 408, 280, 290, - 0, 285, 12, 31, 33, 81, 29, 654, 108, 119, - 112, 82, 114, 85, 113, 432, 436, 411, 412, 280, - 445, 453, 0, 204, 0, 520, 247, 641, 178, 280, - 0, 183, 0, 0, 0, 0, 623, 624, 625, 626, - 627, 628, 629, 630, 631, 632, 633, 215, 216, 217, - 220, 219, 222, 223, 225, 226, 227, 228, 230, 231, - 233, 235, 237, 615, 280, 617, 280, 469, 47, 51, - 0, 389, 99, 654, 84, 138, 0, 88, 27, 285, - 280, 389, 0, 280, 392, 380, 389, 383, 389, 402, - 288, 280, 654, 35, 0, 389, 99, 654, 86, 280, - 473, 280, 0, 638, 635, 213, 280, 184, 182, 280, - 280, 0, 562, 48, 0, 0, 389, 94, 95, 96, - 97, 98, 654, 89, 99, 0, 0, 0, 154, 118, - 163, 654, 0, 153, 0, 130, 135, 134, 133, 132, - 131, 136, 137, 140, 0, 270, 280, 394, 280, 280, - 389, 397, 0, 372, 0, 375, 289, 291, 0, 38, - 654, 654, 120, 654, 152, 280, 0, 205, 203, 634, - 521, 0, 186, 187, 620, 0, 0, 0, 58, 59, - 69, 67, 654, 56, 76, 0, 63, 66, 0, 68, - 0, 99, 0, 100, 93, 91, 92, 0, 157, 0, - 0, 0, 0, 0, 150, 0, 0, 166, 173, 654, - 165, 0, 280, 286, 280, 280, 0, 395, 280, 381, - 0, 384, 0, 13, 116, 116, 151, 474, 559, 185, - 280, 654, 0, 66, 0, 72, 0, 0, 61, 60, - 62, 0, 0, 0, 0, 0, 116, 90, 116, 158, - 155, 162, 161, 0, 159, 160, 164, 149, 0, 169, - 0, 0, 0, 0, 0, 654, 272, 398, 389, 393, - 280, 373, 376, 109, 115, 111, 621, 0, 78, 77, - 0, 73, 0, 53, 55, 57, 70, 0, 74, 75, - 0, 102, 104, 156, 170, 167, 0, 171, 172, 174, - 127, 280, 0, 396, 399, 50, 0, 71, 64, 168, - 139, 126, 280, 65, 141, 0, 0, 0 -}; - -static const short yydefgoto[] = { 1216, - 82, 83, 84, 85, 122, 320, 321, 86, 657, 765, - 322, 790, 906, 87, 689, 908, 891, 89, 763, 764, - 868, 869, 969, 1014, 1015, 970, 971, 1083, 1084, 1085, - 1142, 1086, 1087, 1088, 1089, 1181, 795, 796, 880, 912, - 881, 1023, 1024, 1096, 1025, 1026, 882, 972, 973, 914, - 996, 997, 1174, 1175, 974, 915, 998, 884, 1213, 1202, - 885, 1044, 886, 1035, 1112, 90, 289, 449, 451, 91, - 1030, 1063, 1031, 1154, 1032, 1109, 1110, 162, 163, 519, - 164, 923, 165, 166, 421, 557, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 176, 551, 177, 553, 178, - 552, 815, 179, 207, 490, 333, 290, 93, 668, 771, - 115, 599, 94, 316, 181, 287, 116, 117, 890, 786, - 901, 96, 97, 98, 99, 347, 291, 457, 101, 297, - 102, 775, 1121, 778, 1123, 671, 1053, 674, 1055, 103, - 893, 894, 1050, 1051, 104, 679, 592, 593, 800, 119, - 479, 112, 113, 106, 607, 608, 480, 481, 482, 691, - 613, 348, 806, 802, 499, 369, 208, 228, 209, 210, - 370, 920, 1067, 212, 654, 213, 214, 215, 216, 183, - 426, 371, 372, 484, 630, 373, 335, 510, 374, 188, - 375, 563, 773, 986, 221, 576, 514, 425, 190, 577, - 578, 376, 191, 192, 377, 651, 617, 378, 224, 379, - 383, 706, 742, 866, 743, 744, 745, 746, 747, 748, - 749, 750, 751, 752, 753, 754, 755, 756, 757, 758, - 965, 1131, 759, 1071, 380, 381, 197, 382, 294, 334, - 200, 109 -}; - -static const short yypact[] = { 2053, --32768, 117, 5389,-32768, 6235,-32768, 896, 3028, 3410, 3410, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 557,-32768,-32768, --32768, 2229,-32768,-32768,-32768, 430,-32768,-32768, 5126,-32768, - 105,-32768,-32768,-32768, 124, 6069, 6069,-32768, 6069, 118, - 80,-32768, 527,-32768,-32768, 896,-32768,-32768,-32768,-32768, --32768,-32768, 117,-32768,-32768, 156,-32768, 118,-32768,-32768, --32768, 5389,-32768, 162,-32768, 5552,-32768, 183, 197, 205, --32768, 213, 896, 283, 311, 892,-32768, 2605, 5552, 5552, - 5552, 5552, 5552, 5552,-32768, 5563, 5563, 288,-32768, 366, - 374, 379, 387, 345, 149, 4650,-32768, 389, 412,-32768, - 436,-32768, 834, 963,-32768,-32768,-32768, 821, 303, 636, - 294, 683, 439, 457, 463, 453, 106,-32768,-32768, 333, --32768, 3558, 427, 435,-32768,-32768,-32768,-32768, 517, 3176, --32768, 4650,-32768, 3558,-32768, 3558,-32768,-32768, 519, 537, --32768, 565,-32768, 2795, 436, 585, 344, 523, 3219,-32768, - 3410,-32768,-32768,-32768, 5829,-32768,-32768,-32768,-32768, 604, - 623,-32768, 3410, 3410, 3558,-32768,-32768, 561,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 640, 653,-32768,-32768,-32768, - 118, 4969,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 662, 607,-32768,-32768, 896, 896, -10,-32768, 430,-32768, --32768,-32768,-32768, 707,-32768,-32768, 729, 684, 607, 105, --32768, 648, 677,-32768, 896,-32768, 285, 5552,-32768,-32768, --32768,-32768,-32768,-32768, 747, 5552, 5552, 5552, 1041, 736, --32768,-32768,-32768, 414, 641, 5698, 375, 757, 781,-32768, --32768,-32768,-32768,-32768,-32768, 785, 5552,-32768,-32768, 5552, - 796, 806, 811, 822, 827, 5552,-32768, 2225,-32768, 4650, --32768,-32768,-32768,-32768, 871,-32768,-32768, 4650,-32768, 4650, --32768,-32768,-32768, 3261, 5552,-32768,-32768, 140, 5552, 5552, - 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, - 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, - 5552, 5552, 5552, 5552, 5552,-32768,-32768,-32768,-32768, 5552, - 829,-32768,-32768, 2415,-32768,-32768, 854,-32768, 874,-32768, - 5552, 730, 902, 913,-32768,-32768,-32768,-32768, 5829,-32768, --32768,-32768, 2985, 971,-32768,-32768, 5552, 260, 3660, 607, - 948,-32768, 607,-32768, 275, 6235, 891, 953, 998, 1018, - 1027, 1018, 896, 1029, 607,-32768, 607,-32768,-32768,-32768, - 979, 1042, 1032,-32768, 607, 648,-32768, 896, 965,-32768, - 1043, 896, 274, 1093,-32768, 301, 1099, 367, 1099, 1108, --32768,-32768,-32768,-32768, 3452, 1124, 840,-32768, 853, 5552, --32768,-32768, 1115,-32768,-32768,-32768,-32768,-32768,-32768, 1119, - 1140,-32768, 3660,-32768,-32768, 1156, 1144,-32768, 458,-32768, - 256, 896, 896,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 821, 821, 303, - 303, 636, 636, 636, 636, 294, 294, 683, 439, 457, - 5552, 5552, 5552,-32768, 5583, 5594,-32768,-32768, 5321,-32768, - 3367, 3845,-32768,-32768, 1157, 512,-32768,-32768, 1159, 1160, --32768, 1161,-32768, 1967,-32768,-32768, 4030, 4215,-32768, 948, --32768,-32768, 1169,-32768,-32768, 1173, 1175,-32768, 1176, 1178, --32768, 886,-32768, 1172,-32768,-32768,-32768, 156,-32768, 193, --32768,-32768, 5552, 524, 607,-32768,-32768, 1180,-32768,-32768, - 1194, 6235,-32768,-32768,-32768,-32768, 1179,-32768, 1041,-32768, --32768, 1184, 923, 853, 3514, 1181,-32768,-32768,-32768, 1190, --32768,-32768,-32768, 1182,-32768, 5552,-32768,-32768,-32768,-32768, - 463, 898, 453, 5552,-32768, 5552,-32768,-32768,-32768, 4258, - 4650, 5552,-32768, 5614, 5552,-32768,-32768,-32768,-32768,-32768, - 4360, 4403,-32768, 4505,-32768, 1189,-32768,-32768,-32768,-32768, --32768, 1183,-32768,-32768, 1195,-32768, 896,-32768, 896, 1198, - 3070,-32768,-32768, 1192,-32768, 1196,-32768, 535,-32768,-32768, - 896, 637, 4650, 1204,-32768,-32768, 108, 1199,-32768, 1203, - 119, 1202, 1206,-32768, 5552, 5614,-32768,-32768,-32768,-32768, - 1207, 1208,-32768,-32768, 526, 5552, 5552, 5552, 5552, 5552, - 5552, 5552, 5563, 5563, 1211, 540, 612, 675, 968, 1272, - 681, 908, 897, 917, 400, 945, 1209, 1197, 1200, 1188, - 207, 1212,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 697, - 705,-32768,-32768, 961,-32768,-32768,-32768, 4548,-32768,-32768, --32768,-32768, 6156,-32768,-32768, 6156,-32768,-32768,-32768,-32768, - 5552, 1010,-32768, 3070,-32768,-32768, 3070, 1151,-32768,-32768, --32768, 1220,-32768,-32768,-32768, 1022,-32768, 430, 1222,-32768, - 578,-32768, 853,-32768,-32768, 1225,-32768,-32768,-32768, 1226, - 896,-32768, 732, 1227, 5552,-32768,-32768, 1229, 740, 1228, - 755, 769, 777, 783, 809, 814, 817, 844, 5552, 4681, - 5552, 876, 884, 152, 5552, 5552, 5552, 5552, 5552, 5552, - 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, - 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, 5552, - 5552, 5552,-32768, 5552,-32768, 1233, 1237,-32768, 1080, 67, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 1035,-32768,-32768,-32768,-32768, 1079,-32768,-32768, 3070, 459, --32768, 118, 5205,-32768, 6156, 5205, 6156,-32768,-32768,-32768, - 1071,-32768,-32768,-32768,-32768,-32768,-32768, 105, 172,-32768, --32768,-32768, 1081,-32768,-32768, 543,-32768,-32768,-32768, 4996, --32768,-32768, 393,-32768, 1238, 948,-32768,-32768, 944, 5552, - 1240, 970, 976, 257, 896, 896,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 983, 984, 993, - 654, 859, 920, 938, 485, 525, 567, 644, 816, 866, - 555, 352, 110, 463, 5552, 453, 5614,-32768,-32768, 1084, - 1086, 5960, 43, 91,-32768,-32768, 678,-32768,-32768,-32768, --32768,-32768, 1247, 61,-32768,-32768, 5205,-32768, 5205,-32768, --32768, 1858, 496,-32768, 1186, 5960, 43, 91,-32768, 600, --32768,-32768, 896,-32768, 1077, 1011,-32768, 1036, 1037,-32768, --32768, 1122,-32768,-32768, 1089, 232, 4812,-32768,-32768,-32768, --32768,-32768, 552,-32768, 43, 966, 77, 77,-32768,-32768, - 314, 560, 1187,-32768, 133,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 566,-32768, 607,-32768,-32768, 1248, --32768, 1246, 1250,-32768, 1251,-32768,-32768,-32768, 1191,-32768, - 4654, 552,-32768, 560,-32768, 47, 1252,-32768,-32768,-32768, --32768, 1255, 1072, 1112,-32768, 232, 232, 258,-32768,-32768, --32768,-32768, 105, 1098,-32768, 1138,-32768, 500, 1263,-32768, - 1213, 43, 1214,-32768,-32768,-32768,-32768, 528, 314, 471, - 896, 896, 77, 1215,-32768, 133, 133,-32768, 575, 633, --32768, 133,-32768,-32768, 5552, 61, 1273,-32768,-32768,-32768, - 1270,-32768, 1276,-32768, 1219, 1219,-32768,-32768,-32768, 1117, - 5552, 105, 1090, 689, 258, 500, 1216, 232,-32768,-32768, --32768, 232, -17, 896, 896, 232, 1219,-32768, 1219,-32768, --32768,-32768, 314, 1278,-32768,-32768, 314,-32768, 907, 575, - 594, 896, 896, 133, 1218, 633,-32768,-32768,-32768,-32768, - 5552,-32768,-32768,-32768,-32768,-32768,-32768, 1221,-32768,-32768, - 232,-32768, 689,-32768,-32768,-32768,-32768, 1281,-32768,-32768, - 1274,-32768,-32768,-32768,-32768,-32768, 1283,-32768,-32768, 575, --32768,-32768, 1223,-32768,-32768,-32768, 1275,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768, 1297, 1312,-32768 -}; - -static const short yypgoto[] = {-32768, --32768, 1231,-32768,-32768,-32768,-32768, -459, -102,-32768,-32768, - 989,-32768,-32768,-32768,-32768,-32768, 112,-32768, 550,-32768, - 429,-32768,-32768,-32768,-32768,-32768,-32768, -955,-32768,-32768, --32768, -937,-32768, -964,-32768,-32768, -687,-32768,-32768,-32768, - -698, 321, 227,-32768,-32768, 296, 441,-32768,-32768, 410, --32768,-32768, -983, -667,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, -901, 179, 343, -864, 230,-32768, -573, 518, - 988,-32768,-32768, -567,-32768,-32768, 130, -357, -340, -331, - -367, -317, -347, -345, -482, -467,-32768, -565,-32768, -32, --32768,-32768, 780, 1082, -604, -295, 2,-32768,-32768,-32768, - -464,-32768,-32768,-32768, 0, -242, 880,-32768, -782, -679, --32768,-32768,-32768,-32768,-32768,-32768, 158, 765,-32768, 815, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 357, - -677, -786,-32768, 233,-32768,-32768, 672, 676, 551, 68, - -374, 1242,-32768, 6,-32768,-32768, -532,-32768,-32768,-32768, - 665, -296, 1012,-32768, -480, 1101, 1347,-32768, 1134,-32768, - 764,-32768,-32768,-32768,-32768, -119,-32768,-32768,-32768,-32768, - 85, 1376, 1566,-32768,-32768, 1584,-32768,-32768, -363,-32768, - 1450, 289, -537, -794,-32768, 848,-32768,-32768, 940, -83, - -309, 4,-32768, 334, 173,-32768,-32768, 189,-32768, 214, --32768,-32768, 656,-32768, 398,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 1672,-32768,-32768, 1675, 498, 182, - 433,-32768 -}; - - -#define YYLAST 6425 - - -static const short yytable[] = { 95, - 597, 92, 95, 309, 511, 292, 458, 114, 463, 1187, - 229, 230, 222, 222, 694, 606, 624, 231, 232, 233, - 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, - 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, - 254, 255, 256, 546, 547, 538, 539, 257, 258, 259, - 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, - 270, 271, 272, 273, 540, 541, 549, 105, 641, 550, - 509, -440, 495, 572, 284, 542, 543, 544, 545, 473, - 729, 95, 1049, 92, 433, 643, 731, 581, 741, 437, - 698, 438, 184, 332, 2, 548, 883, 913, 896, 301, - 1027, 988, 905, 442, 900, 95, 985, 902, 293, 985, - 1028, 88, 1134, 1136, 1027, 314, 315, 317, 312, 993, - 1132, 323, 293, 477, 1028, 1098, 1099, 325, 1018, 1019, - -613, 439, 729, 495, -613, -280, 776, 346, 731, 1133, - 741, 2, 1176, 809, 356, 687, 417, 295, 414, 105, - 2, 570, -103, -103, 366, 367, 1106, 100, 1020, 1021, - 118, 418, 121, 1192, 303, 1193, 1107, 522, 810, 1188, - 1183, 739, 1022, 76, 77, 123, 313, 79, 80, 935, - 193, 107, 1185, 523, 107, 327, 740, 978, 107, 199, - 199, 199, 1054, 88, 1056, 936, 194, 1045, 1153, 622, - 985, 1157, 985, 346, 1186, 628, 336, 222, 1191, 980, - 293, 803, 222, 883, 222, 682, 511, 987, 994, 989, - 337, 195, 349, 739, 110, 111, 222, 222, 338, 686, - 76, 77, 123, 473, 79, 80, 339, 895, 740, 100, - 897, 1159, 1160, 1207, 76, 77, 123, 863, 79, 80, - -103, -103, 650, 296, 296, 1077, 296, -110, -110, 1153, - 76, 1029, 864, 107, 477, 1078, 422, 662, 350, 351, - 352, 353, 354, 355, 76, 1029, 420, 420, 428, 324, - 429, 1135, 638, 1009, 571, 447, 735, 107, 458, 477, - 301, 1078, -389, 452, 420, -389, 732, -389, 493, 1200, - 341, 95, 456, 107, 459, 461, 737, 684, 738, 444, - 193, 360, 1058, 733, 107, 1001, 76, 1108, 95, 199, - 803, 420, 734, 437, 323, 616, 194, 346, 342, 700, - 407, 408, 703, 332, 403, 404, 736, 199, 735, 1100, - 562, 1101, 223, 223, 409, 410, 496, 711, 732, 712, - 419, 195, 497, 420, 193, -110, -110, 1102, 737, 365, - 738, 435, 193, 199, 420, 733, 193, 346, 193, 455, - 194, 199, -611, 199, 734, 199, -611, 199, 194, 964, - 413, 361, 194, 698, 194, 199, 470, 420, 736, 362, - 199, 618, 199, 729, 363, 195, 966, 193, -280, 731, - 495, 741, 364, 195, 199, 199, 199, 195, 2, 195, - -657, 1079, 1080, 194, 332, 76, 1081, 1002, 1082, 820, - 1003, 274, 275, 276, 277, 278, 279, 280, 281, 282, - 283, 492, 108, -661, 420, 108, 853, 854, 195, 124, - 452, 76, 1081, -389, -389, -389, 222, -389, -389, 95, - 855, 856, 95, -281, 299, 286, 302, -658, 304, 587, - 308, 590, 332, 596, 95, 310, 95, 413, -389, -389, - -389, 603, -389, -389, 323, 318, 981, 319, 636, 982, - 325, 612, 637, 107, 739, 898, 107, 107, 107, 959, - 960, 951, 952, 620, 1027, 414, 496, 1151, 626, 740, - 107, 456, 415, 494, 1028, -601, 107, 416, 560, -601, - 953, 954, 962, 293, 108, 963, 982, 579, 423, 388, - 582, 955, 956, 957, 958, 1143, -494, 1144, 477, 535, - 536, 537, 420, 405, 406, 424, 653, 223, 108, 793, - -660, 961, 223, 1145, 223, -602, 420, 477, 685, -602, - 818, 199, 1150, 1100, 326, 1101, 223, 223, 430, 199, - -566, 199, 1005, 452, -566, 340, -389, 696, -389, 293, - 332, 1102, 1092, 405, 406, -609, -389, 293, 452, -609, - 1103, 666, 1114, 1113, 456, 624, 982, -603, 431, 798, - -663, -603, 332, 305, 306, 307, 193, 680, 681, 735, - 1161, -280, 1162, 495, 323, 199, -659, 411, 412, 732, - 325, 2, 194, 494, 436, 405, 406, 1027, 1163, 737, - 1196, 738, 440, 626, 199, 495, 733, 1028, 456, 627, - 199, 107, -565, 2, 107, 734, -565, 195, 708, 709, - 2, -663, 441, 346, 107, 346, 107, 450, 107, 736, - 293, 453, 445, 1164, 76, 1029, 107, 1152, 419, 107, - -280, 420, 495, 107, -604, 493, 446, 772, -604, 465, - 2, -281, 467, 472, -596, 779, 448, 781, -596, 454, - 475, 787, 788, 478, 405, 406, 792, 400, 401, 402, - 612, 799, 405, 406, 199, -567, 496, 801, 798, -567, - 474, -587, 497, 107, 107, -587, 469, -389, -389, -389, - 1072, -389, -389, 1182, 1143, 346, 1144, -564, 76, 77, - 123, -564, 79, 80, 466, 420, -389, -389, -389, 867, - -389, -389, 1145, 193, 108, 411, 412, 460, 462, 464, - -663, -663, 199, 199, -663, -663, 468, 435, 332, 194, - 420, 108, 420, 491, 493, 199, 925, 326, 199, 199, - 420, 76, 77, 123, 929, 79, 80, 918, 485, 692, - 889, 182, 211, 211, 195, -581, 223, 76, 1029, -581, - 1152, 500, 927, 76, 77, 123, 107, 79, 80, -586, - 76, 77, 123, -586, 79, 80, 1036, -585, 1037, 917, - 799, -585, 626, -584, 478, 501, 801, -584, 502, 1038, - 1039, 583, 1040, 504, 1041, 1042, 588, 471, 591, 1168, - 76, 77, 123, 505, 79, 80, 600, 1043, 506, -583, - 605, 199, 199, -583, -582, 760, -606, -579, -582, 507, - -606, -579, 199, 199, 508, 199, 821, 822, 823, 824, - 825, 826, 407, 408, 400, 401, 402, 384, 107, 385, - 107, -389, 564, -280, -580, 495, 409, 410, -580, 107, - 555, 556, 107, 107, 199, 1205, -280, -389, 625, -595, - 386, 387, 108, -595, 565, 108, -607, 760, 1017, 513, - -607, 983, 400, 401, 402, 594, -576, 108, 990, 108, - -576, 182, 407, 408, -577, 676, 677, 326, -577, 343, - 609, 298, 1061, 300, 614, 328, 409, 410, 420, 710, - 139, 140, 141, 142, 143, 144, 567, 477, 849, 850, - 892, 1195, 1161, 892, 1162, 583, 568, 145, 146, 147, - -598, 846, 847, 848, -598, 182, -389, 696, -389, 199, - 1163, 403, 404, 182, 639, 640, -389, 182, -599, 182, - 478, 148, -599, 309, -568, 851, 852, 211, -568, 403, - 404, 580, 211, 585, 211, 948, 949, 950, 584, 697, - 1046, 569, 107, 95, 702, 389, 211, 211, 182, 610, - -571, 830, 107, 831, -571, -389, 636, 857, 858, 799, - 1008, 1068, 157, -591, -592, 1066, 456, -591, -592, 1073, - 1074, -389, 762, -593, 832, 833, 586, -593, 452, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 899, - 677, -589, 870, 871, 872, -589, -280, 326, 873, 874, - 875, 876, 877, 878, 879, 589, 95, 595, 1115, 1117, - 892, 1052, 892, 892, 892, 604, -572, -570, -262, 1006, - -572, -570, 452, 611, 328, 799, 601, 582, 602, 139, - 140, 141, 142, 143, 144, 76, 329, 330, 160, 76, - 77, 123, 332, 79, 80, 834, 145, 146, 147, 180, - 991, 992, -574, 909, 910, 911, -574, 683, 1177, 873, - 874, 875, 876, 877, 878, 879, 870, 871, 872, 594, - 148, 594, 1167, 331, 615, 95, 107, 107, 1171, 420, - 794, 1179, 1180, 614, 108, 619, 331, 331, 331, 331, - 331, 331, -575, 358, 359, 629, -575, -573, 332, 503, - 631, -573, 420, 1075, 892, 904, 892, 623, 760, 76, - 1095, 157, 909, 910, 911, 1034, 873, 874, 875, 876, - 877, 878, 879, 520, 632, 107, 634, 635, 524, 525, - 526, 527, 528, 529, 530, 531, 532, 533, 534, 1034, - 652, 107, 655, 1052, 107, 658, 656, 182, 1139, 1140, - 1141, 667, 670, 672, 678, 673, 675, 1090, 690, 554, - 688, 1211, 774, 693, 701, 705, 211, 1097, 1034, 1034, - 695, 704, 1215, 770, 777, 783, 1111, 344, 789, 345, - 791, 805, 811, 807, 76, 329, 330, 160, 107, 808, - 812, 816, 817, 108, 829, 860, 865, 859, 903, 861, - 976, 977, 862, 924, 907, 916, 928, 107, 984, 921, - 922, 926, 930, 967, 968, 1004, -52, 1090, 1090, 1090, - 1007, -49, 1016, 180, 1048, 1070, 1076, 1119, 1116, 1120, - 1122, 180, 1000, 1060, 1105, 180, 1128, 180, 1124, 1130, - 1138, 1034, 107, 107, 1034, 432, 1146, 1111, 1111, 1172, - 1170, 871, 427, 1111, 835, 1173, 1217, 107, 1209, 1214, - 1147, 1149, 1158, 1184, 1194, 1201, 180, 1208, 1206, 1210, - 1212, 1218, 285, 476, 887, 979, 1090, 1062, 1148, 1090, - 1094, 975, 999, 1090, 182, 107, 107, 1090, 836, 837, - 838, 839, 840, 841, 842, 843, 844, 845, 1047, 1197, - 1064, 1166, 1034, 107, 107, 1111, 598, 933, 1169, 669, - 782, 919, 780, 331, 311, 797, 227, 443, 498, 1129, - 633, 814, 1090, 561, 1013, 0, 0, 1010, 1011, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 185, 217, 217, 0, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 0, 0, 995, 0, 1118, 0, 483, - 0, 0, 0, 0, 0, 707, 108, 486, 487, 488, - 489, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 108, 0, 331, 1069, 0, 0, 483, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, - 0, 0, 0, 0, 0, 0, 0, 189, 220, 220, - 785, 0, 0, 0, 0, 0, 521, 0, 0, 0, - 512, 1033, 0, 0, 0, 0, 0, 0, 515, 108, - 516, 0, 331, 0, 0, 0, 0, 331, 0, 0, - 1059, 0, 0, 0, 0, 1065, 0, 0, 108, 0, - 0, 0, 0, 0, 0, 180, 0, 0, 0, 0, - 0, 0, 566, 185, 1091, 0, 0, 0, 0, 0, - 1093, 0, 0, 0, 0, 1204, 0, 0, 0, 1104, - 0, 0, 0, 1155, 1156, 0, 0, 0, 331, 0, - 331, 0, 645, 647, 0, 0, 0, 0, 108, 575, - 0, 0, 0, 0, 0, 0, 0, 185, 1125, 1126, - 0, 1127, 0, 785, 0, 185, 785, 0, 0, 185, - 0, 185, 0, 186, 218, 218, 1189, 1190, 0, 217, - 1137, 0, 0, 0, 217, 0, 217, 189, 0, 0, - 331, 187, 219, 219, 1198, 1199, 0, 0, 217, 217, - 185, 0, 0, 0, 0, 0, 0, 1165, 931, 520, - 0, 0, 331, 575, 937, 938, 939, 940, 941, 942, - 943, 944, 945, 946, 947, 0, 0, 0, 0, 1178, - 0, 189, 0, 642, 0, 0, 0, 0, 0, 189, - 0, 730, 180, 189, 0, 189, 0, 0, 0, 0, - 0, 0, 0, 220, 434, 0, 0, 0, 220, 0, - 220, 0, 575, 1203, 0, 0, 0, 0, 785, 0, - 0, 0, 220, 220, 189, 0, 0, 575, 665, 196, - 225, 225, 198, 226, 226, 0, 0, 0, 0, 0, - 0, 0, 0, 730, 0, 0, 0, 0, 0, 0, - 489, 0, 0, 186, 331, 331, 331, 331, 331, 331, - 827, 828, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 187, 0, 0, 0, 483, 0, 483, 0, 0, - 0, 0, 0, 715, 0, 0, 761, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 186, 0, 0, - 665, 714, 0, 0, 0, 186, 0, 0, 0, 186, - 0, 186, 665, 0, 0, 187, 0, 0, 331, 218, - 0, 785, 0, 187, 218, 0, 218, 187, 0, 187, - 0, 0, 0, 0, 0, 0, 813, 219, 218, 218, - 186, 0, 219, 804, 219, 0, 0, 819, 0, 185, - 0, 0, 331, 0, 0, 0, 219, 219, 187, 196, - 0, 0, 198, 0, 0, 0, 0, 0, 217, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 517, 331, 331, 331, 331, 331, 331, 331, - 331, 331, 331, 331, 331, 331, 331, 331, 331, 331, - 0, 331, 0, 196, 0, 0, 198, 0, 0, 0, - 0, 196, 0, 0, 198, 196, 0, 196, 198, 0, - 198, 0, 0, 189, 0, 225, 784, 1057, 226, 0, - 225, 328, 225, 226, 0, 226, 139, 140, 141, 142, - 143, 144, 220, 0, 225, 225, 196, 226, 226, 198, - 0, 0, 0, 145, 146, 147, 0, 0, 0, 0, - 0, 0, 934, 0, 0, 0, 0, 331, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 148, 0, 0, - 0, 0, 0, 0, 0, 0, 185, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 730, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 157, 0, - 0, 0, 126, 127, 128, 0, 129, 130, 131, 132, - 133, 134, 135, 136, 203, -520, 659, 0, 0, 186, - 368, 0, 0, 0, 0, 139, 140, 141, 142, 143, - 144, 489, 0, 0, 0, 0, 0, 187, 218, 0, - 189, 0, 145, 146, 147, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 219, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 148, 0, 0, 0, - 0, 76, 329, 330, 160, 0, 1012, 0, 0, 0, - 0, 0, -1, 1, 0, 0, 0, 0, 0, 150, - 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 0, 0, -280, 157, 0, 0, - 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, - 0, 0, 0, 0, 0, 196, 0, 3, 198, 0, - 0, 0, 331, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 225, 0, 0, 226, 331, -389, - -389, -389, 0, 4, 0, 0, 186, 5, 6, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 8, 9, 10, 187, 0, 0, 0, 0, 0, - 76, 158, 159, 160, 161, 80, 0, 0, 331, 0, - 11, 12, 13, 0, 14, 15, 16, 17, 18, 19, - 20, 21, 22, 23, 0, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 0, 39, 40, 41, 42, 43, 44, 45, 46, 47, - 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, - 68, 69, 70, 71, 72, 73, 74, 75, -2, 1, - 0, 0, 196, 0, 0, 198, 76, 77, 78, 0, - 79, 80, 81, -520, 0, 0, 0, 0, 368, 0, - 0, 0, -280, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, - 145, 146, 147, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 148, -389, -389, -389, 0, 4, - 0, 0, 0, 5, 6, 7, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 9, 10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 157, 11, 12, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 0, 0, 0, 0, 76, 329, - 330, 160, 76, 77, 78, 125, 79, 80, 81, 0, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -520, 558, 0, 0, 0, 138, 0, - 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, -280, -280, 0, 3, - 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -389, -389, -389, 148, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 11, 12, 13, 157, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, - 559, 160, 161, 80, 81, 125, 0, 0, 0, 0, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -520, 0, 0, 0, 0, 138, 0, - 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, -280, -280, 0, 0, - 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -280, -280, -280, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, -280, -280, -280, 157, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, 0, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, 0, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, - 159, 160, 161, 80, -280, 201, 0, 0, 0, 0, - 126, 127, 128, 0, 0, 202, 131, 132, 133, 134, - 135, 136, 203, -520, -524, 0, 0, 0, 204, 0, - 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, -280, -280, 0, 0, - 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -280, -280, -280, 148, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, -280, -280, -280, 157, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, 0, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, 0, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - -280, -280, -280, -280, -280, -280, -280, -280, -280, -280, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, - 159, 160, 205, 206, -280, 201, 0, 0, 0, 0, - 126, 127, 128, 0, 0, 202, 131, 132, 133, 134, - 135, 136, 203, -468, -468, 0, 0, 0, 204, -468, - 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, -280, -280, 125, 0, - 145, 146, 147, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -520, 0, 0, 0, - 0, 138, 0, 0, 148, 0, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 0, 0, 0, -280, - -280, 0, 0, 145, 146, 147, -468, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 784, 0, - 0, 156, 0, 328, 0, 157, 0, 148, 139, 140, - 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 145, 146, 147, 0, 149, - 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 0, 0, 0, 157, 148, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, - 159, 160, 205, 206, 0, 0, 125, 0, 0, 0, - 157, 126, 127, 128, 0, 129, 130, 131, 132, 133, - 134, 135, 136, 137, -520, 0, 0, 0, 0, 138, - 0, 0, 0, 0, 139, 140, 141, 142, 143, 144, - 0, 76, 158, 159, 160, 161, 80, -280, -280, 201, - 0, 145, 146, 147, 126, 127, 128, 0, 0, 202, - 131, 132, 133, 134, 135, 136, 203, -520, -524, 0, - 0, 0, 204, 0, 0, 148, 0, 139, 140, 141, - 142, 143, 144, 76, 329, 330, 160, 0, 0, 0, - -280, -280, 0, 0, 145, 146, 147, -495, 150, 151, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 0, - 0, 0, 156, 0, 328, 518, 157, 0, 148, 139, - 140, 141, 142, 143, 144, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 145, 146, 147, 0, - -464, 150, 151, 152, 153, 154, 155, 0, 0, 0, - 0, 0, 0, 0, 0, 156, 0, 0, 0, 157, - 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 76, - 158, 159, 160, 161, 80, 0, 0, 125, 0, 0, - 0, 157, 126, 127, 128, 0, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -520, 648, 0, 0, 0, - 138, 0, 0, 0, 0, 139, 140, 141, 142, 143, - 144, 0, 76, 158, 159, 160, 205, 206, -280, -280, - 201, 0, 145, 146, 147, 126, 127, 128, 0, 0, - 202, 131, 132, 133, 134, 135, 136, 203, -520, -524, - 0, 0, 0, 204, 0, 0, 148, 0, 139, 140, - 141, 142, 143, 144, 76, 329, 330, 160, 0, 0, - 0, -280, -280, 0, 0, 145, 146, 147, 0, 150, - 151, 152, 153, 154, 155, 0, 0, 0, 0, 0, - 0, 0, 0, 156, 0, 328, 0, 157, 621, 148, - 139, 140, 141, 142, 143, 144, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 145, 146, 147, - 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, - 157, 148, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 328, 0, 0, - 699, 0, 139, 140, 141, 142, 143, 144, 0, 0, - 76, 158, 159, 160, 161, 80, 0, 0, 125, 145, - 146, 147, 157, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -520, 0, 0, 0, - 0, 138, 0, 148, 0, 0, 139, 140, 141, 142, - 143, 144, 0, 76, 158, 159, 160, 205, 206, -280, - -280, 0, 0, 145, 146, 147, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 148, 0, 0, - 0, 0, 0, 0, 0, 76, 329, 330, 160, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 126, 127, 128, 157, 129, - 130, 131, 132, 133, 134, 135, 136, 203, -520, 573, - 0, 0, 0, 368, 0, 0, 0, 0, 139, 140, - 141, 142, 143, 144, 0, 0, 0, 76, 329, 330, - 160, -280, -280, 0, 3, 145, 146, 147, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 76, 158, 159, 160, 161, 80, 0, 0, 0, - 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 574, 11, 12, 13, - 157, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 158, 559, 160, 161, 80, 81, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, - 135, 136, 203, -520, 649, 0, 0, 0, 368, 0, - 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, -280, -280, 0, 3, - 145, 146, 147, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 148, 4, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 11, 12, 13, 157, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 76, 158, - 559, 160, 161, 80, 81, 126, 127, 128, 0, 129, - 130, 131, 132, 133, 134, 135, 136, 203, -520, 660, - 0, 0, 0, 368, 0, 0, 0, 0, 139, 140, - 141, 142, 143, 144, 0, 0, 0, 0, 0, 0, - 0, -280, -280, 0, 3, 145, 146, 147, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 148, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 661, 11, 12, 13, - 157, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 158, 559, 160, 161, 80, 81, - 126, 127, 128, 0, 129, 130, 131, 132, 133, 134, - 135, 136, 203, -520, 663, 0, 0, 0, 368, 0, - 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 146, 147, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 134, 135, 136, 203, -520, 713, 0, 0, - 0, 368, 0, 0, 148, 0, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 145, 146, 147, 0, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 664, 0, 0, 0, 157, 0, 148, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 126, 127, 128, 157, 129, - 130, 131, 132, 133, 134, 135, 136, 203, -520, 766, - 0, 0, 0, 368, 0, 0, 0, 0, 139, 140, - 141, 142, 143, 144, 0, 0, 0, 0, 76, 158, - 159, 160, 161, 80, 0, 145, 146, 147, 126, 127, - 128, 0, 129, 130, 131, 132, 133, 134, 135, 136, - 203, -520, 767, 0, 0, 0, 368, 0, 0, 148, - 0, 139, 140, 141, 142, 143, 144, 0, 0, 0, - 0, 76, 158, 159, 160, 161, 80, 0, 145, 146, - 147, 0, 150, 151, 152, 153, 154, 155, 0, 0, - 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, - 157, 0, 148, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 150, 151, 152, 153, 154, - 155, 0, 0, 0, 0, 0, 0, 0, 0, 768, - 126, 127, 128, 157, 129, 130, 131, 132, 133, 134, - 135, 136, 203, -520, 769, 0, 0, 0, 368, 0, - 0, 0, 0, 139, 140, 141, 142, 143, 144, 0, - 0, 0, 0, 76, 158, 159, 160, 161, 80, 0, - 145, 146, 147, 126, 127, 128, 0, 129, 130, 131, - 132, 133, 134, 135, 136, 203, -520, 888, 0, 0, - 0, 368, 0, 0, 148, 0, 139, 140, 141, 142, - 143, 144, 0, 0, 0, 0, 76, 158, 159, 160, - 161, 80, 0, 145, 146, 147, 0, 150, 151, 152, - 153, 154, 155, 0, 0, 0, 0, 0, 0, 0, - 0, 156, 0, 0, 0, 157, 0, 148, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 150, 151, 152, 153, 154, 155, 0, 0, 0, 0, - 0, 0, 0, 0, 156, 126, 127, 128, 157, 129, - 130, 131, 132, 133, 134, 135, 136, 203, -520, 0, - 0, 293, 0, 368, 0, 0, 0, 0, 139, 140, - 141, 142, 143, 144, 0, 0, 0, 0, 76, 158, - 159, 160, 161, 80, 0, 145, 146, 147, 3, 0, - 0, 0, 0, 0, 328, 932, 0, 0, 0, 139, - 140, 141, 142, 143, 144, 0, 0, 0, 0, 148, - -389, -389, -389, 0, 4, 0, 145, 146, 147, 0, - 0, 76, 158, 159, 160, 161, 80, 0, 0, 0, - 0, 0, 150, 151, 152, 153, 154, 155, 0, 0, - 148, 0, 0, 0, 0, 0, 156, 0, 0, 0, - 157, 11, 12, 13, 0, 14, 15, 16, 17, 18, - 19, 20, 21, 22, 23, 0, 24, 25, 26, 27, - 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, - 38, 157, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 293, - 0, 0, 0, 76, 158, 159, 160, 161, 80, 120, - 0, 0, 0, 81, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 76, 329, 330, 160, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -654, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, - 12, 13, 0, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 0, 24, 25, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 0, - 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, - 69, 70, 71, 72, 73, 74, 75, -146, 0, 0, - 0, 0, -146, 0, 0, 0, 0, 120, 0, 0, - 0, 81, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 3, 0, 0, 0, 0, 0, 328, - -262, 0, 0, 0, 139, 140, 141, 142, 143, 144, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, - 0, 145, 146, 147, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 148, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 157, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 288, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, 0, 0, 0, 76, - 329, 330, 160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, -523, 0, 0, 0, 0, 0, - 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 120, 11, 12, 13, 81, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, -661, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 0, -663, -663, -663, - 120, 0, 0, 0, 81, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -663, 0, 0, 0, 0, - 0, 0, -280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, 0, 0, -663, -663, - -663, 0, -663, -663, -663, -663, -663, -663, -663, -663, - -663, -663, 0, -663, -663, -663, -663, -663, -663, -663, - -663, -663, -663, -663, -663, -663, -663, -663, 0, -663, - -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, - -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, - -663, -663, -663, -663, -663, -663, -663, -663, -663, -663, - -663, -663, -663, -663, -663, -663, 11, 12, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - -663, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 0, 0, 0, 0, 0, 0, - 0, 0, 76, 77, 78, 328, 79, 80, 81, 0, - 139, 140, 141, 142, 143, 144, 357, 0, 0, 0, - 0, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 0, 0, 0, 0, 0, 0, 644, 0, 145, 146, - 147, 139, 140, 141, 142, 143, 144, 646, 0, 0, - 0, 148, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 0, 148, 0, 0, 0, 0, 716, 0, 145, - 146, 147, 717, 718, 719, 720, 721, 722, 0, 0, - 0, 0, 148, 0, 0, 0, 0, 0, 0, 145, - 723, 724, 157, 148, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 725, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 157, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 76, 329, 330, 160, -206, - -206, 0, 0, 0, 0, 0, 76, 329, 330, 160, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 76, 329, 330, 160, - 0, 0, 0, 0, 0, 0, 0, 76, 329, 330, - 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 726, 727, - 728, 0, 0, 0, 0, 11, 12, 13, 0, 14, - 15, 16, 17, 18, 19, 20, 21, 22, 23, 0, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 36, 37, 38, 0, 39, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, - 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, - 73, 74, 75, 3, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 120, 0, 0, 0, 81, 0, 0, - 0, 0, 0, 0, 0, -389, -389, -389, 0, 4, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 11, 12, 13, - 0, 14, 15, 16, 17, 18, 19, 20, 21, 22, - 23, 0, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 0, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, - 71, 72, 73, 74, 75, -389, -389, -389, 0, 0, - 0, 0, 0, 0, 0, 120, 0, 0, 0, 81, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 11, 12, 13, 0, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 0, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 36, 37, 38, 0, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 8, 9, 10, 0, 0, 0, - 0, 0, 0, 0, 120, 0, 0, 0, 81, 0, - 0, 0, 0, 11, 12, 13, 0, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 0, 24, 25, - 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 0, 39, 40, 41, 42, 43, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, - 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, - 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 120, 11, 12, 13, 81, 14, 15, 16, 17, - 18, 19, 20, 21, 22, 23, 0, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 0, 39, 40, 41, 42, 43, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 120, 0, 0, 0, 81 -}; - -static const short yycheck[] = { 0, - 465, 0, 3, 106, 368, 89, 303, 2, 19, 27, - 11, 12, 9, 10, 619, 475, 497, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 411, 412, 403, 404, 48, 49, 50, - 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, - 61, 62, 63, 64, 405, 406, 414, 0, 551, 415, - 366, 25, 26, 448, 75, 407, 408, 409, 410, 322, - 654, 82, 22, 82, 204, 553, 654, 451, 654, 209, - 623, 211, 8, 126, 34, 413, 764, 796, 776, 100, - 24, 896, 790, 223, 784, 106, 893, 787, 18, 896, - 34, 0, 1077, 1078, 24, 116, 117, 118, 113, 902, - 1076, 122, 18, 5, 34, 1027, 1028, 122, 86, 87, - 21, 215, 706, 26, 25, 18, 674, 138, 706, 1077, - 706, 34, 1126, 25, 145, 605, 41, 24, 39, 82, - 34, 447, 86, 87, 6, 7, 24, 0, 116, 117, - 3, 56, 5, 1147, 85, 1149, 34, 28, 701, 187, - 1135, 654, 130, 184, 185, 186, 21, 188, 189, 28, - 8, 0, 1138, 44, 3, 24, 654, 886, 7, 8, - 9, 10, 987, 82, 989, 44, 8, 980, 1100, 495, - 987, 1103, 989, 204, 1142, 502, 24, 204, 1146, 889, - 18, 692, 209, 881, 211, 23, 580, 895, 906, 897, - 24, 8, 138, 706, 108, 109, 223, 224, 24, 604, - 184, 185, 186, 476, 188, 189, 24, 775, 706, 82, - 778, 1106, 1107, 1181, 184, 185, 186, 41, 188, 189, - 184, 185, 562, 96, 97, 24, 99, 86, 87, 1161, - 184, 185, 56, 82, 5, 34, 182, 577, 139, 140, - 141, 142, 143, 144, 184, 185, 21, 21, 194, 122, - 196, 24, 27, 27, 25, 286, 654, 106, 585, 5, - 291, 34, 18, 292, 21, 21, 654, 23, 25, 1164, - 18, 302, 303, 122, 305, 306, 654, 603, 654, 225, - 138, 24, 992, 654, 133, 920, 184, 185, 319, 138, - 801, 21, 654, 443, 325, 25, 138, 328, 18, 625, - 37, 38, 629, 366, 32, 33, 654, 156, 706, 26, - 424, 28, 9, 10, 51, 52, 347, 644, 706, 646, - 18, 138, 347, 21, 182, 184, 185, 44, 706, 15, - 706, 18, 190, 182, 21, 706, 194, 368, 196, 302, - 182, 190, 21, 192, 706, 194, 25, 196, 190, 862, - 29, 16, 194, 916, 196, 204, 319, 21, 706, 16, - 209, 25, 211, 967, 16, 182, 864, 225, 24, 967, - 26, 967, 16, 190, 223, 224, 225, 194, 34, 196, - 22, 180, 181, 225, 447, 184, 185, 25, 187, 716, - 28, 65, 66, 67, 68, 69, 70, 71, 72, 73, - 74, 18, 0, 22, 21, 3, 37, 38, 225, 7, - 439, 184, 185, 184, 185, 186, 443, 188, 189, 450, - 51, 52, 453, 24, 98, 26, 100, 22, 102, 460, - 104, 462, 495, 464, 465, 109, 467, 29, 184, 185, - 186, 472, 188, 189, 475, 119, 18, 121, 21, 21, - 475, 482, 25, 302, 967, 781, 305, 306, 307, 857, - 858, 849, 850, 494, 24, 39, 497, 27, 499, 967, - 319, 502, 40, 346, 34, 21, 325, 55, 424, 25, - 851, 852, 860, 18, 82, 861, 21, 450, 92, 163, - 453, 853, 854, 855, 856, 26, 92, 28, 5, 400, - 401, 402, 21, 49, 50, 19, 25, 204, 106, 5, - 22, 859, 209, 44, 211, 21, 21, 5, 25, 25, - 25, 370, 25, 26, 122, 28, 223, 224, 22, 378, - 21, 380, 926, 562, 25, 133, 24, 25, 26, 18, - 603, 44, 21, 49, 50, 21, 34, 18, 577, 25, - 21, 582, 1047, 18, 585, 1066, 21, 21, 24, 692, - 34, 25, 625, 67, 68, 69, 424, 598, 599, 967, - 26, 24, 28, 26, 605, 424, 22, 53, 54, 967, - 605, 34, 424, 456, 92, 49, 50, 24, 44, 967, - 27, 967, 19, 624, 443, 26, 967, 34, 629, 500, - 449, 450, 21, 34, 453, 967, 25, 424, 639, 640, - 34, 85, 20, 644, 463, 646, 465, 291, 467, 967, - 18, 295, 92, 21, 184, 185, 475, 187, 18, 478, - 24, 21, 26, 482, 21, 25, 27, 668, 25, 313, - 34, 24, 316, 26, 21, 676, 24, 678, 25, 18, - 324, 682, 683, 327, 49, 50, 687, 34, 35, 36, - 691, 692, 49, 50, 513, 21, 697, 692, 801, 25, - 24, 21, 697, 522, 523, 25, 23, 184, 185, 186, - 1007, 188, 189, 25, 26, 716, 28, 21, 184, 185, - 186, 25, 188, 189, 18, 21, 184, 185, 186, 25, - 188, 189, 44, 561, 302, 53, 54, 305, 306, 307, - 184, 185, 561, 562, 188, 189, 18, 18, 781, 561, - 21, 319, 21, 18, 25, 574, 25, 325, 577, 578, - 21, 184, 185, 186, 25, 188, 189, 190, 22, 612, - 771, 8, 9, 10, 561, 21, 443, 184, 185, 25, - 187, 25, 815, 184, 185, 186, 605, 188, 189, 21, - 184, 185, 186, 25, 188, 189, 119, 21, 121, 800, - 801, 25, 803, 21, 448, 25, 801, 25, 24, 132, - 133, 455, 135, 18, 137, 138, 460, 320, 462, 1115, - 184, 185, 186, 18, 188, 189, 470, 150, 18, 21, - 474, 650, 651, 25, 21, 654, 21, 21, 25, 18, - 25, 25, 661, 662, 18, 664, 717, 718, 719, 720, - 721, 722, 37, 38, 34, 35, 36, 24, 677, 26, - 679, 28, 9, 24, 21, 26, 51, 52, 25, 688, - 42, 43, 691, 692, 693, 1171, 24, 44, 26, 21, - 47, 48, 450, 25, 11, 453, 21, 706, 972, 19, - 25, 892, 34, 35, 36, 463, 21, 465, 899, 467, - 25, 138, 37, 38, 21, 20, 21, 475, 25, 18, - 478, 97, 996, 99, 482, 24, 51, 52, 21, 22, - 29, 30, 31, 32, 33, 34, 25, 5, 32, 33, - 773, 25, 26, 776, 28, 579, 24, 46, 47, 48, - 21, 34, 35, 36, 25, 182, 24, 25, 26, 768, - 44, 32, 33, 190, 522, 523, 34, 194, 21, 196, - 604, 70, 25, 1066, 21, 49, 50, 204, 25, 32, - 33, 24, 209, 21, 211, 846, 847, 848, 88, 623, - 981, 11, 801, 984, 628, 23, 223, 224, 225, 25, - 21, 24, 811, 26, 25, 28, 21, 53, 54, 1000, - 25, 1002, 111, 21, 21, 1000, 1007, 25, 25, 1010, - 1011, 44, 656, 21, 47, 48, 19, 25, 1017, 57, - 58, 59, 60, 61, 62, 63, 64, 65, 66, 20, - 21, 21, 72, 73, 74, 25, 19, 605, 78, 79, - 80, 81, 82, 83, 84, 19, 1047, 19, 1049, 1050, - 893, 984, 895, 896, 897, 24, 21, 21, 18, 930, - 25, 25, 1061, 21, 24, 1066, 88, 1000, 27, 29, - 30, 31, 32, 33, 34, 184, 185, 186, 187, 184, - 185, 186, 1115, 188, 189, 729, 46, 47, 48, 8, - 20, 21, 21, 72, 73, 74, 25, 600, 1131, 78, - 79, 80, 81, 82, 83, 84, 72, 73, 74, 677, - 70, 679, 1113, 126, 22, 1116, 935, 936, 1119, 21, - 688, 32, 33, 691, 692, 18, 139, 140, 141, 142, - 143, 144, 21, 146, 147, 21, 25, 21, 1171, 360, - 22, 25, 21, 22, 987, 789, 989, 24, 967, 184, - 185, 111, 72, 73, 74, 974, 78, 79, 80, 81, - 82, 83, 84, 384, 25, 984, 11, 24, 389, 390, - 391, 392, 393, 394, 395, 396, 397, 398, 399, 998, - 24, 1000, 24, 1116, 1003, 25, 27, 424, 51, 52, - 53, 23, 20, 19, 23, 20, 19, 1016, 5, 420, - 21, 1202, 20, 25, 24, 24, 443, 1026, 1027, 1028, - 27, 22, 1213, 25, 20, 18, 1035, 136, 27, 138, - 25, 18, 21, 25, 184, 185, 186, 187, 1047, 27, - 25, 25, 25, 801, 24, 39, 25, 29, 88, 40, - 884, 885, 55, 811, 25, 24, 18, 1066, 892, 25, - 25, 25, 25, 21, 18, 18, 177, 1076, 1077, 1078, - 21, 178, 177, 182, 18, 189, 178, 22, 21, 20, - 20, 190, 916, 88, 88, 194, 25, 196, 88, 25, - 183, 1100, 1101, 1102, 1103, 204, 24, 1106, 1107, 20, - 18, 73, 192, 1112, 23, 20, 0, 1116, 25, 25, - 88, 88, 88, 88, 27, 88, 225, 27, 88, 27, - 88, 0, 82, 325, 765, 887, 1135, 997, 1092, 1138, - 1025, 881, 913, 1142, 561, 1144, 1145, 1146, 57, 58, - 59, 60, 61, 62, 63, 64, 65, 66, 982, 1161, - 998, 1112, 1161, 1162, 1163, 1164, 467, 830, 1116, 585, - 679, 801, 677, 366, 113, 691, 10, 224, 347, 1071, - 513, 706, 1181, 424, 967, -1, -1, 935, 936, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 8, 9, 10, -1, 400, 401, 402, - 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, - 413, 414, 415, -1, -1, 908, -1, 1051, -1, 328, - -1, -1, -1, -1, -1, 636, 984, 336, 337, 338, - 339, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 1000, -1, 447, 1003, -1, -1, 357, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 368, - -1, -1, -1, -1, -1, -1, -1, 8, 9, 10, - 681, -1, -1, -1, -1, -1, 385, -1, -1, -1, - 370, 974, -1, -1, -1, -1, -1, -1, 378, 1047, - 380, -1, 495, -1, -1, -1, -1, 500, -1, -1, - 993, -1, -1, -1, -1, 998, -1, -1, 1066, -1, - -1, -1, -1, -1, -1, 424, -1, -1, -1, -1, - -1, -1, 431, 138, 1017, -1, -1, -1, -1, -1, - 1023, -1, -1, -1, -1, 1169, -1, -1, -1, 1032, - -1, -1, -1, 1101, 1102, -1, -1, -1, 551, -1, - 553, -1, 555, 556, -1, -1, -1, -1, 1116, 449, - -1, -1, -1, -1, -1, -1, -1, 182, 1061, 1062, - -1, 1064, -1, 784, -1, 190, 787, -1, -1, 194, - -1, 196, -1, 8, 9, 10, 1144, 1145, -1, 204, - 1083, -1, -1, -1, 209, -1, 211, 138, -1, -1, - 603, 8, 9, 10, 1162, 1163, -1, -1, 223, 224, - 225, -1, -1, -1, -1, -1, -1, 1110, 829, 830, - -1, -1, 625, 513, 835, 836, 837, 838, 839, 840, - 841, 842, 843, 844, 845, -1, -1, -1, -1, 1132, - -1, 182, -1, 552, -1, -1, -1, -1, -1, 190, - -1, 654, 561, 194, -1, 196, -1, -1, -1, -1, - -1, -1, -1, 204, 205, -1, -1, -1, 209, -1, - 211, -1, 562, 1166, -1, -1, -1, -1, 889, -1, - -1, -1, 223, 224, 225, -1, -1, 577, 578, 8, - 9, 10, 8, 9, 10, -1, -1, -1, -1, -1, - -1, -1, -1, 706, -1, -1, -1, -1, -1, -1, - 619, -1, -1, 138, 717, 718, 719, 720, 721, 722, - 723, 724, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 138, -1, -1, -1, 644, -1, 646, -1, -1, - -1, -1, -1, 652, -1, -1, 655, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 182, -1, -1, - 650, 651, -1, -1, -1, 190, -1, -1, -1, 194, - -1, 196, 662, -1, -1, 182, -1, -1, 781, 204, - -1, 992, -1, 190, 209, -1, 211, 194, -1, 196, - -1, -1, -1, -1, -1, -1, 705, 204, 223, 224, - 225, -1, 209, 693, 211, -1, -1, 716, -1, 424, - -1, -1, 815, -1, -1, -1, 223, 224, 225, 138, - -1, -1, 138, -1, -1, -1, -1, -1, 443, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 383, 846, 847, 848, 849, 850, 851, 852, - 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, - -1, 864, -1, 182, -1, -1, 182, -1, -1, -1, - -1, 190, -1, -1, 190, 194, -1, 196, 194, -1, - 196, -1, -1, 424, -1, 204, 19, 20, 204, -1, - 209, 24, 211, 209, -1, 211, 29, 30, 31, 32, - 33, 34, 443, -1, 223, 224, 225, 223, 224, 225, - -1, -1, -1, 46, 47, 48, -1, -1, -1, -1, - -1, -1, 831, -1, -1, -1, -1, 930, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, 561, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 967, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 111, -1, - -1, -1, 6, 7, 8, -1, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, 424, - 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, - 34, 920, -1, -1, -1, -1, -1, 424, 443, -1, - 561, -1, 46, 47, 48, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 443, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 70, -1, -1, -1, - -1, 184, 185, 186, 187, -1, 965, -1, -1, -1, - -1, -1, 0, 1, -1, -1, -1, -1, -1, 93, - 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, - -1, -1, -1, 107, -1, -1, 24, 111, -1, -1, - -1, -1, -1, -1, -1, -1, 34, -1, -1, -1, - -1, -1, -1, -1, -1, 424, -1, 45, 424, -1, - -1, -1, 1115, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 443, -1, -1, 443, 1131, 67, - 68, 69, -1, 71, -1, -1, 561, 75, 76, 77, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 89, 90, 91, 561, -1, -1, -1, -1, -1, - 184, 185, 186, 187, 188, 189, -1, -1, 1171, -1, - 108, 109, 110, -1, 112, 113, 114, 115, 116, 117, - 118, 119, 120, 121, -1, 123, 124, 125, 126, 127, - 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, - -1, 139, 140, 141, 142, 143, 144, 145, 146, 147, - 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, - 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 171, 172, 173, 174, 175, 0, 1, - -1, -1, 561, -1, -1, 561, 184, 185, 186, -1, - 188, 189, 190, 19, -1, -1, -1, -1, 24, -1, - -1, -1, 24, 29, 30, 31, 32, 33, 34, -1, - -1, -1, 34, -1, -1, -1, -1, -1, -1, -1, - 46, 47, 48, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 70, 67, 68, 69, -1, 71, - -1, -1, -1, 75, 76, 77, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 89, 90, 91, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 111, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, -1, -1, -1, -1, 184, 185, - 186, 187, 184, 185, 186, 1, 188, 189, 190, -1, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, -1, 45, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 67, 68, 69, 70, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, - 186, 187, 188, 189, 190, 1, -1, -1, -1, -1, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, -1, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 67, 68, 69, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, - 186, 187, 188, 189, 190, 1, -1, -1, -1, -1, - 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, -1, -1, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 67, 68, 69, 70, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, - 186, 187, 188, 189, 190, 1, -1, -1, -1, -1, - 6, 7, 8, -1, -1, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, 25, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, 1, -1, - 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, - -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, 42, - 43, -1, -1, 46, 47, 48, 92, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, 19, -1, - -1, 107, -1, 24, -1, 111, -1, 70, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 46, 47, 48, -1, 92, - 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, 107, -1, -1, -1, 111, 70, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, - 186, 187, 188, 189, -1, -1, 1, -1, -1, -1, - 111, 6, 7, 8, -1, 10, 11, 12, 13, 14, - 15, 16, 17, 18, 19, -1, -1, -1, -1, 24, - -1, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, 184, 185, 186, 187, 188, 189, 42, 43, 1, - -1, 46, 47, 48, 6, 7, 8, -1, -1, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, 24, -1, -1, 70, -1, 29, 30, 31, - 32, 33, 34, 184, 185, 186, 187, -1, -1, -1, - 42, 43, -1, -1, 46, 47, 48, 92, 93, 94, - 95, 96, 97, 98, -1, -1, -1, -1, -1, -1, - -1, -1, 107, -1, 24, 25, 111, -1, 70, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 46, 47, 48, -1, - 92, 93, 94, 95, 96, 97, 98, -1, -1, -1, - -1, -1, -1, -1, -1, 107, -1, -1, -1, 111, - 70, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 184, - 185, 186, 187, 188, 189, -1, -1, 1, -1, -1, - -1, 111, 6, 7, 8, -1, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, - 24, -1, -1, -1, -1, 29, 30, 31, 32, 33, - 34, -1, 184, 185, 186, 187, 188, 189, 42, 43, - 1, -1, 46, 47, 48, 6, 7, 8, -1, -1, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, 70, -1, 29, 30, - 31, 32, 33, 34, 184, 185, 186, 187, -1, -1, - -1, 42, 43, -1, -1, 46, 47, 48, -1, 93, - 94, 95, 96, 97, 98, -1, -1, -1, -1, -1, - -1, -1, -1, 107, -1, 24, -1, 111, 27, 70, - 29, 30, 31, 32, 33, 34, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 46, 47, 48, - -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, - 111, 70, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 24, -1, -1, - 27, -1, 29, 30, 31, 32, 33, 34, -1, -1, - 184, 185, 186, 187, 188, 189, -1, -1, 1, 46, - 47, 48, 111, 6, 7, 8, -1, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, -1, -1, -1, - -1, 24, -1, 70, -1, -1, 29, 30, 31, 32, - 33, 34, -1, 184, 185, 186, 187, 188, 189, 42, - 43, -1, -1, 46, 47, 48, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 111, -1, -1, 70, -1, -1, - -1, -1, -1, -1, -1, 184, 185, 186, 187, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, 107, 6, 7, 8, 111, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, 184, 185, 186, - 187, 42, 43, -1, 45, 46, 47, 48, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 184, 185, 186, 187, 188, 189, -1, -1, -1, - -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, -1, -1, -1, -1, -1, - -1, -1, -1, 184, 185, 186, 187, 188, 189, 190, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, 42, 43, -1, 45, - 46, 47, 48, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, -1, 184, 185, - 186, 187, 188, 189, 190, 6, 7, 8, -1, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, -1, -1, - -1, 42, 43, -1, 45, 46, 47, 48, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 70, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, 108, 109, 110, - 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, -1, -1, -1, -1, -1, - -1, -1, -1, 184, 185, 186, 187, 188, 189, 190, - 6, 7, 8, -1, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 46, 47, 48, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, 107, 6, 7, 8, 111, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, 184, 185, - 186, 187, 188, 189, -1, 46, 47, 48, 6, 7, - 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, - 18, 19, 20, -1, -1, -1, 24, -1, -1, 70, - -1, 29, 30, 31, 32, 33, 34, -1, -1, -1, - -1, 184, 185, 186, 187, 188, 189, -1, 46, 47, - 48, -1, 93, 94, 95, 96, 97, 98, -1, -1, - -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, - 111, -1, 70, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 93, 94, 95, 96, 97, - 98, -1, -1, -1, -1, -1, -1, -1, -1, 107, - 6, 7, 8, 111, 10, 11, 12, 13, 14, 15, - 16, 17, 18, 19, 20, -1, -1, -1, 24, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, -1, - -1, -1, -1, 184, 185, 186, 187, 188, 189, -1, - 46, 47, 48, 6, 7, 8, -1, 10, 11, 12, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, 24, -1, -1, 70, -1, 29, 30, 31, 32, - 33, 34, -1, -1, -1, -1, 184, 185, 186, 187, - 188, 189, -1, 46, 47, 48, -1, 93, 94, 95, - 96, 97, 98, -1, -1, -1, -1, -1, -1, -1, - -1, 107, -1, -1, -1, 111, -1, 70, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 93, 94, 95, 96, 97, 98, -1, -1, -1, -1, - -1, -1, -1, -1, 107, 6, 7, 8, 111, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, - -1, 18, -1, 24, -1, -1, -1, -1, 29, 30, - 31, 32, 33, 34, -1, -1, -1, -1, 184, 185, - 186, 187, 188, 189, -1, 46, 47, 48, 45, -1, - -1, -1, -1, -1, 24, 25, -1, -1, -1, 29, - 30, 31, 32, 33, 34, -1, -1, -1, -1, 70, - 67, 68, 69, -1, 71, -1, 46, 47, 48, -1, - -1, 184, 185, 186, 187, 188, 189, -1, -1, -1, - -1, -1, 93, 94, 95, 96, 97, 98, -1, -1, - 70, -1, -1, -1, -1, -1, 107, -1, -1, -1, - 111, 108, 109, 110, -1, 112, 113, 114, 115, 116, - 117, 118, 119, 120, 121, -1, 123, 124, 125, 126, - 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, - 137, 111, 139, 140, 141, 142, 143, 144, 145, 146, - 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, - 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 174, 175, 18, - -1, -1, -1, 184, 185, 186, 187, 188, 189, 186, - -1, -1, -1, 190, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 45, -1, -1, -1, - -1, -1, -1, -1, 184, 185, 186, 187, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 88, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 108, - 109, 110, -1, 112, 113, 114, 115, 116, 117, 118, - 119, 120, 121, -1, 123, 124, 125, 126, 127, 128, - 129, 130, 131, 132, 133, 134, 135, 136, 137, -1, - 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 19, -1, -1, - -1, -1, 24, -1, -1, -1, -1, 186, -1, -1, - -1, 190, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 45, -1, -1, -1, -1, -1, 24, - 25, -1, -1, -1, 29, 30, 31, 32, 33, 34, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, - -1, 46, 47, 48, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 70, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, 111, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 19, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 186, -1, -1, -1, 190, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 45, -1, -1, -1, -1, -1, -1, -1, -1, 184, - 185, 186, 187, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 20, -1, -1, -1, -1, -1, - -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 186, 108, 109, 110, 190, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, 22, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, 67, 68, 69, - 186, -1, -1, -1, 190, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, - -1, -1, 24, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 34, -1, -1, -1, -1, -1, 108, 109, - 110, -1, 112, 113, 114, 115, 116, 117, 118, 119, - 120, 121, -1, 123, 124, 125, 126, 127, 128, 129, - 130, 131, 132, 133, 134, 135, 136, 137, -1, 139, - 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, - 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, - 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 171, 172, 173, 174, 175, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 190, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, -1, -1, -1, -1, -1, -1, - -1, -1, 184, 185, 186, 24, 188, 189, 190, -1, - 29, 30, 31, 32, 33, 34, 24, -1, -1, -1, - -1, 29, 30, 31, 32, 33, 34, 46, 47, 48, - -1, -1, -1, -1, -1, -1, 24, -1, 46, 47, - 48, 29, 30, 31, 32, 33, 34, 24, -1, -1, - -1, 70, 29, 30, 31, 32, 33, 34, 46, 47, - 48, -1, 70, -1, -1, -1, -1, 24, -1, 46, - 47, 48, 29, 30, 31, 32, 33, 34, -1, -1, - -1, -1, 70, -1, -1, -1, -1, -1, -1, 46, - 47, 48, 111, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 111, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 111, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 184, 185, 186, 187, 42, - 43, -1, -1, -1, -1, -1, 184, 185, 186, 187, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 184, 185, 186, 187, - -1, -1, -1, -1, -1, -1, -1, 184, 185, 186, - 187, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 184, 185, 186, - 187, -1, -1, -1, -1, 108, 109, 110, -1, 112, - 113, 114, 115, 116, 117, 118, 119, 120, 121, -1, - 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, - 133, 134, 135, 136, 137, -1, 139, 140, 141, 142, - 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, - 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 174, 175, 45, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 186, -1, -1, -1, 190, -1, -1, - -1, -1, -1, -1, -1, 67, 68, 69, -1, 71, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 45, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 186, -1, -1, -1, 190, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 108, 109, 110, - -1, 112, 113, 114, 115, 116, 117, 118, 119, 120, - 121, -1, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, 134, 135, 136, 137, -1, 139, 140, - 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, - 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, - 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 171, 172, 173, 174, 175, 67, 68, 69, -1, -1, - -1, -1, -1, -1, -1, 186, -1, -1, -1, 190, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 108, 109, 110, -1, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - -1, 123, 124, 125, 126, 127, 128, 129, 130, 131, - 132, 133, 134, 135, 136, 137, -1, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, - 172, 173, 174, 175, 89, 90, 91, -1, -1, -1, - -1, -1, -1, -1, 186, -1, -1, -1, 190, -1, - -1, -1, -1, 108, 109, 110, -1, 112, 113, 114, - 115, 116, 117, 118, 119, 120, 121, -1, 123, 124, - 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, - 135, 136, 137, -1, 139, 140, 141, 142, 143, 144, - 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, - 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, - 175, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 186, 108, 109, 110, 190, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, -1, 123, 124, 125, - 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, - 136, 137, -1, 139, 140, 141, 142, 143, 144, 145, - 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, - 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 186, -1, -1, -1, 190 -}; -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/lib/bison.simple" -/* This file comes from bison-1.28. */ - -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ - -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca -#else -#define YYSTACK_ALLOC malloc -#endif - -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ - -#define yyerrok (yyerrstatus = 0) -#define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 -#define YYEOF 0 -#define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. - Once GCC version 2 has supplanted version 1, this can go. */ -#define YYFAIL goto yyerrlab -#define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ -do \ - if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ - YYPOPSTACK; \ - goto yybackup; \ - } \ - else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ -while (0) - -#define YYTERROR 1 -#define YYERRCODE 256 - -#ifndef YYPURE -#define YYLEX yylex() -#endif - -#ifdef YYPURE -#ifdef YYLSP_NEEDED -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval, &yylloc) -#endif -#else /* not YYLSP_NEEDED */ -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) -#else -#define YYLEX yylex(&yylval) -#endif -#endif /* not YYLSP_NEEDED */ -#endif - -/* If nonreentrant, generate the variables here */ - -#ifndef YYPURE - -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ - -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ -#endif - -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ - -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ -#endif - -/* YYINITDEPTH indicates the initial size of the parser's stacks */ - -#ifndef YYINITDEPTH -#define YYINITDEPTH 200 -#endif - -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ - -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif - -#ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 -#endif - -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ - -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) -#else /* not GNU C or C++ */ -#ifndef __cplusplus - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (to, from, count) - char *to; - char *from; - unsigned int count; -{ - register char *f = from; - register char *t = to; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#else /* __cplusplus */ - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (char *to, char *from, unsigned int count) -{ - register char *t = to; - register char *f = from; - register int i = count; - - while (i-- > 0) - *t++ = *f++; -} - -#endif -#endif - -#line 217 "/usr/lib/bison.simple" - -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ - -#ifdef YYPARSE_PARAM -#ifdef __cplusplus -#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -#define YYPARSE_PARAM_DECL -#else /* not __cplusplus */ -#define YYPARSE_PARAM_ARG YYPARSE_PARAM -#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); -#else -int yyparse (void); -#endif -#endif - -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL -{ - register int yystate; - register int yyn; - register short *yyssp; - register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ - -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ - YYLTYPE *yyls = yylsa; - YYLTYPE *yylsp; - -#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -#define YYPOPSTACK (yyvsp--, yyssp--) -#endif - - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; - -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; -#endif -#endif - - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ - - int yylen; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif - - yystate = 0; - yyerrstatus = 0; - yynerrs = 0; - yychar = YYEMPTY; /* Cause a token to be read. */ - - /* Initialize stack pointers. - Waste one element of value and location stack - so that they stay on the same level as the state stack. - The wasted elements are never initialized. */ - - yyssp = yyss - 1; - yyvsp = yyvs; -#ifdef YYLSP_NEEDED - yylsp = yyls; -#endif - -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: - - *++yyssp = yystate; - - if (yyssp >= yyss + yystacksize - 1) - { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif - - /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; - -#ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif - - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif -#else /* no yyoverflow */ - /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } - yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) - yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif -#endif /* no yyoverflow */ - - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif - - if (yyssp >= yyss + yystacksize - 1) - YYABORT; - } - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif - - goto yybackup; - yybackup: - -/* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ -/* yyresume: */ - - /* First try to decide what to do without reference to lookahead token. */ - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yydefault; - - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ - - if (yychar == YYEMPTY) - { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif - yychar = YYLEX; - } - - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ - { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif - } - else - { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif - } - - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) - goto yydefault; - - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrlab; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrlab; - - if (yyn == YYFINAL) - YYACCEPT; - - /* Shift the lookahead token. */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif - - /* Discard the token being shifted unless it is eof. */ - if (yychar != YYEOF) - yychar = YYEMPTY; - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; - - yystate = yyn; - goto yynewstate; - -/* Do the default action for the current state. */ -yydefault: - - yyn = yydefact[yystate]; - if (yyn == 0) - goto yyerrlab; - -/* Do a reduction. yyn is the number of a rule to reduce with. */ -yyreduce: - yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ - -#if YYDEBUG != 0 - if (yydebug) - { - int i; - - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - - switch (yyn) { - -case 5: -#line 277 "cgrammar.y" -{ uentry_clearDecl (); ; - break;} -case 6: -#line 278 "cgrammar.y" -{ uentry_clearDecl (); ; - break;} -case 7: -#line 279 "cgrammar.y" -{ uentry_clearDecl (); ; - break;} -case 8: -#line 280 "cgrammar.y" -{ uentry_clearDecl (); ; - break;} -case 9: -#line 281 "cgrammar.y" -{ uentry_clearDecl (); ; - break;} -case 10: -#line 282 "cgrammar.y" -{ uentry_checkDecl (); exprNode_free (yyvsp[0].expr); ; - break;} -case 11: -#line 283 "cgrammar.y" -{ uentry_clearDecl (); ; - break;} -case 12: -#line 287 "cgrammar.y" -{ checkConstant (yyvsp[-6].qtyp, yyvsp[-4].ntyp); ; - break;} -case 13: -#line 289 "cgrammar.y" -{ checkValueConstant (yyvsp[-9].qtyp, yyvsp[-7].ntyp, yyvsp[-3].expr) ; ; - break;} -case 14: -#line 292 "cgrammar.y" -{ context_enterFunctionDecl (); ; - break;} -case 15: -#line 293 "cgrammar.y" -{ declareStaticFunction (yyvsp[-2].ntyp); context_quietExitFunction (); - context_exitFunctionDecl (); ; - break;} -case 16: -#line 298 "cgrammar.y" -{ - qtype qint = qtype_create (ctype_int); - yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); - qtype_free (qint); - ; - break;} -case 17: -#line 304 "cgrammar.y" -{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; - break;} -case 19: -#line 309 "cgrammar.y" -{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; - break;} -case 20: -#line 312 "cgrammar.y" -{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; - break;} -case 21: -#line 314 "cgrammar.y" -{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; - break;} -case 22: -#line 316 "cgrammar.y" -{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; - break;} -case 23: -#line 318 "cgrammar.y" -{ - yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), exprNode_getLongValue (yyvsp[-2].expr))); - ; - break;} -case 24: -#line 322 "cgrammar.y" -{ setCurrentParams (uentryList_missingParams); - ; - break;} -case 25: -#line 325 "cgrammar.y" -{ /* need to support globals and modifies here! */ - ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), - uentryList_makeMissingParams ()); - - yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ct); - context_popLoc (); - ; - break;} -case 26: -#line 333 "cgrammar.y" -{ setCurrentParams (yyvsp[-1].entrylist); - ; - break;} -case 27: -#line 336 "cgrammar.y" -{ setImplictfcnConstraints (); - clearCurrentParams (); - yyval.ntyp = idDecl_replaceCtype (yyvsp[-7].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-7].ntyp), yyvsp[-4].entrylist)); - context_popLoc (); - ; - break;} -case 28: -#line 343 "cgrammar.y" -{ yyval.ntyp = idDecl_create (yyvsp[0].cname, qtype_unknown ()); ; - break;} -case 29: -#line 345 "cgrammar.y" -{ yyval.ntyp = idDecl_expectFunction (yyvsp[-2].ntyp); ; - break;} -case 30: -#line 347 "cgrammar.y" -{ yyval.ntyp = idDecl_replaceCtype (yyvsp[-2].ntyp, ctype_makeArray (idDecl_getCtype (yyvsp[-2].ntyp))); ; - break;} -case 31: -#line 349 "cgrammar.y" -{ - int value; - - if (exprNode_hasValue (yyvsp[-2].expr) - && multiVal_isInt (exprNode_getValue (yyvsp[-2].expr))) - { - value = (int) multiVal_forceInt (exprNode_getValue (yyvsp[-2].expr)); - } - else - { - value = 0; - } - - yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ctype_makeFixedArray (idDecl_getCtype (yyvsp[-5].ntyp), value)); - ; - break;} -case 32: -#line 365 "cgrammar.y" -{ setCurrentParams (uentryList_missingParams); - ; - break;} -case 33: -#line 368 "cgrammar.y" -{ /* need to support globals and modifies here! */ - ctype ct = ctype_makeFunction (idDecl_getCtype (yyvsp[-5].ntyp), - uentryList_makeMissingParams ()); - - yyval.ntyp = idDecl_replaceCtype (yyvsp[-5].ntyp, ct); - context_popLoc (); - ; - break;} -case 34: -#line 376 "cgrammar.y" -{ setCurrentParams (yyvsp[-1].entrylist); - ; - break;} -case 35: -#line 379 "cgrammar.y" -{ clearCurrentParams (); - yyval.ntyp = idDecl_replaceCtype (yyvsp[-6].ntyp, ctype_makeFunction (idDecl_getCtype (yyvsp[-6].ntyp), yyvsp[-3].entrylist)); - context_popLoc (); - ; - break;} -case 36: -#line 386 "cgrammar.y" -{ setCurrentParams (yyvsp[-1].entrylist); ; - break;} -case 37: -#line 387 "cgrammar.y" -{ clearCurrentParams (); ; - break;} -case 38: -#line 388 "cgrammar.y" -{ declareCIter (yyvsp[-8].cname, yyvsp[-6].entrylist); ; - break;} -case 39: -#line 391 "cgrammar.y" -{ exprNode_checkMacroBody (yyvsp[-1].expr); ; - break;} -case 40: -#line 392 "cgrammar.y" -{ exprNode_checkIterBody (yyvsp[-1].expr); ; - break;} -case 41: -#line 393 "cgrammar.y" -{ exprNode_checkIterEnd (yyvsp[-1].expr); ; - break;} -case 42: -#line 394 "cgrammar.y" -{ exprChecks_checkEmptyMacroBody (); ; - break;} -case 43: -#line 397 "cgrammar.y" -{ declareFunction (yyvsp[0].ntyp); ; - break;} -case 44: -#line 400 "cgrammar.y" -{ setProcessingGlobMods (); ; - break;} -case 45: -#line 401 "cgrammar.y" -{ clearProcessingGlobMods (); ; - break;} -case 46: -#line 407 "cgrammar.y" -{ setProcessingGlobMods (); ; - break;} -case 47: -#line 408 "cgrammar.y" -{ clearProcessingGlobMods (); ; - break;} -case 49: -#line 416 "cgrammar.y" -{ - DPRINTF ( ("doing optGlobEnsuresConstraintsAux\n") ); -context_setProtectVars (); enterParamsTemp (); - sRef_setGlobalScopeSafe (); - -; - break;} -case 50: -#line 422 "cgrammar.y" -{ - setEnsuresConstraints (yyvsp[-2].conL); - exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - DPRINTF (("done optGlobBufConstraintsAux\n"));; - break;} -case 52: -#line 432 "cgrammar.y" -{ - DPRINTF ( ("doing optGlobBufConstraintsAux\n") ); -context_setProtectVars (); enterParamsTemp (); - sRef_setGlobalScopeSafe (); - -; - break;} -case 53: -#line 438 "cgrammar.y" -{ - setFunctionConstraints (yyvsp[-2].conL); - exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - DPRINTF (("done optGlobBufConstraintsAux\n"));; - break;} -case 55: -#line 447 "cgrammar.y" -{ yyval.conL = constraintList_add (yyvsp[0].conL, yyvsp[-2].con); ; - break;} -case 56: -#line 448 "cgrammar.y" -{constraintList c; c = constraintList_makeNew(); c = constraintList_add (c, yyvsp[0].con); yyval.conL = c; - break;} -case 57: -#line 451 "cgrammar.y" -{ - yyval.con = makeConstraintParse3 (yyvsp[-2].conE, yyvsp[-1].tok, yyvsp[0].conE); - DPRINTF(("Done BufConstraint1\n")); ; - break;} -case 64: -#line 466 "cgrammar.y" -{yyval.conE = constraintExpr_parseMakeUnaryOp (yyvsp[-3].tok, yyvsp[-1].conE); DPRINTF( ("Got BufConstraintExpr UNary Op ") ); ; - break;} -case 65: -#line 467 "cgrammar.y" -{ - DPRINTF( ("Got BufConstraintExpr BINary Op ") ); - yyval.conE = constraintExpr_parseMakeBinaryOp (yyvsp[-3].conE, yyvsp[-2].tok, yyvsp[-1].conE); ; - break;} -case 66: -#line 472 "cgrammar.y" -{ yyval.conE = constraintExpr_makeTermsRef(yyvsp[0].sr);; - break;} -case 67: -#line 473 "cgrammar.y" -{ char *t; int c; - t = cstring_toCharsSafe (exprNode_unparse(yyvsp[0].expr)); - c = atoi( t ); - yyval.conE = constraintExpr_makeIntLiteral (c); -; - break;} -case 68: -#line 481 "cgrammar.y" -{ - yyval.sr = - checkbufferConstraintClausesId (yyvsp[0].entry);; - break;} -case 69: -#line 484 "cgrammar.y" -{ yyval.sr = fixSpecClausesId (yyvsp[0].cname); ; - break;} -case 70: -#line 486 "cgrammar.y" -{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; - break;} -case 71: -#line 487 "cgrammar.y" -{ - char *t; int c; - t = cstring_toCharsSafe (exprNode_unparse(yyvsp[-1].expr)); - c = atoi( t ); - yyval.sr = sRef_makeArrayFetchKnown(yyvsp[-3].sr, c); ; - break;} -case 72: -#line 492 "cgrammar.y" -{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; - break;} -case 73: -#line 493 "cgrammar.y" -{ yyval.sr = yyvsp[-1].sr; ; - break;} -case 74: -#line 494 "cgrammar.y" -{ cstring_markOwned (yyvsp[0].cname); - yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; - break;} -case 75: -#line 496 "cgrammar.y" -{ cstring_markOwned (yyvsp[0].cname); - yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; - break;} -case 79: -#line 522 "cgrammar.y" -{ setProcessingGlobMods (); ; - break;} -case 80: -#line 523 "cgrammar.y" -{ clearProcessingGlobMods (); ; - break;} -case 81: -#line 533 "cgrammar.y" -{ setProcessingGlobMods (); ; - break;} -case 82: -#line 534 "cgrammar.y" -{ clearProcessingGlobMods (); ; - break;} -case 89: -#line 549 "cgrammar.y" -{ ; ; - break;} -case 90: -#line 550 "cgrammar.y" -{ ; ; - break;} -case 91: -#line 553 "cgrammar.y" -{ globListAdd (yyvsp[0].sr, yyvsp[-1].tquallist); ; - break;} -case 92: -#line 556 "cgrammar.y" -{ yyval.sr = uentry_getSref (yyvsp[0].entry); ; - break;} -case 93: -#line 557 "cgrammar.y" -{ yyval.sr = globListUnrecognized (yyvsp[0].cname); ; - break;} -case 94: -#line 560 "cgrammar.y" -{ yyval.typequal = qual_createUndef (); ; - break;} -case 95: -#line 561 "cgrammar.y" -{ yyval.typequal = qual_createKilled (); ; - break;} -case 96: -#line 562 "cgrammar.y" -{ yyval.typequal = qual_createOut (); ; - break;} -case 97: -#line 563 "cgrammar.y" -{ yyval.typequal = qual_createIn (); ; - break;} -case 98: -#line 564 "cgrammar.y" -{ yyval.typequal = qual_createPartial (); ; - break;} -case 99: -#line 567 "cgrammar.y" -{ yyval.tquallist = qualList_undefined; ; - break;} -case 100: -#line 568 "cgrammar.y" -{ yyval.tquallist = qualList_add (yyvsp[0].tquallist, yyvsp[-1].typequal); ; - break;} -case 101: -#line 571 "cgrammar.y" -{ setProcessingGlobalsList (); ; - break;} -case 102: -#line 573 "cgrammar.y" -{ unsetProcessingGlobals (); ; - break;} -case 103: -#line 574 "cgrammar.y" -{ setProcessingGlobalsList (); ; - break;} -case 104: -#line 576 "cgrammar.y" -{ unsetProcessingGlobals (); ; - break;} -case 105: -#line 578 "cgrammar.y" -{ setFunctionNoGlobals (); - setFunctionModifies (sRefSet_single (sRef_makeNothing ())); - ; - break;} -case 108: -#line 585 "cgrammar.y" -{ setProcessingGlobalsList (); ; - break;} -case 109: -#line 587 "cgrammar.y" -{ unsetProcessingGlobals (); ; - break;} -case 110: -#line 588 "cgrammar.y" -{ setProcessingGlobalsList (); ; - break;} -case 111: -#line 590 "cgrammar.y" -{ unsetProcessingGlobals (); ; - break;} -case 112: -#line 592 "cgrammar.y" -{ setFunctionNoGlobals (); - setFunctionModifies (sRefSet_single (sRef_makeNothing ())); - ; - break;} -case 117: -#line 604 "cgrammar.y" -{ - context_setProtectVars (); enterParamsTemp (); - sRef_setGlobalScopeSafe (); - ; - break;} -case 118: -#line 609 "cgrammar.y" -{ - setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - ; - break;} -case 119: -#line 617 "cgrammar.y" -{ - context_setProtectVars (); enterParamsTemp (); - sRef_setGlobalScopeSafe (); - ; - break;} -case 120: -#line 622 "cgrammar.y" -{ - setFunctionModifies (yyvsp[0].srset); exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - ; - break;} -case 130: -#line 646 "cgrammar.y" -{ yyval.sck = SP_ISONLY; ; - break;} -case 131: -#line 647 "cgrammar.y" -{ yyval.sck = SP_ISOBSERVER; ; - break;} -case 132: -#line 648 "cgrammar.y" -{ yyval.sck = SP_ISEXPOSED; ; - break;} -case 133: -#line 649 "cgrammar.y" -{ yyval.sck = SP_ISDEPENDENT; ; - break;} -case 134: -#line 650 "cgrammar.y" -{ yyval.sck = SP_ISOWNED; ; - break;} -case 135: -#line 651 "cgrammar.y" -{ yyval.sck = SP_ISSHARED; ; - break;} -case 136: -#line 652 "cgrammar.y" -{ yyval.sck = SP_ISNULL; ; - break;} -case 137: -#line 653 "cgrammar.y" -{ yyval.sck = SP_ISNOTNULL; ; - break;} -case 138: -#line 657 "cgrammar.y" -{ - context_setProtectVars (); - enterParamsTemp (); - sRef_setGlobalScopeSafe (); - ; - break;} -case 139: -#line 663 "cgrammar.y" -{ - setFunctionSpecialClause (yyvsp[-6].tok, yyvsp[-3].srset, yyvsp[-1].tok); - exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - ; - break;} -case 140: -#line 670 "cgrammar.y" -{ - context_setProtectVars (); - enterParamsTemp (); - sRef_setGlobalScopeSafe (); - ; - break;} -case 141: -#line 676 "cgrammar.y" -{ - setFunctionStateSpecialClause (yyvsp[-7].tok, yyvsp[-5].sck, yyvsp[-3].srset, yyvsp[-1].tok); - exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - ; - break;} -case 142: -#line 685 "cgrammar.y" -{ - qtype qint = qtype_create (ctype_int); - yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, qint); - qtype_free (qint); - ; - break;} -case 143: -#line 691 "cgrammar.y" -{ yyval.ntyp = idDecl_fixBase (yyvsp[0].ntyp, yyvsp[-2].qtyp); ; - break;} -case 144: -#line 694 "cgrammar.y" -{ checkDoneParams (); context_enterInnerContext (); ; - break;} -case 145: -#line 696 "cgrammar.y" -{ - exprNode_checkFunctionBody (yyvsp[0].expr); yyval.expr = yyvsp[0].expr; - context_exitInner (yyvsp[0].expr); - ; - break;} -case 146: -#line 701 "cgrammar.y" -{ doneParams (); context_enterInnerContext (); ; - break;} -case 147: -#line 703 "cgrammar.y" -{ - context_exitInner (yyvsp[0].expr); - exprNode_checkFunctionBody (yyvsp[0].expr); - yyval.expr = yyvsp[0].expr; /* old style */ - ; - break;} -case 148: -#line 711 "cgrammar.y" -{ - context_setFunctionDefined (exprNode_loc (yyvsp[0].expr)); - exprNode_checkFunction (context_getHeader (), yyvsp[0].expr); - /* DRL 8 8 2000 */ - - context_exitFunction (); - ; - break;} -case 149: -#line 720 "cgrammar.y" -{ yyval.srset = yyvsp[-2].srset; ; - break;} -case 150: -#line 721 "cgrammar.y" -{ yyval.srset = sRefSet_new (); ; - break;} -case 151: -#line 724 "cgrammar.y" -{ yyval.srset = yyvsp[-1].srset; ; - break;} -case 152: -#line 725 "cgrammar.y" -{ yyval.srset = sRefSet_new (); ; - break;} -case 153: -#line 728 "cgrammar.y" -{ yyval.sr = uentry_getSref (yyvsp[0].entry); checkModifiesId (yyvsp[0].entry); ; - break;} -case 154: -#line 729 "cgrammar.y" -{ yyval.sr = fixModifiesId (yyvsp[0].cname); ; - break;} -case 155: -#line 730 "cgrammar.y" -{ yyval.sr = modListArrayFetch (yyvsp[-2].sr, sRef_undefined); ; - break;} -case 156: -#line 731 "cgrammar.y" -{ yyval.sr = modListArrayFetch (yyvsp[-3].sr, yyvsp[-1].sr); ; - break;} -case 157: -#line 732 "cgrammar.y" -{ yyval.sr = modListPointer (yyvsp[0].sr); ; - break;} -case 158: -#line 733 "cgrammar.y" -{ yyval.sr = yyvsp[-1].sr; ; - break;} -case 159: -#line 734 "cgrammar.y" -{ yyval.sr = modListFieldAccess (yyvsp[-2].sr, yyvsp[0].cname); ; - break;} -case 160: -#line 735 "cgrammar.y" -{ yyval.sr = modListArrowAccess (yyvsp[-2].sr, yyvsp[0].cname); ; - break;} -case 161: -#line 739 "cgrammar.y" -{ yyval.sr = yyvsp[0].sr; ; - break;} -case 162: -#line 740 "cgrammar.y" -{ yyval.sr = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ ; - break;} -case 163: -#line 744 "cgrammar.y" -{ yyval.srset = sRefSet_single (yyvsp[0].sr); ; - break;} -case 164: -#line 745 "cgrammar.y" -{ yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); ; - break;} -case 165: -#line 749 "cgrammar.y" -{ yyval.sr = checkSpecClausesId (yyvsp[0].entry); ; - break;} -case 166: -#line 751 "cgrammar.y" -{ yyval.sr = fixSpecClausesId (yyvsp[0].cname); ; - break;} -case 167: -#line 752 "cgrammar.y" -{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-2].sr); ; - break;} -case 168: -#line 753 "cgrammar.y" -{ yyval.sr = sRef_makeAnyArrayFetch (yyvsp[-3].sr); ; - break;} -case 169: -#line 754 "cgrammar.y" -{ yyval.sr = sRef_constructPointer (yyvsp[0].sr); ; - break;} -case 170: -#line 755 "cgrammar.y" -{ yyval.sr = yyvsp[-1].sr; ; - break;} -case 171: -#line 756 "cgrammar.y" -{ cstring_markOwned (yyvsp[0].cname); - yyval.sr = sRef_buildField (yyvsp[-2].sr, yyvsp[0].cname); ; - break;} -case 172: -#line 758 "cgrammar.y" -{ cstring_markOwned (yyvsp[0].cname); - yyval.sr = sRef_makeArrow (yyvsp[-2].sr, yyvsp[0].cname); ; - break;} -case 173: -#line 763 "cgrammar.y" -{ if (sRef_isValid (yyvsp[0].sr)) { yyval.srset = sRefSet_single (yyvsp[0].sr); } - else { yyval.srset = sRefSet_undefined; } - ; - break;} -case 174: -#line 767 "cgrammar.y" -{ if (sRef_isValid (yyvsp[0].sr)) - { - yyval.srset = sRefSet_insert (yyvsp[-2].srset, yyvsp[0].sr); - } - else - { - yyval.srset = yyvsp[-2].srset; - } - ; - break;} -case 175: -#line 778 "cgrammar.y" -{ yyval.expr = exprNode_fromIdentifier (yyvsp[0].entry); ; - break;} -case 176: -#line 779 "cgrammar.y" -{ yyval.expr = exprNode_fromUIO (yyvsp[0].cname); ; - break;} -case 177: -#line 780 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 178: -#line 781 "cgrammar.y" -{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; - break;} -case 179: -#line 782 "cgrammar.y" -{ yyval.expr = exprNode_fromIdentifier (coerceId (yyvsp[0].cname)); ; - break;} -case 180: -#line 783 "cgrammar.y" -{ yyval.expr = exprNode_makeError (); ; - break;} -case 182: -#line 787 "cgrammar.y" -{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; - break;} -case 183: -#line 788 "cgrammar.y" -{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; - break;} -case 184: -#line 789 "cgrammar.y" -{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; - break;} -case 185: -#line 790 "cgrammar.y" -{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; - break;} -case 186: -#line 791 "cgrammar.y" -{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; - break;} -case 187: -#line 792 "cgrammar.y" -{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; - break;} -case 188: -#line 793 "cgrammar.y" -{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; - break;} -case 189: -#line 794 "cgrammar.y" -{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; - break;} -case 190: -#line 797 "cgrammar.y" -{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; - break;} -case 191: -#line 798 "cgrammar.y" -{ yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; - break;} -case 193: -#line 802 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 194: -#line 803 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 195: -#line 804 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 196: -#line 805 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 197: -#line 806 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 198: -#line 807 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 199: -#line 808 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 200: -#line 809 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 201: -#line 810 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 202: -#line 811 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 203: -#line 814 "cgrammar.y" -{ yyval.cstringlist = cstringList_add (yyvsp[-2].cstringlist, yyvsp[0].cname); ; - break;} -case 204: -#line 815 "cgrammar.y" -{ yyval.cstringlist = cstringList_single (yyvsp[0].cname); ; - break;} -case 205: -#line 819 "cgrammar.y" -{ yyval.expr = exprNode_offsetof (yyvsp[-5].qtyp, yyvsp[-2].cstringlist); ; - break;} -case 206: -#line 822 "cgrammar.y" -{ context_setProtectVars (); ; - break;} -case 207: -#line 823 "cgrammar.y" -{ context_sizeofReleaseVars (); yyval.expr = yyvsp[0].expr; ; - break;} -case 208: -#line 826 "cgrammar.y" -{ yyval.expr = exprNode_sizeofType (yyvsp[-1].qtyp); ; - break;} -case 209: -#line 827 "cgrammar.y" -{ yyval.expr = exprNode_sizeofExpr (yyvsp[0].expr); ; - break;} -case 210: -#line 828 "cgrammar.y" -{ yyval.expr = exprNode_alignofType (yyvsp[-1].qtyp); ; - break;} -case 211: -#line 829 "cgrammar.y" -{ yyval.expr = exprNode_alignofExpr (yyvsp[0].expr); ; - break;} -case 213: -#line 834 "cgrammar.y" -{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; - break;} -case 215: -#line 838 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 216: -#line 839 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 217: -#line 840 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 219: -#line 844 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 220: -#line 845 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 222: -#line 849 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 223: -#line 850 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 225: -#line 854 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 226: -#line 855 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 227: -#line 856 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 228: -#line 857 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 230: -#line 861 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 231: -#line 862 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 233: -#line 866 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 235: -#line 870 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 237: -#line 875 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 239: -#line 880 "cgrammar.y" -{ exprNode_produceGuards (yyvsp[-1].expr); - context_enterAndClause (yyvsp[-1].expr); - ; - break;} -case 240: -#line 884 "cgrammar.y" -{ - yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); - context_exitAndClause (yyval.expr, yyvsp[0].expr); - ; - break;} -case 242: -#line 892 "cgrammar.y" -{ - exprNode_produceGuards (yyvsp[-1].expr); - context_enterOrClause (yyvsp[-1].expr); - ; - break;} -case 243: -#line 897 "cgrammar.y" -{ - yyval.expr = exprNode_op (yyvsp[-3].expr, yyvsp[0].expr, yyvsp[-2].tok); - context_exitOrClause (yyval.expr, yyvsp[0].expr); - ; - break;} -case 245: -#line 904 "cgrammar.y" -{ exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; - break;} -case 246: -#line 905 "cgrammar.y" -{ context_enterFalseClause (yyvsp[-4].expr); ; - break;} -case 247: -#line 906 "cgrammar.y" -{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); context_exitClause (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; - break;} -case 249: -#line 910 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 250: -#line 911 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 251: -#line 912 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 252: -#line 913 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 253: -#line 914 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 254: -#line 915 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 255: -#line 916 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 256: -#line 917 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 257: -#line 918 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 258: -#line 919 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 259: -#line 920 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 261: -#line 924 "cgrammar.y" -{ yyval.expr = exprNode_comma (yyvsp[-2].expr, yyvsp[0].expr); ; - break;} -case 262: -#line 927 "cgrammar.y" -{ yyval.expr = exprNode_undefined; ; - break;} -case 265: -#line 936 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 266: -#line 937 "cgrammar.y" -{ doVaDcl (); yyval.expr = exprNode_makeError (); ; - break;} -case 267: -#line 938 "cgrammar.y" -{ yyval.expr = exprNode_makeError (); ; - break;} -case 268: -#line 941 "cgrammar.y" -{ yyval.expr = exprNode_makeError (); ; - break;} -case 269: -#line 955 "cgrammar.y" -{ - setProcessingVars (yyvsp[-3].qtyp); - processNamedDecl (yyvsp[-1].ntyp); ; - break;} -case 270: -#line 958 "cgrammar.y" -{ unsetProcessingVars (); yyval.expr = yyvsp[-2].expr; ; - break;} -case 271: -#line 960 "cgrammar.y" -{ setProcessingVars (yyvsp[-4].qtyp); processNamedDecl (yyvsp[-2].ntyp); - ; - break;} -case 272: -#line 963 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-2].expr, exprNode_makeInitialization (yyvsp[-8].ntyp, yyvsp[-3].expr)); - unsetProcessingVars (); - ; - break;} -case 273: -#line 967 "cgrammar.y" -{ processNamedDecl (yyvsp[-1].ntyp); yyval.expr = exprNode_makeError (); ; - break;} -case 274: -#line 968 "cgrammar.y" -{ processNamedDecl (yyvsp[-2].ntyp); ; - break;} -case 275: -#line 969 "cgrammar.y" -{ yyval.expr = exprNode_makeInitialization (yyvsp[-5].ntyp, yyvsp[0].expr); ; - break;} -case 276: -#line 973 "cgrammar.y" -{ setProcessingTypedef (yyvsp[0].qtyp); ; - break;} -case 277: -#line 974 "cgrammar.y" -{ unsetProcessingTypedef (); ; - break;} -case 278: -#line 975 "cgrammar.y" -{ /* in the ANSI grammar, semantics unclear */ ; - break;} -case 279: -#line 976 "cgrammar.y" -{ /* in the ANSI grammar, semantics unclear */ ; - break;} -case 280: -#line 979 "cgrammar.y" -{ g_expectingTypeName = TRUE; ; - break;} -case 281: -#line 982 "cgrammar.y" -{ g_expectingTypeName = TRUE; context_pushLoc (); ; - break;} -case 282: -#line 985 "cgrammar.y" -{ ; ; - break;} -case 283: -#line 988 "cgrammar.y" -{ ; ; - break;} -case 284: -#line 989 "cgrammar.y" -{ ; ; - break;} -case 285: -#line 992 "cgrammar.y" -{ yyval.expr = exprNode_makeError (); ; - break;} -case 286: -#line 993 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-3].expr, yyvsp[0].expr); ; - break;} -case 287: -#line 996 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 288: -#line 997 "cgrammar.y" -{ yyval.expr = exprNode_makeInitBlock (yyvsp[-2].tok, yyvsp[-1].alist); ; - break;} -case 289: -#line 998 "cgrammar.y" -{ yyval.expr = exprNode_makeInitBlock (yyvsp[-3].tok, yyvsp[-2].alist); ; - break;} -case 290: -#line 1003 "cgrammar.y" -{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; - break;} -case 291: -#line 1005 "cgrammar.y" -{ yyval.alist = exprNodeList_push (yyvsp[-2].alist, yyvsp[0].expr); ; - break;} -case 292: -#line 1013 "cgrammar.y" -{ setStorageClass (SCEXTERN); yyval.typequal = qual_createExtern (); ; - break;} -case 293: -#line 1014 "cgrammar.y" -{ yyval.typequal = qual_createInline (); ; - break;} -case 294: -#line 1015 "cgrammar.y" -{ setStorageClass (SCSTATIC); yyval.typequal = qual_createStatic (); ; - break;} -case 295: -#line 1016 "cgrammar.y" -{ yyval.typequal = qual_createAuto (); ; - break;} -case 296: -#line 1017 "cgrammar.y" -{ yyval.typequal = qual_createRegister (); ; - break;} -case 297: -#line 1020 "cgrammar.y" -{ yyval.typequal = qual_createConst (); ; - break;} -case 298: -#line 1021 "cgrammar.y" -{ yyval.typequal = qual_createVolatile (); ; - break;} -case 299: -#line 1022 "cgrammar.y" -{ yyval.typequal = qual_createOut (); ; - break;} -case 300: -#line 1023 "cgrammar.y" -{ yyval.typequal = qual_createIn (); ; - break;} -case 301: -#line 1024 "cgrammar.y" -{ yyval.typequal = qual_createPartial (); ; - break;} -case 302: -#line 1025 "cgrammar.y" -{ yyval.typequal = qual_createSpecial (); ; - break;} -case 303: -#line 1026 "cgrammar.y" -{ yyval.typequal = qual_createOwned (); ; - break;} -case 304: -#line 1027 "cgrammar.y" -{ yyval.typequal = qual_createDependent (); ; - break;} -case 305: -#line 1028 "cgrammar.y" -{ yyval.typequal = qual_createYield (); ; - break;} -case 306: -#line 1029 "cgrammar.y" -{ yyval.typequal = qual_createTemp (); ; - break;} -case 307: -#line 1030 "cgrammar.y" -{ yyval.typequal = qual_createOnly (); ; - break;} -case 308: -#line 1031 "cgrammar.y" -{ yyval.typequal = qual_createKeep (); ; - break;} -case 309: -#line 1032 "cgrammar.y" -{ yyval.typequal = qual_createKept (); ; - break;} -case 310: -#line 1033 "cgrammar.y" -{ yyval.typequal = qual_createShared (); ; - break;} -case 311: -#line 1034 "cgrammar.y" -{ yyval.typequal = qual_createUnique (); ; - break;} -case 312: -#line 1035 "cgrammar.y" -{ yyval.typequal = qual_createExits (); ; - break;} -case 313: -#line 1036 "cgrammar.y" -{ yyval.typequal = qual_createMayExit (); ; - break;} -case 314: -#line 1037 "cgrammar.y" -{ yyval.typequal = qual_createTrueExit (); ; - break;} -case 315: -#line 1038 "cgrammar.y" -{ yyval.typequal = qual_createFalseExit (); ; - break;} -case 316: -#line 1039 "cgrammar.y" -{ yyval.typequal = qual_createNeverExit (); ; - break;} -case 317: -#line 1040 "cgrammar.y" -{ yyval.typequal = qual_createNull (); ; - break;} -case 318: -#line 1041 "cgrammar.y" -{ yyval.typequal = qual_createRelNull (); ; - break;} -case 319: -#line 1042 "cgrammar.y" -{ yyval.typequal = qual_createReturned (); ; - break;} -case 320: -#line 1043 "cgrammar.y" -{ yyval.typequal = qual_createExposed (); ; - break;} -case 321: -#line 1044 "cgrammar.y" -{ yyval.typequal = qual_createObserver (); ; - break;} -case 322: -#line 1045 "cgrammar.y" -{ yyval.typequal = qual_createChecked (); ; - break;} -case 323: -#line 1046 "cgrammar.y" -{ yyval.typequal = qual_createCheckMod (); ; - break;} -case 324: -#line 1047 "cgrammar.y" -{ yyval.typequal = qual_createUnchecked (); ; - break;} -case 325: -#line 1048 "cgrammar.y" -{ yyval.typequal = qual_createCheckedStrict (); ; - break;} -case 326: -#line 1049 "cgrammar.y" -{ yyval.typequal = qual_createTrueNull (); ; - break;} -case 327: -#line 1050 "cgrammar.y" -{ yyval.typequal = qual_createFalseNull (); ; - break;} -case 328: -#line 1051 "cgrammar.y" -{ yyval.typequal = qual_createUnused (); ; - break;} -case 329: -#line 1052 "cgrammar.y" -{ yyval.typequal = qual_createExternal (); ; - break;} -case 330: -#line 1053 "cgrammar.y" -{ yyval.typequal = qual_createSef (); ; - break;} -case 331: -#line 1054 "cgrammar.y" -{ yyval.typequal = qual_createAbstract (); ; - break;} -case 332: -#line 1055 "cgrammar.y" -{ yyval.typequal = qual_createConcrete (); ; - break;} -case 333: -#line 1056 "cgrammar.y" -{ yyval.typequal = qual_createMutable (); ; - break;} -case 334: -#line 1057 "cgrammar.y" -{ yyval.typequal = qual_createImmutable (); ; - break;} -case 335: -#line 1058 "cgrammar.y" -{ yyval.typequal = qual_createNotNull (); ; - break;} -case 336: -#line 1059 "cgrammar.y" -{ yyval.typequal = qual_createRefCounted (); ; - break;} -case 337: -#line 1060 "cgrammar.y" -{ yyval.typequal = qual_createRefs (); ; - break;} -case 338: -#line 1061 "cgrammar.y" -{ yyval.typequal = qual_createKillRef (); ; - break;} -case 339: -#line 1062 "cgrammar.y" -{ yyval.typequal = qual_createRelDef (); ; - break;} -case 340: -#line 1063 "cgrammar.y" -{ yyval.typequal = qual_createNewRef (); ; - break;} -case 341: -#line 1064 "cgrammar.y" -{ yyval.typequal = qual_createTempRef (); ; - break;} -case 342: -#line 1065 "cgrammar.y" -{ yyval.typequal = qual_createNullTerminated (); ; - break;} -case 343: -#line 1071 "cgrammar.y" -{ yyval.typequal = qual_createShort (); ; - break;} -case 344: -#line 1072 "cgrammar.y" -{ yyval.typequal = qual_createLong (); ; - break;} -case 345: -#line 1073 "cgrammar.y" -{ yyval.typequal = qual_createSigned (); ; - break;} -case 346: -#line 1074 "cgrammar.y" -{ yyval.typequal = qual_createUnsigned (); ; - break;} -case 353: -#line 1083 "cgrammar.y" -{ yyval.ctyp = ctype_unknown; ; - break;} -case 354: -#line 1084 "cgrammar.y" -{ yyval.ctyp = ctype_anyintegral; ; - break;} -case 355: -#line 1085 "cgrammar.y" -{ yyval.ctyp = ctype_unsignedintegral; ; - break;} -case 356: -#line 1086 "cgrammar.y" -{ yyval.ctyp = ctype_signedintegral; ; - break;} -case 360: -#line 1090 "cgrammar.y" -{ yyval.ctyp = ctype_fromQual (yyvsp[-1].typequal); ; - break;} -case 361: -#line 1094 "cgrammar.y" -{ yyval.qtyp = qtype_resolve (yyvsp[-1].qtyp); ; - break;} -case 362: -#line 1097 "cgrammar.y" -{ yyval.qtyp = yyvsp[0].qtyp; ; - break;} -case 363: -#line 1099 "cgrammar.y" -{ yyval.qtyp = qtype_mergeAlt (yyvsp[-3].qtyp, yyvsp[-1].qtyp); ; - break;} -case 365: -#line 1104 "cgrammar.y" -{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; - break;} -case 366: -#line 1107 "cgrammar.y" -{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; - break;} -case 367: -#line 1108 "cgrammar.y" -{ yyval.qtyp = qtype_addQual (yyvsp[0].qtyp, yyvsp[-1].typequal); ; - break;} -case 368: -#line 1109 "cgrammar.y" -{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; - break;} -case 369: -#line 1112 "cgrammar.y" -{ yyval.qtyp = qtype_unknown (); ; - break;} -case 370: -#line 1113 "cgrammar.y" -{ yyval.qtyp = yyvsp[0].qtyp; ; - break;} -case 371: -#line 1116 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; - break;} -case 372: -#line 1118 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; - break;} -case 373: -#line 1120 "cgrammar.y" -{ yyval.ctyp = declareStruct (yyvsp[-8].cname, yyvsp[-3].flist); ; - break;} -case 374: -#line 1121 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; - break;} -case 375: -#line 1123 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; - break;} -case 376: -#line 1125 "cgrammar.y" -{ yyval.ctyp = declareUnion (yyvsp[-8].cname, yyvsp[-3].flist); ; - break;} -case 377: -#line 1127 "cgrammar.y" -{ yyval.ctyp = declareStruct (yyvsp[-3].cname, uentryList_new ()); ; - break;} -case 378: -#line 1129 "cgrammar.y" -{ yyval.ctyp = declareUnion (yyvsp[-3].cname, uentryList_new ()); ; - break;} -case 379: -#line 1130 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; - break;} -case 380: -#line 1132 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; - break;} -case 381: -#line 1134 "cgrammar.y" -{ yyval.ctyp = declareUnnamedStruct (yyvsp[-3].flist); ; - break;} -case 382: -#line 1135 "cgrammar.y" -{ sRef_setGlobalScopeSafe (); ; - break;} -case 383: -#line 1137 "cgrammar.y" -{ sRef_clearGlobalScopeSafe (); ; - break;} -case 384: -#line 1139 "cgrammar.y" -{ yyval.ctyp = declareUnnamedUnion (yyvsp[-3].flist); ; - break;} -case 385: -#line 1141 "cgrammar.y" -{ yyval.ctyp = ctype_createUnnamedStruct (uentryList_new ()); ; - break;} -case 386: -#line 1143 "cgrammar.y" -{ yyval.ctyp = ctype_createUnnamedUnion (uentryList_new ()); ; - break;} -case 387: -#line 1144 "cgrammar.y" -{ yyval.ctyp = handleStruct (yyvsp[-1].cname); ; - break;} -case 388: -#line 1145 "cgrammar.y" -{ yyval.ctyp = handleUnion (yyvsp[-1].cname); ; - break;} -case 389: -#line 1148 "cgrammar.y" -{ g_expectingTypeName = FALSE; ; - break;} -case 391: -#line 1152 "cgrammar.y" -{ yyval.flist = uentryList_undefined; /* bogus! */ ; - break;} -case 392: -#line 1153 "cgrammar.y" -{ yyval.flist = uentryList_mergeFields (yyvsp[-1].flist, yyvsp[0].flist); ; - break;} -case 393: -#line 1157 "cgrammar.y" -{ yyval.flist = fixUentryList (yyvsp[-2].ntyplist, yyvsp[-4].qtyp); ; - break;} -case 394: -#line 1159 "cgrammar.y" -{ yyval.flist = fixUnnamedDecl (yyvsp[-2].qtyp); ; - break;} -case 395: -#line 1163 "cgrammar.y" -{ yyval.ntyplist = idDeclList_singleton (yyvsp[-1].ntyp); ; - break;} -case 396: -#line 1165 "cgrammar.y" -{ yyval.ntyplist = idDeclList_add (yyvsp[-3].ntyplist, yyvsp[-1].ntyp); ; - break;} -case 397: -#line 1168 "cgrammar.y" -{ yyval.ntyp = yyvsp[0].ntyp; ; - break;} -case 398: -#line 1169 "cgrammar.y" -{ yyval.ntyp = idDecl_undefined; ; - break;} -case 399: -#line 1170 "cgrammar.y" -{ yyval.ntyp = yyvsp[-3].ntyp; ; - break;} -case 400: -#line 1175 "cgrammar.y" -{ yyval.ctyp = declareUnnamedEnum (yyvsp[-2].enumnamelist); ; - break;} -case 401: -#line 1176 "cgrammar.y" -{ context_pushLoc (); ; - break;} -case 402: -#line 1177 "cgrammar.y" -{ context_popLoc (); yyval.ctyp = declareEnum (yyvsp[-5].cname, yyvsp[-2].enumnamelist); ; - break;} -case 403: -#line 1178 "cgrammar.y" -{ yyval.ctyp = handleEnum (yyvsp[-1].cname); ; - break;} -case 404: -#line 1182 "cgrammar.y" -{ yyval.enumnamelist = enumNameList_single (yyvsp[0].cname); ; - break;} -case 405: -#line 1184 "cgrammar.y" -{ yyval.enumnamelist = enumNameList_push (yyvsp[-2].enumnamelist, yyvsp[0].cname); ; - break;} -case 407: -#line 1189 "cgrammar.y" -{ uentry ue = uentry_makeEnumConstant (yyvsp[0].cname, ctype_unknown); - usymtab_supGlobalEntry (ue); - yyval.cname = yyvsp[0].cname; - ; - break;} -case 408: -#line 1194 "cgrammar.y" -{ uentry ue = uentry_makeEnumInitializedConstant (yyvsp[-3].cname, ctype_unknown, yyvsp[0].expr); - usymtab_supGlobalEntry (ue); - yyval.cname = yyvsp[-3].cname; - ; - break;} -case 410: -#line 1201 "cgrammar.y" -{ yyval.ntyp = idDecl_create (cstring_undefined, qtype_create (yyvsp[0].ctyp)); ; - break;} -case 411: -#line 1203 "cgrammar.y" -{ - qtype qt = qtype_unknown (); - - qtype_adjustPointers (yyvsp[-1].count, qt); - yyval.ntyp = idDecl_create (cstring_copy (LastIdentifier ()), qt); - ; - break;} -case 412: -#line 1210 "cgrammar.y" -{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; - break;} -case 414: -#line 1215 "cgrammar.y" -{ yyval.ntyp = yyvsp[0].ntyp; qtype_adjustPointers (yyvsp[-1].count, idDecl_getTyp (yyval.ntyp)); ; - break;} -case 415: -#line 1218 "cgrammar.y" -{ yyval.entrylist = handleParamTypeList (yyvsp[0].entrylist); ; - break;} -case 416: -#line 1219 "cgrammar.y" -{ yyval.entrylist = handleParamIdList (yyvsp[0].entrylist); ; - break;} -case 417: -#line 1222 "cgrammar.y" -{ /* ignored for now */; ; - break;} -case 418: -#line 1223 "cgrammar.y" -{ ; ; - break;} -case 419: -#line 1226 "cgrammar.y" -{ ; ; - break;} -case 420: -#line 1227 "cgrammar.y" -{ ; ; - break;} -case 421: -#line 1230 "cgrammar.y" -{ yyval.count = 1; ; - break;} -case 422: -#line 1231 "cgrammar.y" -{ yyval.count = 1; ; - break;} -case 423: -#line 1232 "cgrammar.y" -{ yyval.count = 1 + yyvsp[0].count; ; - break;} -case 424: -#line 1233 "cgrammar.y" -{ yyval.count = 1 + yyvsp[0].count; ; - break;} -case 426: -#line 1237 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; - break;} -case 427: -#line 1240 "cgrammar.y" -{ yyval.entrylist = uentryList_single (uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; - break;} -case 428: -#line 1241 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeVariableLoc (yyvsp[0].cname, ctype_int)); ; - break;} -case 429: -#line 1244 "cgrammar.y" -{ yyval.entrylist = uentryList_single (uentry_makeElipsisMarker ()); ; - break;} -case 431: -#line 1246 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-2].entrylist, uentry_makeElipsisMarker ()); ; - break;} -case 432: -#line 1249 "cgrammar.y" -{ storeLoc (); ; - break;} -case 433: -#line 1249 "cgrammar.y" -{ yyval.entrylist = uentryList_single (yyvsp[0].oentry); ; - break;} -case 434: -#line 1250 "cgrammar.y" -{ storeLoc (); ; - break;} -case 435: -#line 1251 "cgrammar.y" -{ yyval.entrylist = uentryList_add (yyvsp[-3].entrylist, yyvsp[0].oentry); ; - break;} -case 436: -#line 1255 "cgrammar.y" -{ - if (isFlipOldStyle ()) - { - llparseerror (cstring_makeLiteral ("Inconsistent function parameter syntax (mixing old and new style declaration)")); - } - else - { - setNewStyle (); - } - yyval.oentry = makeCurrentParam (idDecl_fixParamBase (yyvsp[-1].ntyp, yyvsp[-2].qtyp)); - ; - break;} -case 437: -#line 1267 "cgrammar.y" -{ - idDecl tparam = idDecl_create (yyvsp[0].cname, qtype_unknown ()); - - if (isNewStyle ()) - { - llparseerror (message ("Inconsistent function parameter syntax: %q", - idDecl_unparse (tparam))); - } - - setFlipOldStyle (); - yyval.oentry = makeCurrentParam (tparam); - idDecl_free (tparam); - ; - break;} -case 439: -#line 1283 "cgrammar.y" -{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; - break;} -case 440: -#line 1286 "cgrammar.y" -{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ; - break;} -case 442: -#line 1288 "cgrammar.y" -{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ; - break;} -case 443: -#line 1291 "cgrammar.y" -{ yyval.ctyp = ctype_unknown; ; - break;} -case 445: -#line 1296 "cgrammar.y" -{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; - break;} -case 446: -#line 1297 "cgrammar.y" -{ yyval.ctyp = ctype_makeArray (ctype_unknown); ; - break;} -case 447: -#line 1299 "cgrammar.y" -{ yyval.ctyp = ctype_makeFixedArray (ctype_unknown, exprNode_getLongValue (yyvsp[-1].expr)); ; - break;} -case 448: -#line 1300 "cgrammar.y" -{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ; - break;} -case 449: -#line 1302 "cgrammar.y" -{ yyval.ctyp = ctype_makeFixedArray (yyvsp[-3].ctyp, exprNode_getLongValue (yyvsp[-1].expr)); ; - break;} -case 450: -#line 1304 "cgrammar.y" -{ yyval.ctyp = ctype_makeFunction (ctype_unknown, uentryList_makeMissingParams ()); ; - break;} -case 451: -#line 1306 "cgrammar.y" -{ yyval.ctyp = ctype_makeParamsFunction (ctype_unknown, yyvsp[-1].entrylist); ; - break;} -case 452: -#line 1308 "cgrammar.y" -{ yyval.ctyp = ctype_makeFunction (yyvsp[-3].ctyp, uentryList_makeMissingParams ()); ; - break;} -case 453: -#line 1310 "cgrammar.y" -{ yyval.ctyp = ctype_makeParamsFunction (yyvsp[-4].ctyp, yyvsp[-1].entrylist); ; - break;} -case 463: -#line 1338 "cgrammar.y" -{ yyval.expr = exprNode_labelMarker (yyvsp[0].cname); ; - break;} -case 464: -#line 1343 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 467: -#line 1351 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 468: -#line 1355 "cgrammar.y" -{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 469: -#line 1357 "cgrammar.y" -{ yyval.expr = exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr); ; - break;} -case 470: -#line 1359 "cgrammar.y" -{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; - break;} -case 471: -#line 1361 "cgrammar.y" -{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 472: -#line 1365 "cgrammar.y" -{ context_setProtectVars (); ; - break;} -case 473: -#line 1365 "cgrammar.y" -{ context_sizeofReleaseVars (); ; - break;} -case 474: -#line 1367 "cgrammar.y" -{ yyval.expr = exprNode_forPred (yyvsp[-7].expr, yyvsp[-5].expr, yyvsp[-2].expr); - context_enterForClause (yyvsp[-5].expr); ; - break;} -case 475: -#line 1372 "cgrammar.y" -{ setProcessingIterVars (yyvsp[-2].entry); ; - break;} -case 476: -#line 1374 "cgrammar.y" -{ yyval.expr = exprNode_iterStart (yyvsp[-5].entry, yyvsp[-1].alist); ; - break;} -case 477: -#line 1375 "cgrammar.y" -{ yyval.expr = exprNode_createId (yyvsp[0].entry); ; - break;} -case 481: -#line 1381 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 489: -#line 1389 "cgrammar.y" -{ yyval.expr = yyvsp[-1].expr; ; - break;} -case 490: -#line 1390 "cgrammar.y" -{ yyval.expr = exprNode_makeError (); ; - break;} -case 491: -#line 1394 "cgrammar.y" -{ /* don't: context_exitTrueClause ($1, $2); */ - yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); - ; - break;} -case 492: -#line 1399 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; - break;} -case 493: -#line 1402 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; - break;} -case 504: -#line 1417 "cgrammar.y" -{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; - break;} -case 506: -#line 1419 "cgrammar.y" -{ yyval.expr = exprNode_makeError (); ; - break;} -case 507: -#line 1422 "cgrammar.y" -{ yyval.expr = exprNode_labelMarker (yyvsp[-1].cname); ; - break;} -case 508: -#line 1423 "cgrammar.y" -{ yyval.expr = exprNode_notReached (yyvsp[0].expr); ; - break;} -case 509: -#line 1429 "cgrammar.y" -{ context_enterCaseClause (yyvsp[0].expr); ; - break;} -case 510: -#line 1430 "cgrammar.y" -{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, FALSE); ; - break;} -case 511: -#line 1431 "cgrammar.y" -{ context_enterCaseClause (yyvsp[0].expr); ; - break;} -case 512: -#line 1432 "cgrammar.y" -{ yyval.expr = exprNode_caseMarker (yyvsp[-2].expr, TRUE); ; - break;} -case 513: -#line 1435 "cgrammar.y" -{ context_enterCaseClause (exprNode_undefined); ; - break;} -case 514: -#line 1436 "cgrammar.y" -{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, FALSE); ; - break;} -case 515: -#line 1437 "cgrammar.y" -{ context_enterCaseClause (exprNode_undefined); ; - break;} -case 516: -#line 1438 "cgrammar.y" -{ yyval.expr = exprNode_defaultMarker (yyvsp[-2].tok, TRUE); ; - break;} -case 517: -#line 1441 "cgrammar.y" -{ yyval.expr = yyvsp[-1].expr; ; - break;} -case 518: -#line 1443 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; context_exitInner (yyvsp[0].expr); ; - break;} -case 519: -#line 1446 "cgrammar.y" -{ yyval.expr = yyvsp[-1].expr; ; - break;} -case 520: -#line 1449 "cgrammar.y" -{ context_enterInnerContext (); ; - break;} -case 521: -#line 1452 "cgrammar.y" -{ context_exitInnerPlain (); ; - break;} -case 522: -#line 1455 "cgrammar.y" -{ context_enterStructInnerContext (); ; - break;} -case 523: -#line 1458 "cgrammar.y" -{ context_exitStructInnerContext (); ; - break;} -case 524: -#line 1461 "cgrammar.y" -{ context_exitInnerSafe (); ; - break;} -case 525: -#line 1464 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; - break;} -case 526: -#line 1465 "cgrammar.y" -{ yyval.expr = exprNode_notReached (exprNode_createTok (yyvsp[0].tok)); ; - break;} -case 527: -#line 1466 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; - break;} -case 528: -#line 1468 "cgrammar.y" -{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; - break;} -case 529: -#line 1469 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; - break;} -case 530: -#line 1471 "cgrammar.y" -{ yyval.expr = exprNode_notReached (exprNode_updateLocation (yyvsp[-2].expr, lltok_getLoc (yyvsp[0].tok))); ; - break;} -case 531: -#line 1473 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; - break;} -case 532: -#line 1475 "cgrammar.y" -{ yyval.expr = exprNode_notReached (exprNode_updateLocation (exprNode_concat (yyvsp[-3].expr, yyvsp[-2].expr), - lltok_getLoc (yyvsp[-1].tok))); - ; - break;} -case 533: -#line 1482 "cgrammar.y" -{ yyval.expr = exprNode_makeBlock (yyvsp[0].expr); ; - break;} -case 534: -#line 1486 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; - break;} -case 535: -#line 1488 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; - break;} -case 536: -#line 1490 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (yyvsp[-1].expr, lltok_getLoc (yyvsp[0].tok)); ; - break;} -case 537: -#line 1492 "cgrammar.y" -{ yyval.expr = exprNode_updateLocation (exprNode_concat (yyvsp[-2].expr, yyvsp[-1].expr), lltok_getLoc (yyvsp[0].tok)); ; - break;} -case 539: -#line 1496 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 540: -#line 1499 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 541: -#line 1500 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 542: -#line 1503 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 543: -#line 1504 "cgrammar.y" -{ yyval.expr = exprNode_concat (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 544: -#line 1507 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; - break;} -case 545: -#line 1508 "cgrammar.y" -{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ; - break;} -case 546: -#line 1511 "cgrammar.y" -{ yyval.expr = exprNode_createTok (yyvsp[0].tok); ; - break;} -case 547: -#line 1512 "cgrammar.y" -{ yyval.expr = exprNode_statement (yyvsp[-1].expr, yyvsp[0].tok); ; - break;} -case 548: -#line 1513 "cgrammar.y" -{ yyval.expr = exprNode_checkExpr (yyvsp[0].expr); ; - break;} -case 549: -#line 1517 "cgrammar.y" -{ yyval.expr = yyvsp[-1].expr; exprNode_produceGuards (yyvsp[-1].expr); context_enterTrueClause (yyvsp[-1].expr); ; - break;} -case 550: -#line 1525 "cgrammar.y" -{ - context_exitTrueClause (yyvsp[-1].expr, yyvsp[0].expr); - yyval.expr = exprNode_if (yyvsp[-1].expr, yyvsp[0].expr); - ; - break;} -case 551: -#line 1529 "cgrammar.y" -{ context_enterFalseClause (yyvsp[-2].expr); ; - break;} -case 552: -#line 1530 "cgrammar.y" -{ - context_exitClause (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); - yyval.expr = exprNode_ifelse (yyvsp[-4].expr, yyvsp[-3].expr, yyvsp[0].expr); - ; - break;} -case 553: -#line 1534 "cgrammar.y" -{ context_enterSwitch (yyvsp[0].expr); ; - break;} -case 554: -#line 1535 "cgrammar.y" -{ yyval.expr = exprNode_switch (yyvsp[-3].expr, yyvsp[0].expr); ; - break;} -case 555: -#line 1539 "cgrammar.y" -{ yyval.expr = exprNode_whilePred (yyvsp[-1].expr); context_enterWhileClause (yyvsp[-1].expr); ; - break;} -case 556: -#line 1543 "cgrammar.y" -{ yyval.expr = exprNode_whilePred(yyvsp[-1].expr); ; - break;} -case 557: -#line 1546 "cgrammar.y" -{ context_enterIterClause (); ; - break;} -case 558: -#line 1547 "cgrammar.y" -{ setProcessingIterVars (yyvsp[-3].entry); ; - break;} -case 559: -#line 1550 "cgrammar.y" -{ - yyval.expr = exprNode_iter (yyvsp[-9].entry, yyvsp[-4].alist, yyvsp[-2].expr, yyvsp[-1].entry); - - ; - break;} -case 560: -#line 1556 "cgrammar.y" -{ yyval.alist = exprNodeList_singleton (yyvsp[0].expr); ; - break;} -case 561: -#line 1557 "cgrammar.y" -{ nextIterParam (); ; - break;} -case 562: -#line 1558 "cgrammar.y" -{ yyval.alist = exprNodeList_push (yyvsp[-3].alist, yyvsp[0].expr); ; - break;} -case 563: -#line 1561 "cgrammar.y" -{ yyval.expr = exprNode_iterExpr (yyvsp[0].expr); ; - break;} -case 564: -#line 1562 "cgrammar.y" -{ yyval.expr = exprNode_iterId (yyvsp[0].entry); ; - break;} -case 565: -#line 1563 "cgrammar.y" -{ uentry ue = coerceIterId (yyvsp[0].cname); - - if (uentry_isValid (ue)) - { - yyval.expr = exprNode_iterId (ue); - } - else - { - yyval.expr = exprNode_iterNewId (cstring_copy (LastIdentifier ())); - } - ; - break;} -case 566: -#line 1574 "cgrammar.y" -{ yyval.expr = exprNode_iterNewId (yyvsp[0].cname); ; - break;} -case 568: -#line 1582 "cgrammar.y" -{ yyval.expr = exprNode_addParens (yyvsp[-2].tok, yyvsp[-1].expr); ; - break;} -case 570: -#line 1586 "cgrammar.y" -{ yyval.expr = exprNode_arrayFetch (yyvsp[-3].expr, yyvsp[-1].expr); ; - break;} -case 571: -#line 1587 "cgrammar.y" -{ yyval.expr = exprNode_functionCall (yyvsp[-2].expr, exprNodeList_new ()); ; - break;} -case 572: -#line 1588 "cgrammar.y" -{ yyval.expr = exprNode_functionCall (yyvsp[-3].expr, yyvsp[-1].alist); ; - break;} -case 573: -#line 1590 "cgrammar.y" -{ yyval.expr = exprNode_vaArg (yyvsp[-5].tok, yyvsp[-3].expr, yyvsp[-1].qtyp); ; - break;} -case 574: -#line 1591 "cgrammar.y" -{ yyval.expr = exprNode_fieldAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; - break;} -case 575: -#line 1592 "cgrammar.y" -{ yyval.expr = exprNode_arrowAccess (yyvsp[-4].expr, yyvsp[-1].cname); ; - break;} -case 576: -#line 1593 "cgrammar.y" -{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; - break;} -case 577: -#line 1594 "cgrammar.y" -{ yyval.expr = exprNode_postOp (yyvsp[-1].expr, yyvsp[0].tok); ; - break;} -case 579: -#line 1598 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 580: -#line 1599 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 581: -#line 1600 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 582: -#line 1601 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 583: -#line 1602 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 584: -#line 1603 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 585: -#line 1604 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 586: -#line 1605 "cgrammar.y" -{ yyval.expr = exprNode_preOp (yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 587: -#line 1606 "cgrammar.y" -{ yyval.expr = yyvsp[0].expr; ; - break;} -case 589: -#line 1610 "cgrammar.y" -{ yyval.expr = exprNode_cast (yyvsp[-3].tok, yyvsp[0].expr, yyvsp[-2].qtyp); ; - break;} -case 591: -#line 1614 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 592: -#line 1615 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 593: -#line 1616 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 595: -#line 1620 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 596: -#line 1621 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 598: -#line 1625 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 599: -#line 1626 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 601: -#line 1630 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 602: -#line 1631 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 603: -#line 1632 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 604: -#line 1633 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 606: -#line 1637 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 607: -#line 1638 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 609: -#line 1642 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 611: -#line 1646 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 613: -#line 1651 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 615: -#line 1655 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 617: -#line 1659 "cgrammar.y" -{ yyval.expr = exprNode_op (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 619: -#line 1663 "cgrammar.y" -{ context_enterTrueClause (yyvsp[-1].expr); ; - break;} -case 620: -#line 1664 "cgrammar.y" -{ context_enterFalseClause (yyvsp[-4].expr); ; - break;} -case 621: -#line 1665 "cgrammar.y" -{ yyval.expr = exprNode_cond (yyvsp[-6].expr, yyvsp[-3].expr, yyvsp[0].expr); ; - break;} -case 623: -#line 1669 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 624: -#line 1670 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 625: -#line 1671 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 626: -#line 1672 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 627: -#line 1673 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 628: -#line 1674 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 629: -#line 1675 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 630: -#line 1676 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 631: -#line 1677 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 632: -#line 1678 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 633: -#line 1679 "cgrammar.y" -{ yyval.expr = exprNode_assign (yyvsp[-2].expr, yyvsp[0].expr, yyvsp[-1].tok); ; - break;} -case 634: -#line 1682 "cgrammar.y" -{ yyval.entry = yyvsp[0].entry; ; - break;} -case 635: -#line 1683 "cgrammar.y" -{ yyval.entry = uentry_undefined; ; - break;} -case 636: -#line 1686 "cgrammar.y" -{ context_enterDoWhileClause (); yyval.tok = yyvsp[0].tok; ; - break;} -case 637: -#line 1690 "cgrammar.y" -{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 638: -#line 1692 "cgrammar.y" -{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ; - break;} -case 639: -#line 1694 "cgrammar.y" -{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 640: -#line 1697 "cgrammar.y" -{ yyval.expr = exprNode_while (yyvsp[-1].expr, yyvsp[0].expr); context_exitWhileClause (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 641: -#line 1699 "cgrammar.y" -{ yyval.expr = exprNode_statement (exprNode_doWhile (yyvsp[-5].expr, yyvsp[-2].expr), yyvsp[0].tok); ; - break;} -case 642: -#line 1701 "cgrammar.y" -{ yyval.expr = exprNode_doWhile (yyvsp[-4].expr, yyvsp[-1].expr); ; - break;} -case 643: -#line 1702 "cgrammar.y" -{ yyval.expr = exprNode_for (yyvsp[-1].expr, yyvsp[0].expr); context_exitForClause (yyvsp[-1].expr, yyvsp[0].expr); ; - break;} -case 644: -#line 1705 "cgrammar.y" -{ yyval.expr = exprNode_goto (yyvsp[-1].cname); ; - break;} -case 645: -#line 1706 "cgrammar.y" -{ yyval.expr = exprNode_continue (yyvsp[-1].tok, BADTOK); ; - break;} -case 646: -#line 1708 "cgrammar.y" -{ yyval.expr = exprNode_continue (yyvsp[-2].tok, QINNERCONTINUE); ; - break;} -case 647: -#line 1709 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, BADTOK); ; - break;} -case 648: -#line 1710 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSWITCHBREAK); ; - break;} -case 649: -#line 1711 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QLOOPBREAK); ; - break;} -case 650: -#line 1712 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QINNERBREAK); ; - break;} -case 651: -#line 1713 "cgrammar.y" -{ yyval.expr = exprNode_break (yyvsp[-1].tok, QSAFEBREAK); ; - break;} -case 652: -#line 1714 "cgrammar.y" -{ yyval.expr = exprNode_nullReturn (yyvsp[-1].tok); ; - break;} -case 653: -#line 1715 "cgrammar.y" -{ yyval.expr = exprNode_return (yyvsp[-1].expr); ; - break;} -case 655: -#line 1719 "cgrammar.y" -{ ; ; - break;} -case 658: -#line 1726 "cgrammar.y" -{ yyval.cname = uentry_getName (yyvsp[0].entry); ; - break;} -case 659: -#line 1727 "cgrammar.y" -{ yyval.cname = uentry_getName (yyvsp[0].entry); ; - break;} -case 660: -#line 1728 "cgrammar.y" -{ yyval.cname = uentry_getName (yyvsp[0].entry); ; - break;} -case 661: -#line 1729 "cgrammar.y" -{ yyval.cname = yyvsp[0].cname; ; - break;} -case 663: -#line 1733 "cgrammar.y" -{ yyval.ctyp = ctype_unknown; ; - break;} -} - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/lib/bison.simple" - - yyvsp -= yylen; - yyssp -= yylen; -#ifdef YYLSP_NEEDED - yylsp -= yylen; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - - *++yyvsp = yyval; - -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ - - yyn = yyr1[yyn]; - - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) - yystate = yytable[yystate]; - else - yystate = yydefgoto[yyn - YYNTBASE]; - - goto yynewstate; - -yyerrlab: /* here on detecting error */ - - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ - { - ++yynerrs; - -#ifdef YYERROR_VERBOSE - yyn = yypact[yystate]; - - if (yyn > YYFLAG && yyn < YYLAST) - { - int size = 0; - char *msg; - int x, count; - - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) - { - strcpy(msg, "parse error"); - - if (count < 5) - { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; - } - } - yyerror(msg); - free(msg); - } - else - yyerror ("parse error; also virtual memory exceeded"); - } - else -#endif /* YYERROR_VERBOSE */ - yyerror("parse error"); - } - - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ - - if (yyerrstatus == 3) - { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ - - /* return failure if at end of input */ - if (yychar == YYEOF) - YYABORT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif - - yychar = YYEMPTY; - } - - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - -yyerrdefault: /* current state does not do anything special for the error token. */ - -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif - -yyerrpop: /* pop the current state because it cannot handle the error token */ - - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - - if (yyn == YYFINAL) - YYACCEPT; - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif - - yystate = yyn; - goto yynewstate; - - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 1; -} -#line 1735 "cgrammar.y" - - -/*@-redecl@*/ -extern char *yytext; -/*@=redecl@*/ - -# include "bison.reset" - -void yyerror (/*@unused@*/ char *s) -{ - static bool givehint = FALSE; - - if (context_inIterDef ()) - { - llerror (FLG_SYNTAX, message ("Iter syntax not parseable: %s", - context_inFunctionName ())); - } - else if (context_inIterEnd ()) - { - llerror (FLG_SYNTAX, message ("Iter finalizer syntax not parseable: %s", - context_inFunctionName ())); - } - else if (context_inMacro ()) - { - llerror (FLG_SYNTAX, message ("Macro syntax not parseable: %s", - context_inFunctionName ())); - - if (context_inMacroUnknown ()) - { - if (!givehint) - { - llhint (cstring_makeLiteral - ("Precede macro definition with /*@notfunction@*/ " - "to suppress checking and force expansion")); - givehint = TRUE; - } - } - - swallowMacro (); - } - else - { - llparseerror (cstring_undefined); - } -} - -void printState (idDecl t) { - cstring id = idDecl_getName (t); - uentry ue = usymtab_lookupSafe (id); - - sRef s = uentry_getSref (ue); - - printf("State = %d\n", s->bufinfo.bufstate); -} - - -/*take this out soon */ -/* void testassert1 (cstring id, icstring cons ) { */ - /* uentry ue =usymtab_lookupSafe (id); */ -/* sRef s = uentry_getSref (ue); */ -/* printf ("Doing testassert1 with setbuffersize\n"); */ -/* printf("State = %d\n", s->bufinfo.bufstate); */ -/* } */ -/* void testassert2 (cstring id) { */ -/* uentry ue =usymtab_lookupSafe (id); */ -/* sRef s = uentry_getSref (ue); */ -/* printf ("Doing testassert2 with setbuffersize\n"); */ -/* printf("State = %d\n", s->bufinfo.bufstate); */ -/* } */ - - - - - - diff --git a/src/cgrammar.y b/src/cgrammar.y index ea03f8a..787c8de 100644 --- a/src/cgrammar.y +++ b/src/cgrammar.y @@ -73,33 +73,44 @@ void yyerror (char *s); %union { - lltok tok; - int count; - specialClauseKind sck; - qual typequal; - qualList tquallist; - ctype ctyp; - sRef sr; - /*@only@*/ qtype qtyp; - /*@only@*/ cstring cname; - /*@only@*/ idDecl ntyp; - /*@only@*/ idDeclList ntyplist; - /*@only@*/ uentryList flist; - /*@owned@*/ uentryList entrylist; - /*@observer@*/ /*@dependent@*/ uentry entry; - /*@only@*/ uentry oentry; - /*@only@*/ exprNode expr; - /*@only@*/ enumNameList enumnamelist; - /*@only@*/ exprNodeList alist; - /*@only@*/ sRefSet srset; - /*@only@*/ cstringList cstringlist; + lltok tok; + int count; + qual typequal; + qualList tquallist; + ctype ctyp; + sRef sr; + + /*@only@*/ functionClauseList funcclauselist; + /*@only@*/ functionClause funcclause; + /*@only@*/ flagSpec flagspec; + /*@only@*/ globalsClause globsclause; + /*@only@*/ modifiesClause modsclause; + /*@only@*/ warnClause warnclause; + /*@only@*/ stateClause stateclause; + + /*@only@*/ sRefList srlist; + /*@only@*/ globSet globset; + /*@only@*/ qtype qtyp; + /*@only@*/ cstring cname; + /*@observer@*/ annotationInfo annotation; + /*@only@*/ idDecl ntyp; + /*@only@*/ idDeclList ntyplist; + /*@only@*/ uentryList flist; + /*@owned@*/ uentryList entrylist; + /*@observer@*/ /*@dependent@*/ uentry entry; + /*@only@*/ uentry oentry; + /*@only@*/ exprNode expr; + /*@only@*/ enumNameList enumnamelist; + /*@only@*/ exprNodeList alist; + /*@only@*/ sRefSet srset; + /*@only@*/ cstringList cstringlist; /*drl added 1/19/2001 */ constraint con; constraintList conL; constraintExpr conE; - /* drl */ + /* drl */ } /* standard C tokens */ @@ -117,6 +128,7 @@ void yyerror (char *s); %token LEFT_ASSIGN RIGHT_ASSIGN AND_ASSIGN XOR_ASSIGN OR_ASSIGN %token CSTRUCT CUNION CENUM %token VA_ARG VA_DCL +%token QWARN %token QGLOBALS %token QMODIFIES %token QNOMODS @@ -168,6 +180,7 @@ void yyerror (char *s); %token CGCHAR CBOOL CINT CGFLOAT CDOUBLE CVOID %token QANYTYPE QINTEGRALTYPE QUNSIGNEDINTEGRALTYPE QSIGNEDINTEGRALTYPE +%type nullterminatedQualifier %token QNULLTERMINATED %token QSETBUFFERSIZE %token QBUFFERCONSTRAINT @@ -183,16 +196,34 @@ void yyerror (char *s); /* identifiers, literals */ %token IDENTIFIER %token NEW_IDENTIFIER TYPE_NAME_OR_ID -%token CCONSTANT +%token CANNOTATION +%token CCONSTANT +%type flagId +%type flagSpec +%type cconstantExpr %token ITER_NAME ITER_ENDNAME %type endIter -%type globId + +%type functionClauses functionClausesPlain +%type functionClause functionClause functionClausePlain + +%type globalsClause globalsClausePlain +%type modifiesClause modifiesClausePlain nomodsClause +%type warnClause warnClausePlain +%type conditionClause conditionClausePlain +%type stateClause stateClausePlain + +%type globId globIdListExpr +%type globIdList + %token TYPE_NAME %type enumerator newId /*@-varuse@*/ /* yacc declares yytranslate here */ %type pointers /*@=varuse@*/ -%type doHeader specialTag endSpecialTag stateSpecialClause endStateTag -%type specialClauseType +%type doHeader stateTag conditionTag +%type exitsQualifier checkQualifier stateQualifier + paramQualifier returnQualifier visibilityQualifier + typedefQualifier refcountQualifier definedQualifier /* type construction */ %type abstractDecl abstractDeclBase optAbstractDeclBase @@ -212,7 +243,7 @@ void yyerror (char *s); %type argumentExprList iterArgList %type initList %type structDeclList structDecl -%type locModifies locPlainModifies modList specClauseList +%type locModifies modList specClauseList optSpecClauseList %type mExpr modListExpr specClauseListExpr /*drl*/ @@ -253,7 +284,6 @@ void yyerror (char *s); %type expressionStmt selectionStmt iterationStmt jumpStmt iterDefIterationStmt %type stmtErr stmtListErr compoundStmtErr expressionStmtErr %type iterationStmtErr initializerList initializer ifPred whilePred forPred iterWhilePred -%type tst1 %type storageSpecifier typeQualifier typeModifier globQual %type optGlobQuals @@ -289,9 +319,11 @@ constantDecl { checkValueConstant ($2, $4, $8) ; } fcnDecl - : QFUNCTION { context_enterFunctionDecl (); } plainFcn optSemi QENDMACRO - { declareStaticFunction ($3); context_quietExitFunction (); - context_exitFunctionDecl (); } + : QFUNCTION { context_enterFunctionHeader (); } plainFcn optSemi QENDMACRO + { + declareStaticFunction ($3); context_quietExitFunction (); + context_exitFunctionHeader (); + } plainFcn : plainNamedDecl @@ -319,23 +351,25 @@ namedDeclBase $$ = idDecl_replaceCtype ($1, ctype_makeFixedArray (idDecl_getCtype ($1), exprNode_getLongValue ($4))); } | namedDeclBase PushType TLPAREN TRPAREN - { setCurrentParams (uentryList_missingParams); - } - optGlobMods optGlobBufConstraints + { setCurrentParams (uentryList_missingParams); } + functionClauses + optGlobBufConstraints { /* need to support globals and modifies here! */ ctype ct = ctype_makeFunction (idDecl_getCtype ($1), uentryList_makeMissingParams ()); - + $$ = idDecl_replaceCtype ($1, ct); + idDecl_addClauses ($$, $6); context_popLoc (); } | namedDeclBase PushType TLPAREN genericParamList TRPAREN - { setCurrentParams ($4); - } - optGlobMods optGlobBufConstraints + { setCurrentParams ($4); } + functionClauses + optGlobBufConstraints { setImplictfcnConstraints (); clearCurrentParams (); $$ = idDecl_replaceCtype ($1, ctype_makeFunction (idDecl_getCtype ($1), $4)); + idDecl_addClauses ($$, $7); context_popLoc (); } @@ -362,28 +396,29 @@ plainNamedDeclBase $$ = idDecl_replaceCtype ($1, ctype_makeFixedArray (idDecl_getCtype ($1), value)); } | plainNamedDeclBase PushType TLPAREN TRPAREN - { setCurrentParams (uentryList_missingParams); - } - optPlainGlobMods - { /* need to support globals and modifies here! */ + { setCurrentParams (uentryList_missingParams); } + functionClausesPlain + { ctype ct = ctype_makeFunction (idDecl_getCtype ($1), uentryList_makeMissingParams ()); - + $$ = idDecl_replaceCtype ($1, ct); + idDecl_addClauses ($$, $6); context_popLoc (); } | plainNamedDeclBase PushType TLPAREN genericParamList TRPAREN - { setCurrentParams ($4); - } - optPlainGlobMods - { clearCurrentParams (); + { setCurrentParams ($4); } + functionClausesPlain + { + clearCurrentParams (); $$ = idDecl_replaceCtype ($1, ctype_makeFunction (idDecl_getCtype ($1), $4)); + idDecl_addClauses ($$, $7); context_popLoc (); } iterDecl : QITER newId TLPAREN genericParamList TRPAREN - { setCurrentParams ($4); } optPlainGlobMods + { setCurrentParams ($4); } functionClausesPlain { clearCurrentParams (); } optSemi QENDMACRO { declareCIter ($2, $4); } @@ -394,12 +429,7 @@ macroDef | LLMACRO TENDMACRO /* no stmt */ { exprChecks_checkEmptyMacroBody (); } fcnDefHdr - : fcnDefHdrAux { declareFunction ($1); } - -optGlobMods - : { setProcessingGlobMods (); } optGlobModsRest - { clearProcessingGlobMods (); } - + : fcnDefHdrAux { clabstract_declareFunction ($1); } /*drl*/ @@ -407,7 +437,6 @@ optGlobBufConstraints : { setProcessingGlobMods (); } optGlobBufConstraintsRest { clearProcessingGlobMods (); } - optGlobBufConstraintsRest : optGlobBufConstraintsAux optGlobEnsuresConstraintsAux @@ -481,7 +510,7 @@ BufConstraintSrefExpr : id { $$ = checkbufferConstraintClausesId ($1);} - | NEW_IDENTIFIER { $$ = fixSpecClausesId ($1); } + | NEW_IDENTIFIER { $$ = fixStateClausesId ($1); } | BufConstraintSrefExpr TLSQBR TRSQBR { $$ = sRef_makeAnyArrayFetch ($1); } | BufConstraintSrefExpr TLSQBR CCONSTANT TRSQBR { @@ -516,45 +545,105 @@ BufBinaryOp : TPLUS | TMINUS ; +/* +** Function clauses can appear in any order. +*/ +functionClauses + : { $$ = functionClauseList_new (); } + | functionClause functionClauses + { $$ = functionClauseList_prepend ($2, $1); } -koptPlainGlobMods - : { setProcessingGlobMods (); } optPlainGlobModsRest - { clearProcessingGlobMods (); } +/* +** Inside macro definitions, there are no end macros. +*/ +functionClausesPlain + : + { $$ = functionClauseList_new (); } + | functionClausePlain functionClausesPlain + { $$ = functionClauseList_prepend ($2, $1); } + +functionClause + : globalsClause { $$ = functionClause_createGlobals ($1); } + | modifiesClause { $$ = functionClause_createModifies ($1); } + | nomodsClause { $$ = functionClause_createModifies ($1); } + | stateClause { $$ = functionClause_createState ($1); } + | conditionClause { $$ = functionClause_createState ($1); } + | warnClause { $$ = functionClause_createWarn ($1); } + +functionClausePlain + : globalsClausePlain { $$ = functionClause_createGlobals ($1); } + | modifiesClausePlain { $$ = functionClause_createModifies ($1); } + | nomodsClause { $$ = functionClause_createModifies ($1); } + | stateClausePlain { $$ = functionClause_createState ($1); } + | conditionClausePlain { $$ = functionClause_createState ($1); } + | warnClausePlain { $$ = functionClause_createWarn ($1); } + +globalsClause + : globalsClausePlain QENDMACRO { $$ = $1; } + +globalsClausePlain + : QGLOBALS { setProcessingGlobalsList (); } + globIdList optSemi + { + unsetProcessingGlobals (); + $$ = globalsClause_create ($1, $3); + } -/*: id { $$ = unentry_getSref($1); checkModifiesId ($1); } -| NEW_INDENTIFIER { $$ = fixModifiesId ($1)} */ +nomodsClause + : QNOMODS { $$ = modifiesClause_createNoMods ($1); } -/*end*/ +modifiesClause + : modifiesClausePlain QENDMACRO { $$ = $1; } +modifiesClausePlain + : QMODIFIES + { + context_setProtectVars (); enterParamsTemp (); + sRef_setGlobalScopeSafe (); + } + locModifies + { + exitParamsTemp (); + sRef_clearGlobalScopeSafe (); + context_releaseVars (); + $$ = modifiesClause_create ($1, $3); + } -optPlainGlobMods - : { setProcessingGlobMods (); } optPlainGlobModsRest - { clearProcessingGlobMods (); } +flagSpec + : flagId + { $$ = flagSpec_createPlain ($1); } + | flagId TBAR flagSpec + { $$ = flagSpec_createOr ($1, $3); } -optGlobModsRest - : optGlobModsAux - | specialClauses optGlobModsAux +flagId + : NEW_IDENTIFIER -optPlainGlobModsRest - : optPlainGlobModsAux - | specialClauses optPlainGlobModsAux +warnClause + : warnClausePlain QENDMACRO { $$ = $1; } + +warnClausePlain + : QWARN flagSpec cconstantExpr + { $$ = warnClause_create ($1, $2, $3); } + | QWARN flagSpec + { $$ = warnClause_create ($1, $2, exprNode_undefined); } -specialClauses - : specialClause - | specialClause specialClauses - globIdList - : globIdListExpr { ; } - | globIdList TCOMMA globIdListExpr { ; } + : globIdListExpr { $$ = globSet_single ($1); } + | globIdList TCOMMA globIdListExpr { $$ = globSet_insert ($1, $3); } globIdListExpr - : optGlobQuals globId { globListAdd ($2, $1); } + : optGlobQuals globId { $$ = clabstract_createGlobal ($2, $1); } + +optGlobQuals + : /* empty */ { $$ = qualList_undefined; } + | globQual optGlobQuals { $$ = qualList_add ($2, $1); } globId : id { $$ = uentry_getSref ($1); } - | NEW_IDENTIFIER { $$ = globListUnrecognized ($1); } + | NEW_IDENTIFIER { $$ = clabstract_unrecognizedGlobal ($1); } + | initializer { $$ = clabstract_checkGlobal ($1); } globQual : QUNDEF { $$ = qual_createUndef (); } @@ -563,123 +652,17 @@ globQual | QIN { $$ = qual_createIn (); } | QPARTIAL { $$ = qual_createPartial (); } -optGlobQuals - : /* empty */ { $$ = qualList_undefined; } - | globQual optGlobQuals { $$ = qualList_add ($2, $1); } - -optGlobModsAux - : QGLOBALS { setProcessingGlobalsList (); } initializerList optSemi - QENDMACRO optMods - { unsetProcessingGlobals (); } - | QGLOBALS { setProcessingGlobalsList (); } globIdList optSemi - QENDMACRO optMods - { unsetProcessingGlobals (); } - | QNOMODS - { setFunctionNoGlobals (); - setFunctionModifies (sRefSet_single (sRef_makeNothing ())); - } - | fcnMods - | /* empty */ - -optPlainGlobModsAux - : QGLOBALS { setProcessingGlobalsList (); } initializerList optSemi - optMods - { unsetProcessingGlobals (); } - | QGLOBALS { setProcessingGlobalsList (); } globIdList optSemi - optMods - { unsetProcessingGlobals (); } - | QNOMODS - { setFunctionNoGlobals (); - setFunctionModifies (sRefSet_single (sRef_makeNothing ())); - } - | fcnPlainMods - | /* empty */ - -optMods - : fcnMods - | /* empty */ - -fcnMods - : QMODIFIES - { - context_setProtectVars (); enterParamsTemp (); - sRef_setGlobalScopeSafe (); - } - locModifies - { - setFunctionModifies ($3); exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - } - -fcnPlainMods - : QMODIFIES - { - context_setProtectVars (); enterParamsTemp (); - sRef_setGlobalScopeSafe (); - } - locPlainModifies - { - setFunctionModifies ($3); exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - } - -specialTag +stateTag : QDEFINES | QUSES | QALLOCATES | QSETS | QRELEASES -endStateTag - : QENDMACRO - -endSpecialTag - : QENDMACRO - -stateSpecialClause +conditionTag : QPRECLAUSE | QPOSTCLAUSE -specialClauseType - : QONLY { $$ = SP_ISONLY; } - | QOBSERVER { $$ = SP_ISOBSERVER; } - | QEXPOSED { $$ = SP_ISEXPOSED; } - | QDEPENDENT { $$ = SP_ISDEPENDENT; } - | QOWNED { $$ = SP_ISOWNED; } - | QSHARED { $$ = SP_ISSHARED; } - | QISNULL { $$ = SP_ISNULL; } - | QNOTNULL { $$ = SP_ISNOTNULL; } - -specialClause - : specialTag NotType - { - context_setProtectVars (); - enterParamsTemp (); - sRef_setGlobalScopeSafe (); - } - specClauseList optSemi endSpecialTag IsType - { - setFunctionSpecialClause ($1, $4, $6); - exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - } - | stateSpecialClause NotType specialClauseType - { - context_setProtectVars (); - enterParamsTemp (); - sRef_setGlobalScopeSafe (); - } - specClauseList optSemi endStateTag IsType - { - setFunctionStateSpecialClause ($1, $3, $5, $7); - exitParamsTemp (); - sRef_clearGlobalScopeSafe (); - context_releaseVars (); - } - fcnDefHdrAux : namedDecl { @@ -717,10 +700,6 @@ fcnDef } locModifies - : modList optSemi QENDMACRO { $$ = $1; } - | optSemi QENDMACRO { $$ = sRefSet_new (); } - -locPlainModifies : modList optSemi { $$ = $1; } | optSemi { $$ = sRefSet_new (); } @@ -736,8 +715,8 @@ modListExpr mExpr - : modListExpr { $$ = $1; } - | CCONSTANT { $$ = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ } + : modListExpr { $$ = $1; } + | cconstantExpr { $$ = sRef_makeUnknown (); /* sRef_makeConstant ($1); ? */ } /* arithmetic? */ modList @@ -746,9 +725,9 @@ modList specClauseListExpr : id - { $$ = checkSpecClausesId ($1); } + { $$ = checkStateClausesId ($1); } | NEW_IDENTIFIER - { $$ = fixSpecClausesId ($1); } + { $$ = fixStateClausesId ($1); } | specClauseListExpr TLSQBR TRSQBR { $$ = sRef_makeAnyArrayFetch ($1); } | specClauseListExpr TLSQBR mExpr TRSQBR { $$ = sRef_makeAnyArrayFetch ($1); } | TMULT specClauseListExpr { $$ = sRef_constructPointer ($2); } @@ -758,6 +737,10 @@ specClauseListExpr | specClauseListExpr ARROW_OP newId { cstring_markOwned ($3); $$ = sRef_makeArrow ($1, $3); } +optSpecClauseList + : /* empty */ { $$ = sRefSet_undefined } + | specClauseList + specClauseList : specClauseListExpr { if (sRef_isValid ($1)) { $$ = sRefSet_single ($1); } @@ -777,7 +760,7 @@ specClauseList primaryExpr : id { $$ = exprNode_fromIdentifier ($1); } | NEW_IDENTIFIER { $$ = exprNode_fromUIO ($1); } - | CCONSTANT { $$ = $1; } + | cconstantExpr | TLPAREN expr TRPAREN { $$ = exprNode_addParens ($1, $2); } | TYPE_NAME_OR_ID { $$ = exprNode_fromIdentifier (coerceId ($1)); } | QEXTENSION { $$ = exprNode_makeError (); } @@ -788,8 +771,8 @@ postfixExpr | postfixExpr TLPAREN TRPAREN { $$ = exprNode_functionCall ($1, exprNodeList_new ()); } | postfixExpr TLPAREN argumentExprList TRPAREN { $$ = exprNode_functionCall ($1, $3); } | VA_ARG TLPAREN assignExpr TCOMMA typeExpression TRPAREN { $$ = exprNode_vaArg ($1, $3, $5); } - | postfixExpr NotType TDOT newId IsType { $$ = exprNode_fieldAccess ($1, $4); } - | postfixExpr NotType ARROW_OP newId IsType { $$ = exprNode_arrowAccess ($1, $4); } + | postfixExpr NotType TDOT newId IsType { $$ = exprNode_fieldAccess ($1, $3, $4); } + | postfixExpr NotType ARROW_OP newId IsType { $$ = exprNode_arrowAccess ($1, $3, $4); } | postfixExpr INC_OP { $$ = exprNode_postOp ($1, $2); } | postfixExpr DEC_OP { $$ = exprNode_postOp ($1, $2); } @@ -938,7 +921,8 @@ initializer | typeDecl { $$ = exprNode_makeError (); } instanceDecl - : completeTypeSpecifier IsType TSEMI { $$ = exprNode_makeError (); } + : completeTypeSpecifier IsType TSEMI + { $$ = exprNode_makeError (); } /* ** This causes r/r conflicts with function definitions. ** Instead we need to snarf one first. (gack) @@ -953,22 +937,31 @@ instanceDecl */ | completeTypeSpecifier NotType namedDecl NotType { - setProcessingVars ($1); - processNamedDecl ($3); } - IsType optDeclarators TSEMI IsType { unsetProcessingVars (); $$ = $7; } + setProcessingVars ($1); + processNamedDecl ($3); + } + IsType optDeclarators TSEMI IsType + { + unsetProcessingVars (); + $$ = exprNode_makeEmptyInitialization ($3); + DPRINTF (("Empty initialization: %s", exprNode_unparse ($$))); + } | completeTypeSpecifier NotType namedDecl NotType TASSIGN - { setProcessingVars ($1); processNamedDecl ($3); - } + { setProcessingVars ($1); processNamedDecl ($3); } IsType init optDeclarators TSEMI IsType { $$ = exprNode_concat ($9, exprNode_makeInitialization ($3, $8)); unsetProcessingVars (); } + namedInitializer - : namedDecl NotType { processNamedDecl ($1); $$ = exprNode_makeError (); } + : namedDecl NotType + { + processNamedDecl ($1); + $$ = exprNode_makeEmptyInitialization ($1); + } | namedDecl NotType TASSIGN { processNamedDecl ($1); } IsType init { $$ = exprNode_makeInitialization ($1, $6); } - typeDecl : CTYPEDEF completeTypeSpecifier { setProcessingTypedef ($2); } NotType namedInitializerList IsType TSEMI { unsetProcessingTypedef (); } @@ -993,7 +986,7 @@ optDeclarators | optDeclarators TCOMMA NotType namedInitializer { $$ = exprNode_concat ($1, $4); } init - : assignExpr { $$ = $1; } + : assignExpr | TLBRACE initList TRBRACE { $$ = exprNode_makeInitBlock ($1, $2); } | TLBRACE initList TCOMMA TRBRACE { $$ = exprNode_makeInitBlock ($1, $2); } @@ -1016,56 +1009,102 @@ storageSpecifier | QAUTO { $$ = qual_createAuto (); } | QREGISTER { $$ = qual_createRegister (); } -typeQualifier - : QCONST IsType { $$ = qual_createConst (); } - | QVOLATILE IsType { $$ = qual_createVolatile (); } - | QOUT IsType { $$ = qual_createOut (); } - | QIN IsType { $$ = qual_createIn (); } - | QPARTIAL IsType { $$ = qual_createPartial (); } - | QSPECIAL IsType { $$ = qual_createSpecial (); } - | QOWNED IsType { $$ = qual_createOwned (); } - | QDEPENDENT IsType { $$ = qual_createDependent (); } - | QYIELD IsType { $$ = qual_createYield (); } - | QTEMP IsType { $$ = qual_createTemp (); } - | QONLY IsType { $$ = qual_createOnly (); } - | QKEEP IsType { $$ = qual_createKeep (); } - | QKEPT IsType { $$ = qual_createKept (); } - | QSHARED IsType { $$ = qual_createShared (); } - | QUNIQUE IsType { $$ = qual_createUnique (); } - | QEXITS IsType { $$ = qual_createExits (); } - | QMAYEXIT IsType { $$ = qual_createMayExit (); } - | QTRUEEXIT IsType { $$ = qual_createTrueExit (); } - | QFALSEEXIT IsType { $$ = qual_createFalseExit (); } - | QNEVEREXIT IsType { $$ = qual_createNeverExit (); } - | QNULL IsType { $$ = qual_createNull (); } - | QRELNULL IsType { $$ = qual_createRelNull (); } - | QRETURNED IsType { $$ = qual_createReturned (); } - | QEXPOSED IsType { $$ = qual_createExposed (); } - | QOBSERVER IsType { $$ = qual_createObserver (); } - | QCHECKED IsType { $$ = qual_createChecked (); } - | QCHECKMOD IsType { $$ = qual_createCheckMod (); } - | QUNCHECKED IsType { $$ = qual_createUnchecked (); } - | QCHECKEDSTRICT IsType { $$ = qual_createCheckedStrict (); } - | QTRUENULL IsType { $$ = qual_createTrueNull (); } - | QFALSENULL IsType { $$ = qual_createFalseNull (); } - | QUNUSED IsType { $$ = qual_createUnused (); } - | QEXTERNAL IsType { $$ = qual_createExternal (); } - | QSEF IsType { $$ = qual_createSef (); } - | QABSTRACT IsType { $$ = qual_createAbstract (); } - | QCONCRETE IsType { $$ = qual_createConcrete (); } - | QMUTABLE IsType { $$ = qual_createMutable (); } - | QIMMUTABLE IsType { $$ = qual_createImmutable (); } - | QNOTNULL IsType { $$ = qual_createNotNull (); } - | QREFCOUNTED IsType { $$ = qual_createRefCounted (); } - | QREFS IsType { $$ = qual_createRefs (); } - | QKILLREF IsType { $$ = qual_createKillRef (); } - | QRELDEF IsType { $$ = qual_createRelDef (); } - | QNEWREF IsType { $$ = qual_createNewRef (); } - | QTEMPREF IsType { $$ = qual_createTempRef (); } - | QNULLTERMINATED IsType { $$ = qual_createNullTerminated (); } - -/* | QSETBUFFERSIZE IsType { $$ = qual_createSetBufferSize (); } */ +nullterminatedQualifier: + QNULLTERMINATED IsType { $$ = qual_createNullTerminated (); } +stateClause + : stateClausePlain QENDMACRO { $$ = $1; } + +stateClausePlain + : stateTag NotType + { + context_setProtectVars (); + enterParamsTemp (); + sRef_setGlobalScopeSafe (); + } + specClauseList optSemi IsType + { + exitParamsTemp (); + sRef_clearGlobalScopeSafe (); + context_releaseVars (); + $$ = stateClause_createPlain ($1, $4); + } + +conditionClause + : conditionClausePlain QENDMACRO { $$ = $1; } + +conditionClausePlain + : conditionTag { context_enterFunctionHeader (); } NotType stateQualifier + { + context_exitFunctionHeader (); + context_setProtectVars (); + enterParamsTemp (); + sRef_setGlobalScopeSafe (); + } + optSpecClauseList optSemi IsType + { + exitParamsTemp (); + sRef_clearGlobalScopeSafe (); + context_releaseVars (); + $$ = stateClause_create ($1, $4, $6); + } + +exitsQualifier + : QEXITS { $$ = qual_createExits (); } + | QMAYEXIT { $$ = qual_createMayExit (); } + | QTRUEEXIT { $$ = qual_createTrueExit (); } + | QFALSEEXIT { $$ = qual_createFalseExit (); } + | QNEVEREXIT { $$ = qual_createNeverExit (); } + +checkQualifier + : QCHECKED { $$ = qual_createChecked (); } + | QCHECKMOD { $$ = qual_createCheckMod (); } + | QUNCHECKED { $$ = qual_createUnchecked (); } + | QCHECKEDSTRICT { $$ = qual_createCheckedStrict (); } + +stateQualifier + : QOWNED { $$ = qual_createOwned (); } + | QDEPENDENT { $$ = qual_createDependent (); } + | QYIELD { $$ = qual_createYield (); } + | QTEMP { $$ = qual_createTemp (); } + | QONLY { $$ = qual_createOnly (); } + | QKEEP { $$ = qual_createKeep (); } + | QKEPT { $$ = qual_createKept (); } + | QSHARED { $$ = qual_createShared (); } + | QUNIQUE { $$ = qual_createUnique (); } + | QNULL { $$ = qual_createNull (); } + | QISNULL { $$ = qual_createIsNull (); } + | QRELNULL { $$ = qual_createRelNull (); } + | QNOTNULL { $$ = qual_createNotNull (); } + | QEXPOSED { $$ = qual_createExposed (); } + | QOBSERVER { $$ = qual_createObserver (); } + | CANNOTATION { $$ = qual_createMetaState ($1); } + +paramQualifier + : QRETURNED { $$ = qual_createReturned (); } + | QSEF { $$ = qual_createSef (); } + +visibilityQualifier + : QUNUSED { $$ = qual_createUnused (); } + | QEXTERNAL { $$ = qual_createExternal (); } + +returnQualifier + : QTRUENULL { $$ = qual_createTrueNull (); } + | QFALSENULL { $$ = qual_createFalseNull (); } + +typedefQualifier + : QABSTRACT { $$ = qual_createAbstract (); } + | QCONCRETE { $$ = qual_createConcrete (); } + | QMUTABLE { $$ = qual_createMutable (); } + | QIMMUTABLE { $$ = qual_createImmutable (); } + +refcountQualifier + : QREFCOUNTED { $$ = qual_createRefCounted (); } + | QREFS { $$ = qual_createRefs (); } + | QKILLREF { $$ = qual_createKillRef (); } + | QRELDEF { $$ = qual_createRelDef (); } + | QNEWREF { $$ = qual_createNewRef (); } + | QTEMPREF { $$ = qual_createTempRef (); } typeModifier : QSHORT { $$ = qual_createShort (); } @@ -1073,6 +1112,29 @@ typeModifier | QSIGNED { $$ = qual_createSigned (); } | QUNSIGNED { $$ = qual_createUnsigned (); } +definedQualifier + : QOUT { $$ = qual_createOut (); } + | QIN { $$ = qual_createIn (); } + | QPARTIAL { $$ = qual_createPartial (); } + | QSPECIAL { $$ = qual_createSpecial (); } + +typeQualifier + : QCONST IsType { $$ = qual_createConst (); } + | QVOLATILE IsType { $$ = qual_createVolatile (); } + | definedQualifier IsType { $$ = $1; } + | stateQualifier IsType { $$ = $1; } + | exitsQualifier IsType { $$ = $1; } + | paramQualifier IsType { $$ = $1; } + | checkQualifier IsType { $$ = $1; } + | returnQualifier IsType { $$ = $1; } + | visibilityQualifier IsType { $$ = $1; } + | typedefQualifier IsType { $$ = $1; } + | refcountQualifier IsType { $$ = $1; } + +/* +** This is copied into the mtgrammar! +*/ + typeSpecifier : CGCHAR NotType | CINT NotType @@ -1132,7 +1194,7 @@ suSpc structDeclList DeleteStructInnerScope { sRef_clearGlobalScopeSafe (); } TRBRACE { $$ = declareUnnamedStruct ($7); } - | NotType CUNION IsType TLBRACE { sRef_setGlobalScopeSafe (); } + | NotType CUNION IsType TLBRACE { sRef_setGlobalScopeSafe (); } CreateStructInnerScope structDeclList DeleteStructInnerScope { sRef_clearGlobalScopeSafe (); } TRBRACE @@ -1334,11 +1396,6 @@ lclintassertion /* | QSETBUFFERSIZE id id {$$ = $2; printf(" QSETBUFFERSIZE id id HEllo World\n");} */ -tst1 -: TCOLON newId { $$ = exprNode_labelMarker ($2); } - - - iterBody : iterDefStmtList { $$ = $1; } @@ -1378,7 +1435,7 @@ iterDefStmt : labeledStmt | caseStmt | defaultStmt - | openScope initializerList { $$ = $2; } + | openScope initializerList { $$ = $1; DPRINTF (("def stmt: %s", exprNode_unparse ($$))); } | openScope | closeScope | expressionStmt @@ -1577,8 +1634,12 @@ iterArgExpr ** everything is the same, EXCEPT it cannot be a NEW_IDENTIFIER */ +cconstantExpr + : CCONSTANT + | cconstantExpr CCONSTANT { $$ = exprNode_combineLiterals ($1, $2); } + primaryIterExpr - : CCONSTANT + : cconstantExpr | TLPAREN expr TRPAREN { $$ = exprNode_addParens ($1, $2); } postfixIterExpr @@ -1588,8 +1649,8 @@ postfixIterExpr | postfixExpr TLPAREN argumentExprList TRPAREN { $$ = exprNode_functionCall ($1, $3); } | VA_ARG TLPAREN assignExpr TCOMMA typeExpression TRPAREN { $$ = exprNode_vaArg ($1, $3, $5); } - | postfixExpr NotType TDOT newId IsType { $$ = exprNode_fieldAccess ($1, $4); } - | postfixExpr NotType ARROW_OP newId IsType { $$ = exprNode_arrowAccess ($1, $4); } + | postfixExpr NotType TDOT newId IsType { $$ = exprNode_fieldAccess ($1, $3, $4); } + | postfixExpr NotType ARROW_OP newId IsType { $$ = exprNode_arrowAccess ($1, $3, $4); } | postfixExpr INC_OP { $$ = exprNode_postOp ($1, $2); } | postfixExpr DEC_OP { $$ = exprNode_postOp ($1, $2); } @@ -1771,6 +1832,7 @@ void yyerror (/*@unused@*/ char *s) } swallowMacro (); + context_exitAllClausesQuiet (); } else { @@ -1778,30 +1840,12 @@ void yyerror (/*@unused@*/ char *s) } } -void printState (idDecl t) { - cstring id = idDecl_getName (t); - uentry ue = usymtab_lookupSafe (id); - sRef s = uentry_getSref (ue); - - printf("State = %d\n", s->bufinfo.bufstate); -} -/*take this out soon */ -/* void testassert1 (cstring id, icstring cons ) { */ - /* uentry ue =usymtab_lookupSafe (id); */ -/* sRef s = uentry_getSref (ue); */ -/* printf ("Doing testassert1 with setbuffersize\n"); */ -/* printf("State = %d\n", s->bufinfo.bufstate); */ -/* } */ -/* void testassert2 (cstring id) { */ -/* uentry ue =usymtab_lookupSafe (id); */ -/* sRef s = uentry_getSref (ue); */ -/* printf ("Doing testassert2 with setbuffersize\n"); */ -/* printf("State = %d\n", s->bufinfo.bufstate); */ -/* } */ - + + + diff --git a/src/checking.c b/src/checking.c index cdc1e5d..41fd435 100644 --- a/src/checking.c +++ b/src/checking.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -120,7 +120,7 @@ computePossibleSorts (/*@returned@*/ /*@null@*/ termNode t) unsigned int arity = termNodeList_size (t->args); errtok = nameNode_errorToken (t->name); - /* errorShowPoint (tsource_thisLine (lclsource), ltoken_getCol (errtok)); */ + /* errorShowPoint (inputStream_thisLine (lclsource), ltoken_getCol (errtok)); */ if (isStandardOperator (t->name)) { @@ -268,7 +268,7 @@ static void case TRM_LITERAL: sortSet_elements (t->possibleSorts, s2) { - if (sort_equal (&s2, &s)) + if (sort_equal (s2, s)) { sortSet_free (t->possibleSorts); t->possibleSorts = sortSet_new (); @@ -294,7 +294,7 @@ static void { sort rsort = sigNode_rangeSort (sig->signature); - if (sort_equal (&s, &rsort)) + if (sort_equal (s, rsort)) { lslOp iop; @@ -335,7 +335,7 @@ static void } else { - /* errorShowPoint (tsource_thisLine (lclsource), ltoken_getCol (errtok)); */ + /* errorShowPoint (inputStream_thisLine (lclsource), ltoken_getCol (errtok)); */ t->error_reported = TRUE; lclerror (errtok, message ("Operator not found: %q", @@ -365,7 +365,7 @@ static void else { errtok = nameNode_errorToken (name); - /* errorShowPoint (tsource_thisLine (lclsource), ltoken_getCol (errtok)); */ + /* errorShowPoint (inputStream_thisLine (lclsource), ltoken_getCol (errtok)); */ t->error_reported = TRUE; lclerror (errtok, message ("No matching operator: %q", @@ -566,9 +566,9 @@ standardOperators (/*@null@*/ nameNode n, sortSetList argSorts, /*@unused@*/ sor sn = sort_quietLookup (current); - while (sn.kind == SRT_SYN) + while (sn->kind == SRT_SYN) { - sn = sort_quietLookup (sn.baseSort); + sn = sort_quietLookup (sn->baseSort); } /*@-loopswitchbreak@*/ @@ -580,15 +580,15 @@ standardOperators (/*@null@*/ nameNode n, sortSetList argSorts, /*@unused@*/ sor if (cstring_equalLit (text, "trashed")) /* GACK! */ { - if (sn.kind == SRT_OBJ || - sn.kind == SRT_ARRAY) + if (sn->kind == SRT_OBJ || + sn->kind == SRT_ARRAY) (void) sortSet_insert (ret, sort_bool); } if (cstring_equalLit (text, "maxIndex") || cstring_equalLit (text, "minIndex")) { - if (sn.kind == SRT_ARRAY || sn.kind == SRT_PTR) + if (sn->kind == SRT_ARRAY || sn->kind == SRT_PTR) (void) sortSet_insert (ret, sort_int); /* if (lsymbol_fromChars ("maxIndex") */ @@ -598,16 +598,16 @@ standardOperators (/*@null@*/ nameNode n, sortSetList argSorts, /*@unused@*/ sor case LLT_MODIFIES: case LLT_FRESH: case LLT_UNCHANGED: - if (sn.kind == SRT_OBJ || - sn.kind == SRT_ARRAY) + if (sn->kind == SRT_OBJ || + sn->kind == SRT_ARRAY) { (void) sortSet_insert (ret, sort_bool); } break; case LLT_SIZEOF: - if (sn.kind == SRT_OBJ || - sn.kind == SRT_ARRAY || - sn.kind == SRT_VECTOR) + if (sn->kind == SRT_OBJ || + sn->kind == SRT_ARRAY || + sn->kind == SRT_VECTOR) (void) sortSet_insert (ret, sort_int); break; default: @@ -652,7 +652,7 @@ standardOperators (/*@null@*/ nameNode n, sortSetList argSorts, /*@unused@*/ sor clause2 = sortSet_choose (argSet); if (sortSet_size (argSet) == 1 && - sort_equal (&clause, &clause2)) + sort_equal (clause, clause2)) { (void) sortSet_insert (ret, clause); } @@ -678,15 +678,15 @@ standardOperators (/*@null@*/ nameNode n, sortSetList argSorts, /*@unused@*/ sor sn = sort_quietLookup (current); - while (sn.kind == SRT_SYN) + while (sn->kind == SRT_SYN) { - sn = sort_quietLookup (sn.baseSort); + sn = sort_quietLookup (sn->baseSort); } - switch (sn.kind) + switch (sn->kind) { case SRT_OBJ: - (void) sortSet_insert (ret, sn.baseSort); + (void) sortSet_insert (ret, sn->baseSort); break; case SRT_ARRAY: (void) sortSet_insert (ret, @@ -738,14 +738,14 @@ standardOperators (/*@null@*/ nameNode n, sortSetList argSorts, /*@unused@*/ sor sn = sort_quietLookup (current); - while (sn.kind == SRT_SYN) + while (sn->kind == SRT_SYN) { - sn = sort_quietLookup (sn.baseSort); + sn = sort_quietLookup (sn->baseSort); } - if (sn.kind == SRT_PTR) + if (sn->kind == SRT_PTR) { - (void) sortSet_insert (ret, sn.baseSort); + (void) sortSet_insert (ret, sn->baseSort); } } end_sortSet_elements; } @@ -776,7 +776,7 @@ standardOperators (/*@null@*/ nameNode n, sortSetList argSorts, /*@unused@*/ sor { sortSet_elements (argSet2, cl2) { - if (sort_equal (&cl, &cl2)) + if (sort_equal (cl, cl2)) { (void) sortSet_insert (ret, sort_bool); } diff --git a/src/clabstract.c b/src/clabstract.c index e0da00c..1897405 100644 --- a/src/clabstract.c +++ b/src/clabstract.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -63,9 +63,7 @@ static /*@only@*/ constraintList implicitFcnConstraints = NULL; //static constraintList fcnPreConditions = NULL; - -static /*@only@*/ sRefSet fcnModifies = sRefSet_undefined; -static /*@only@*/ /*@null@*/ specialClauses specClauses = specialClauses_undefined; +static void clabstract_prepareFunction (uentry p_e) /*@modifies p_e@*/ ; static bool fcnNoGlobals = FALSE; static bool ProcessingVars = FALSE; static bool ProcessingParams = FALSE; @@ -74,7 +72,6 @@ static bool ProcessingTypedef = FALSE; static bool ProcessingIterVars = FALSE; static /*@only@*/ qtype processingType = qtype_undefined; static uentry currentIter = uentry_undefined; -static globSet currentGlobals = globSet_undefined; static /*@dependent@*/ uentryList saveParamList; /* for old style functions */ static /*@owned@*/ uentry saveFunction = uentry_undefined; static int saveIterParamNo; @@ -84,12 +81,18 @@ static /*@dependent@*/ fileloc saveStoreLoc = fileloc_undefined; static storageClassCode storageClass = SCNONE; static void declareEnumList (/*@temp@*/ enumNameList p_el, ctype p_c, fileloc p_loc); static void resetGlobals (void); -static qual specialFunctionCode = QU_UNKNOWN; +static /*@null@*/ qual specialFunctionCode; static bool argsUsed = FALSE; +extern void clabstract_initMod () +{ + specialFunctionCode = qual_createUnknown (); + DPRINTF (("Initialized: %s", qual_unparse (specialFunctionCode))); +} + static bool hasSpecialCode (void) { - return (specialFunctionCode != QU_UNKNOWN); + return (!qual_isUnknown (specialFunctionCode)); } extern void setArgsUsed (void) @@ -125,7 +128,7 @@ static void reflectArgsUsed (uentry ue) extern void setSpecialFunction (qual qu) { - if (specialFunctionCode != QU_UNKNOWN) + if (!qual_isUnknown (specialFunctionCode)) { voptgenerror (FLG_SYNTAX, message ("Multiple special function codes: %s, %s " @@ -140,22 +143,19 @@ extern void setSpecialFunction (qual qu) static void reflectSpecialCode (uentry ue) { - switch (specialFunctionCode) - { - case QU_UNKNOWN: break; - case QU_PRINTFLIKE: - uentry_setPrintfLike (ue); - break; - case QU_SCANFLIKE: - uentry_setScanfLike (ue); - break; - case QU_MESSAGELIKE: - uentry_setMessageLike (ue); - break; - BADDEFAULT; - } + if (qual_isUnknown (specialFunctionCode)) { + ; + } else if (qual_isPrintfLike (specialFunctionCode)) { + uentry_setPrintfLike (ue); + } else if (qual_isScanfLike (specialFunctionCode)) { + uentry_setScanfLike (ue); + } else if (qual_isMessageLike (specialFunctionCode)) { + uentry_setMessageLike (ue); + } else { + BADBRANCH; + } - specialFunctionCode = QU_UNKNOWN; + specialFunctionCode = qual_createUnknown (); } static void resetStorageClass (void) @@ -165,50 +165,28 @@ static void resetStorageClass (void) storageClass = SCNONE; } -static void reflectModGlobs (uentry ue) -{ - if (fcnNoGlobals) - { - llassert (globSet_isUndefined (currentGlobals)); - - uentry_setGlobals (ue, globSet_undefined); - fcnNoGlobals = FALSE; - } - else if (globSet_isDefined (currentGlobals)) - { - uentry_setGlobals (ue, currentGlobals); - currentGlobals = globSet_undefined; - } - else - { - ; /* no globals */ - } +/*drl 6-25-01 + used to be reflectModGlobs + changed to reflectBufferConstraint + and removed buffer constraint stuff + to merge with other code tree. +*/ - if (sRefSet_isDefined (fcnModifies)) - { - uentry_setModifies (ue, fcnModifies); - fcnModifies = sRefSet_undefined; - } +static void reflectBufferConstraint (uentry ue) +{ /*drl added*/ - if (fcnConstraints != constraintList_undefined) + if ( constraintList_isDefined(fcnConstraints) ) { uentry_setPreconditions (ue, fcnConstraints); fcnConstraints = constraintList_undefined; } - if (fcnEnsuresConstraints != constraintList_undefined) + if ( constraintList_isDefined(fcnEnsuresConstraints) ) { uentry_setPostconditions (ue, fcnEnsuresConstraints); fcnEnsuresConstraints = constraintList_undefined; } /*end drl*/ - - if (uentry_isFunction (ue)) - { - uentry_setSpecialClauses (ue, specClauses); - specClauses = NULL; - DPRINTF (("Done with spec clauses")); - } } static void reflectStorageClass (uentry u) @@ -235,65 +213,9 @@ void storeLoc () void setFunctionNoGlobals (void) { - llassert (globSet_isUndefined (currentGlobals)); fcnNoGlobals = TRUE; } -void - setFunctionStateSpecialClause (lltok stok, specialClauseKind kind, - sRefSet s, - /*@unused@*/ lltok etok) -{ - int tok = lltok_getTok (stok); - - switch (tok) - { - case QPRECLAUSE: - specClauses = specialClauses_add (specClauses, - specialClause_create (TK_BEFORE, kind, s)); - break; - case QPOSTCLAUSE: - specClauses = specialClauses_add (specClauses, - specialClause_create (TK_AFTER, kind, s)); - break; - default: - sRefSet_free (s); - BADBRANCH; - } - - DPRINTF (("Added to specclauses: %s", specialClauses_unparse (specClauses))); -} - -void setFunctionSpecialClause (lltok stok, sRefSet s, - /*@unused@*/ lltok etok) -{ - int tok = lltok_getTok (stok); - - switch (tok) - { - case QUSES: - specClauses = specialClauses_add (specClauses, specialClause_createUses (s)); - break; - case QDEFINES: - specClauses = specialClauses_add (specClauses, specialClause_createDefines (s)); - break; - case QALLOCATES: - specClauses = specialClauses_add (specClauses, specialClause_createAllocates (s)); - break; - case QSETS: - specClauses = specialClauses_add (specClauses, specialClause_createSets (s)); - break; - case QRELEASES: - specClauses = specialClauses_add (specClauses, specialClause_createReleases (s)); - break; - default: - sRefSet_free (s); - BADBRANCH; - } - - DPRINTF (("Added to specclauses: %s", specialClauses_unparse (specClauses))); -} - /*drl */ constraintList getFunctionConstraints (void) @@ -309,27 +231,33 @@ constraintList getEnsuresConstraints (void) void setEnsuresConstraints (constraintList c) { - if (fcnEnsuresConstraints != NULL) + if (constraintList_isDefined(fcnEnsuresConstraints) ) constraintList_free(fcnEnsuresConstraints); + + DPRINTF(( message("Setting ensures constraints to %q", + constraintList_print(c) ) )); + fcnEnsuresConstraints = constraintList_copy (c); } void setFunctionConstraints (constraintList c) { - if (fcnConstraints != NULL) + if (constraintList_isDefined(fcnConstraints) ) constraintList_free(fcnConstraints); + + DPRINTF(( message("Setting requires constraints to %q", + constraintList_print(c) ) )); + + fcnConstraints = constraintList_copy (c); } /* end drl*/ -void setFunctionModifies (sRefSet s) -{ - sRefSet_free (fcnModifies); - fcnModifies = s; -} - static void reflectGlobalQualifiers (sRef sr, qualList quals) { + DPRINTF (("Reflect global qualifiers: %s / %s", + sRef_unparseFull (sr), qualList_unparse (quals))); + qualList_elements (quals, qel) { if (qual_isGlobalQual (qel)) /* undef, killed */ @@ -348,6 +276,7 @@ static void reflectGlobalQualifiers (sRef sr, qualList quals) } sRef_setDefState (sr, defstate, fileloc_undefined); + DPRINTF (("State: %s", sRef_unparseFull (sr))); } else if (qual_isAllocQual (qel)) /* out, partial, reldef, etc. */ { @@ -403,15 +332,24 @@ static void reflectGlobalQualifiers (sRef sr, qualList quals) } end_qualList_elements; } -void globListAdd (sRef sr, qualList quals) +sRef clabstract_createGlobal (sRef sr, qualList quals) { + sRef res; + if (sRef_isValid (sr)) { - sRef sc = sRef_copy (sr); - - reflectGlobalQualifiers (sc, quals); - currentGlobals = globSet_insert (currentGlobals, sc); + res = sRef_copy (sr); + DPRINTF (("Reflecting quals: %s / %s", sRef_unparse (sr), qualList_unparse (quals))); + reflectGlobalQualifiers (res, quals); + DPRINTF (("==> %s", sRef_unparseFull (res))); } + else + { + res = sRef_undefined; + } + + qualList_free (quals); + return res; } extern void declareCIter (cstring name, /*@owned@*/ uentryList params) @@ -424,7 +362,7 @@ extern void declareCIter (cstring name, /*@owned@*/ uentryList params) usymtab_supEntry (uentry_makeEndIter (name, fileloc_copy (g_currentloc))); - reflectModGlobs (ue); + reflectBufferConstraint (ue); ue = usymtab_supGlobalEntryReturn (ue); } @@ -641,7 +579,7 @@ void setImplictfcnConstraints (void) constraint c; params = currentParamList; - if (implicitFcnConstraints != NULL) + if (constraintList_isDefined(implicitFcnConstraints) ) constraintList_free(implicitFcnConstraints); implicitFcnConstraints = constraintList_makeNew(); @@ -718,17 +656,17 @@ extern void exitParamsTemp (void) usymtab_quietPlainExitScope (); } -static /*@exposed@*/ uentry globalDeclareFunction (idDecl tid) +static /*@exposed@*/ uentry clabstract_globalDeclareFunction (idDecl tid) { ctype deftype = idDecl_getCtype (tid); ctype rettype; uentry ue; DPRINTF (("Global function: %s", idDecl_unparse (tid))); - + if (ctype_isFunction (deftype)) { - rettype = ctype_returnValue (deftype); + rettype = ctype_getReturnType (deftype); } else { @@ -754,17 +692,21 @@ static /*@exposed@*/ uentry globalDeclareFunction (idDecl tid) (tid, ctype_makeFunction (ctype_unknown, uentryList_undefined)); ue = uentry_makeIdFunction (tid); } - - reflectStorageClass (ue); + reflectStorageClass (ue); uentry_checkParams (ue); - reflectModGlobs (ue); + reflectBufferConstraint (ue); + + DPRINTF (("Supercede function: %s", uentry_unparseFull (ue))); ue = usymtab_supGlobalEntryReturn (ue); + DPRINTF (("After supercede function: %s", uentry_unparseFull (ue))); + context_enterFunction (ue); enterFunctionParams (uentry_getParams (ue)); resetStorageClass (); + DPRINTF (("Function: %s", uentry_unparseFull (ue))); return (ue); } @@ -791,14 +733,7 @@ static /*@only@*/ uentry globalDeclareOldStyleFunction (idDecl tid) reflectSpecialCode (ue); reflectArgsUsed (ue); uentry_setDefined (ue, g_currentloc); - - uentry_checkParams (ue); - - if (ProcessingGlobals) - { - uentry_setGlobals (ue, currentGlobals); - } - + uentry_checkParams (ue); resetStorageClass (); return (ue); } @@ -818,7 +753,7 @@ static void oldStyleDeclareFunction (/*@only@*/ uentry e) resetStorageClass (); } -void declareFunction (idDecl tid) /*@globals undef saveFunction; @*/ +void clabstract_declareFunction (idDecl tid) /*@globals undef saveFunction; @*/ { uentry ue; @@ -858,7 +793,7 @@ void declareFunction (idDecl tid) /*@globals undef saveFunction; @*/ } else { - ue = globalDeclareFunction (tid); + ue = clabstract_globalDeclareFunction (tid); } } @@ -914,7 +849,7 @@ void declareStaticFunction (idDecl tid) /*@globals undef saveFunction; @*/ if (ctype_isFunction (deftype)) { - rettype = ctype_returnValue (deftype); + rettype = ctype_getReturnType (deftype); } else { @@ -945,7 +880,7 @@ void declareStaticFunction (idDecl tid) /*@globals undef saveFunction; @*/ uentry_setStatic (ue); uentry_checkParams (ue); - reflectModGlobs (ue); + reflectBufferConstraint (ue); DPRINTF (("Sub global entry: %s", uentry_unparse (ue))); ue = usymtab_supGlobalEntryReturn (ue); @@ -968,7 +903,7 @@ checkTypeDecl (uentry e, ctype rep) { cstring n = uentry_getName (e); - DPRINTF (("Check type decl: %s", n)); + DPRINTF (("Check type decl: %s", uentry_unparseFull (e))); if (cstring_equal (context_getBoolName (), n)) { @@ -1027,6 +962,8 @@ checkTypeDecl (uentry e, ctype rep) { ctype rrep = ctype_realType (rep); + DPRINTF (("Abstract type: %s", uentry_unparseFull (le))); + /* ** for abstract enum types, we need to fix the enum members: ** they should have the abstract type, not the rep type. @@ -1221,19 +1158,6 @@ void setProcessingGlobalsList () { ProcessingGlobals = TRUE; - - llassert (globSet_isUndefined (currentGlobals)); - currentGlobals = globSet_undefined; - - llassert (sRefSet_isUndefined (fcnModifies)); - fcnModifies = sRefSet_undefined; - - /* - ** No, special clauses might have been processed first! - llassert (specialClauses_isUndefined (specClauses)); - specClauses = specialClauses_undefined; - */ - fcnNoGlobals = FALSE; } @@ -1260,9 +1184,6 @@ isProcessingGlobMods () static void resetGlobals (void) { ProcessingGlobals = FALSE; - currentGlobals = globSet_undefined; - llassert (sRefSet_isUndefined (fcnModifies)); - fcnModifies = sRefSet_undefined; fcnNoGlobals = FALSE; } @@ -1311,22 +1232,17 @@ doneParams () if (uentry_isInvalid (saveFunction)) { llbuglit ("unsetProcessingVars: no saved function\n"); - - if (sRefSet_isDefined (fcnModifies)) { - sRefSet_free (fcnModifies); - fcnModifies = sRefSet_undefined; - } } else { - ctype ct = ctype_returnValue (uentry_getType (saveFunction)); + ctype ct = ctype_getReturnType (uentry_getType (saveFunction)); uentryList params = uentryList_copy (saveParamList); ctype ct2 = ctype_makeFunction (ct, params); uentry_setType (saveFunction, ct2); ProcessingParams = FALSE; - reflectModGlobs (saveFunction); + reflectBufferConstraint (saveFunction); oldStyleDeclareFunction (saveFunction); saveFunction = uentry_undefined; resetGlobals (); @@ -1352,7 +1268,7 @@ checkDoneParams () ** old style declaration */ - ctype ct = ctype_returnValue (uentry_getType (saveFunction)); + ctype ct = ctype_getReturnType (uentry_getType (saveFunction)); ctype ct2; uentryList_elements (saveParamList, current) @@ -1424,7 +1340,6 @@ void checkValueConstant (qtype t, idDecl id, exprNode e) usymtab_supGlobalEntry (ue); } - void processNamedDecl (idDecl t) { if (qtype_isUndefined (processingType)) @@ -1442,7 +1357,7 @@ void processNamedDecl (idDecl t) { cstring id = idDecl_getName (t); uentry ue = usymtab_lookupSafe (id); - + if (!uentry_isValid (ue)) { llerror (FLG_UNRECOG, @@ -1463,10 +1378,7 @@ void processNamedDecl (idDecl t) else { sRef sr = sRef_copy (uentry_getSref (ue)); - reflectGlobalQualifiers (sr, idDecl_getQuals (t)); - - currentGlobals = globSet_insert (currentGlobals, sr); } } } @@ -1509,49 +1421,45 @@ void processNamedDecl (idDecl t) cstring_free (pname); if (uentry_isYield (p)) - { - e = uentry_makeParam (t, sRef_getParam (uentry_getSref (p))); - - uentry_checkYieldParam (p, e); - - usymtab_supEntrySref (e); - return; - } + { + e = uentry_makeParam (t, sRef_getParam (uentry_getSref (p))); + uentry_checkYieldParam (p, e); + usymtab_supEntrySref (e); + return; + } } - + if ((hasSpecialCode () || argsUsed) && ctype_isFunction (idDecl_getCtype (t))) - { + { e = uentry_makeIdFunction (t); reflectSpecialCode (e); reflectArgsUsed (e); - } + } else - { - e = uentry_makeIdVariable (t); - } - + { + e = uentry_makeIdVariable (t); + } + loc = uentry_whereDeclared (e); - + /* - if (context_inGlobalScope ()) + if (context_inGlobalScope ()) { uentry_checkParams was here! } - */ - + */ + if (ctype_isFunction (uentry_getType (e))) { - reflectModGlobs (e); - } - else - { - llassert (!globSet_isDefined (currentGlobals) - && !sRefSet_isDefined (fcnModifies)); + clabstract_prepareFunction (e); + reflectBufferConstraint (e); } + DPRINTF (("Superceding... %s", uentry_unparseFull (e))); e = usymtab_supEntrySrefReturn (e); - + DPRINTF (("After superceding... %s", uentry_unparseFull (e))); + if (uentry_isExtern (e) && !context_inGlobalScope ()) { voptgenerror @@ -1563,18 +1471,19 @@ void processNamedDecl (idDecl t) uentry_setDefined (e, fileloc_getExternal ()); sRef_setDefined (uentry_getSref (e), fileloc_getExternal ()); } - + if (uentry_isFunction (e)) { - uentry_checkParams (e); - checkParamNames (e); + if (!context_inXHFile ()) + { + checkParamNames (e); + } } - - if (uentry_isVar (e) - && uentry_isCheckedUnknown (e)) + + if (uentry_isVar (e) && uentry_isCheckedUnknown (e)) { sRef sr = uentry_getSref (e); - + if (sRef_isLocalVar (sr)) { if (context_getFlag (FLG_IMPCHECKMODINTERNALS)) @@ -1608,7 +1517,7 @@ void processNamedDecl (idDecl t) else /* real global */ { llassert (sRef_isRealGlobal (sr)); - + if (context_getFlag (FLG_IMPCHECKEDSTRICTGLOBALS)) { uentry_setCheckedStrict (e); @@ -1633,7 +1542,7 @@ void processNamedDecl (idDecl t) { ctype ct = idDecl_getCtype (t); uentry e; - + DPRINTF (("Processing typedef: %s", ctype_unparse (ct))); e = uentry_makeIdDatatype (t); @@ -1664,18 +1573,6 @@ void processNamedDecl (idDecl t) checkTypeDecl (e, ct); e = usymtab_supReturnTypeEntry (e); - - if (uentry_isMaybeAbstract (e)) - { - if (context_getFlag (FLG_IMPABSTRACT)) - { - uentry_setAbstract (e); - } - else - { - uentry_setConcrete (e); - } - } } else { @@ -1713,6 +1610,8 @@ static idDecl fixStructDecl (/*@returned@*/ idDecl d) ctype declareUnnamedStruct (/*@only@*/ uentryList f) { + DPRINTF (("Unnamed struct: %s", uentryList_unparse (f))); + if (context_maybeSet (FLG_NUMSTRUCTFIELDS)) { int num = uentryList_size (f); @@ -1760,10 +1659,16 @@ ctype declareStruct (cstring id, /*@only@*/ uentryList f) uentry ue; int num = uentryList_size (f); + DPRINTF (("Declare struct: %s / %s", id, uentryList_unparse (f))); + ct = ctype_createStruct (cstring_copy (id), f); - DPRINTF (("Declare struct: %s [%d]", ctype_unparse (ct), ct)); + + DPRINTF (("Ctype: %s", ctype_unparse (ct))); + ue = uentry_makeStructTagLoc (id, ct); + DPRINTF (("ue: %s", uentry_unparseFull (ue))); + if (context_maybeSet (FLG_NUMSTRUCTFIELDS)) { int max = context_getValue (FLG_NUMSTRUCTFIELDS); @@ -1947,7 +1852,7 @@ doVaDcl () usymtab_supEntrySref (e); } -/*@exposed@*/ sRef modListPointer (sRef s) +/*@exposed@*/ sRef modListPointer (/*@exposed@*/ sRef s) { ctype ct = sRef_getType (s); ctype rt = ctype_realType (ct); @@ -2038,7 +1943,7 @@ doVaDcl () } } -sRef globListUnrecognized (cstring s) +/*@dependent@*/ sRef clabstract_unrecognizedGlobal (cstring s) { if (cstring_equalLit (s, "nothing")) { @@ -2151,14 +2056,14 @@ sRef globListUnrecognized (cstring s) return s; } -sRef checkSpecClausesId (uentry ue) +sRef checkStateClausesId (uentry ue) { cstring s = uentry_rawName (ue); - if (sRef_isGlobal (uentry_getSref (ue))) + if (sRef_isFileOrGlobalScope (uentry_getSref (ue))) { voptgenerror - (FLG_SYNTAX, + (FLG_COMMENTERROR, message ("Global variable %s used special clause. (Global variables " "are not recognized in special clauses. If there is " "sufficient interest in support for this, it may be " @@ -2213,7 +2118,7 @@ sRef checkbufferConstraintClausesId (uentry ue) } } - return sRef_copy( uentry_getSref (ue) ); + return sRef_saveCopy( uentry_getSref (ue) ); } void checkModifiesId (uentry ue) @@ -2296,7 +2201,7 @@ void checkModifiesId (uentry ue) return ret; } -sRef fixSpecClausesId (cstring s) +sRef fixStateClausesId (cstring s) { sRef ret; cstring pname = makeParam (s); @@ -2330,7 +2235,7 @@ sRef fixSpecClausesId (cstring s) { ret = uentry_getSref (ue); - if (sRef_isGlobal (ret)) + if (sRef_isFileOrGlobalScope (ret)) { voptgenerror (FLG_SYNTAX, @@ -2362,7 +2267,7 @@ sRef fixSpecClausesId (cstring s) return ret; } -sRef modListArrayFetch (sRef s, /*@unused@*/ sRef mexp) +sRef modListArrayFetch (/*@exposed@*/ sRef s, /*@unused@*/ sRef mexp) { ctype ct = sRef_getType (s); ctype rt = ctype_realType (ct); @@ -2396,6 +2301,24 @@ sRef modListArrayFetch (sRef s, /*@unused@*/ sRef mexp) } } +static void clabstract_prepareFunction (uentry e) +{ + uentry_checkParams (e); + DPRINTF (("After prepare: %s", uentry_unparseFull (e))); +} + +sRef clabstract_checkGlobal (exprNode e) +{ + sRef s; + llassert (exprNode_isInitializer (e)); + + s = exprNode_getSref (e); + DPRINTF (("Initializer: %s -> %s", exprNode_unparse (e), sRef_unparse (s))); + + exprNode_free (e); + return sRef_copy (s); +} + diff --git a/src/clause.c b/src/clause.c index 7e7e256..e44a350 100644 --- a/src/clause.c +++ b/src/clause.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/clauseStack.c b/src/clauseStack.c index 8da6430..98e2ae5 100644 --- a/src/clauseStack.c +++ b/src/clauseStack.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/constraint.c b/src/constraint.c index 3891247..2bddf88 100644 --- a/src/constraint.c +++ b/src/constraint.c @@ -11,7 +11,6 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" /*@i33*/ @@ -21,7 +20,7 @@ /*@access exprNode @*/ -static /*@only@*/ cstring constraint_printDetailedPostCondition (/*@observer@*/ /*@temp@*/ constraint c); +static /*@only@*/ cstring constraint_printDetailedPostCondition (/*@observer@*/ /*@temp@*/ constraint p_c); static /*@notnull@*/ /*@special@*/ constraint constraint_makeNew (void) @@ -67,18 +66,18 @@ static /*@notnull@*/ /*@special@*/ constraint constraint_makeNew (void) static void advanceField (char **s) { - checkChar (s, '@'); + reader_checkChar (s, '@'); } -constraint makeConstraintParse2 (constraintExpr l, lltok relOp, exprNode cconstant) +static constraint makeConstraintParse2 (constraintExpr l, lltok relOp, exprNode cconstant) { char *t; int c; constraint ret; ret = constraint_makeNew(); - llassert (l!=NULL); + llassert (constraintExpr_isDefined(l) ); ret->lexpr = constraintExpr_copy (l); @@ -123,7 +122,7 @@ constraint makeConstraintParse3 (constraintExpr l, lltok relOp, constraintExpr r { constraint ret; ret = constraint_makeNew(); - llassert (l !=NULL); + llassert (constraintExpr_isDefined(l) ); ret->lexpr = constraintExpr_copy (l); @@ -150,19 +149,19 @@ constraint makeConstraintParse3 (constraintExpr l, lltok relOp, constraintExpr r return ret; } -constraint constraint_copy (constraint c) +constraint constraint_copy (/*@temp@*/ /*@observer@*/ constraint c) { constraint ret; llassert (constraint_isDefined(c) ); - // TPRINTF((message("Copying constraint %q", constraint_print) )); + // DPRINTF((message("Copying constraint %q", constraint_print) )); ret = constraint_makeNew(); ret->lexpr = constraintExpr_copy (c->lexpr); ret->ar = c->ar; ret->expr = constraintExpr_copy (c->expr); ret->post = c->post; - ret->generatingExpr = exprNode_fakeCopy(c->generatingExpr); + ret->generatingExpr = c->generatingExpr; /*@i33 fix this*/ if (c->orig != NULL) @@ -244,7 +243,7 @@ constraint constraint_addGeneratingExpr (/*@returned@*/ constraint c, exprNode e if (c->generatingExpr == NULL) { - c->generatingExpr = exprNode_fakeCopy(e); + c->generatingExpr = e; DPRINTF ((message ("setting generatingExpr for %s to %s", constraint_print(c), exprNode_unparse(e) ) )); } else @@ -278,7 +277,7 @@ constraint constraint_setFcnPre (/*@returned@*/ constraint c ) else { c->fcnPre = TRUE; - // TPRINTF(( message("Warning Setting fcnPre directly") )); + // DPRINTF(( message("Warning Setting fcnPre directly") )); } return c; } @@ -315,12 +314,12 @@ bool constraint_hasMaxSet(constraint c) return (checkForMaxSet(c) ); } -constraint constraint_makeReadSafeExprNode ( exprNode po, exprNode ind) +constraint constraint_makeReadSafeExprNode ( exprNode po, exprNode ind) { constraint ret = constraint_makeNew(); // constraintTerm term; - po = exprNode_fakeCopy(po); - ind = exprNode_fakeCopy(ind); + po = po; + ind = ind; ret->lexpr = constraintExpr_makeMaxReadExpr(po); ret->ar = GTE; ret->expr = constraintExpr_makeValueExpr (ind); @@ -328,7 +327,7 @@ constraint constraint_makeReadSafeExprNode ( exprNode po, exprNode ind) return ret; } -constraint constraint_makeWriteSafeInt (exprNode po, int ind) +constraint constraint_makeWriteSafeInt ( exprNode po, int ind) { constraint ret = constraint_makeNew(); @@ -388,15 +387,13 @@ constraint constraint_makeWriteSafeExprNode (exprNode po, exprNode ind) } -constraint constraint_makeReadSafeInt ( exprNode po, int ind) +constraint constraint_makeReadSafeInt ( exprNode t1, int index) { constraint ret = constraint_makeNew(); - po = exprNode_fakeCopy(po); - - ret->lexpr = constraintExpr_makeMaxReadExpr(po); + ret->lexpr = constraintExpr_makeMaxReadExpr(t1); ret->ar = GTE; - ret->expr = constraintExpr_makeIntLiteral (ind); + ret->expr = constraintExpr_makeIntLiteral (index); ret->post = FALSE; return ret; } @@ -413,14 +410,11 @@ constraint constraint_makeSRefReadSafeInt (sRef s, int ind) /*@i1*/return ret; } -constraint constraint_makeEnsureMaxReadAtLeast (exprNode e1, exprNode t2, fileloc sequencePoint) +constraint constraint_makeEnsureMaxReadAtLeast (exprNode t1, exprNode t2, fileloc sequencePoint) { constraint ret; - - e1 = exprNode_fakeCopy (e1); - t2 = exprNode_fakeCopy (t2); - ret = constraint_makeReadSafeExprNode(e1, t2); + ret = constraint_makeReadSafeExprNode(t1, t2); ret->lexpr = constraintExpr_setFileloc (ret->lexpr, sequencePoint); @@ -435,7 +429,7 @@ static constraint constraint_makeEnsuresOpConstraintExpr (/*@only@*/ constraintE constraint ret; - llassert(c1 && c2); + llassert(constraintExpr_isDefined(c1) && constraintExpr_isDefined(c2) ); // llassert(sequencePoint); ret = constraint_makeNew(); @@ -448,13 +442,13 @@ static constraint constraint_makeEnsuresOpConstraintExpr (/*@only@*/ constraintE return ret; } -static constraint constraint_makeEnsuresOp (exprNode e1, exprNode e2, fileloc sequencePoint, arithType ar) +static constraint constraint_makeEnsuresOp (/*@dependent@*/ exprNode e1, /*@dependent@*/ exprNode e2, fileloc sequencePoint, arithType ar) { constraintExpr c1, c2; constraint ret; exprNode e; - if (! (e1 && e2) ) + if (! (exprNode_isDefined(e1) && exprNode_isDefined(e2) ) ) { llcontbug((message("null exprNode, Exprnodes are %s and %s", exprNode_unparse(e1), exprNode_unparse(e2) ) @@ -463,10 +457,10 @@ static constraint constraint_makeEnsuresOp (exprNode e1, exprNode e2, fileloc se // llassert (sequencePoint); - e = exprNode_fakeCopy(e1); + e = e1; c1 = constraintExpr_makeValueExpr (e); - e = exprNode_fakeCopy(e2); + e = e2; c2 = constraintExpr_makeValueExpr (e); ret = constraint_makeEnsuresOpConstraintExpr (c1, c2, sequencePoint, ar); @@ -587,7 +581,7 @@ constraint constraint_makeMaxSetSideEffectPostDecrement (exprNode e, fileloc seq constraint ret = constraint_makeNew(); //constraintTerm term; - e = exprNode_fakeCopy(e); + // e = exprNode_fakeCopy(e); ret->lexpr = constraintExpr_makeValueExpr (e); ret->ar = EQ; ret->post = TRUE; @@ -604,7 +598,7 @@ constraint constraint_makeMaxSetSideEffectPostIncrement (exprNode e, fileloc seq constraint ret = constraint_makeNew(); //constraintTerm term; - e = exprNode_fakeCopy(e); + // e = exprNode_fakeCopy(e); ret->lexpr = constraintExpr_makeValueExpr (e); ret->ar = EQ; ret->post = TRUE; @@ -744,6 +738,7 @@ void constraint_printError (constraint c, fileloc loc) voptgenerror (FLG_FUNCTIONCONSTRAINT, string, errorLoc); } fileloc_free(temp); + errorLoc = NULL; } else { @@ -755,22 +750,26 @@ void constraint_printError (constraint c, fileloc loc) { voptgenerror (FLG_FUNCTIONCONSTRAINT, string, errorLoc); } + errorLoc = NULL; } } -cstring constraint_printDeep (constraint c) +static cstring constraint_printDeep (constraint c) { + cstring genExpr; cstring st = cstring_undefined; st = constraint_print(c); + if (c->orig != constraint_undefined) { + genExpr = exprNode_unparse(c->orig->generatingExpr); if (!c->post) { if (c->orig->fcnPre) - st = cstring_concatFree(st, (message(" derived from %s precondition: %q", exprNode_unparse(c->orig->generatingExpr), constraint_printDeep(c->orig) ) + st = cstring_concatFree(st, (message(" derived from %s precondition: %q", genExpr, constraint_printDeep(c->orig) ) ) ); else st = cstring_concatFree(st,(message(" needed to satisfy %q", @@ -794,15 +793,18 @@ cstring constraint_printDeep (constraint c) static /*@only@*/ cstring constraint_printDetailedPostCondition (/*@observer@*/ /*@temp@*/ constraint c) { cstring st = cstring_undefined; - + cstring genExpr; + st = message ("Unsatisfied ensures constraint condition:\nLCLint is unable to verify the constraint %q", constraint_printDeep (c) ); - + + genExpr = exprNode_unparse (c->generatingExpr); + if (context_getFlag (FLG_CONSTRAINTLOCATION) ) { cstring temp; // llassert (c->generatingExpr); temp = message ("\nOriginal Generating expression %q: %s\n", fileloc_unparse( exprNode_getfileloc (c->generatingExpr) ), - exprNode_unparse(c->generatingExpr) ); + genExpr ); st = cstring_concatFree (st, temp); if (constraint_hasMaxSet(c) ) @@ -817,7 +819,8 @@ static /*@only@*/ cstring constraint_printDetailedPostCondition (/*@observer@*/ cstring constraint_printDetailed (constraint c) { cstring st = cstring_undefined; - + cstring genExpr; + if (!c->post) { st = message ("Unresolved constraint:\nLclint is unable to resolve %q", constraint_printDeep (c) ); @@ -827,12 +830,14 @@ cstring constraint_printDetailed (constraint c) st = message ("Block Post condition:\nThis function block has the post condition %q", constraint_printDeep (c) ); } + genExpr = exprNode_unparse (c->generatingExpr); + if (context_getFlag (FLG_CONSTRAINTLOCATION) ) { cstring temp; // llassert (c->generatingExpr); temp = message ("\nOriginal Generating expression %q: %s\n", fileloc_unparse( exprNode_getfileloc (c->generatingExpr) ), - exprNode_unparse(c->generatingExpr) ); + genExpr ); st = cstring_concatFree (st, temp); if (constraint_hasMaxSet(c) ) @@ -901,7 +906,7 @@ cstring constraint_printOr (constraint c) /*@*/ } -constraint constraint_doFixResult (constraint postcondition, exprNode fcnCall) +constraint constraint_doFixResult (constraint postcondition, /*@dependent@*/ exprNode fcnCall) { postcondition = constraint_copy (postcondition); postcondition->lexpr = constraintExpr_doFixResult (postcondition->lexpr, fcnCall); @@ -1010,7 +1015,7 @@ constraint constraint_undump (FILE *f) constraintExpr lexpr; constraintExpr expr; - // /*@kept@*/ exprNode generatingExpr; + char * s; @@ -1024,21 +1029,21 @@ constraint constraint_undump (FILE *f) /*@i33*/ /*this should probably be wrappered...*/ - fcnPre = (bool) getInt (&s); + fcnPre = (bool) reader_getInt (&s); advanceField(&s); - post = (bool) getInt (&s); + post = (bool) reader_getInt (&s); advanceField(&s); - ar = (arithType) getInt (&s); + ar = (arithType) reader_getInt (&s); s = fgets(os, MAX_DUMP_LINE_LENGTH, f); - checkChar (&s, 'l'); + reader_checkChar (&s, 'l'); lexpr = constraintExpr_undump (f); s = fgets(os, MAX_DUMP_LINE_LENGTH, f); - checkChar (&s, 'r'); + reader_checkChar (&s, 'r'); expr = constraintExpr_undump (f); c = constraint_makeNew(); @@ -1063,7 +1068,7 @@ void constraint_dump (/*@observer@*/ constraint c, FILE *f) constraintExpr lexpr; constraintExpr expr; - // /*@kept@*/ exprNode generatingExpr; + fcnPre = c->fcnPre; post = c->post; diff --git a/src/constraintExpr.c b/src/constraintExpr.c index 4cb5e52..c7de979 100644 --- a/src/constraintExpr.c +++ b/src/constraintExpr.c @@ -10,7 +10,6 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" //# include "constraintExpr.h" @@ -20,21 +19,21 @@ -/*@access exprNode @*/ +/*@access exprNode constraintExpr@*/ -static /*@only@*/ constraintExpr constraintExpr_makeBinaryOpConstraintExprIntLiteral (/*@only@*/constraintExpr expr, int literal); +static /*@only@*/ constraintExpr constraintExpr_makeBinaryOpConstraintExprIntLiteral (/*@only@*/constraintExpr p_expr, int p_literal); /*@only@*/ static constraintExpr -doSRefFixConstraintParamTerm (/*@only@*/ constraintExpr e, /*@temp@*/ /*@observer@*/ exprNodeList arglist) /*@modifies e@*/; +doSRefFixConstraintParamTerm (/*@only@*/ constraintExpr p_e, /*@temp@*/ /*@observer@*/ exprNodeList p_arglist) /*@modifies p_e@*/; static /*@only@*/ constraintExpr -doFixResultTerm (/*@only@*/ constraintExpr e, /*@exposed@*/ exprNode fcnCall) - /*@modifies e@*/; +doFixResultTerm (/*@only@*/ constraintExpr p_e, /*@exposed@*/ exprNode p_fcnCall) + /*@modifies p_e@*/; -/*@special@*/ static constraintExpr constraintExpr_makeBinaryOp (void) /*@allocates result->data @*/ /*@sets result->kind @*/; + /*@special@*/ static constraintExpr constraintExpr_makeBinaryOp (void) ; /// @allocates result->data @ @sets result->kind @; //constraintExpr constraintExpr_makeMaxSetConstraintExpr (constraintExpr c); @@ -182,97 +181,6 @@ bool constraintExpr_isLit (constraintExpr expr) return expr; } -// constraintExpr constraintExpr_propagateConstantsBak (constraintExpr expr, -// /*@out@*/ bool * propagate, -// /*@out@*/ int *literal) -// { -// constraintExpr expr1; -// constraintExpr expr2; -// bool propagate1, propagate2; -// int literal1, literal2; - -// propagate1 = FALSE; -// propagate2 = FALSE; - -// literal1 = 0; -// literal2 = 0; - -// *propagate = FALSE; -// *literal = 0; - -// llassert (expr != NULL); - -// // we simplify unaryExpr else where -// if (expr->kind == unaryExpr) -// return expr; - -// if (expr->kind == term) -// return expr; - -// if (constraintExpr_isLit (expr) ) -// return expr; - -// DPRINTF( (message("constraintExpr_propagateConstants: binaryexpr: %s", constraintExpr_unparse(expr) ) ) ); - -// expr1 = constraintExprData_binaryExprGetExpr1(expr->data); -// expr2 = constraintExprData_binaryExprGetExpr2(expr->data); - -// expr1 = constraintExpr_propagateConstants (expr1, &propagate1, &literal1); -// expr2 = constraintExpr_propagateConstants (expr2, &propagate2, &literal2); - -// expr->data = constraintExprData_binaryExprSetExpr1 (expr->data, expr1); -// expr->data = constraintExprData_binaryExprSetExpr2 (expr->data, expr2); - -// *propagate = propagate1 || propagate2; -// *literal = literal1 + literal2; - -// if ( constraintExpr_isLit (expr1) && constraintExpr_isLit (expr2) ) -// { -// int t1, t2; -// t1 = constraintExpr_getValue (expr1); -// t2 = constraintExpr_getValue (expr2); -// *propagate = FALSE; - -// if (constraintExprData_binaryExprGetOp (expr->data) == PLUS ) -// return (constraintExpr_makeIntLiteral ( (t1+t2) )); -// else if (constraintExprData_binaryExprGetOp (expr->data) == MINUS) -// return (constraintExpr_makeIntLiteral ( (t1-t2) )); -// else -// llassert(FALSE); -// } - -// if (constraintExpr_isLit (expr1) ) -// { -// /*@i334*/ -// /*handle MINUS case right */ -// *propagate = TRUE; -// *literal += constraintExpr_getValue (expr1); -// /*@-compdef@*/ -// return expr2; -// /*@=compdef@*/ -// } - -// /*@-compdef@*/ -// if (constraintExpr_isLit (expr2) ) -// { -// *propagate = TRUE; - -// if (constraintExprData_binaryExprGetOp (expr->data) == PLUS ) -// *literal += constraintExpr_getValue (expr2); -// else -// *literal -= constraintExpr_getValue (expr2); -// return expr1; -// } - - - - -// DPRINTF( (message("constraintExpr_propagateConstants returning: %s", constraintExpr_unparse(expr) ) ) ); - -// return expr; -// /*@=compdef@*/ -// } - /*@only@*/ static constraintExpr constraintExpr_combineConstants (/*@only@*/ constraintExpr expr ) /*@modifies expr@*/ { bool propagate; @@ -339,7 +247,7 @@ constraintExpr constraintExpr_copy (constraintExpr expr) } -/*@only@*/ static constraintExpr oldconstraintExpr_makeTermExprNode (/*@exposed@*/ exprNode e) +/*@only@*/ static constraintExpr oldconstraintExpr_makeTermExprNode ( /*@dependent@*/ exprNode e) { constraintExpr ret; constraintTerm t; @@ -351,7 +259,7 @@ constraintExpr constraintExpr_copy (constraintExpr expr) return ret; } -constraintExpr constraintExpr_makeExprNode (/*@exposed@*/ exprNode e) +constraintExpr constraintExpr_makeExprNode (exprNode e) { sRef s; constraintExpr ret, ce1, ce2; @@ -450,7 +358,7 @@ constraintExpr constraintExpr_makeExprNode (/*@exposed@*/ exprNode e) return oldconstraintExpr_makeTermExprNode(e); //constraintExpr_makeExprNode (e); } -constraintExpr constraintExpr_makeTerm (/*@only@*/ constraintTerm t) +static constraintExpr constraintExpr_makeTerm (/*@only@*/ constraintTerm t) { constraintExpr ret; @@ -462,7 +370,7 @@ constraintExpr constraintExpr_makeTerm (/*@only@*/ constraintTerm t) return ret; } -constraintExpr constraintExpr_makeTermsRef ( sRef s) +constraintExpr constraintExpr_makeTermsRef (/*@temp@*/ sRef s) { constraintExpr ret; constraintTerm t; @@ -533,7 +441,7 @@ static constraintExpr constraintExpr_makeUnaryOpExprNode (/*@exposed@*/ exprNode /*@only@*/ -static constraintExpr constraintExpr_makeSRefUnaryOp (/*@exposed@*/ sRef s, constraintExprUnaryOpKind op) +static constraintExpr constraintExpr_makeSRefUnaryOp (/*@temp@*/ /*@observer@*/ sRef s, constraintExprUnaryOpKind op) { constraintExpr ret; constraintExpr t; @@ -546,13 +454,13 @@ static constraintExpr constraintExpr_makeSRefUnaryOp (/*@exposed@*/ sRef s, con } /*@only@*/ -constraintExpr constraintExpr_makeSRefMaxRead(/*@exposed@*/ sRef s) +constraintExpr constraintExpr_makeSRefMaxRead( sRef s) { return (constraintExpr_makeSRefUnaryOp (s, MAXREAD) ); } /*@only@*/ -constraintExpr constraintExpr_makeSRefMaxset (/*@exposed@*/ sRef s) +constraintExpr constraintExpr_makeSRefMaxset ( sRef s) { return (constraintExpr_makeSRefUnaryOp (s, MAXSET) ); } @@ -599,7 +507,7 @@ constraintExpr constraintExpr_makeMaxReadExpr (exprNode expr) } /*@only@*/ -/*@unused@*/ constraintExpr constraintExpr_makeMinSetExpr (/*@exposed@*/ exprNode expr) +/*@unused@*/ static constraintExpr constraintExpr_makeMinSetExpr (/*@exposed@*/ exprNode expr) { constraintExpr ret; ret = constraintExpr_makeUnaryOpExprNode(expr); @@ -608,7 +516,7 @@ constraintExpr constraintExpr_makeMaxReadExpr (exprNode expr) } /*@only@*/ -/*@unused@*/ constraintExpr constraintExpr_makeMinReadExpr (/*@exposed@*/ exprNode expr) +/*@unused@*/ static constraintExpr constraintExpr_makeMinReadExpr (/*@exposed@*/ exprNode expr) { constraintExpr ret; ret = constraintExpr_makeUnaryOpExprNode(expr); @@ -646,13 +554,14 @@ constraintExpr constraintExpr_makeValueInt (int i) */ /*@only@*/ - /*@special@*/ static constraintExpr constraintExpr_makeBinaryOp (void) /*@allocates result->data @*/ /*@sets result->kind @*/ + /*@special@*/ static constraintExpr constraintExpr_makeBinaryOp (void) + /*@allocates result->data @*/ /*@sets result->kind @*/ { constraintExpr ret; ret = constraintExpr_alloc(); ret->kind = binaryexpr; ret->data = dmalloc ( sizeof *(ret->data) ); - ret->data = constraintExprData_binaryExprSetOp (ret->data, BINARYOP_UNDEFINED); + // ret->data = constraintExprData_binaryExprSetOp (ret->data, BINARYOP_UNDEFINED); return ret; } @@ -686,7 +595,7 @@ constraintExpr constraintExpr_parseMakeBinaryOp (/*@only@*/ constraintExpr expr1 } /*@only@*/ -/*@unused@*/ constraintExpr constraintExpr_makeBinaryOpExprNode (/*@exposed@*/ exprNode expr1, /*@exposed@*/ exprNode expr2) +/*@unused@*/ static constraintExpr constraintExpr_makeBinaryOpExprNode (/*@exposed@*/ exprNode expr1, /*@exposed@*/ exprNode expr2) { constraintExpr ret; constraintExpr sub1, sub2; @@ -723,13 +632,13 @@ constraintExpr constraintExpr_makeDecConstraintExpr (/*@only@*/constraintExpr ex /*@only@*/ constraintExpr constraintExpr_makeSubtractExpr (/*@only@*/ constraintExpr expr, /*@only@*/ constraintExpr addent) { - constraintExpr new; + constraintExpr ret; DPRINTF ( (message ("Making subtract expression") ) ); - new = constraintExpr_makeBinaryOpConstraintExpr (expr, addent); - new->data = constraintExprData_binaryExprSetOp (new->data, MINUS); - return new; + ret = constraintExpr_makeBinaryOpConstraintExpr (expr, addent); + ret->data = constraintExprData_binaryExprSetOp (ret->data, MINUS); + return ret; } /*@only@*/ @@ -737,13 +646,13 @@ constraintExpr constraintExpr_makeAddExpr (/*@only@*/ constraintExpr expr, /*@only@*/ constraintExpr addent) { - constraintExpr new; + constraintExpr ret; DPRINTF ( (message ("Doing addTerm simplification") ) ); - new = constraintExpr_makeBinaryOpConstraintExpr (expr, addent); - new->data = constraintExprData_binaryExprSetOp (new->data, PLUS); - return new; + ret = constraintExpr_makeBinaryOpConstraintExpr (expr, addent); + ret->data = constraintExprData_binaryExprSetOp (ret->data, PLUS); + return ret; } @@ -939,7 +848,7 @@ bool constraintExpr_search (/*@observer@*/ constraintExpr c, /*@observer@*/ cons } -/*@only@*/ constraintExpr constraintExpr_searchandreplace (/*@only@*/ /*@unique@*/ constraintExpr c, constraintExpr old, constraintExpr new ) +/*@only@*/ constraintExpr constraintExpr_searchandreplace (/*@only@*/ /*@unique@*/ constraintExpr c, /*@temp@*/ constraintExpr old, /*@temp@*/ constraintExpr newExpr ) { constraintExprKind kind; constraintExpr temp; @@ -948,10 +857,10 @@ bool constraintExpr_search (/*@observer@*/ constraintExpr c, /*@observer@*/ cons { DPRINTF((message ("Replacing %s with %s", - constraintExpr_unparse(old), constraintExpr_unparse(new) + constraintExpr_unparse(old), constraintExpr_unparse(newExpr) ))); constraintExpr_free(c); - return constraintExpr_copy (new); + return constraintExpr_copy (newExpr); } kind = c->kind; @@ -963,19 +872,19 @@ bool constraintExpr_search (/*@observer@*/ constraintExpr c, /*@observer@*/ cons case unaryExpr: temp = constraintExprData_unaryExprGetExpr (c->data); temp = constraintExpr_copy(temp); - temp = constraintExpr_searchandreplace (temp, old, new); + temp = constraintExpr_searchandreplace (temp, old, newExpr); c->data = constraintExprData_unaryExprSetExpr (c->data, temp); break; case binaryexpr: temp = constraintExprData_binaryExprGetExpr1 (c->data); temp = constraintExpr_copy(temp); - temp = constraintExpr_searchandreplace (temp, old, new); + temp = constraintExpr_searchandreplace (temp, old, newExpr); c->data = constraintExprData_binaryExprSetExpr1 (c->data, temp); temp = constraintExprData_binaryExprGetExpr2 (c->data); temp = constraintExpr_copy(temp); - temp = constraintExpr_searchandreplace (temp, old, new); + temp = constraintExpr_searchandreplace (temp, old, newExpr); c->data = constraintExprData_binaryExprSetExpr2 (c->data, temp); break; default: @@ -1024,7 +933,7 @@ static constraintExpr constraintExpr_simplifyChildren (/*@returned@*/ constraint } -constraintExpr constraintExpr_setFileloc (/*@returned@*/ constraintExpr c, fileloc loc) /*@modifies c->data @*/ +constraintExpr constraintExpr_setFileloc (/*@returned@*/ constraintExpr c, fileloc loc) /*@modifies c @*/ { constraintTerm t; constraintExpr temp; @@ -1105,13 +1014,13 @@ static /*@only@*/ constraintExpr constraintExpr_simplifybinaryExpr (/*@only@*/co expr1 = constraintExpr_copy(expr1); expr2 = constraintExpr_copy(expr2); -#warning make sure this works +//drl possible problem : warning make sure this works lexpr->kind = expr1->kind; free (lexpr->data); lexpr->data = copyExprData (expr1->data, expr1->kind); - free(expr1); + constraintExpr_free(expr1); if (op == PLUS) expr = constraintExpr_makeSubtractExpr (expr, expr2); @@ -1163,7 +1072,7 @@ static /*@only@*/ constraintExpr constraintExpr_simplifyunaryExpr (/*@only@*/ co { constraintExpr temp; - temp = constraintExpr_makeIntLiteral ((int)strlen (val) ); + temp = constraintExpr_makeIntLiteral ((int)strlen (cstring_toCharsSafe(val) ) ); cstring_free(val); constraintExpr_free(c); return temp; @@ -1172,7 +1081,7 @@ static /*@only@*/ constraintExpr constraintExpr_simplifyunaryExpr (/*@only@*/ co { constraintExpr temp; - temp = constraintExpr_makeIntLiteral ((int)strlen (val) ); + temp = constraintExpr_makeIntLiteral ((int)strlen (cstring_toCharsSafe(val) ) ); cstring_free(val); constraintExpr_free(c); return temp; @@ -1395,7 +1304,7 @@ constraintExpr constraintExpr_doSRefFixBaseParam (/*@returned@*/ constraintExpr return expr; } -/*@only@*/ constraintExpr constraintExpr_doFixResult (/*@only@*/ constraintExpr expr, exprNode fcnCall) +/*@only@*/ constraintExpr constraintExpr_doFixResult (/*@only@*/ constraintExpr expr, /*@observer@*/ exprNode fcnCall) { constraintExprKind kind; constraintExpr expr1, expr2; @@ -1449,7 +1358,7 @@ bool constraintExpr_hasMaxSet (constraintExpr expr) /*@*/ t = constraintExpr_unparse(expr); - if (strstr (t, "MAXSET") != NULL ) + if (cstring_containsLit(t, "MAXSET") != NULL ) { cstring_free(t); return (TRUE); @@ -1555,7 +1464,7 @@ doFixResultTerm (/*@only@*/ constraintExpr e, /*@exposed@*/ exprNode fcnCall) llassert(kind == term); t = constraintExprData_termGetTerm (data); - llassert (t != NULL); + llassert (constraintTerm_isDefined(t) ); ret = e; switch (constraintTerm_getKind(t) ) @@ -1601,7 +1510,7 @@ doSRefFixConstraintParamTerm (/*@only@*/ constraintExpr e, /*@observer@*/ /*@tem llassert(kind == term); t = constraintExprData_termGetTerm (data); - llassert (t != NULL); + llassert (constraintTerm_isDefined(t) ); ret = e; /*@i1*/ switch (t->kind) @@ -1617,7 +1526,7 @@ doSRefFixConstraintParamTerm (/*@only@*/ constraintExpr e, /*@observer@*/ /*@tem case SREF: DPRINTF (( message("Doing sRef_fixConstraintParam for %q ", constraintTerm_print (t) ) )); - ret = sRef_fixConstraintParam (t->value.sref, arglist); + ret = sRef_fixConstraintParam (constraintTerm_getSRef(t), arglist); constraintExpr_free(e); @@ -1696,19 +1605,19 @@ static constraintExpr binaryExpr_undump (FILE *f) str = fgets(os, MAX_DUMP_LINE_LENGTH, f); - binaryOp = (constraintExprBinaryOpKind) getInt(&str); + binaryOp = (constraintExprBinaryOpKind) reader_getInt(&str); str = fgets(os, MAX_DUMP_LINE_LENGTH, f); - checkChar (&str, 'e'); - checkChar (&str, '1'); + reader_checkChar (&str, 'e'); + reader_checkChar (&str, '1'); expr1 = constraintExpr_undump (f); str = fgets(os, MAX_DUMP_LINE_LENGTH, f); - checkChar (&str, 'e'); - checkChar (&str, '2'); + reader_checkChar (&str, 'e'); + reader_checkChar (&str, '2'); expr2 = constraintExpr_undump (f); @@ -1750,7 +1659,7 @@ static constraintExpr unaryExpr_undump ( FILE *f) os = str; str = fgets(os, MAX_DUMP_LINE_LENGTH, f); - unaryOp = (constraintExprUnaryOpKind) getInt(&str); + unaryOp = (constraintExprUnaryOpKind) reader_getInt(&str); expr = constraintExpr_undump (f); @@ -1801,7 +1710,7 @@ void constraintExpr_dump (/*@observer@*/ constraintExpr expr, FILE *f) s = fgets(os, MAX_DUMP_LINE_LENGTH, f); - kind = (constraintExprKind) getInt(&s); + kind = (constraintExprKind) reader_getInt(&s); free (os); diff --git a/src/constraintExprData.c b/src/constraintExprData.c index 47cf727..66f21f9 100644 --- a/src/constraintExprData.c +++ b/src/constraintExprData.c @@ -8,7 +8,6 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" void constraintExprData_freeBinaryExpr (/*@only@*/constraintExprData data) @@ -86,11 +85,9 @@ constraintExprData constraintExprData_copyTerm (/*@observer@*/ constraintExprDat // return ret; // } -/*@reldef@*/ constraintExprData constraintExprData_termSetTerm (/*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/constraintTerm term) + constraintExprData constraintExprData_termSetTerm (/*@returned@*/ constraintExprData data, /*@only@*/constraintTerm term) { - /*@-uniondef@*/ llassert (constraintExprData_isDefined(data)); - /*@=uniondef@*/ data->term = term; return data; } @@ -119,7 +116,7 @@ constraintExpr constraintExprData_unaryExprGetExpr (/*@observer@*/ constraintEx - constraintExprData constraintExprData_unaryExprSetOp (/*@reldef@*/ /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) + constraintExprData constraintExprData_unaryExprSetOp ( /*@returned@*/ constraintExprData data, constraintExprUnaryOpKind op) { /*@-uniondef@*/ llassert (constraintExprData_isDefined(data)); @@ -160,14 +157,14 @@ constraintExpr constraintExprData_binaryExprGetExpr2 (constraintExprData data) } -constraintExprData constraintExprData_binaryExprSetExpr1 ( /*@reldef@*/ /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr) +constraintExprData constraintExprData_binaryExprSetExpr1 ( /*@returned@*/ constraintExprData data, /*@only@*/ constraintExpr expr) { llassert (constraintExprData_isDefined(data)); data->binaryOp.expr1 = expr; return data; } -constraintExprData constraintExprData_binaryExprSetExpr2 (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExpr expr) +constraintExprData constraintExprData_binaryExprSetExpr2 (constraintExprData data, constraintExpr expr) { llassert (constraintExprData_isDefined(data)); data->binaryOp.expr2 = expr; @@ -175,7 +172,7 @@ constraintExprData constraintExprData_binaryExprSetExpr2 (/*@returned@*/ /*@rel } -constraintExprData constraintExprData_binaryExprSetOp (/*@returned@*/ /*@reldef@*/ constraintExprData data, constraintExprBinaryOpKind op) +constraintExprData constraintExprData_binaryExprSetOp (constraintExprData data, constraintExprBinaryOpKind op) { llassert (constraintExprData_isDefined(data)); data->binaryOp.binaryOp = op; diff --git a/src/constraintGeneration.c b/src/constraintGeneration.c index 5b6d1de..11f978e 100644 --- a/src/constraintGeneration.c +++ b/src/constraintGeneration.c @@ -12,28 +12,29 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" //# include "exprDataQuite.i" /*@access exprNode @*/ -extern void forLoopHeuristics( exprNode e, exprNode forPred, exprNode forBody); -//bool /*@alt void@*/ exprNode_generateConstraints (/*@temp@*/ exprNode e); -static bool exprNode_handleError( exprNode p_e); +static bool exprNode_handleError(/*@dependent@*/ exprNode p_e); //static cstring exprNode_findConstraints ( exprNode p_e); -static bool exprNode_isMultiStatement(exprNode p_e); -static void exprNode_multiStatement (exprNode p_e); +static bool exprNode_isMultiStatement(/*@dependent@*/ exprNode p_e); +static void exprNode_multiStatement (/*@dependent@*/ exprNode p_e); //static void exprNode_constraintPropagateUp (exprNode p_e); -static constraintList exprNode_traversTrueEnsuresConstraints (exprNode e); -static constraintList exprNode_traversFalseEnsuresConstraints (exprNode e); +static constraintList exprNode_traversTrueEnsuresConstraints (/*@dependent@*/ exprNode p_e); +static constraintList exprNode_traversFalseEnsuresConstraints (/*@dependent@*/ exprNode p_e); -exprNode makeDataTypeConstraints (/*@returned@*/ exprNode e); +static exprNode makeDataTypeConstraints (/*@returned@*/ exprNode p_e); + +static void checkArgumentList (/*@out@*/ exprNode p_temp, exprNodeList p_arglist, fileloc p_sequencePoint) /*@modifies p_temp @*/; + +static constraintList checkCall (/*@dependent@*/ exprNode p_fcn, exprNodeList p_arglist); //constraintList constraintList_makeFixedArrayConstraints (sRefSet s); @@ -48,7 +49,7 @@ exprNode makeDataTypeConstraints (/*@returned@*/ exprNode e); */ //} -static bool exprNode_isUnhandled (exprNode e) +static bool exprNode_isUnhandled (/*@dependent@*/ /*@obsever@*/ exprNode e) { llassert( exprNode_isDefined(e) ); switch (e->kind) @@ -106,7 +107,7 @@ bool exprNode_handleError( exprNode e) return FALSE; } -bool /*@alt void@*/ exprNode_generateConstraints (/*@temp@*/ exprNode e) +bool /*@alt void@*/ exprNode_generateConstraints (/*@dependent@*/ exprNode e) { if (exprNode_isError (e) ) return FALSE; @@ -148,7 +149,7 @@ bool /*@alt void@*/ exprNode_generateConstraints (/*@temp@*/ exprNode e) constraintList c; c = constraintList_makeFixedArrayConstraints (e->uses); - e->requiresConstraints = reflectChangesFreePre (e->requiresConstraints, c); + e->requiresConstraints = constraintList_reflectChangesFreePre (e->requiresConstraints, c); // e->ensuresConstraints = constraintList_mergeEnsures(c, e->ensuresConstraints); @@ -186,7 +187,7 @@ if (exprNode_handleError (e) != NULL) } -static void exprNode_stmt (exprNode e) +static void exprNode_stmt ( /*@dependent@*/ exprNode e) { exprNode snode; fileloc loc; @@ -279,7 +280,7 @@ static void exprNode_stmt (exprNode e) } -static void exprNode_stmtList (exprNode e) +static void exprNode_stmtList (/*@dependent@*/ exprNode e) { exprNode stmt1, stmt2; if (exprNode_isError (e) ) @@ -314,7 +315,7 @@ static void exprNode_stmtList (exprNode e) DPRINTF(("\nstmt after stmtList call " )); exprNode_stmt (stmt2); - mergeResolve (e, stmt1, stmt2 ); + exprNode_mergeResolve (e, stmt1, stmt2 ); DPRINTF ( (message ("smtlist constraints are: pre: %s \n and \t post %s\n", constraintList_print(e->requiresConstraints), @@ -322,7 +323,7 @@ static void exprNode_stmtList (exprNode e) return; // TRUE; } -static exprNode doIf (/*@returned@*/ exprNode e, exprNode test, exprNode body) +static exprNode doIf (/*@returned@*/ exprNode e, /*@dependent@*/ exprNode test, /*@dependent@*/ exprNode body) { constraintList temp; @@ -373,16 +374,16 @@ static exprNode doIf (/*@returned@*/ exprNode e, exprNode test, exprNode body) DPRINTF ((message ("doIf: test true ensures %s ", constraintList_print(test->trueEnsuresConstraints) ) ) ); constraintList_free(e->requiresConstraints); - e->requiresConstraints = reflectChanges (body->requiresConstraints, test->trueEnsuresConstraints); + e->requiresConstraints = constraintList_reflectChanges(body->requiresConstraints, test->trueEnsuresConstraints); - e->requiresConstraints = reflectChangesFreePre (e->requiresConstraints, + e->requiresConstraints = constraintList_reflectChangesFreePre (e->requiresConstraints, test->ensuresConstraints); temp = e->requiresConstraints; e->requiresConstraints = constraintList_mergeRequires (e->requiresConstraints, test->requiresConstraints); constraintList_free(temp); -#warning bad +//drl possible problem : warning bad constraintList_free(e->ensuresConstraints); e->ensuresConstraints = constraintList_copy (test->ensuresConstraints); @@ -409,7 +410,7 @@ static exprNode doIf (/*@returned@*/ exprNode e, exprNode test, exprNode body) */ -static exprNode doIfElse (/*@returned@*/ exprNode e, exprNode p, exprNode trueBranch, exprNode falseBranch) +static exprNode doIfElse (/*@returned@*/ exprNode e, /*@dependent@*/ exprNode p, /*@dependent@*/ exprNode trueBranch, /*@dependent@*/ exprNode falseBranch) { constraintList c1, cons, t, t2, f, f2; @@ -419,11 +420,11 @@ static exprNode doIfElse (/*@returned@*/ exprNode e, exprNode p, exprNode trueBr // do requires clauses c1 = constraintList_copy (p->ensuresConstraints); - t = reflectChanges (trueBranch->requiresConstraints, p->trueEnsuresConstraints); - t = reflectChangesFreePre (t, p->ensuresConstraints); + t = constraintList_reflectChanges(trueBranch->requiresConstraints, p->trueEnsuresConstraints); + t = constraintList_reflectChangesFreePre (t, p->ensuresConstraints); - cons = reflectChanges (falseBranch->requiresConstraints, p->falseEnsuresConstraints); - cons = reflectChangesFreePre (cons, c1); + cons = constraintList_reflectChanges(falseBranch->requiresConstraints, p->falseEnsuresConstraints); + cons = constraintList_reflectChangesFreePre (cons, c1); constraintList_free(e->requiresConstraints); e->requiresConstraints = constraintList_mergeRequiresFreeFirst (t, cons); @@ -458,7 +459,7 @@ static exprNode doIfElse (/*@returned@*/ exprNode e, exprNode p, exprNode trueBr return e; } -static exprNode doWhile (/*@returned@*/ exprNode e, exprNode test, exprNode body) +static exprNode doWhile (/*@returned@*/ exprNode e, /*@dependent@*/ exprNode test, /*@dependent@*/ exprNode body) { DPRINTF ((message ("doWhile: %s ", exprNode_unparse(e) ) ) ); return doIf (e, test, body); @@ -525,7 +526,7 @@ exprNode makeDataTypeConstraints (/*@returned@*/ exprNode e) return e; } -static void doFor (exprNode e, exprNode forPred, exprNode forBody) +static void doFor (/*@dependent@*/ exprNode e, /*@dependent@*/ exprNode forPred, /*@dependent@*/ exprNode forBody) { exprNode init, test, inc; //merge the constraints: modle as if statement @@ -543,12 +544,12 @@ static void doFor (exprNode e, exprNode forPred, exprNode forBody) return; } - forLoopHeuristics(e, forPred, forBody); + exprNode_forLoopHeuristics(e, forPred, forBody); constraintList_free(e->requiresConstraints); - e->requiresConstraints = reflectChanges (forBody->requiresConstraints, test->ensuresConstraints); - e->requiresConstraints = reflectChangesFreePre (e->requiresConstraints, test->trueEnsuresConstraints); - e->requiresConstraints = reflectChangesFreePre (e->requiresConstraints, forPred->ensuresConstraints); + e->requiresConstraints = constraintList_reflectChanges(forBody->requiresConstraints, test->ensuresConstraints); + e->requiresConstraints = constraintList_reflectChangesFreePre (e->requiresConstraints, test->trueEnsuresConstraints); + e->requiresConstraints = constraintList_reflectChangesFreePre (e->requiresConstraints, forPred->ensuresConstraints); if (!forBody->canBreak) { @@ -586,7 +587,7 @@ static exprNode doSwitch (/*@returned@*/ exprNode e) } -void exprNode_multiStatement (exprNode e) +void exprNode_multiStatement (/*@dependent@*/ exprNode e) { bool ret; @@ -801,7 +802,7 @@ static bool lltok_isBoolean_Op (lltok tok) } -static void exprNode_booleanTraverse (exprNode e, /*@unused@*/ bool definatelv, /*@unused@*/ bool definaterv, fileloc sequencePoint) +static void exprNode_booleanTraverse (/*@dependent@*/ exprNode e, /*@unused@*/ bool definatelv, /*@unused@*/ bool definaterv, fileloc sequencePoint) { constraint cons; exprNode t1, t2; @@ -917,7 +918,7 @@ if (lltok_isLe_Op (tok) ) } -void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@observer@*/ fileloc sequencePoint) +void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@observer@*/ /*@temp@*/ fileloc sequencePoint) { exprNode t1, t2, fcn; lltok tok; @@ -1075,7 +1076,7 @@ void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@ob // e->constraints = constraintList_exprNodemerge (exprData_getOpA (data), exprData_getOpB (data)); break; case XPR_SIZEOFT: - #warning make sure the case can be ignored.. + //drl possible problem : warning make sure the case can be ignored.. break; @@ -1094,14 +1095,14 @@ void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@ob checkCall (fcn, exprData_getArgs (data) ) ); fcn->ensuresConstraints = constraintList_addListFree (fcn->ensuresConstraints, - getPostConditions(fcn, exprData_getArgs (data),e ) ); + exprNode_getPostConditions(fcn, exprData_getArgs (data),e ) ); t1 = exprNode_createNew (exprNode_getType (e) ); checkArgumentList (t1, exprData_getArgs(data), sequencePoint); - mergeResolve (e, t1, fcn); + exprNode_mergeResolve (e, t1, fcn); exprNode_free(t1); @@ -1231,11 +1232,11 @@ void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@ob case XPR_COND: { - exprNode pred, true, false; + exprNode pred, trueBranch, falseBranch; llassert(FALSE); pred = exprData_getTriplePred (data); - true = exprData_getTripleTrue (data); - false = exprData_getTripleFalse (data); + trueBranch = exprData_getTripleTrue (data); + falseBranch = exprData_getTripleFalse (data); exprNode_exprTraverse (pred, FALSE, TRUE, sequencePoint ); @@ -1256,56 +1257,56 @@ void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@ob constraintList_free(temp); - exprNode_exprTraverse (true, FALSE, TRUE, sequencePoint ); + exprNode_exprTraverse (trueBranch, FALSE, TRUE, sequencePoint ); - temp = true->ensuresConstraints; - true->ensuresConstraints = exprNode_traversEnsuresConstraints(true); + temp = trueBranch->ensuresConstraints; + trueBranch->ensuresConstraints = exprNode_traversEnsuresConstraints(trueBranch); constraintList_free(temp); - temp = true->requiresConstraints; - true->requiresConstraints = exprNode_traversRequiresConstraints(true); + temp = trueBranch->requiresConstraints; + trueBranch->requiresConstraints = exprNode_traversRequiresConstraints(trueBranch); constraintList_free(temp); - temp = true->trueEnsuresConstraints; - true->trueEnsuresConstraints = exprNode_traversTrueEnsuresConstraints(true); + temp = trueBranch->trueEnsuresConstraints; + trueBranch->trueEnsuresConstraints = exprNode_traversTrueEnsuresConstraints(trueBranch); constraintList_free(temp); - temp = true->falseEnsuresConstraints; - true->falseEnsuresConstraints = exprNode_traversFalseEnsuresConstraints(true); + temp = trueBranch->falseEnsuresConstraints; + trueBranch->falseEnsuresConstraints = exprNode_traversFalseEnsuresConstraints(trueBranch); constraintList_free(temp); //dfdf - exprNode_exprTraverse (false, FALSE, TRUE, sequencePoint ); + exprNode_exprTraverse (falseBranch, FALSE, TRUE, sequencePoint ); - temp = false->ensuresConstraints; - false->ensuresConstraints = exprNode_traversEnsuresConstraints(false); + temp = falseBranch->ensuresConstraints; + falseBranch->ensuresConstraints = exprNode_traversEnsuresConstraints(falseBranch); constraintList_free(temp); - temp = false->requiresConstraints; - false->requiresConstraints = exprNode_traversRequiresConstraints(false); + temp = falseBranch->requiresConstraints; + falseBranch->requiresConstraints = exprNode_traversRequiresConstraints(falseBranch); constraintList_free(temp); - temp = false->trueEnsuresConstraints; - false->trueEnsuresConstraints = exprNode_traversTrueEnsuresConstraints(false); + temp = falseBranch->trueEnsuresConstraints; + falseBranch->trueEnsuresConstraints = exprNode_traversTrueEnsuresConstraints(falseBranch); constraintList_free(temp); - temp = false->falseEnsuresConstraints; - false->falseEnsuresConstraints = exprNode_traversFalseEnsuresConstraints(false); + temp = falseBranch->falseEnsuresConstraints; + falseBranch->falseEnsuresConstraints = exprNode_traversFalseEnsuresConstraints(falseBranch); constraintList_free(temp); /* if pred is true e equals true otherwise pred equals false */ - cons = constraint_makeEnsureEqual (e, true, sequencePoint); - true->ensuresConstraints = constraintList_add(true->ensuresConstraints, cons); + cons = constraint_makeEnsureEqual (e, trueBranch, sequencePoint); + trueBranch->ensuresConstraints = constraintList_add(trueBranch->ensuresConstraints, cons); - cons = constraint_makeEnsureEqual (e, true, sequencePoint); - false->ensuresConstraints = constraintList_add(false->ensuresConstraints, cons); + cons = constraint_makeEnsureEqual (e, trueBranch, sequencePoint); + falseBranch->ensuresConstraints = constraintList_add(falseBranch->ensuresConstraints, cons); - e = doIfElse (e, pred, true, false); + e = doIfElse (e, pred, trueBranch, falseBranch); } break; @@ -1318,7 +1319,7 @@ void exprNode_exprTraverse (exprNode e, bool definatelv, bool definaterv, /*@ob problems../ */ exprNode_exprTraverse (t1, FALSE, FALSE, sequencePoint ); exprNode_exprTraverse (t2, definatelv, definaterv, sequencePoint ); - mergeResolve (e, t1, t2); + exprNode_mergeResolve (e, t1, t2); break; default: @@ -1917,3 +1918,84 @@ DPRINTF( (message ( return ret; } +/*drl moved out of constraintResolve.c 07-02-001 */ +void checkArgumentList (/*@out@*/ exprNode temp, exprNodeList arglist, fileloc sequencePoint) +{ + temp->requiresConstraints = constraintList_makeNew(); + temp->ensuresConstraints = constraintList_makeNew(); + temp->trueEnsuresConstraints = constraintList_makeNew(); + temp->falseEnsuresConstraints = constraintList_makeNew(); + + exprNodeList_elements (arglist, el) + { + constraintList temp2; + exprNode_exprTraverse (el, FALSE, FALSE, sequencePoint); + temp2 = el->requiresConstraints; + el->requiresConstraints = exprNode_traversRequiresConstraints(el); + constraintList_free(temp2); + + temp2 = el->ensuresConstraints; + el->ensuresConstraints = exprNode_traversEnsuresConstraints(el); + constraintList_free(temp2); + + temp->requiresConstraints = constraintList_addList(temp->requiresConstraints, + el->requiresConstraints); + + temp->ensuresConstraints = constraintList_addList(temp->ensuresConstraints, + el->ensuresConstraints); + } + end_exprNodeList_elements; + +} + +/*drl moved out of constraintResolve.c 07-03-001 */ +constraintList exprNode_getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall) +{ + constraintList postconditions; + uentry temp; + DPRINTF( (message ("Got call that %s ( %s) ", exprNode_unparse(fcn), exprNodeList_unparse (arglist ) ) ) ); + + temp = exprNode_getUentry (fcn); + + postconditions = uentry_getFcnPostconditions (temp); + + if (constraintList_isDefined(postconditions) ) + { + postconditions = constraintList_doSRefFixConstraintParam (postconditions, arglist); + postconditions = constraintList_doFixResult (postconditions, fcnCall); + } + else + { + postconditions = constraintList_makeNew(); + } + + return postconditions; +} + + +/*drl moved out of constraintResolve.c 07-02-001 */ +constraintList checkCall (/*@dependent@*/ exprNode fcn, exprNodeList arglist) +{ + constraintList preconditions; + uentry temp; + DPRINTF( (message ("Got call that %s ( %s) ", exprNode_unparse(fcn), exprNodeList_unparse (arglist ) ) ) ); + + temp = exprNode_getUentry (fcn); + + preconditions = uentry_getFcnPreconditions (temp); + + if (constraintList_isDefined(preconditions) ) + { + preconditions = constraintList_togglePost (preconditions); + preconditions = constraintList_preserveCallInfo(preconditions, fcn); + preconditions = constraintList_doSRefFixConstraintParam (preconditions, arglist); + } + else + { + if (constraintList_isUndefined(preconditions) ) + preconditions = constraintList_makeNew(); + } + DPRINTF (( message("Done checkCall\n") )); + DPRINTF (( message("Returning list %q ", constraintList_printDetailed(preconditions) ) )); + return preconditions; +} diff --git a/src/constraintList.c b/src/constraintList.c index ec78fc1..5326f10 100644 --- a/src/constraintList.c +++ b/src/constraintList.c @@ -33,7 +33,16 @@ # include "llbasic.h" -/*@iter constraintList_elements_private (sef constraintList x, yield constraint el); @*/ +/*@iter constraintList_elements_private_only (sef constraintList x, yield only constraint el); @*/ +# define constraintList_elements_private_only(x, m_el) \ + { int m_ind; constraint *m_elements = &((x)->elements[0]); \ + for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ + { constraint m_el = *(m_elements++); + +# define end_constraintList_elements_private_only }} + + + /*@iter constraintList_elements_private (sef constraintList x, yield constraint el); @*/ # define constraintList_elements_private(x, m_el) \ { int m_ind; constraint *m_elements = &((x)->elements[0]); \ for (m_ind = 0 ; m_ind < (x)->nelements; m_ind++) \ @@ -79,7 +88,7 @@ constraintList_add (/*@returned@*/ constraintList s, /*@only@*/ constraint el) { /*drl7x */ // el = constraint_simplify (el); - if (resolve (el, s) ) + if (constraintList_resolve (el, s) ) { constraint_free (el); return s; @@ -111,15 +120,15 @@ static void constraintList_freeShallow (/*@only@*/ constraintList c) c = NULL; } -/*@only@*/ constraintList constraintList_addList (/*@returned@*/ constraintList s, /*@observer@*/ constraintList new) +/*@only@*/ constraintList constraintList_addList (/*@only@*/ /*@returned@*/ constraintList s, /*@observer@*/ constraintList newList) { llassert(constraintList_isDefined(s) ); - llassert(constraintList_isDefined(new) ); + llassert(constraintList_isDefined(newList) ); - if (new == constraintList_undefined) + if (newList == constraintList_undefined) return s; - constraintList_elements (new, elem) + constraintList_elements (newList, elem) { s = constraintList_add (s, constraint_copy(elem) ); } @@ -128,21 +137,21 @@ static void constraintList_freeShallow (/*@only@*/ constraintList c) return s; } -/*@only@*/ constraintList constraintList_addListFree (/*@only@*/ constraintList s, /*@only@*/ constraintList new) +constraintList constraintList_addListFree (/*@returned@*/ constraintList s, /*@only@*/ constraintList newList) { llassert(constraintList_isDefined(s) ); - llassert(constraintList_isDefined(new) ); + llassert(constraintList_isDefined(newList) ); - if (new == constraintList_undefined) + if (constraintList_isUndefined(newList) ) return s; - constraintList_elements_private(new, elem) + constraintList_elements_private_only(newList, elem) { s = constraintList_add (s, elem); } - end_constraintList_elements_private + end_constraintList_elements_private_only - constraintList_freeShallow(new); + constraintList_freeShallow(newList); return s; } @@ -156,7 +165,7 @@ extern /*@only@*/ cstring constraintList_unparse ( /*@observer@*/ constraintList /*@only@*/ cstring -constraintList_print (constraintList s) /*@*/ +constraintList_print (/*@temp@*/ constraintList s) /*@*/ { int i; cstring st = cstring_undefined; @@ -173,7 +182,7 @@ constraintList_print (constraintList s) /*@*/ cstring type = cstring_undefined; constraint current = s->elements[i]; - if (current != NULL) + if (constraint_isDefined(current) ) { cstring temp1; if ( context_getFlag (FLG_ORCONSTRAINT) ) @@ -202,7 +211,7 @@ void constraintList_printErrorPostConditions (constraintList s, fileloc loc) constraintList_elements (s, elem) { - if (elem != NULL) + if (constraint_isDefined(elem)) { constraint_printErrorPostCondition (elem, loc); } @@ -216,7 +225,7 @@ void constraintList_printError (constraintList s, fileloc loc) constraintList_elements (s, elem) { - if (elem != NULL) + if (constraint_isDefined(elem) ) { constraint_printError (elem, loc); } @@ -244,7 +253,7 @@ constraintList_printDetailed (constraintList s) cstring type = cstring_undefined; constraint current = s->elements[i]; - if (current != NULL) + if (constraint_isDefined(current ) ) { cstring temp1 = constraint_printDetailed (current); type = message ("%s %s\n", type, temp1 ); @@ -280,11 +289,11 @@ constraintList_logicalOr (/*@observer@*/ constraintList l1, /*@observer@*/ const ret = constraintList_makeNew(); constraintList_elements (l1, el) { - temp = substitute (el, l2); + temp = constraint_substitute (el, l2); - if (resolve (el, l2) || resolve(temp,l2) ) + if (constraintList_resolve (el, l2) || constraintList_resolve(temp,l2) ) { /*avoid redundant constraints*/ - if (!resolve (el, ret) ) + if (!constraintList_resolve (el, ret) ) { constraint temp2; temp2 = constraint_copy(el); @@ -297,12 +306,12 @@ constraintList_logicalOr (/*@observer@*/ constraintList l1, /*@observer@*/ const constraintList_elements (l2, el) { - temp = substitute (el, l1); + temp = constraint_substitute (el, l1); - if (resolve (el, l1) || resolve(temp,l1) ) + if (constraintList_resolve (el, l1) || constraintList_resolve(temp,l1) ) { /*avoid redundant constraints*/ - if (!resolve (el, ret) ) + if (!constraintList_resolve (el, ret) ) { constraint temp2; temp2 = constraint_copy(el); @@ -339,7 +348,7 @@ constraintList_free (/*@only@*/ constraintList s) } constraintList -constraintList_copy (constraintList s) +constraintList_copy (/*@oberserver@*/ /*@temp@*/ constraintList s) { constraintList ret = constraintList_makeNew (); @@ -363,7 +372,7 @@ constraintList constraintList_preserveOrig (constraintList c) return c; } -constraintList constraintList_preserveCallInfo (/*@returned@*/ constraintList c, exprNode fcn) +constraintList constraintList_preserveCallInfo (/*@returned@*/ constraintList c,/*@observer@*/ /*@depenent@*/ /*@observer@*/ exprNode fcn) { DPRINTF((message("constraintList_preserveOrig preserving the originial constraints for %s ", constraintList_print (c) ) )); @@ -379,7 +388,7 @@ constraintList constraintList_preserveCallInfo (/*@returned@*/ constraintList c, -constraintList constraintList_addGeneratingExpr (constraintList c, exprNode e) +constraintList constraintList_addGeneratingExpr (constraintList c,/*@dependent@*/ exprNode e) { DPRINTF ((message ("entering constraintList_addGeneratingExpr for %s ", exprNode_unparse(e) ) )); @@ -406,7 +415,7 @@ constraintList constraintList_addGeneratingExpr (constraintList c, exprNode e) return ret; } -/*@only@*/ constraintList constraintList_doSRefFixConstraintParam (constraintList preconditions, exprNodeList arglist) +/*@only@*/ constraintList constraintList_doSRefFixConstraintParam (constraintList preconditions, /*@temp@*/ /*@observer@*/ exprNodeList arglist) { constraintList ret; ret = constraintList_makeNew(); @@ -421,7 +430,7 @@ constraintList constraintList_addGeneratingExpr (constraintList c, exprNode e) return ret; } -constraintList constraintList_doSRefFixBaseParam (/*@observer@*/ constraintList preconditions, /*@observer@*/ +constraintList constraintList_doSRefFixBaseParam (constraintList preconditions, /*@observer@*/ exprNodeList arglist) { constraintList ret; @@ -468,7 +477,7 @@ constraintList constraintList_togglePost (/*@returned@*/ constraintList c) constraint temp; char * c; - c = getWord(&s); + c = reader_getWord(&s); if (strcmp (c, "C") != 0) { diff --git a/src/constraintOutput.c b/src/constraintOutput.c index 51294c1..6ed3468 100644 --- a/src/constraintOutput.c +++ b/src/constraintOutput.c @@ -6,7 +6,7 @@ # include "basic.h" # include "portab.h" -#define testingFlag FLG_BUFFEROVERFLOW + //FLG_BUFF //FLG_NULLTERMINATED diff --git a/src/constraintResolve.c b/src/constraintResolve.c index 4e8f172..199a882 100644 --- a/src/constraintResolve.c +++ b/src/constraintResolve.c @@ -12,24 +12,27 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" /*@access constraint, exprNode @*/ -static bool rangeCheck (arithType ar1, /*@observer@*/ constraintExpr expr1, arithType ar2, /*@observer@*/ constraintExpr expr2); -static constraint inequalitySubstituteUnsound (/*@returned@*/ constraint c, constraintList p); +static constraint inequalitySubstitute (/*@returned@*/ constraint p_c, constraintList p_p); -static constraint constraint_searchandreplace (/*@returned@*/ constraint c, constraintExpr old, constraintExpr new); +static bool rangeCheck (arithType p_ar1, /*@observer@*/ constraintExpr p_expr1, arithType p_ar2, /*@observer@*/ constraintExpr p_expr2); -static constraint constraint_addOr (/*@returned@*/ constraint orig, /*@observer@*/ constraint or); +static constraint inequalitySubstituteUnsound (/*@returned@*/ constraint p_c, constraintList p_p); -static bool resolveOr (/*@observer@*/ constraint c, /*@observer@*/ constraintList list); +static constraint constraint_searchandreplace (/*@returned@*/ constraint p_c, constraintExpr p_old, constraintExpr p_newExpr); -static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constraintList pre2, constraintList post1); + +static constraint constraint_addOr (/*@returned@*/ constraint p_orig, /*@observer@*/ constraint p_orConstr); + +static bool resolveOr (/*@temp@*/constraint p_c, /*@observer@*/ /*@temp@*/ constraintList p_list); + +static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constraintList p_pre2, constraintList p_post1); /*********************************************/ @@ -101,11 +104,11 @@ static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constrai DPRINTF((message ("constraintList_mergeRequires: merging %s and %s ", constraintList_print (list1), constraintList_print(list2) ) ) ); /* get constraints in list1 not satified by list2 */ - temp = reflectChanges (list1, list2); + temp = constraintList_reflectChanges(list1, list2); DPRINTF((message ("constraintList_mergeRequires: temp = %s", constraintList_print(temp) ) ) ); /*get constraints in list2 not satified by temp*/ - ret = reflectChanges (list2, temp); + ret = constraintList_reflectChanges(list2, temp); DPRINTF((message ("constraintList_mergeRequires: ret = %s", constraintList_print(ret) ) ) ); @@ -116,85 +119,8 @@ static /*@only@*/ constraintList reflectChangesEnsuresFree1 (/*@only@*/ constrai return ret; } -void checkArgumentList (/*@out@*/ exprNode temp, exprNodeList arglist, fileloc sequencePoint) -{ - temp->requiresConstraints = constraintList_makeNew(); - temp->ensuresConstraints = constraintList_makeNew(); - temp->trueEnsuresConstraints = constraintList_makeNew(); - temp->falseEnsuresConstraints = constraintList_makeNew(); - - exprNodeList_elements (arglist, el) - { - constraintList temp2; - exprNode_exprTraverse (el, FALSE, FALSE, sequencePoint); - temp2 = el->requiresConstraints; - el->requiresConstraints = exprNode_traversRequiresConstraints(el); - constraintList_free(temp2); - - temp2 = el->ensuresConstraints; - el->ensuresConstraints = exprNode_traversEnsuresConstraints(el); - constraintList_free(temp2); - - temp->requiresConstraints = constraintList_addList(temp->requiresConstraints, - el->requiresConstraints); - - temp->ensuresConstraints = constraintList_addList(temp->ensuresConstraints, - el->ensuresConstraints); - } - end_exprNodeList_elements; - -} - -constraintList checkCall (exprNode fcn, exprNodeList arglist) -{ - constraintList preconditions; - uentry temp; - DPRINTF ( (message ("Got call that %s ( %s) ", exprNode_unparse(fcn), exprNodeList_unparse (arglist ) ) ) ); - - temp = exprNode_getUentry (fcn); - - preconditions = uentry_getFcnPreconditions (temp); - - if (preconditions != constraintList_undefined) - { - preconditions = constraintList_togglePost (preconditions); - preconditions = constraintList_preserveCallInfo(preconditions, fcn); - preconditions = constraintList_doSRefFixConstraintParam (preconditions, arglist); - } - else - { - if (preconditions == NULL) - preconditions = constraintList_makeNew(); - } - DPRINTF (( message("Done checkCall\n") )); - DPRINTF (( message("Returning list %q ", constraintList_printDetailed(preconditions) ) )); - return preconditions; -} - -constraintList getPostConditions (exprNode fcn, exprNodeList arglist, exprNode fcnCall) -{ - constraintList postconditions; - uentry temp; - DPRINTF ( (message ("Got call that %s ( %s) ", exprNode_unparse(fcn), exprNodeList_unparse (arglist ) ) ) ); - - temp = exprNode_getUentry (fcn); - - postconditions = uentry_getFcnPostconditions (temp); - - if (postconditions != constraintList_undefined) - { - postconditions = constraintList_doFixResult (postconditions, fcnCall); - postconditions = constraintList_doSRefFixConstraintParam (postconditions, arglist); - } - else - { - postconditions = constraintList_makeNew(); - } - - return postconditions; -} - -void mergeResolve (exprNode parent, exprNode child1, exprNode child2) +/* old name mergeResolve renamed for czech naming convention */ +void exprNode_mergeResolve (exprNode parent, exprNode child1, exprNode child2) { constraintList temp, temp2; @@ -243,9 +169,9 @@ void mergeResolve (exprNode parent, exprNode child1, exprNode child2) parent->requiresConstraints = constraintList_copy (child1->requiresConstraints); if ( context_getFlag (FLG_ORCONSTRAINT) ) - temp = reflectChangesOr (child2->requiresConstraints, child1->ensuresConstraints); + temp = constraintList_reflectChangesOr (child2->requiresConstraints, child1->ensuresConstraints); else - temp = reflectChanges (child2->requiresConstraints, child1->ensuresConstraints); + temp = constraintList_reflectChanges(child2->requiresConstraints, child1->ensuresConstraints); temp2 = constraintList_mergeRequires (parent->requiresConstraints, temp); constraintList_free(parent->requiresConstraints); @@ -281,7 +207,7 @@ void mergeResolve (exprNode parent, exprNode child1, exprNode child2) { DPRINTF ((message ("Examining %s", constraint_print (el) ) ) ); - if (!resolve (el, list2) ) + if (!constraintList_resolve (el, list2) ) { constraint temp; temp = constraint_copy(el); @@ -298,12 +224,13 @@ void mergeResolve (exprNode parent, exprNode child1, exprNode child2) +/*used to be reflectChangesFreePre renamed for Czech naming conventino*/ /* tries to resolve constraints in list pre2 using post1 */ -/*@only@*/ constraintList reflectChangesFreePre (/*@only@*/ constraintList pre2, /*@observer@*/ constraintList post1) +/*@only@*/ constraintList constraintList_reflectChangesFreePre (/*@only@*/ constraintList pre2, /*@observer@*/ constraintList post1) { constraintList ret; - ret = reflectChanges (pre2, post1); + ret = constraintList_reflectChanges(pre2, post1); constraintList_free (pre2); @@ -312,7 +239,7 @@ void mergeResolve (exprNode parent, exprNode child1, exprNode child2) /* tries to resolve constraints in list pre2 using post1 */ -/*@only@*/ constraintList reflectChanges (/*@observer@*/ constraintList pre2, /*@observer@*/ constraintList post1) +/*@only@*/ constraintList constraintList_reflectChanges(/*@observer@*/ constraintList pre2, /*@observer@*/ constraintList post1) { constraintList ret; @@ -324,10 +251,10 @@ void mergeResolve (exprNode parent, exprNode child1, exprNode child2) constraintList_elements (pre2, el) { - if (!resolve (el, post1) ) + if (!constraintList_resolve (el, post1) ) { - temp = substitute (el, post1); - if (!resolve (temp, post1) ) + temp = constraint_substitute (el, post1); + if (!constraintList_resolve (temp, post1) ) { // try inequality substitution //constraint temp2; @@ -337,10 +264,10 @@ void mergeResolve (exprNode parent, exprNode child1, exprNode child2) temp2 = constraint_copy (temp); // if (context_getFlag (FLG_ORCONSTRAINT) ) temp2 = inequalitySubstitute (temp2, post1); - if (!resolve (temp2, post1) ) + if (!constraintList_resolve (temp2, post1) ) { temp2 = inequalitySubstituteUnsound (temp2, post1); - if (!resolve (temp2, post1) ) + if (!constraintList_resolve (temp2, post1) ) ret = constraintList_add (ret, temp2); else constraint_free(temp2); @@ -359,18 +286,18 @@ void mergeResolve (exprNode parent, exprNode child1, exprNode child2) } -static constraint constraint_addOr (/*@returned@*/ constraint orig, /*@observer@*/ constraint or) +static constraint constraint_addOr (/*@returned@*/ constraint orig, /*@observer@*/ constraint orConstr) { constraint c; c = orig; - DPRINTF((message("constraint_addor: oring %s onto %s", constraint_printOr(or), constraint_printOr(orig) ) )); + DPRINTF((message("constraint_addor: oring %s onto %s", constraint_printOr(orConstr), constraint_printOr(orig) ) )); while (c->or != NULL) { c = c->or; } - c->or = constraint_copy(or); + c->or = constraint_copy(orConstr); DPRINTF((message("constraint_addor: returning %s",constraint_printOr(orig) ) )); @@ -378,7 +305,7 @@ static constraint constraint_addOr (/*@returned@*/ constraint orig, /*@observer@ } -static bool resolveOr (/*@observer@*/ constraint c, /*@observer@*/ constraintList list) +static bool resolveOr ( /*@temp@*/ constraint c, /*@observer@*/ /*@temp@*/ constraintList list) { constraint temp; @@ -387,7 +314,7 @@ static bool resolveOr (/*@observer@*/ constraint c, /*@observer@*/ constraintLis do { - if (resolve (temp, list) ) + if (constraintList_resolve (temp, list) ) return TRUE; temp = temp->or; } @@ -405,7 +332,7 @@ static /*@only@*/ constraint doResolve (/*@only@*/ constraint c, constraintList if (!resolveOr (c, post1) ) { - temp = substitute (c, post1); + temp = constraint_substitute (c, post1); if (!resolveOr (temp, post1) ) { @@ -501,13 +428,13 @@ static /*@only@*/ constraint doResolveOr (constraint c, constraintList post1, /* /* tries to resolve constraints in list pr2 using post1 */ -/*@only@*/ constraintList reflectChangesOr (constraintList pre2, constraintList post1) +/*@only@*/ constraintList constraintList_reflectChangesOr (constraintList pre2, constraintList post1) { bool resolved; constraintList ret; constraint temp; ret = constraintList_makeNew(); - DPRINTF((message ("reflectChangesOr: lists %s and %s", constraintList_print(pre2), constraintList_print(post1) ))); + DPRINTF((message ("constraintList_reflectChangesOr: lists %s and %s", constraintList_print(pre2), constraintList_print(post1) ))); constraintList_elements (pre2, el) { @@ -525,7 +452,7 @@ static /*@only@*/ constraint doResolveOr (constraint c, constraintList post1, /* } end_constraintList_elements; - DPRINTF((message ("reflectChangesOr: returning %s", constraintList_print(ret) ) ) ); + DPRINTF((message ("constraintList_reflectChangesOr: returning %s", constraintList_print(ret) ) ) ); return ret; } static /*@only@*/ constraintList reflectChangesEnsures (/*@observer@*/ constraintList pre2, constraintList post1) @@ -535,12 +462,12 @@ static /*@only@*/ constraintList reflectChangesEnsures (/*@observer@*/ constrain ret = constraintList_makeNew(); constraintList_elements (pre2, el) { - if (!resolve (el, post1) ) + if (!constraintList_resolve (el, post1) ) { - temp = substitute (el, post1); + temp = constraint_substitute (el, post1); llassert (temp != NULL); - if (!resolve (temp, post1) ) + if (!constraintList_resolve (temp, post1) ) ret = constraintList_add (ret, temp); else constraint_free(temp); @@ -586,7 +513,7 @@ static bool constraint_conflict (constraint c1, constraint c2) } -static void constraint_fixConflict ( constraint good, /*@observer@*/ constraint conflicting) /*@modifies good@*/ +static void constraint_fixConflict (/*@temp@*/ constraint good, /*@temp@*/ /*@observer@*/ constraint conflicting) /*@modifies good@*/ { if (conflicting->ar ==EQ ) { @@ -643,7 +570,7 @@ static bool satifies (constraint pre, constraint post) { return FALSE; } - if (post->expr == NULL) + if (constraintExpr_isUndefined(post->expr)) { llassert(FALSE); return FALSE; @@ -653,7 +580,7 @@ static bool satifies (constraint pre, constraint post) } -bool resolve (/*@observer@*/ constraint c, /*@observer@*/ constraintList p) +bool constraintList_resolve (/*@temp@*/ /*@observer@*/ constraint c, /*@temp@*/ /*@observer@*/ constraintList p) { constraintList_elements (p, el) { @@ -700,7 +627,7 @@ static bool arithType_canResolve (arithType ar1, arithType ar2) /* We look for constraint which are tautologies */ -bool constraint_isAlwaysTrue (/*@observer@*/ constraint c) +bool constraint_isAlwaysTrue (/*@observer@*/ /*@temp@*/ constraint c) { constraintExpr l, r; bool /*@unused@*/ lHasConstant, rHasConstant; @@ -898,12 +825,12 @@ static bool rangeCheck (arithType ar1, /*@observer@*/ constraintExpr expr1, arit } -static constraint constraint_searchandreplace (/*@returned@*/ constraint c, constraintExpr old, constraintExpr new) +static constraint constraint_searchandreplace (/*@returned@*/ constraint c, constraintExpr old, constraintExpr newExpr) { DPRINTF (("Doing replace for lexpr") ); - c->lexpr = constraintExpr_searchandreplace (c->lexpr, old, new); + c->lexpr = constraintExpr_searchandreplace (c->lexpr, old, newExpr); DPRINTF (("Doing replace for expr") ); - c->expr = constraintExpr_searchandreplace (c->expr, old, new); + c->expr = constraintExpr_searchandreplace (c->expr, old, newExpr); return c; } @@ -1045,7 +972,7 @@ static constraint inequalitySubstituteUnsound (/*@returned@*/ constraint c, co return c; } -/*@only@*/ constraint substitute (/*@observer@*/ constraint c, constraintList p) +/*@only@*/ constraint constraint_substitute (/*@observer@*/ /*@temp@*/ constraint c, constraintList p) { constraint ret; @@ -1103,9 +1030,9 @@ return ret; constraintList_elements(target, el) { constraint temp; - #warning make sure that a side effect is not expected + //drl possible problem : warning make sure that a side effect is not expected - temp = substitute(el, subList); + temp = constraint_substitute(el, subList); ret = constraintList_add (ret, temp); } end_constraintList_elements; @@ -1113,7 +1040,7 @@ return ret; return ret; } -constraint constraint_solve (/*@returned@*/ constraint c) +static constraint constraint_solve (/*@returned@*/ constraint c) { DPRINTF( (message ("Solving %s\n", constraint_print(c) ) ) ); c->expr = constraintExpr_solveBinaryExpr (c->lexpr, c->expr); diff --git a/src/constraintTerm.c b/src/constraintTerm.c index eded059..55b2d8b 100644 --- a/src/constraintTerm.c +++ b/src/constraintTerm.c @@ -11,16 +11,15 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" /*@-czechfcns@*/ //#include "constraintExpr.h" -/*@access exprNode, constraintTermValue @*/ +/*@access exprNode @*/ -/*@unused@*/ static bool constraintTerm_same (constraintTerm term1, constraintTerm term2) ; +/*@unused@*/ static bool constraintTerm_same (constraintTerm p_term1, constraintTerm p_term2) ; void constraintTerm_free (/*@only@*/ constraintTerm term) { @@ -95,7 +94,7 @@ constraintTerm constraintTerm_simplify (/*@returned@*/ constraintTerm term) /*@m if ( exprNode_knownIntValue (term->value.expr ) ) { long int temp; - #warning is this a leak? + temp = exprNode_getLongValue (term->value.expr); term->value.intlit = (int)temp; term->kind = INTLITERAL; @@ -124,7 +123,7 @@ constraintTermType constraintTerm_getKind (constraintTerm t) return (t->value.sref); } -/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@dependent@*/ exprNode e) +/*@only@*/ constraintTerm constraintTerm_makeExprNode (/*@depenedent@*/ exprNode e) { constraintTerm ret = new_constraintTermExpr(); ret->loc = fileloc_copy(exprNode_getfileloc(e)); @@ -134,7 +133,7 @@ constraintTermType constraintTerm_getKind (constraintTerm t) return ret; } -/*@only@*/ constraintTerm constraintTerm_makesRef (/*@exposed@*/ sRef s) +/*@only@*/ constraintTerm constraintTerm_makesRef (/*@temp@*/ /*@observer@*/ sRef s) { constraintTerm ret = new_constraintTermExpr(); ret->loc = fileloc_undefined; @@ -158,7 +157,7 @@ constraintTerm constraintTerm_setFileloc (/*@returned@*/ constraintTerm term, fi { llassert(term != NULL); - if (term->loc != fileloc_undefined) + if ( fileloc_isDefined( term->loc ) ) fileloc_free(term->loc); term->loc = fileloc_copy(loc); @@ -372,12 +371,12 @@ bool constraintTerm_similar (constraintTerm term1, constraintTerm term2) s1 = constraintTerm_getsRef (term1); s2 = constraintTerm_getsRef (term2); - if ( ! (s1 && s2) ) + if ( ! (sRef_isValid(s1) && sRef_isValid(s2) ) ) { return FALSE; } - DPRINTF ( (message + DPRINTF( (message ("Comparing srefs for %s and %s ", constraintTerm_print(term1), constraintTerm_print(term2) ) ) @@ -416,7 +415,8 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) case EXPRNODE: u = exprNode_getUentry(t->value.expr); - fprintf(f, "%s\n", uentry_rawName (u) ); + fprintf(f, "%s\n", cstring_toCharsSafe( uentry_rawName (u) ) + ); break; case SREF: @@ -441,13 +441,13 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) ctString = ctype_dump(ct); - fprintf(f, "Param %s %d\n", ctString, (int) param ); + fprintf(f, "Param %s %d\n", cstring_toCharsSafe(ctString), (int) param ); cstring_free(ctString); } else { u = sRef_getUentry(s); - fprintf(f, "%s\n", uentry_rawName (u) ); + fprintf(f, "%s\n", cstring_toCharsSafe(uentry_rawName (u) ) ); } } @@ -466,7 +466,6 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) /*@only@*/ constraintTerm constraintTerm_undump ( FILE *f) { - fileloc loc; constraintTermType kind; constraintTerm ret; @@ -479,7 +478,7 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) os = str; str = fgets(os, MAX_DUMP_LINE_LENGTH, f); - kind = (constraintTermType) getInt(&str); + kind = (constraintTermType) reader_getInt(&str); str = fgets(os, MAX_DUMP_LINE_LENGTH, f); switch (kind) @@ -489,7 +488,7 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) { sRef s; char * term; - term = getWord(&str); + term = reader_getWord(&str); if (strcmp (term, "Result") == 0 ) { @@ -502,9 +501,9 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) ctype t; - checkChar(&str, ' '); - str2 = getWord(&str); - param = getInt(&str); + reader_checkChar(&str, ' '); + str2 = reader_getWord(&str); + param = reader_getInt(&str); ostr2 = str2; t = ctype_undump(&str2) ; @@ -514,8 +513,9 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) else //This must be an identified that we can search for // in usymTab { - - ue = usymtab_lookup (term); + cstring termStr = cstring_makeLiteralTemp(term); + + ue = usymtab_lookup (termStr); s = uentry_getSref(ue); } @@ -529,12 +529,14 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) { sRef s; char * term; + cstring termStr; - term = getWord(&str); + term = reader_getWord(&str); //This must be an identifier that we can search for // in usymTab + termStr = cstring_makeLiteralTemp(term); - ue = usymtab_lookup (term); + ue = usymtab_lookup (termStr); s = uentry_getSref(ue); ret = constraintTerm_makesRef(s); @@ -547,7 +549,7 @@ void constraintTerm_dump ( /*@observer@*/ constraintTerm t, FILE *f) { int i; - i = getInt(&str); + i = reader_getInt(&str); ret = constraintTerm_makeIntLiteral (i); } break; diff --git a/src/context.c b/src/context.c index 97578aa..2aba471 100644 --- a/src/context.c +++ b/src/context.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -49,6 +49,7 @@ # include "portab.h" extern /*@external@*/ int yydebug; +extern /*@external@*/ int mtdebug; typedef struct { @@ -57,14 +58,16 @@ typedef struct } maccesst; typedef enum { + CX_ERROR, + CX_GLOBAL, CX_INNER, - CX_FUNCTION, CX_FCNDECL, + CX_FUNCTION, CX_FCNHEADER, CX_FCNDECLARATION, CX_MACROFCN, CX_MACROCONST, CX_UNKNOWNMACRO, CX_ITERDEF, CX_ITEREND, - CX_LCL, CX_LCLLIB + CX_LCL, CX_LCLLIB, CX_MT } kcontext; -static struct _context +static struct { int linesprocessed; int speclinesprocessed; @@ -130,6 +133,7 @@ static struct _context /*@reldef@*/ maccesst *moduleaccess; /* Not defined is nmods == 0. */ kcontext kind; + kcontext savekind; ctype boolType; @@ -142,8 +146,10 @@ static struct _context int counters[NUMVALUEFLAGS]; o_cstring strings[NUMSTRINGFLAGS]; - sRefSetList modrecs; + sRefSetList modrecs; /*@i32 ???? what is this for? */ + metaStateTable stateTable; /* User-defined state information. */ + annotationTable annotTable; /* User-defined annotations table. */ union { bool glob; @@ -194,6 +200,11 @@ bool context_isPreprocessing (void) return gc.preprocessing; } +bool context_inXHFile (void) +{ + return (fileloc_isXHFile (g_currentloc)); +} + void context_setInCommandLine (void) { llassert (!gc.incommandline); @@ -245,13 +256,15 @@ clause topClause (clauseStack s) /*@*/ void context_addMacroCache (/*@only@*/ cstring def) { - macrocache_addEntry (gc.mc, fileloc_copy (g_currentloc), def); + DPRINTF (("macro cache: %s", def)); + macrocache_addEntry (gc.mc, fileloc_copy (g_currentloc), def); } void context_addComment (/*@only@*/ cstring def) { - macrocache_addComment (gc.mc, fileloc_copy (g_currentloc), def); + DPRINTF (("macro comment: %s", def)); + macrocache_addComment (gc.mc, fileloc_copy (g_currentloc), def); } /* @@ -321,7 +334,7 @@ context_suppressFlagMsg (flagcode flag, fileloc fl) } else { - return (context_inSuppressFlagZone (fl, flag)); + return (context_inSuppressFlagZone (fl, flag)); } } @@ -427,6 +440,19 @@ context_exitSuppressRegion (void) flagMarkerList_add (gc.markers, flagMarker_createIgnoreOff (g_currentloc)); } +void +context_enterMTfile (void) +{ + gc.kind = CX_MT; +} + +void +context_exitMTfile (void) +{ + llassert (gc.kind == CX_MT); + gc.kind = CX_GLOBAL; +} + # ifndef NOLCL void context_enterLCLfile (void) @@ -497,13 +523,11 @@ context_exitLCLfile (void) { if (gc.kind != CX_LCLLIB) { - char *lclname = - removeExtension (cstring_toCharsSafe - (fileName (currentFile ())), ".lcl"); + cstring lclname = + fileLib_withoutExtension (fileName (currentFile ()), LCL_EXTENSION); - addModuleAccess (cstring_fromCharsO (removePath (lclname)), gc.facct); - - mstring_free (lclname); + addModuleAccess (fileLib_removePath (lclname), gc.facct); + cstring_free (lclname); } gc.kind = CX_LCL; @@ -552,22 +576,22 @@ void context_setLibrary (flagcode code) gc.library = code; } -/*@observer@*/ char *context_selectedLibrary () +/*@observer@*/ cstring context_selectedLibrary () { switch (gc.library) { case FLG_STRICTLIB: - return LLSTRICTLIBS_NAME; + return cstring_makeLiteralTemp (LLSTRICTLIBS_NAME); case FLG_POSIXLIB: - return LLPOSIXLIBS_NAME; + return cstring_makeLiteralTemp (LLPOSIXLIBS_NAME); case FLG_POSIXSTRICTLIB: - return LLPOSIXSTRICTLIBS_NAME; + return cstring_makeLiteralTemp (LLPOSIXSTRICTLIBS_NAME); case FLG_UNIXLIB: - return LLUNIXLIBS_NAME; + return cstring_makeLiteralTemp (LLUNIXLIBS_NAME); case FLG_UNIXSTRICTLIB: - return LLUNIXSTRICTLIBS_NAME; + return cstring_makeLiteralTemp (LLUNIXSTRICTLIBS_NAME); case FLG_ANSILIB: - return LLSTDLIBS_NAME; + return cstring_makeLiteralTemp (LLSTDLIBS_NAME); BADDEFAULT; } } @@ -584,7 +608,7 @@ context_loadModuleAccess (FILE *in) char *os = s; # endif - while (fgets (s, MAX_DUMP_LINE_LENGTH, in) != NULL + while ((reader_readLine (in, s, MAX_DUMP_LINE_LENGTH) != NULL ) && *s == ';') { ; @@ -613,7 +637,7 @@ context_loadModuleAccess (FILE *in) addModuleAccess (cstring_copy (cstring_fromChars (oname)), typeIdSet_undump (&s)); - (void) fgets (s, MAX_DUMP_LINE_LENGTH, in); + (void) reader_readLine (in, s, MAX_DUMP_LINE_LENGTH); llassert (s != lasts); lasts = s; } @@ -680,8 +704,12 @@ context_resetAllFlags (void) { case FLG_LIMIT: val = DEFAULT_LIMIT; break; + case FLG_BUGSLIMIT: + val = DEFAULT_BUGSLIMIT; break; case FLG_LINELEN: val = DEFAULT_LINELEN; break; + case FLG_INDENTSPACES: + val = DEFAULT_INDENTSPACES; break; case FLG_EXTERNALNAMELEN: val = DEFAULT_EXTERNALNAMELEN; break; case FLG_INTERNALNAMELEN: @@ -716,11 +744,11 @@ context_resetAllFlags (void) { /*@-loopswitchbreak@*/ case FLG_LARCHPATH: { - char *larchpath = osd_getEnvironmentVariable (LARCH_PATH); + cstring larchpath = osd_getEnvironmentVariable (LARCH_PATH); - if (larchpath != NULL) + if (cstring_isDefined (larchpath)) { - val = cstring_fromCharsNew (larchpath); + val = cstring_copy (larchpath); } else { @@ -731,7 +759,7 @@ context_resetAllFlags (void) } case FLG_LCLIMPORTDIR: { - val = cstring_fromCharsNew (osd_getEnvironment (LCLIMPORTDIR, DEFAULT_LCLIMPORTDIR)); + val = cstring_copy (osd_getEnvironment (cstring_makeLiteralTemp (LCLIMPORTDIR), cstring_makeLiteralTemp (DEFAULT_LCLIMPORTDIR))); break; } case FLG_TMPDIR: @@ -777,6 +805,8 @@ context_resetAllFlags (void) ** These flags are true by default. */ + /*@i34 move this into flags.def */ + gc.flags[FLG_MODIFIES] = TRUE; gc.flags[FLG_NESTCOMMENT] = TRUE; gc.flags[FLG_GLOBALS] = TRUE; @@ -800,6 +830,7 @@ context_resetAllFlags (void) gc.flags[FLG_SIZEOFFORMALARRAY] = TRUE; gc.flags[FLG_FIXEDFORMALARRAY] = TRUE; + gc.flags[FLG_WARNUSE] = TRUE; gc.flags[FLG_PREDASSIGN] = TRUE; gc.flags[FLG_MODOBSERVER] = TRUE; gc.flags[FLG_MACROVARPREFIXEXCLUDE] = TRUE; @@ -815,6 +846,7 @@ context_resetAllFlags (void) gc.flags[FLG_FORMATTYPE] = TRUE; gc.flags[FLG_BADFLAG] = TRUE; gc.flags[FLG_WARNFLAGS] = TRUE; + gc.flags[FLG_FILEEXTENSIONS] = TRUE; gc.flags[FLG_WARNUNIXLIB] = TRUE; gc.flags[FLG_WARNPOSIX] = TRUE; gc.flags[FLG_SHOWCOL] = TRUE; @@ -835,6 +867,9 @@ context_resetAllFlags (void) gc.flags[FLG_ACCESSFILE] = TRUE; gc.flags[FLG_MACROVARPREFIX] = TRUE; + gc.flags[FLG_ANNOTATIONERROR] = TRUE; + gc.flags[FLG_COMMENTERROR] = TRUE; + /* ** Changed for version 2.4. */ @@ -935,8 +970,9 @@ context_setMode (cstring s) FLG_PTRNUMCOMPARE, FLG_BOOLCOMPARE, FLG_MUTREP, FLG_NOEFFECT, FLG_IMPTYPE, FLG_RETVALOTHER, FLG_RETVALBOOL, FLG_RETVALINT, - FLG_SPECUNDEF, FLG_INCONDEFS, FLG_INCONDEFSLIB, + FLG_SPECUNDEF, FLG_INCONDEFS, FLG_INCONDEFSLIB, FLG_MISPLACEDSHAREQUAL, FLG_MATCHFIELDS, + FLG_FORMATCONST, FLG_MACROPARAMS, FLG_MACROASSIGN, FLG_SEFPARAMS, FLG_MACROSTMT, FLG_MACROPARENS, FLG_MACROFCNDECL, @@ -979,7 +1015,7 @@ context_setMode (cstring s) FLG_COMPDESTROY, FLG_MUSTNOTALIAS, FLG_MEMIMPLICIT, FLG_BRANCHSTATE, - + FLG_STATETRANSFER, FLG_STATEMERGE, FLG_EVALORDER, FLG_SHADOW, FLG_READONLYSTRINGS, FLG_EXITARG, FLG_IMPCHECKEDSPECGLOBALS, @@ -987,7 +1023,10 @@ context_setMode (cstring s) FLG_IFEMPTY, FLG_REALCOMPARE, FLG_BOOLOPS, FLG_PTRNEGATE, FLG_SHIFTSIGNED, - INVALID_FLAG } ; + FLG_BUFFEROVERFLOWHIGH, + FLG_BUFFEROVERFLOW, + INVALID_FLAG + } ; SETFLAGS (); } @@ -1006,11 +1045,13 @@ context_setMode (cstring s) FLG_RETVALOTHER, FLG_IFEMPTY, FLG_RETSTACK, FLG_PTRNEGATE, + FLG_STATETRANSFER, FLG_STATEMERGE, FLG_LONGUNSIGNEDINTEGRAL, FLG_LONGUNSIGNEDUNSIGNEDINTEGRAL, FLG_NUMLITERAL, FLG_CHARINTLITERAL, FLG_ZEROBOOL, + FLG_BUFFEROVERFLOWHIGH, INVALID_FLAG } ; @@ -1021,10 +1062,12 @@ context_setMode (cstring s) flagcode modeflags[] = { FLG_EXPORTLOCAL, FLG_IMPTYPE, + FLG_STATETRANSFER, FLG_STATEMERGE, FLG_CHECKSTRICTGLOBALIAS, FLG_CHECKEDGLOBALIAS, FLG_CHECKMODGLOBALIAS, FLG_UNCHECKEDGLOBALIAS, + FLG_FORMATCONST, FLG_EXITARG, FLG_PTRNUMCOMPARE, FLG_BOOLCOMPARE, FLG_MACROUNDEF, FLG_MUSTMOD, FLG_ALLGLOBALS, @@ -1038,6 +1081,7 @@ context_setMode (cstring s) FLG_RETVALOTHER, FLG_RETVALBOOL, FLG_RETVALINT, FLG_SPECUNDEF, FLG_IMPCHECKMODINTERNALS, FLG_DECLUNDEF, FLG_INCONDEFS, FLG_INCONDEFSLIB, + FLG_MISPLACEDSHAREQUAL, FLG_REDUNDANTSHAREQUAL, FLG_MATCHFIELDS, FLG_MACROPARAMS, FLG_MACROASSIGN, @@ -1095,6 +1139,7 @@ context_setMode (cstring s) FLG_INCLUDENEST, FLG_ANSIRESERVED, FLG_CPPNAMES, FLG_NOPARAMS, FLG_IFEMPTY, FLG_WHILEEMPTY, FLG_REALCOMPARE, FLG_BOOLOPS, FLG_SHIFTSIGNED, + FLG_BUFFEROVERFLOWHIGH, FLG_BUFFEROVERFLOW, INVALID_FLAG } ; SETFLAGS (); @@ -1109,6 +1154,8 @@ context_setMode (cstring s) FLG_UNCHECKEDGLOBALIAS, FLG_MODFILESYSTEM, FLG_MACROMATCHNAME, + FLG_FORMATCONST, + FLG_STATETRANSFER, FLG_STATEMERGE, FLG_MACROUNDEF, FLG_MUTREP, FLG_MUSTMOD, FLG_ALLGLOBALS, FLG_IMPTYPE, FLG_MODNOMODS, FLG_MODGLOBSUNSPEC, FLG_MODSTRICTGLOBSUNSPEC, @@ -1137,6 +1184,7 @@ context_setMode (cstring s) FLG_ANSIRESERVED, FLG_ANSIRESERVEDLOCAL, FLG_CPPNAMES, FLG_RETVALBOOL, FLG_RETVALINT, FLG_SPECUNDEF, FLG_DECLUNDEF, FLG_STRICTOPS, FLG_INCONDEFS, + FLG_MISPLACEDSHAREQUAL, FLG_REDUNDANTSHAREQUAL, FLG_INCONDEFSLIB, FLG_MATCHFIELDS, FLG_EXPORTMACRO, FLG_EXPORTVAR, FLG_EXPORTFCN, FLG_EXPORTTYPE, FLG_EXPORTLOCAL, FLG_MACROPARAMS, FLG_MACROASSIGN, @@ -1210,7 +1258,9 @@ context_setMode (cstring s) FLG_SYSTEMDIRERRORS, FLG_UNUSEDSPECIAL, FLG_SHIFTSIGNED, FLG_BITWISEOPS, - INVALID_FLAG } ; + FLG_BUFFEROVERFLOWHIGH, FLG_BUFFEROVERFLOW, + INVALID_FLAG + } ; SETFLAGS (); } @@ -1223,10 +1273,10 @@ context_setMode (cstring s) bool context_isSpecialFile (cstring fname) { - char *ext = filenameExtension (cstring_toCharsSafe (fname)); + cstring ext = fileLib_getExtension (fname); - return (mstring_equal (ext, ".y") - || mstring_equal (ext, ".l") + return (cstring_equalLit (ext, ".y") + || cstring_equalLit (ext, ".l") || cstring_equalLit (fname, "lex.yy.c")); } @@ -1288,8 +1338,7 @@ context_addFileAccessType (typeId t) { cstring base; - if (gc.kind == CX_FUNCTION || gc.kind == CX_MACROFCN - || gc.kind == CX_UNKNOWNMACRO) + if (context_inFunctionLike ()) { gc.acct = typeIdSet_insert (gc.acct, t); } @@ -1315,22 +1364,49 @@ context_removeFileAccessType (typeId t) gc.nacct = typeIdSet_insert (gc.nacct, t); } -void context_enterFunctionDecl (void) +void context_enterFunctionHeader (void) { llassert (gc.kind == CX_GLOBAL); - gc.kind = CX_FCNDECL; + DPRINTF (("Enter function decl")); + gc.kind = CX_FCNHEADER; } -void context_exitFunctionDecl (void) +void context_exitFunctionHeader (void) { + DPRINTF (("Exit function decl")); gc.kind = CX_GLOBAL; } -bool context_inFunctionDecl (void) +bool context_inFunctionHeader (void) +{ + return (gc.kind == CX_FCNHEADER); +} + +void context_enterFunctionDeclaration (uentry e) +{ + DPRINTF (("Enter function decl")); + llassert (gc.savekind == CX_ERROR); + gc.savekind = gc.kind; + gc.kind = CX_FCNDECLARATION; + gc.cont.fcn = e; +} + +void context_exitFunctionDeclaration (void) { - return (gc.kind == CX_FCNDECL); + DPRINTF (("Exit function decl")); + llassert (gc.savekind != CX_ERROR); + llassert (gc.kind == CX_FCNDECLARATION); + gc.kind = gc.savekind; + gc.cont.fcn = uentry_undefined; + gc.savekind = CX_ERROR; } +bool context_inFunctionDeclaration (void) +{ + return (gc.kind == CX_FCNDECLARATION); +} + + void context_enterMacro (/*@observer@*/ uentry e) { @@ -1639,6 +1715,8 @@ context_enterFunction (/*@exposed@*/ uentry e) gc.kind = CX_FUNCTION; gc.cont.fcn = e; + DPRINTF (("Enter function: %s", uentry_unparse (e))); + if (uentry_hasAccessType (e)) { gc.acct = typeIdSet_subtract (typeIdSet_union (gc.facct, uentry_accessType (e)), @@ -1800,7 +1878,7 @@ context_checkGlobMod (sRef el) { uentry ue = sRef_getUentry (el); - /* no: llassert (sRef_isGlobal (el)); also check local statics */ + /* no: llassert (sRef_isFileOrGlobalScope (el)); also check local statics */ if (uentry_isCheckedModify (ue) || (!uentry_isUnchecked (ue) && (gc.flags[FLG_ALLGLOBALS]))) @@ -1835,7 +1913,7 @@ context_checkGlobMod (sRef el) } void -context_usedGlobal (sRef el) +context_usedGlobal (/*@exposed@*/ sRef el) { if (!globSet_member (gc.globs_used, el)) { @@ -1859,7 +1937,7 @@ context_modList (void) bool context_globAccess (sRef s) { - llassert (sRef_isGlobal (s) || sRef_isKindSpecial (s)); + llassert (sRef_isFileOrGlobalScope (s) || sRef_isKindSpecial (s)); return (globSet_member (gc.globs, s)); } @@ -1868,6 +1946,8 @@ context_hasAccess (typeId t) { if (context_inFunctionLike ()) { + DPRINTF (("Access %d / %s", + t, typeIdSet_unparse (gc.acct))); return (typeIdSet_member (gc.acct, t)); } else @@ -1936,7 +2016,7 @@ context_getRetType (void) return ctype_unknown; } - return (ctype_returnValue (f)); + return (ctype_getReturnType (f)); } bool @@ -1954,12 +2034,10 @@ context_hasMods (void) void context_exitAllClauses (void) -{ - +{ while (!clauseStack_isEmpty (gc.clauses)) { clause el = clauseStack_top (gc.clauses); - gc.inclause = el; if (clause_isNone (el)) @@ -1973,9 +2051,23 @@ context_exitAllClauses (void) } } - clauseStack_clear (gc.clauses); + clauseStack_clear (gc.clauses); + gc.inclause = NOCLAUSE; +} - +void +context_exitAllClausesQuiet (void) +{ + while (!clauseStack_isEmpty (gc.clauses)) + { + clause el = clauseStack_top (gc.clauses); + gc.inclause = el; + + usymtab_quietExitScope (g_currentloc); + clauseStack_pop (gc.clauses); + } + + clauseStack_clear (gc.clauses); gc.inclause = NOCLAUSE; } @@ -2001,6 +2093,7 @@ static void context_exitClauseAux (exprNode pred, exprNode tbranch) { context_setJustPopped (); + /*@i32 was makeAlt */ usymtab_popTrueBranch (pred, tbranch, gc.inclause); clauseStack_pop (gc.clauses); gc.inclause = topClause (gc.clauses); @@ -2008,21 +2101,20 @@ void context_exitClauseAux (exprNode pred, exprNode tbranch) void context_exitTrueClause (exprNode pred, exprNode tbranch) { + DPRINTF (("Exit true clause: %s", exprNode_unparse (tbranch))); + if (gc.inclause != TRUECLAUSE) { llparseerror (cstring_makeLiteral ("Likely parse error. Conditional clauses are inconsistent.")); return; } - - - context_setJustPopped (); - + + context_setJustPopped (); usymtab_popTrueBranch (pred, tbranch, TRUECLAUSE); clauseStack_pop (gc.clauses); - gc.inclause = topClause (gc.clauses); - - } + gc.inclause = topClause (gc.clauses); +} void context_exitIterClause (exprNode body) { @@ -2061,7 +2153,7 @@ static void context_popCase (void) { DPRINTF (("Popping case clause: %s", clauseStack_unparse (gc.clauses))); - + if (gc.inclause == CASECLAUSE) { context_exitCaseClause (); } @@ -2139,7 +2231,7 @@ void context_exitForClause (exprNode forPred, exprNode body) if (context_getFlag (FLG_LOOPEXEC)) { - usymtab_popTrueExecBranch (forPred, body, FORCLAUSE); + usymtab_popTrueExecBranch (forPred, body, FORCLAUSE); } else { @@ -2164,18 +2256,16 @@ static void context_exitClausePlain (void) { context_exitClauseAux (exprNode_undefined, exprNode_undefined); } - } void context_exitClause (exprNode pred, exprNode tbranch, exprNode fbranch) { - context_setJustPopped (); - + if (gc.inclause == FALSECLAUSE) { usymtab_popBranches (pred, tbranch, fbranch, FALSE, FALSECLAUSE); - + llassert (clauseStack_top (gc.clauses) == FALSECLAUSE); clauseStack_pop (gc.clauses); @@ -2183,7 +2273,7 @@ void context_exitClause (exprNode pred, exprNode tbranch, exprNode fbranch) } else { - context_exitTrueClause (pred, tbranch); + context_exitTrueClause (pred, tbranch); } } @@ -2225,6 +2315,8 @@ context_exitFunction (void) } } + DPRINTF (("Exit function: %s", uentry_unparse (gc.cont.fcn))); + /* ** clear file static modifies */ @@ -2447,13 +2539,14 @@ context_getAliasAnnote (void) void context_recordFileModifies (sRefSet mods) { - gc.modrecs = sRefSetList_add (gc.modrecs, mods); + gc.modrecs = sRefSetList_add (gc.modrecs, mods); } void context_recordFileGlobals (globSet mods) { - /*@access globSet@*/ context_recordFileModifies (mods); /*@noaccess globSet@*/ + DPRINTF (("Recording file globals: %s", globSet_unparse (mods))); + /*@access globSet@*/ context_recordFileModifies (mods); /*@noaccess globSet@*/ } void @@ -2477,42 +2570,55 @@ context_setValue (flagcode flag, int val) llassert (index >= 0 && index <= NUMVALUEFLAGS); - if (val <= 0) + switch (flag) { - switch (flag) + case FLG_LINELEN: + if (val <= 0) { - case FLG_INCLUDENEST: - case FLG_CONTROLNESTDEPTH: - case FLG_STRINGLITERALLEN: - case FLG_NUMSTRUCTFIELDS: - case FLG_NUMENUMMEMBERS: - case FLG_LINELEN: - { - cstring warn = message ("Value for %s must be a positive " - "number (given %d)", - flagcode_unparse (flag), val); - - flagWarning (warn); - cstring_free (warn); - val = MINLINELEN; - } + + cstring warn = message ("Value for %s must be a positive " + "number (given %d)", + flagcode_unparse (flag), val); + + flagWarning (warn); + cstring_free (warn); return; - default: - break; } - } + if (flag == FLG_LINELEN && val < MINLINELEN) + { + cstring warn = message ("Value for %s must be at least %d (given %d)", + flagcode_unparse (flag), + MINLINELEN, val); + flagWarning (warn); + cstring_free (warn); + val = MINLINELEN; + } + break; - if (flag == FLG_LINELEN && val < MINLINELEN) - { - cstring warn = message ("Value for %s must be at least %d (given %d)", - flagcode_unparse (flag), - MINLINELEN, val); - flagWarning (warn); - cstring_free (warn); - val = MINLINELEN; - } + case FLG_INCLUDENEST: + case FLG_CONTROLNESTDEPTH: + case FLG_STRINGLITERALLEN: + case FLG_NUMSTRUCTFIELDS: + case FLG_NUMENUMMEMBERS: + case FLG_INDENTSPACES: + if (val < 0) + { + + cstring warn = message ("Value for %s must be a non-negative " + "number (given %d)", + flagcode_unparse (flag), val); + + flagWarning (warn); + cstring_free (warn); + return; + } - gc.values[index] = val; + break; + default: + break; + } + + gc.values[index] = val; } void @@ -2674,6 +2780,7 @@ void context_initMod (void) /*@globals undef gc; @*/ { gc.kind = CX_GLOBAL; + gc.savekind = CX_ERROR; gc.instandardlib = FALSE; gc.numerrors = 0; gc.neednl = FALSE; @@ -2686,9 +2793,8 @@ void context_initMod (void) gc.mc = macrocache_create (); gc.nmods = 0; gc.maxmods = DEFAULTMAXMODS; - gc.moduleaccess = (maccesst *) - dmalloc (sizeof (*gc.moduleaccess) * (gc.maxmods)); - + gc.moduleaccess = (maccesst *) dmalloc (sizeof (*gc.moduleaccess) * (gc.maxmods)); + gc.library = FLG_ANSILIB; gc.locstack = filelocStack_new (); @@ -2736,6 +2842,15 @@ void context_initMod (void) context_resetAllFlags (); conext_resetAllCounters (); context_setMode (DEFAULT_MODE); + + gc.stateTable = metaStateTable_create (); + gc.annotTable = annotationTable_create (); + + DPRINTF (("Annotations: \n%s", + cstring_toCharsSafe (annotationTable_unparse (gc.annotTable)))); + DPRINTF (("State: \n%s", + cstring_toCharsSafe (metaStateTable_unparse (gc.stateTable)))); + } ctype @@ -3053,6 +3168,7 @@ bool context_inFunctionLike (void) { return (gc.kind == CX_FUNCTION || gc.kind == CX_MACROFCN + || gc.kind == CX_FCNDECLARATION || gc.kind == CX_UNKNOWNMACRO || gc.kind == CX_ITERDEF); } @@ -3091,10 +3207,7 @@ context_processMacros (void) if (fileId_isValid (currentFile ())) { fileloc lastfl; - cstring cbase = cstring_fromChars - (removePathFree - (removeAnyExtension - (cstring_toCharsSafe (fileName (currentFile ()))))); + cstring cbase = fileLib_removePathFree (fileLib_removeAnyExtension (fileName (currentFile ()))); gc.inmacrocache = TRUE; @@ -3121,7 +3234,7 @@ context_processingMacros (void) } void -context_exitFile (void) +context_exitCFile (void) { if (gc.kind != CX_GLOBAL) { @@ -3152,20 +3265,20 @@ context_exitFile (void) sRefSetList_elements (gc.modrecs, mods) { sRefSet_clearStatics (mods); - } end_sRefSetList_elements ; + } end_sRefSetList_elements ; sRefSetList_clear (gc.modrecs); - + context_processMacros (); cleanupMessages (); - + usymtab_exitFile (); - + gc.inDerivedFile = FALSE; filelocStack_clear (gc.locstack); - + gc.nacct = typeIdSet_emptySet (); /* empty noaccess */ - + gc.cont.glob = TRUE; if (gc.savedFlags) @@ -3173,6 +3286,11 @@ context_exitFile (void) context_restoreFlagSettings (); gc.savedFlags = FALSE; } + + /* + DPRINTF (("After exiting file: ")); + usymtab_printAll (); + */ } void @@ -3180,8 +3298,11 @@ context_exitMacroCache (void) { if (gc.kind != CX_GLOBAL) { - if (context_inMacro ()) /* this is okay, file could end without newline in macro */ + if (context_inMacro ()) + /* this is okay, file could end without newline in macro */ { + DPRINTF (("Still in macro: %s", + context_unparse ())); context_exitFunction (); } else @@ -3243,7 +3364,7 @@ context_inFunctionName (void) void context_userSetFlag (flagcode f, bool b) { - DPRINTF (("set flag: %s", flagcode_name (f))); + DPRINTF (("set flag: %s", flagcode_unparse (f))); if (f == FLG_NEVERINCLUDE && b) { @@ -3284,12 +3405,25 @@ context_userSetFlag (flagcode f, bool b) { cstring warn = message ("setting %s%s redundant with current value", cstring_makeLiteralTemp (b ? "+" : "-"), - flagcode_name (f)); + flagcode_unparse (f)); + flagWarning (warn); + cstring_free (warn); + } + } + + if (flagcode_isWarnUseFlag (f) && b) + { + if (!context_getFlag (FLG_WARNUSE)) + { + cstring warn = message ("flag +%s is canceled by -warnuse", + flagcode_unparse (f)); flagWarning (warn); cstring_free (warn); + } } + if (flagcode_isLibraryFlag (f)) { if (gc.library != FLG_ANSILIB @@ -3297,8 +3431,8 @@ context_userSetFlag (flagcode f, bool b) { cstring warn = message ("selecting library %s after library %s was " "selected (only one library may be used)", - flagcode_name (f), - flagcode_name (gc.library)); + flagcode_unparse (f), + flagcode_unparse (gc.library)); flagWarning (warn); cstring_free (warn); } @@ -3366,7 +3500,7 @@ context_restoreFlag (flagcode f) } -/*drl7x fix this static */ void +static void context_setFlag (flagcode f, bool b) { context_setFlagAux (f, b, FALSE, FALSE); @@ -3383,7 +3517,7 @@ context_setFlagTemp (flagcode f, bool b) # define DOSET(ff,b) \ do { if (inFile) { gc.setLocally[ff] = TRUE; \ context_addFlagMarker (ff, ynm_fromBool (b)); } \ - DPRINTF (("set flag: %s / %s", flagcode_name (ff), bool_unparse (b))); \ + DPRINTF (("set flag: %s / %s", flagcode_unparse (ff), bool_unparse (b))); \ gc.flags[ff] = b; } while (FALSE) static void @@ -3401,265 +3535,307 @@ static void } } - if (flagcode_isSpecialFlag (f)) - { - gc.flags[f] = b; - - - switch (f) - { - case FLG_ALLEMPTY: - DOSET (FLG_ALLEMPTY, b); - DOSET (FLG_IFEMPTY, b); - DOSET (FLG_WHILEEMPTY, b); - DOSET (FLG_FOREMPTY, b); - break; - case FLG_PREDBOOL: - DOSET (FLG_PREDBOOL, b); - DOSET (FLG_PREDBOOLINT, b); - DOSET (FLG_PREDBOOLPTR, b); - DOSET (FLG_PREDBOOLOTHERS, b); - break; - case FLG_GLOBALIAS: - DOSET (FLG_CHECKSTRICTGLOBALIAS, b); - DOSET (FLG_CHECKEDGLOBALIAS, b); - DOSET (FLG_CHECKMODGLOBALIAS, b); - DOSET (FLG_UNCHECKEDGLOBALIAS, b); - break; - case FLG_ALLBLOCK: - DOSET (FLG_ALLBLOCK, b); - DOSET (FLG_IFBLOCK, b); - DOSET (FLG_WHILEBLOCK, b); - DOSET (FLG_FORBLOCK, b); - break; - case FLG_GRAMMAR: - if (b) - { - yydebug = 1; - } - else - { - yydebug = 0; - } - - DOSET (FLG_GRAMMAR, b); - break; - case FLG_CODEIMPONLY: - DOSET (FLG_CODEIMPONLY, b); - DOSET (FLG_GLOBIMPONLY, b); - DOSET (FLG_RETIMPONLY, b); - DOSET (FLG_STRUCTIMPONLY, b); - break; - case FLG_SPECALLIMPONLY: - DOSET (FLG_SPECALLIMPONLY, b); - DOSET (FLG_SPECGLOBIMPONLY, b); - DOSET (FLG_SPECRETIMPONLY, b); - DOSET (FLG_SPECSTRUCTIMPONLY, b); - break; - case FLG_ALLIMPONLY: - DOSET (FLG_ALLIMPONLY, b); - DOSET (FLG_GLOBIMPONLY, b); - DOSET (FLG_RETIMPONLY, b); - DOSET (FLG_STRUCTIMPONLY, b); - DOSET (FLG_SPECGLOBIMPONLY, b); - DOSET (FLG_SPECRETIMPONLY, b); - DOSET (FLG_SPECSTRUCTIMPONLY, b); - break; - case FLG_ANSILIMITS: - DOSET (FLG_ANSILIMITS, b); - DOSET (FLG_CONTROLNESTDEPTH, b); - DOSET (FLG_STRINGLITERALLEN, b); - DOSET (FLG_INCLUDENEST, b); - DOSET (FLG_NUMSTRUCTFIELDS, b); - DOSET (FLG_NUMENUMMEMBERS, b); - - if (b) - { - context_setValue (FLG_CONTROLNESTDEPTH, DEFAULT_CONTROLNESTDEPTH); - context_setValue (FLG_STRINGLITERALLEN, DEFAULT_STRINGLITERALLEN); - context_setValue (FLG_INCLUDENEST, DEFAULT_INCLUDENEST); - context_setValue (FLG_NUMSTRUCTFIELDS, DEFAULT_NUMSTRUCTFIELDS); - context_setValue (FLG_NUMENUMMEMBERS, DEFAULT_NUMENUMMEMBERS); - } - break; - case FLG_EXTERNALNAMELEN: - DOSET (FLG_DISTINCTEXTERNALNAMES, TRUE); - DOSET (FLG_EXTERNALNAMELEN, TRUE); - break; - case FLG_INTERNALNAMELEN: - DOSET (FLG_DISTINCTINTERNALNAMES, TRUE); - DOSET (FLG_INTERNALNAMELEN, TRUE); - break; - case FLG_EXTERNALNAMECASEINSENSITIVE: - DOSET (FLG_EXTERNALNAMECASEINSENSITIVE, b); - - if (b && !gc.flags[FLG_DISTINCTEXTERNALNAMES]) - { - DOSET (FLG_DISTINCTEXTERNALNAMES, TRUE); - context_setValue (FLG_EXTERNALNAMELEN, 0); - } - break; - case FLG_INTERNALNAMECASEINSENSITIVE: - DOSET (FLG_INTERNALNAMECASEINSENSITIVE, b); + /* + ** Removed test for special flags. + */ - if (b && !gc.flags[FLG_DISTINCTINTERNALNAMES]) - { - DOSET (FLG_DISTINCTINTERNALNAMES, TRUE); - context_setValue (FLG_INTERNALNAMELEN, 0); - } - break; - case FLG_INTERNALNAMELOOKALIKE: - DOSET (FLG_INTERNALNAMELOOKALIKE, b); + if (flagcode_isIdemFlag (f)) + { + DOSET (f, TRUE); + } + else + { + DOSET (f, b); + } - if (b && !gc.flags[FLG_DISTINCTINTERNALNAMES]) + if (f >= FLG_ITS4MOSTRISKY && f <= FLG_ITS4LOWRISK) + { + if (b) /* Turing higher level on, turns on all lower levels */ + { + switch (f) { - DOSET (FLG_DISTINCTINTERNALNAMES, TRUE); - context_setValue (FLG_INTERNALNAMELEN, 0); + case FLG_ITS4MOSTRISKY: + DOSET (FLG_ITS4VERYRISKY, b); + /*@fallthrough@*/ + case FLG_ITS4VERYRISKY: + DOSET (FLG_ITS4RISKY, b); + /*@fallthrough@*/ + case FLG_ITS4RISKY: + DOSET (FLG_ITS4MODERATERISK, b); + /*@fallthrough@*/ + case FLG_ITS4MODERATERISK: + DOSET (FLG_ITS4LOWRISK, b); + /*@fallthrough@*/ + case FLG_ITS4LOWRISK: + break; + BADDEFAULT; } - break; - case FLG_MODUNSPEC: - DOSET (FLG_MODNOMODS, b); - DOSET (FLG_MODGLOBSUNSPEC, b); - DOSET (FLG_MODSTRICTGLOBSUNSPEC, b); - break; - case FLG_EXPORTANY: - DOSET (FLG_EXPORTVAR, b); - DOSET (FLG_EXPORTFCN, b); - DOSET (FLG_EXPORTTYPE, b); - DOSET (FLG_EXPORTMACRO, b); - DOSET (FLG_EXPORTCONST, b); - gc.anyExports = TRUE; - break; - case FLG_REPEXPOSE: - DOSET (FLG_RETEXPOSE, b); - DOSET (FLG_ASSIGNEXPOSE, b); - DOSET (FLG_CASTEXPOSE, b); - break; - case FLG_RETVAL: - DOSET (FLG_RETVALBOOL, b); - DOSET (FLG_RETVALINT, b); - DOSET (FLG_RETVALOTHER, b); - break; - case FLG_PARTIAL: - if (b) + } + else /* Turning level off, turns off all higher levels */ + { + switch (f) { - DOSET (FLG_EXPORTLOCAL, FALSE); - DOSET (FLG_DECLUNDEF, FALSE); - DOSET (FLG_SPECUNDEF, FALSE); - DOSET (FLG_TOPUNUSED, FALSE); + case FLG_ITS4LOWRISK: + DOSET (FLG_ITS4MODERATERISK, b); + /*@fallthrough@*/ + case FLG_ITS4MODERATERISK: + DOSET (FLG_ITS4RISKY, b); + /*@fallthrough@*/ + case FLG_ITS4RISKY: + DOSET (FLG_ITS4VERYRISKY, b); + /*@fallthrough@*/ + case FLG_ITS4VERYRISKY: + DOSET (FLG_ITS4MOSTRISKY, b); + /*@fallthrough@*/ + case FLG_ITS4MOSTRISKY: + break; + BADDEFAULT; } - break; - case FLG_DEEPBREAK: - DOSET (FLG_LOOPLOOPBREAK, b); - DOSET (FLG_LOOPSWITCHBREAK, b); - DOSET (FLG_SWITCHLOOPBREAK, b); - DOSET (FLG_SWITCHSWITCHBREAK, b); - DOSET (FLG_LOOPLOOPCONTINUE, b); - DOSET (FLG_DEEPBREAK, b); - break; - case FLG_ACCESSALL: - DOSET (FLG_ACCESSMODULE, b); - DOSET (FLG_ACCESSFILE, b); - DOSET (FLG_ACCESSCZECH, b); - break; - case FLG_ALLMACROS: - DOSET (FLG_ALLMACROS, b); - DOSET (FLG_FCNMACROS, b); - DOSET (FLG_CONSTMACROS, b); - break; - case FLG_CZECH: - if (b) { DOSET (FLG_ACCESSCZECH, b); } - DOSET (FLG_CZECHFUNCTIONS, b); - DOSET (FLG_CZECHVARS, b); - DOSET (FLG_CZECHCONSTANTS, b); - DOSET (FLG_CZECHTYPES, b); - break; - case FLG_SLOVAK: - if (b) { DOSET (FLG_ACCESSSLOVAK, b); } - DOSET (FLG_SLOVAKFUNCTIONS, b); - DOSET (FLG_SLOVAKVARS, b); - DOSET (FLG_SLOVAKCONSTANTS, b); - DOSET (FLG_SLOVAKTYPES, b); - break; - case FLG_CZECHOSLOVAK: - if (b) { DOSET (FLG_ACCESSCZECHOSLOVAK, b); } - DOSET (FLG_CZECHOSLOVAKFUNCTIONS, b); - DOSET (FLG_CZECHOSLOVAKVARS, b); - DOSET (FLG_CZECHOSLOVAKCONSTANTS, b); - DOSET (FLG_CZECHOSLOVAKTYPES, b); - break; - case FLG_NULL: - DOSET (FLG_NULLSTATE, b); - DOSET (FLG_NULLDEREF, b); - DOSET (FLG_NULLASSIGN, b); - DOSET (FLG_NULLPASS, b); - DOSET (FLG_NULLRET, b); - break; - case FLG_MEMCHECKS: - DOSET (FLG_NULLSTATE, b); - DOSET (FLG_NULLDEREF, b); - DOSET (FLG_NULLASSIGN, b); - DOSET (FLG_NULLPASS, b); - DOSET (FLG_NULLRET, b); - DOSET (FLG_COMPDEF, b); - DOSET (FLG_COMPMEMPASS, b); - DOSET (FLG_UNIONDEF, b); - DOSET (FLG_MEMTRANS, b); - DOSET (FLG_USERELEASED, b); - DOSET (FLG_ALIASUNIQUE, b); - DOSET (FLG_MAYALIASUNIQUE, b); - DOSET (FLG_MUSTFREE, b); - DOSET (FLG_MUSTDEFINE, b); - DOSET (FLG_GLOBSTATE, b); - DOSET (FLG_COMPDESTROY, b); - DOSET (FLG_MUSTNOTALIAS, b); - DOSET (FLG_MEMIMPLICIT, b); - DOSET (FLG_BRANCHSTATE, b); - /*@fallthrough@*/ /* also sets memtrans flags */ - case FLG_MEMTRANS: - DOSET (FLG_MEMTRANS, b); - DOSET (FLG_EXPOSETRANS, b); - DOSET (FLG_OBSERVERTRANS, b); - DOSET (FLG_DEPENDENTTRANS, b); - DOSET (FLG_NEWREFTRANS, b); - DOSET (FLG_ONLYTRANS, b); - DOSET (FLG_OWNEDTRANS, b); - DOSET (FLG_FRESHTRANS, b); - DOSET (FLG_SHAREDTRANS, b); - DOSET (FLG_TEMPTRANS, b); - DOSET (FLG_KEPTTRANS, b); - DOSET (FLG_REFCOUNTTRANS, b); - DOSET (FLG_STATICTRANS, b); - DOSET (FLG_UNKNOWNTRANS, b); - DOSET (FLG_KEEPTRANS, b); - DOSET (FLG_IMMEDIATETRANS, b); - break; - - default: - llcontbug (message ("Unhandled special flag: %s", - flagcode_unparse (f))); - break; } } - else - { - if (flagcode_isIdemFlag (f)) + + switch (f) + { + case FLG_ALLEMPTY: + DOSET (FLG_ALLEMPTY, b); + DOSET (FLG_IFEMPTY, b); + DOSET (FLG_WHILEEMPTY, b); + DOSET (FLG_FOREMPTY, b); + break; + case FLG_PREDBOOL: + DOSET (FLG_PREDBOOL, b); + DOSET (FLG_PREDBOOLINT, b); + DOSET (FLG_PREDBOOLPTR, b); + DOSET (FLG_PREDBOOLOTHERS, b); + break; + case FLG_GLOBALIAS: + DOSET (FLG_CHECKSTRICTGLOBALIAS, b); + DOSET (FLG_CHECKEDGLOBALIAS, b); + DOSET (FLG_CHECKMODGLOBALIAS, b); + DOSET (FLG_UNCHECKEDGLOBALIAS, b); + break; + case FLG_ALLBLOCK: + DOSET (FLG_ALLBLOCK, b); + DOSET (FLG_IFBLOCK, b); + DOSET (FLG_WHILEBLOCK, b); + DOSET (FLG_FORBLOCK, b); + break; + case FLG_GRAMMAR: + if (b) { - DOSET (f, TRUE); + yydebug = 1; + mtdebug = 1; } else { - if (b && !gc.anyExports - && (f == FLG_EXPORTVAR || f == FLG_EXPORTFCN - || f == FLG_EXPORTTYPE || f == FLG_EXPORTMACRO - || f == FLG_EXPORTCONST - || f == FLG_EXPORTANY)) - { - gc.anyExports = TRUE; - } - - DOSET (f, b); + yydebug = 0; + mtdebug = 0; + } + + DOSET (FLG_GRAMMAR, b); + break; + case FLG_CODEIMPONLY: + DOSET (FLG_CODEIMPONLY, b); + DOSET (FLG_GLOBIMPONLY, b); + DOSET (FLG_RETIMPONLY, b); + DOSET (FLG_STRUCTIMPONLY, b); + break; + case FLG_SPECALLIMPONLY: + DOSET (FLG_SPECALLIMPONLY, b); + DOSET (FLG_SPECGLOBIMPONLY, b); + DOSET (FLG_SPECRETIMPONLY, b); + DOSET (FLG_SPECSTRUCTIMPONLY, b); + break; + case FLG_ALLIMPONLY: + DOSET (FLG_ALLIMPONLY, b); + DOSET (FLG_GLOBIMPONLY, b); + DOSET (FLG_RETIMPONLY, b); + DOSET (FLG_STRUCTIMPONLY, b); + DOSET (FLG_SPECGLOBIMPONLY, b); + DOSET (FLG_SPECRETIMPONLY, b); + DOSET (FLG_SPECSTRUCTIMPONLY, b); + break; + case FLG_ANSILIMITS: + DOSET (FLG_ANSILIMITS, b); + DOSET (FLG_CONTROLNESTDEPTH, b); + DOSET (FLG_STRINGLITERALLEN, b); + DOSET (FLG_INCLUDENEST, b); + DOSET (FLG_NUMSTRUCTFIELDS, b); + DOSET (FLG_NUMENUMMEMBERS, b); + + if (b) + { + context_setValue (FLG_CONTROLNESTDEPTH, DEFAULT_CONTROLNESTDEPTH); + context_setValue (FLG_STRINGLITERALLEN, DEFAULT_STRINGLITERALLEN); + context_setValue (FLG_INCLUDENEST, DEFAULT_INCLUDENEST); + context_setValue (FLG_NUMSTRUCTFIELDS, DEFAULT_NUMSTRUCTFIELDS); + context_setValue (FLG_NUMENUMMEMBERS, DEFAULT_NUMENUMMEMBERS); + } + break; + case FLG_EXTERNALNAMELEN: + DOSET (FLG_DISTINCTEXTERNALNAMES, TRUE); + DOSET (FLG_EXTERNALNAMELEN, TRUE); + break; + case FLG_INTERNALNAMELEN: + DOSET (FLG_DISTINCTINTERNALNAMES, TRUE); + DOSET (FLG_INTERNALNAMELEN, TRUE); + break; + case FLG_EXTERNALNAMECASEINSENSITIVE: + DOSET (FLG_EXTERNALNAMECASEINSENSITIVE, b); + + if (b && !gc.flags[FLG_DISTINCTEXTERNALNAMES]) + { + DOSET (FLG_DISTINCTEXTERNALNAMES, TRUE); + context_setValue (FLG_EXTERNALNAMELEN, 0); + } + break; + case FLG_INTERNALNAMECASEINSENSITIVE: + DOSET (FLG_INTERNALNAMECASEINSENSITIVE, b); + + if (b && !gc.flags[FLG_DISTINCTINTERNALNAMES]) + { + DOSET (FLG_DISTINCTINTERNALNAMES, TRUE); + context_setValue (FLG_INTERNALNAMELEN, 0); + } + break; + case FLG_INTERNALNAMELOOKALIKE: + DOSET (FLG_INTERNALNAMELOOKALIKE, b); + + if (b && !gc.flags[FLG_DISTINCTINTERNALNAMES]) + { + DOSET (FLG_DISTINCTINTERNALNAMES, TRUE); + context_setValue (FLG_INTERNALNAMELEN, 0); } + break; + case FLG_MODUNSPEC: + DOSET (FLG_MODNOMODS, b); + DOSET (FLG_MODGLOBSUNSPEC, b); + DOSET (FLG_MODSTRICTGLOBSUNSPEC, b); + break; + case FLG_EXPORTANY: + DOSET (FLG_EXPORTVAR, b); + DOSET (FLG_EXPORTFCN, b); + DOSET (FLG_EXPORTTYPE, b); + DOSET (FLG_EXPORTMACRO, b); + DOSET (FLG_EXPORTCONST, b); + gc.anyExports = TRUE; + break; + case FLG_REPEXPOSE: + DOSET (FLG_RETEXPOSE, b); + DOSET (FLG_ASSIGNEXPOSE, b); + DOSET (FLG_CASTEXPOSE, b); + break; + case FLG_RETVAL: + DOSET (FLG_RETVALBOOL, b); + DOSET (FLG_RETVALINT, b); + DOSET (FLG_RETVALOTHER, b); + break; + case FLG_PARTIAL: + if (b) + { + DOSET (FLG_EXPORTLOCAL, FALSE); + DOSET (FLG_DECLUNDEF, FALSE); + DOSET (FLG_SPECUNDEF, FALSE); + DOSET (FLG_TOPUNUSED, FALSE); + } + break; + case FLG_DEEPBREAK: + DOSET (FLG_LOOPLOOPBREAK, b); + DOSET (FLG_LOOPSWITCHBREAK, b); + DOSET (FLG_SWITCHLOOPBREAK, b); + DOSET (FLG_SWITCHSWITCHBREAK, b); + DOSET (FLG_LOOPLOOPCONTINUE, b); + DOSET (FLG_DEEPBREAK, b); + break; + case FLG_ACCESSALL: + DOSET (FLG_ACCESSMODULE, b); + DOSET (FLG_ACCESSFILE, b); + DOSET (FLG_ACCESSCZECH, b); + break; + case FLG_ALLMACROS: + DOSET (FLG_ALLMACROS, b); + DOSET (FLG_FCNMACROS, b); + DOSET (FLG_CONSTMACROS, b); + break; + case FLG_CZECH: + if (b) { DOSET (FLG_ACCESSCZECH, b); } + DOSET (FLG_CZECHFUNCTIONS, b); + DOSET (FLG_CZECHVARS, b); + DOSET (FLG_CZECHCONSTANTS, b); + DOSET (FLG_CZECHTYPES, b); + break; + case FLG_SLOVAK: + if (b) { DOSET (FLG_ACCESSSLOVAK, b); } + DOSET (FLG_SLOVAKFUNCTIONS, b); + DOSET (FLG_SLOVAKVARS, b); + DOSET (FLG_SLOVAKCONSTANTS, b); + DOSET (FLG_SLOVAKTYPES, b); + break; + case FLG_CZECHOSLOVAK: + if (b) { DOSET (FLG_ACCESSCZECHOSLOVAK, b); } + DOSET (FLG_CZECHOSLOVAKFUNCTIONS, b); + DOSET (FLG_CZECHOSLOVAKVARS, b); + DOSET (FLG_CZECHOSLOVAKCONSTANTS, b); + DOSET (FLG_CZECHOSLOVAKTYPES, b); + break; + case FLG_NULL: + DOSET (FLG_NULLSTATE, b); + DOSET (FLG_NULLDEREF, b); + DOSET (FLG_NULLASSIGN, b); + DOSET (FLG_NULLPASS, b); + DOSET (FLG_NULLRET, b); + break; + case FLG_MEMCHECKS: + DOSET (FLG_NULLSTATE, b); + DOSET (FLG_NULLDEREF, b); + DOSET (FLG_NULLASSIGN, b); + DOSET (FLG_NULLPASS, b); + DOSET (FLG_NULLRET, b); + DOSET (FLG_COMPDEF, b); + DOSET (FLG_COMPMEMPASS, b); + DOSET (FLG_UNIONDEF, b); + DOSET (FLG_MEMTRANS, b); + DOSET (FLG_USERELEASED, b); + DOSET (FLG_ALIASUNIQUE, b); + DOSET (FLG_MAYALIASUNIQUE, b); + DOSET (FLG_MUSTFREE, b); + DOSET (FLG_MUSTDEFINE, b); + DOSET (FLG_GLOBSTATE, b); + DOSET (FLG_COMPDESTROY, b); + DOSET (FLG_MUSTNOTALIAS, b); + DOSET (FLG_MEMIMPLICIT, b); + DOSET (FLG_BRANCHSTATE, b); + /*@fallthrough@*/ /* also sets memtrans flags */ + case FLG_MEMTRANS: + DOSET (FLG_MEMTRANS, b); + DOSET (FLG_EXPOSETRANS, b); + DOSET (FLG_OBSERVERTRANS, b); + DOSET (FLG_DEPENDENTTRANS, b); + DOSET (FLG_NEWREFTRANS, b); + DOSET (FLG_ONLYTRANS, b); + DOSET (FLG_OWNEDTRANS, b); + DOSET (FLG_FRESHTRANS, b); + DOSET (FLG_SHAREDTRANS, b); + DOSET (FLG_TEMPTRANS, b); + DOSET (FLG_KEPTTRANS, b); + DOSET (FLG_REFCOUNTTRANS, b); + DOSET (FLG_STATICTRANS, b); + DOSET (FLG_UNKNOWNTRANS, b); + DOSET (FLG_KEEPTRANS, b); + DOSET (FLG_IMMEDIATETRANS, b); + break; + + default: + break; + } + + if (b && !gc.anyExports + && (f == FLG_EXPORTVAR || f == FLG_EXPORTFCN + || f == FLG_EXPORTTYPE || f == FLG_EXPORTMACRO + || f == FLG_EXPORTCONST + || f == FLG_EXPORTANY)) + { + gc.anyExports = TRUE; } } @@ -3675,6 +3851,12 @@ context_getFlag (flagcode d) return (gc.flags[d]); } +bool +context_flagOn (flagcode f, fileloc loc) +{ + return (!context_suppressFlagMsg (f, loc)); +} + static void context_saveFlagSettings (void) { gc.savedFlags = TRUE; @@ -3784,7 +3966,9 @@ context_destroyMod (void) cstring_free (gc.msgAnnote); globSet_free (gc.globs_used); - } + metaStateTable_free (gc.stateTable); + annotationTable_free (gc.annotTable); +} /* ** Flag shortcuts. @@ -4135,9 +4319,125 @@ void context_showFilelocStack (void) filelocStack_printIncludes (gc.locstack); } +metaStateTable context_getMetaStateTable (void) +{ + return gc.stateTable; +} + +metaStateInfo context_lookupMetaStateInfo (cstring key) +{ + return metaStateTable_lookup (gc.stateTable, key); +} + +/*@null@*/ annotationInfo context_lookupAnnotation (cstring annot) +{ + annotationInfo ainfo; + + ainfo = annotationTable_lookup (gc.annotTable, annot); + + return ainfo; +} + +void context_addAnnotation (annotationInfo ainfo) +{ + if (annotationTable_contains (gc.annotTable, annotationInfo_getName (ainfo))) + { + voptgenerror + (FLG_SYNTAX, + message ("Duplicate annotation declaration: %s", annotationInfo_getName (ainfo)), + annotationInfo_getLoc (ainfo)); + + annotationInfo_free (ainfo); + } + else + { + annotationTable_insert (gc.annotTable, ainfo); + } +} + +void context_addMetaState (cstring mname, metaStateInfo msinfo) +{ + if (metaStateTable_contains (gc.stateTable, mname)) + { + voptgenerror + (FLG_SYNTAX, + message ("Duplicate metastate declaration: %s", mname), + metaStateInfo_getLoc (msinfo)); + cstring_free (mname); + metaStateInfo_free (msinfo); + } + else + { + metaStateTable_insert (gc.stateTable, mname, msinfo); + } +} +valueTable context_createValueTable (sRef s) +{ + if (metaStateTable_size (gc.stateTable) > 0) + { + valueTable res = valueTable_create (metaStateTable_size (gc.stateTable)); + /*@i32 should use smaller value... */ + DPRINTF (("Value table for: %s", sRef_unparse (s))); + + metaStateTable_elements (gc.stateTable, msname, msi) + { + mtContextNode context = metaStateInfo_getContext (msi); + if (mtContextNode_matchesRefStrict (context, s)) + { + DPRINTF (("Create: %s", metaStateInfo_unparse (msi))); + llassert (cstring_equal (msname, metaStateInfo_getName (msi))); + + valueTable_insert (res, + cstring_copy (metaStateInfo_getName (msi)), + stateValue_create (metaStateInfo_getDefaultValue (msi, s), + stateInfo_undefined)); + } + else + { + DPRINTF (("No match: %s", metaStateInfo_unparse (msi))); + } + } + end_metaStateTable_elements ; + + DPRINTF (("Value table: %s", valueTable_unparse (res))); + return res; + } + else + { + return valueTable_undefined; + } +} +valueTable context_createGlobalMarkerValueTable () +{ + if (metaStateTable_size (gc.stateTable) > 0) + { + valueTable res = valueTable_create (metaStateTable_size (gc.stateTable)); + /*@i32 should use smaller value... */ + + metaStateTable_elements (gc.stateTable, msname, msi) + { + /*@i23 only add global...*/ + DPRINTF (("Create: %s", metaStateInfo_unparse (msi))); + llassert (cstring_equal (msname, metaStateInfo_getName (msi))); + + valueTable_insert (res, + cstring_copy (metaStateInfo_getName (msi)), + stateValue_create (metaStateInfo_getDefaultGlobalValue (msi), + stateInfo_undefined)); + } + end_metaStateTable_elements ; + + DPRINTF (("Value table: %s", valueTable_unparse (res))); + return res; + } + else + { + return valueTable_undefined; + } +} diff --git a/src/cpperror.c b/src/cpperror.c index 1fd7027..a418b87 100644 --- a/src/cpperror.c +++ b/src/cpperror.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -386,7 +386,7 @@ cppReader_pedwarnWithLine (cppReader *pfile, int line, int column, void cppReader_perrorWithName (cppReader *pfile, cstring name) { cppReader_message (pfile, 1, - message ("preprocessing: %s: %s", + message ("Preprocessing error for %s: %s", name, lldecodeerror (errno))); } diff --git a/src/cppexp.c b/src/cppexp.c index b74938f..6f172f7 100644 --- a/src/cppexp.c +++ b/src/cppexp.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -368,6 +368,7 @@ cppReader_parseNumber (cppReader *pfile, char *start, int olen) if (overflow) { + /*@i23 add flags for all these...*/ cppReader_pedwarnLit (pfile, cstring_makeLiteralTemp ("Integer constant out of range")); @@ -1242,11 +1243,13 @@ cppReader_parseExpression (cppReader *pfile) } /*@switchbreak@*/ break; default: + /*@-formatconst@*/ fprintf (stderr, top[1].op >= ' ' && top[1].op <= '~' ? "unimplemented operator '%c'\n" : "unimplemented operator '\\%03o'\n", top[1].op); + /*@=formatconst@*/ } } if (op.op == 0) diff --git a/src/cpphash.c b/src/cpphash.c index 9f316a4..744ed9e 100644 --- a/src/cpphash.c +++ b/src/cpphash.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/cppmain.c b/src/cppmain.c index 4095020..bb9b543 100644 --- a/src/cppmain.c +++ b/src/cppmain.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/cprim.c b/src/cprim.c index 55a7f88..17a4eb1 100644 --- a/src/cprim.c +++ b/src/cprim.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -242,6 +242,12 @@ cprim_closeEnoughAux (cprim c1, cprim c2, bool deep) { c1 = CTX_LINT; } + /* 2001-06-10: This fix provided by Jim Zelenka: */ + else if (c1 == CTX_ULLINT) + { + c1 = CTX_LLINT; + } + /* End fix */ else if (c1 == CTX_USINT) { c1 = CTX_SINT; @@ -263,6 +269,12 @@ cprim_closeEnoughAux (cprim c1, cprim c2, bool deep) { c2 = CTX_LINT; } + /* 2001-06-10: This fix provided by Jim Zelenka: */ + else if (c2 == CTX_ULLINT) + { + c2 = CTX_LLINT; + } + /* End fix */ else if (c2 == CTX_USINT) { c2 = CTX_SINT; @@ -308,7 +320,9 @@ cprim_closeEnoughAux (cprim c1, cprim c2, bool deep) case CTX_ULLINT: return (c2 == CTX_USINT || c2 == CTX_UINT - || c2 == CTX_ULINT); + || c2 == CTX_ULINT + /* 2001-06-10: This fix provided by Jim Zelenka: */ + || (cprim_isAnyChar (c2) && context_msgCharInt ())); case CTX_LINT: return (c2 == CTX_SINT || c2 == CTX_INT @@ -319,7 +333,9 @@ cprim_closeEnoughAux (cprim c1, cprim c2, bool deep) case CTX_USINT: return (c2 == CTX_UCHAR && context_msgCharInt ()); case CTX_ULINT: - return (c2 == CTX_UINT || c2 == CTX_USINT); + /* 2001-06-10: This fix provided by Jim Zelenka: */ + return (c2 == CTX_UINT || c2 == CTX_USINT + || (c2 == CTX_UCHAR && context_msgCharInt())); case CTX_UCHAR: return (c2 == CTX_UINT && context_msgCharInt ()); case CTX_CHAR: diff --git a/src/cscanner.l b/src/cscanner.l index def0183..6eeba4b 100644 --- a/src/cscanner.l +++ b/src/cscanner.l @@ -180,6 +180,9 @@ static void setTokLengthT (size_t len) } # include "flex.head" + +/*@-unrecog@*/ /*@i5343@*/ + %} %% @@ -194,7 +197,8 @@ static void setTokLengthT (size_t len) { if (lastWasString) { - ; + /* was nothing! */ /*@i32@*/ + RETURN_STRING (cstring_makeLiteral ("\"\"")); } else { @@ -503,6 +507,7 @@ static void setTokLengthT (size_t len) } } "@.CT" { setTokLength (4); lldiagmsg (ctype_unparseTable ()); } +"@.FA" { setTokLength (4); lldiagmsg (message ("Access types: %q", typeIdSet_unparse (context_fileAccessTypes ()))); } "@.F" { setTokLength (3); lldiagmsg (message ("%q: *** marker ***", fileloc_unparse (g_currentloc))); } @@ -524,9 +529,15 @@ static void setTokLengthT (size_t len) int tok; incColumn (); incColumn (); tok = handleLlSpecial (); + if (tok != BADTOK) { - RETURN_TOK (tok); + if (tok == CANNOTATION) { + return (tok); + } else { + /* Beware - this bashes yylval! */ + RETURN_TOK (tok); + } } } "%}" { /* AFTER_COMMENT_MARKER */ @@ -535,11 +546,15 @@ static void setTokLengthT (size_t len) RETURN_TOK (QENDMACRO); } "\\" { incColumn (); continueLine = TRUE; } . { incColumn (); - voptgenerror - (FLG_SYNTAX, - message ("Invalid character (ascii: %d), skipping character", - (int)(*yytext)), - g_currentloc); + if ((int) *yytext == 13 ) { + ; + } else { + voptgenerror + (FLG_SYNTAX, + message ("Invalid character (ascii: %d), skipping character", + (int)(*yytext)), + g_currentloc); + } } %% @@ -558,6 +573,7 @@ struct skeyword s_parsetable[] = { { "modifies", QMODIFIES } , { "globals", QGLOBALS } , { "alt", QALT } , + { "warn", QWARN } , { "constant", QCONSTANT } , { "function", QFUNCTION } , { "iter", QITER } , @@ -569,11 +585,13 @@ struct skeyword s_parsetable[] = { { "pre", QPRECLAUSE } , { "post", QPOSTCLAUSE } , {"setBufferSize", QSETBUFFERSIZE}, - {"requires", QBUFFERCONSTRAINT}, - {"ensures", QENSURESCONSTRAINT}, + {"LRequires", QBUFFERCONSTRAINT}, + {"LEnsures", QENSURESCONSTRAINT}, {"setStringLength", QSETSTRINGLENGTH}, {"testinRange", QTESTINRANGE}, - { NULL, BADTOK } + { "requires", QPRECLAUSE } , + { "ensures", QPOSTCLAUSE } , + { NULL, BADTOK } } ; /* @@ -617,8 +635,8 @@ struct skeyword s_keytable[] = { { "relnull", QRELNULL } , { "nullterminated", QNULLTERMINATED }, { "setBufferSize", QSETBUFFERSIZE }, - { "requires", QBUFFERCONSTRAINT }, - { "ensures", QENSURESCONSTRAINT }, + { "LRequires", QBUFFERCONSTRAINT }, + { "LEnsures", QENSURESCONSTRAINT }, { "testInRange", QTESTINRANGE}, { "MaxSet", QMAXSET}, { "MaxRead", QMAXREAD}, @@ -662,6 +680,7 @@ static bool isArtificial (cstring s) { return (cstring_equalLit (s, "modifies") || cstring_equalLit (s, "globals") + || cstring_equalLit (s, "warn") || cstring_equalLit (s, "alt")); } @@ -687,7 +706,7 @@ void swallowMacro (void) } else { - checkUngetc (i, yyin); + reader_checkUngetc (i, yyin); return; } } @@ -695,7 +714,7 @@ void swallowMacro (void) if (i != EOF) { - checkUngetc (i, yyin); + reader_checkUngetc (i, yyin); } } @@ -705,6 +724,8 @@ static int commentMarkerToken (cstring s) while (s_parsetable[i].name != NULL) { + DPRINTF (("Try :%s:%s:", s, s_parsetable[i].name)); + if (cstring_equalLit (s, s_parsetable[i].name)) { return s_parsetable[i].token; @@ -733,7 +754,7 @@ static int tokenMacroCode (cstring s) "This is interpreted by " "LCLint in the same way as most Unix lints, but it is " "preferable to replace it with the /*@fallthrough@*/ " - "stylized comment"), + "semantic comment"), g_currentloc); return QFALLTHROUGH; } @@ -746,7 +767,7 @@ static int tokenMacroCode (cstring s) "This is interpreted by " "LCLint in the same way as most Unix lints, but it is " "preferable to replace it with the /*@fallthrough@*/ " - "stylized comment"), + "semantic comment"), g_currentloc); return QFALLTHROUGH; } @@ -759,14 +780,14 @@ static int tokenMacroCode (cstring s) "This is interpreted by " "LCLint in the same way as most Unix lints, but it is " "preferable to replace it with the /*@notreached@*/ " - "stylized comment."), + "semantic comment."), g_currentloc); return QNOTREACHED; } else if (s_keytable[i].token == QPRINTFLIKE) { - setSpecialFunction (QU_PRINTFLIKE); + setSpecialFunction (qual_createPrintfLike ()); return SKIPTOK; } else if (s_keytable[i].token == QLINTPRINTFLIKE) @@ -781,17 +802,17 @@ static int tokenMacroCode (cstring s) "/*@scanflike@*/ or /*@messagelike@*/."), g_currentloc); - setSpecialFunction (QU_PRINTFLIKE); + setSpecialFunction (qual_createPrintfLike ()); return SKIPTOK; } else if (s_keytable[i].token == QSCANFLIKE) { - setSpecialFunction (QU_SCANFLIKE); + setSpecialFunction (qual_createScanfLike ()); return SKIPTOK; } else if (s_keytable[i].token == QMESSAGELIKE) { - setSpecialFunction (QU_MESSAGELIKE); + setSpecialFunction (qual_createMessageLike ()); return SKIPTOK; } else if (s_keytable[i].token == QARGSUSED) @@ -924,6 +945,7 @@ static char macro_nextChar () } else /* if (c == '@') */ { + llassert (FALSE); /*@i23@*/ if (handleLlSpecial () != BADTOK) { llerrorlit (FLG_SYNTAX, "Macro cannot use special syntax"); @@ -993,7 +1015,7 @@ static char macro_nextChar () } /* -** keeps stylized comments +** keeps semantic comments */ static char macro_nextCharC () @@ -1135,7 +1157,6 @@ static void handleMacro () if (macrocode == BADTOK && !isArtificial (mac)) { - DPRINTF (("Add macro: %s", mac)); context_addMacroCache (mac); } else @@ -1727,9 +1748,10 @@ static bool handleSpecial (char *yyt) || (sscanf (ol, " %d \"", &lineno) == 1)) { char *tmp = ol; - char *fname; + cstring fname; fileId fid; + /*@access cstring@*/ while (*tmp != '\"' && *tmp != '\0') { tmp++; @@ -1738,6 +1760,7 @@ static bool handleSpecial (char *yyt) llassert (*tmp == '\"'); tmp++; + fname = tmp; while (*tmp != '\"' && *tmp != '\0') @@ -1749,8 +1772,6 @@ static bool handleSpecial (char *yyt) *tmp = '\0'; - DPRINTF (("fname: %s", fname)); - # if defined(OS2) || defined(MSDOS) || defined(WIN32) /* @@ -1768,15 +1789,11 @@ static bool handleSpecial (char *yyt) ** Skip past the drive marker. */ - DPRINTF (("stmp: %s / %s", stmp, fname)); - if (strchr (stmp, ':') != NULL) { stmp = strchr (stmp, ':') + 1; } - DPRINTF (("stmp: %s / %s", stmp, fname)); - while ((stmp = strchr (stmp, CONNECTCHAR)) != NULL ) { if (*(stmp+1) == CONNECTCHAR) @@ -1785,41 +1802,34 @@ static bool handleSpecial (char *yyt) } stmp++; - DPRINTF (("stmp: %s / %s", stmp, fname)); } - DPRINTF (("Now: base = %s", fname)); - - fid = fileTable_lookupBase (context_fileTable (), - cstring_fromChars (fname)); + fid = fileTable_lookupBase (context_fileTable (), fname); if (!(fileId_isValid (fid))) { fname = removePreDirs (fname); - fid = fileTable_lookupBase (context_fileTable (), - cstring_fromChars (fname)); + fid = fileTable_lookupBase (context_fileTable (), fname); } } # else /* !defined(OS2) && !defined(MSDOS) */ fname = removePreDirs (fname); - fid = fileTable_lookupBase (context_fileTable (), - cstring_fromChars (fname)); + fid = fileTable_lookupBase (context_fileTable (), fname); # endif /* !defined(OS2) && !defined(MSDOS) */ if (!(fileId_isValid (fid))) { - if (isHeaderFile (cstring_fromChars (fname))) + if (isHeaderFile (fname)) { - fid = fileTable_addHeaderFile (context_fileTable (), - cstring_fromChars (fname)); + fid = fileTable_addHeaderFile (context_fileTable (), fname); } else { - fid = fileTable_addFile (context_fileTable (), - cstring_fromChars (fname)); + fid = fileTable_addFile (context_fileTable (), fname); } } setFileLine (fid, lineno); + /*@noaccess cstring@*/ } else if ((sscanf (ol, "line %d", &lineno) == 1) || (sscanf (ol, " %d", &lineno) == 1)) @@ -1863,6 +1873,10 @@ static int handleLlSpecial () char *os; int tok; int charsread = 0; + fileloc loc; + + loc = fileloc_copy (g_currentloc); + DPRINTF (("Handle special: %s", fileloc_unparse (loc))); while (((ic = ninput ()) != 0) && isalpha (ic)) { @@ -1871,6 +1885,7 @@ static int handleLlSpecial () charsread++; } + DPRINTF (("Read: %s / %s", s, fileloc_unparse (g_currentloc))); os = s; if (charsread == 0 && ic == (int) AFTER_COMMENT_MARKER[0]) @@ -1878,19 +1893,16 @@ static int handleLlSpecial () ic = ninput (); llassert (ic == AFTER_COMMENT_MARKER[1]); - - if (isProcessingGlobMods () && (*s == '\0')) + if (*s == '\0') { sfree (os); + fileloc_free (loc); return QNOMODS; /* special token no modifications token */ } - else - { - ; - } } + DPRINTF (("Coment marker: %s", os)); tok = commentMarkerToken (cstring_fromChars (os)); if (tok != BADTOK) @@ -1898,15 +1910,16 @@ static int handleLlSpecial () tokLength = charsread; sfree (os); inSpecPart = TRUE; + fileloc_free (loc); return tok; } - + + DPRINTF (("Not a comment marker...")); /* Add rest of the comment */ if (ic != 0 && ic != EOF) { c = (char) ic; - s = mstring_append (s, c); charsread++; @@ -1920,6 +1933,8 @@ static int handleLlSpecial () } } + DPRINTF (("Read: %s / %s", s, fileloc_unparse (g_currentloc))); + if (ic == AFTER_COMMENT_MARKER[0]) { int nc = ninput (); @@ -1927,7 +1942,6 @@ static int handleLlSpecial () charsread++; } - os = s; while (*s == ' ' || *s == '\t' || *s == '\n') @@ -1974,7 +1988,7 @@ static int handleLlSpecial () llerror (FLG_BADFLAG, message - ("Stylized comment attempts to restore flag %s. " + ("Semantic comment attempts to restore flag %s. " "A mode flag cannot be restored.", flagname)); } @@ -1987,7 +2001,7 @@ static int handleLlSpecial () { llerror (FLG_BADFLAG, - message ("Unrecognized option in stylized comment: %s", + message ("Unrecognized option in semantic comment: %s", flagname)); } } @@ -1996,7 +2010,7 @@ static int handleLlSpecial () llerror (FLG_BADFLAG, message - ("Stylized comment attempts to set global flag %s. " + ("Semantic comment attempts to set global flag %s. " "A global flag cannot be set locally.", flagname)); } @@ -2011,7 +2025,7 @@ static int handleLlSpecial () llerror (FLG_BADFLAG, message - ("Stylized comment attempts to restore flag %s. " + ("Semantic comment attempts to restore flag %s. " "A flag for setting a value cannot be restored.", flagname)); } @@ -2049,7 +2063,7 @@ static int handleLlSpecial () llerror (FLG_BADFLAG, message - ("Flag %s (in stylized comment) must be followed by an argument", + ("Flag %s (in semantic comment) must be followed by an argument", flagcode_unparse (fflag))); } else @@ -2087,7 +2101,8 @@ static int handleLlSpecial () if (context_inHeader () && !isArtificial (cstring_fromChars (os))) { - context_addComment (cstring_fromCharsNew (os)); + DPRINTF (("Here adding comment: %s", os)); + context_addComment (cstring_fromCharsNew (os)); } else { @@ -2099,6 +2114,7 @@ static int handleLlSpecial () char *t = s; int macrocode; char tchar = '\0'; + annotationInfo ainfo; while (*s != '\0' && *s != ' ' && *s != '\t' && *s != '\n') { @@ -2118,10 +2134,10 @@ static int handleLlSpecial () if (macrocode != BADTOK) { tokLength = mstring_length (t); - sfree (t); sfree (os); + fileloc_free (loc); if (macrocode == SKIPTOK) { @@ -2131,6 +2147,18 @@ static int handleLlSpecial () return macrocode; } + ainfo = context_lookupAnnotation (cstring_fromChars (os)); + + if (annotationInfo_isDefined (ainfo)) { + DPRINTF (("Found annotation: %s", annotationInfo_unparse (ainfo))); + /*@i324@*/ yylval.annotation = ainfo; + tokLength = 0; + sfree (os); + sfree (t); + fileloc_free (loc); + return CANNOTATION; + } + if (context_inHeader ()) { if (tchar != '\0') @@ -2142,6 +2170,7 @@ static int handleLlSpecial () && macrocode != SKIPTOK && !isArtificial (cstring_fromChars (os))) { + DPRINTF (("Add comment: %s", os)); context_addComment (cstring_fromCharsNew (os)); } else @@ -2236,24 +2265,42 @@ static int handleLlSpecial () *s = '\0'; - + DPRINTF (("Access %s", tname)); + if (!context_getFlag (FLG_NOCOMMENTS) && !context_getFlag (FLG_NOACCESS)) { if (usymtab_existsType (tname)) { - usymId uid = usymtab_getTypeId (tname); - context_addFileAccessType (uid); + typeId uid = usymtab_getTypeId (tname); + uentry ue = usymtab_getTypeEntry (uid); + + if (uentry_isAbstractDatatype (ue)) + { + context_addFileAccessType (uid); + DPRINTF (("Adding access to: %s / %d", tname, uid)); + } + else + { + voptgenerror + (FLG_COMMENTERROR, + message + ("Non-abstract type %s used in access comment", + tname), + g_currentloc); + } } else { if (!(context_inSuppressRegion () || context_inSuppressZone (g_currentloc))) { - llmsg - (message - ("%q: Unrecognized type %s used in access comment", - fileloc_unparse (g_currentloc), tname)); + voptgenerror + (FLG_COMMENTERROR, + message + ("Unrecognized type %s used in access comment", + tname), + g_currentloc); } } } @@ -2305,6 +2352,7 @@ static int handleLlSpecial () if (context_couldHaveAccess (tuid)) { + DPRINTF (("Removing access: %s", tname)); context_removeFileAccessType (tuid); } else @@ -2316,17 +2364,21 @@ static int handleLlSpecial () if (uentry_isAbstractDatatype (ue)) { - llmsg - (message - ("%q: Non-accessible abstract type %s used in noaccess comment", - fileloc_unparse (g_currentloc), tname)); + voptgenerror + (FLG_COMMENTERROR, + message + ("Non-accessible abstract type %s used in noaccess comment", + tname), + g_currentloc); } else { - llmsg - (message - ("%q: Non-abstract type %s used in noaccess comment", - fileloc_unparse (g_currentloc), tname)); + voptgenerror + (FLG_COMMENTERROR, + message + ("Non-abstract type %s used in noaccess comment", + tname), + g_currentloc); } } } @@ -2336,10 +2388,12 @@ static int handleLlSpecial () if (!(context_inSuppressRegion () || context_inSuppressZone (g_currentloc))) { - llmsg - (message - ("%q: Unrecognized type %s used in noaccess comment", - fileloc_unparse (g_currentloc), tname)); + voptgenerror + (FLG_COMMENTERROR, + message + ("Unrecognized type %s used in noaccess comment", + tname), + g_currentloc); } } } @@ -2357,18 +2411,16 @@ static int handleLlSpecial () } else { - setTokLength (- (2 + charsread)); - voptgenerror (FLG_UNRECOGCOMMENTS, - message ("Stylized comment unrecognized: %s", - cstring_fromChars (os)), - g_currentloc); + message ("Semantic comment unrecognized: %s", + cstring_fromChars (os)), loc); } sfree (t); } - sfree (os); + sfree (os); + fileloc_free (loc); return BADTOK; } @@ -2436,14 +2488,16 @@ static int processIdentifier (cstring id) { uentry le; - DPRINTF (("Process identifier: %s", id)); + DPRINTF (("Process identifier: %s / %s / %s", id, fileloc_unparse (g_currentloc), + bool_unparse (context_inFunctionHeader ()))); context_clearJustPopped (); lastidprocessed = id; - if (context_inFunctionDecl ()) + if (context_inFunctionHeader ()) { int tok = commentMarkerToken (id); + DPRINTF (("in function decl...")); if (tok != BADTOK) { @@ -2457,6 +2511,21 @@ static int processIdentifier (cstring id) { return tok; } + else + { + annotationInfo ainfo = context_lookupAnnotation (id); + + if (annotationInfo_isDefined (ainfo)) + { + DPRINTF (("Found annotation: %s", annotationInfo_unparse (ainfo))); + /*@i324@*/ yylval.annotation = ainfo; + return CANNOTATION; + } + else + { + DPRINTF (("Not annotation: %s", id)); + } + } } } @@ -2624,12 +2693,12 @@ static int processIdentifier (cstring id) if (uentry_isIter (le)) { - yylval.entry = le; + /*@i32@*/ yylval.entry = le; return (ITER_NAME); } else if (uentry_isEndIter (le)) { - yylval.entry = le; + /*@i32@*/ yylval.entry = le; return (ITER_ENDNAME); } else if (uentry_isUndefined (le)) @@ -2655,7 +2724,7 @@ static int processIdentifier (cstring id) } else { - yylval.entry = le; + /*@i32@*/ yylval.entry = le; return (IDENTIFIER); } } @@ -2677,7 +2746,7 @@ static int processIdentifier (cstring id) } else { - yylval.entry = le; + /*@i32@*/ yylval.entry = le; return (IDENTIFIER); } diff --git a/src/cstringList.c b/src/cstringList.c index 7cced01..76c9424 100644 --- a/src/cstringList.c +++ b/src/cstringList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -50,6 +50,18 @@ cstringList_newEmpty (void) return (s); } +static /*@notnull@*/ cstringList +cstringList_newPredict (int size) +{ + cstringList s = (cstringList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = size; + s->elements = (cstring *) dmalloc (sizeof (*s->elements) * size); + + return (s); +} + static void cstringList_grow (/*@notnull@*/ cstringList s) { @@ -57,10 +69,10 @@ cstringList_grow (/*@notnull@*/ cstringList s) cstring *newelements; s->nspace += cstringListBASESIZE; - + newelements = (cstring *) dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); - + if (newelements == (cstring *) 0) { @@ -102,6 +114,36 @@ cstringList cstringList_add (cstringList s, /*@keep@*/ cstring el) return s; } +cstringList cstringList_prepend (cstringList s, /*@keep@*/ cstring el) +{ + int i; + + DPRINTF (("Prepend: %s + %s", + cstringList_unparse (s), cstring_toCharsSafe (el))); + + if (!cstringList_isDefined (s)) + { + return cstringList_single (el); + } + + if (s->nspace <= 0) + { + cstringList_grow (s); + } + + s->nspace--; + + for (i = s->nelements; i > 0; i--) + { + s->elements[i] = s->elements [i - 1]; + } + + s->elements[0] = el; + s->nelements++; + + return s; +} + cstring cstringList_unparse (cstringList s) { @@ -224,6 +266,8 @@ cstringList_free (cstringList s) { if (cstringList_isDefined (s)) { + DPRINTF (("cstringList free: [%p] %s", + s, cstringList_unparse (s))); sfree (s->elements); sfree (s); } @@ -241,3 +285,57 @@ cstringList_alphabetize (cstringList s) } } +int cstringList_getIndex (cstringList s, cstring key) +{ + int index = 0; + + cstringList_elements (s, el) + { + if (cstring_equal (el, key)) + { + return index; + } + + index++; + } end_cstringList_elements ; + + BADBRANCH; +} + +bool cstringList_contains (cstringList s, cstring key) +{ + int index = 0; + + cstringList_elements (s, el) + { + if (cstring_equal (el, key)) + { + return TRUE; + } + + index++; + } end_cstringList_elements ; + + return FALSE; +} + +cstringList cstringList_copy (cstringList s) +{ + cstringList res = cstringList_newPredict (cstringList_size (s)); + + cstringList_elements (s, el) + { + res = cstringList_add (res, cstring_copy (el)); + } end_cstringList_elements ; + + return res; +} + +cstring +cstringList_get (cstringList s, int index) +{ + llassertretnull (s != NULL); + llassertretnull (index >= 0); + llassertretnull (index < s->nelements); + return s->elements[index]; +} diff --git a/src/cstringSList.c b/src/cstringSList.c index 8fd4b71..39956f5 100644 --- a/src/cstringSList.c +++ b/src/cstringSList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -102,6 +102,14 @@ cstringSList cstringSList_add (cstringSList s, /*@exposed@*/ cstring el) return s; } +cstring +cstringSList_get (cstringSList s, int index) +{ + llassert (s != NULL); + llassert (index < s->nelements); + return s->elements[index]; +} + cstring cstringSList_unparse (cstringSList s) { diff --git a/src/cstringTable.c b/src/cstringTable.c new file mode 100644 index 0000000..94b79bc --- /dev/null +++ b/src/cstringTable.c @@ -0,0 +1,544 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** cstringTable.c +** +** Since hsearch defined in only allows one hash table, +** I'll implement my own. +** +** Try to find a decent hash function, etc. later... +** +** cstringTable is from string -> unsigned +** +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "randomNumbers.h" + +/*@constant null hbucket hbucket_undefined; @*/ +# define hbucket_undefined 0 + +static void +cstringTable_addEntry (/*@notnull@*/ cstringTable p_h, /*@only@*/ hentry p_e) + /*@modifies p_h@*/ ; + +static /*@truenull@*/ bool hbucket_isNull (/*@null@*/ hbucket h) +{ + return (h == hbucket_undefined); +} + +static hentry hentry_create (/*@keep@*/ cstring key, int val) +{ + hentry h = (hentry) dmalloc (sizeof (*h)); + + h->key = key; + h->val = val; + llassert (val != HBUCKET_DNE); /*@i523 way bogus! */ + + return (h); +} + +static void hentry_free (/*@only@*/ hentry h) +{ + cstring_free (h->key); + sfree (h); +} + +static bool +hbucket_isEmpty (hbucket h) +{ + return (h == hbucket_undefined || h->size == 0); +} + +static cstring +hbucket_unparse (hbucket h) +{ + cstring s = cstring_undefined; + + if (!hbucket_isNull (h)) + { + int i; + + for (i = 0; i < h->size; i++) + { + s = message ("%q %s:%d", s, h->entries[i]->key, h->entries[i]->val); + } + } + + return s; +} + +static hbucket +hbucket_single (/*@only@*/ hentry e) +{ + hbucket h = (hbucket) dmalloc (sizeof (*h)); + + h->size = 1; + h->nspace = HBUCKET_BASESIZE - 1; + h->entries = (hentry *) dmalloc (HBUCKET_BASESIZE * sizeof (*h->entries)); + h->entries[0] = e; + + return (h); +} + +static void +hbucket_grow (/*@notnull@*/ hbucket h) +{ + int i; + hentry *newentries; + + h->nspace += HBUCKET_BASESIZE; + + newentries = (hentry *) + dmalloc ((h->size + HBUCKET_BASESIZE) * sizeof (*newentries)); + + for (i = 0; i < h->size; i++) + { + newentries[i] = h->entries[i]; + } + + /*@i32@*/ sfree (h->entries); + h->entries = newentries; +/*@i23@*/ } + +static int hbucket_lookup (hbucket p_h, cstring p_key); + +static bool hbucket_contains (hbucket p_h, cstring p_key) /*@*/ { + return (hbucket_lookup (p_h, p_key) != HBUCKET_DNE); +} + +/* +** bizarre duplicate behaviour +** required for duplicate entries +*/ + +static void +hbucket_add (/*@notnull@*/ hbucket h, /*@only@*/ hentry e) +{ + int exloc = hbucket_lookup (h, e->key); + + llassert (exloc == HBUCKET_DNE); + + if (h->nspace == 0) + { + hbucket_grow (h); + } + + llassert (e->val != HBUCKET_DNE); + h->entries[h->size] = e; + h->size++; + h->nspace--; +} + +static int +hbucket_ncollisions (hbucket h) +{ + if (!hbucket_isNull (h) && (h->size > 1)) + return (h->size - 1); + else + return 0; +} + +int +hbucket_lookup (hbucket h, cstring key) +{ + if (!hbucket_isNull (h)) + { + int i; + + for (i = 0; i < h->size; i++) + { + if (cstring_equal (h->entries[i]->key, key)) + { + return h->entries[i]->val; + } + } + } + + return HBUCKET_DNE; +} + +static +void hbucket_free (/*@only@*/ hbucket h) +{ + if (!hbucket_isNull (h)) + { + /*@i32@*/ sfree (h->entries); + sfree (h); + } +} + +void +cstringTable_free (/*@only@*/ cstringTable h) +{ + int i; + + llassert (cstringTable_isDefined (h)); + + for (i = 0; i < h->size; i++) + { + hbucket_free (h->buckets[i]); + } + + sfree (h->buckets); + sfree (h); +} + +static int +cstringTable_countCollisions (cstringTable h) +{ + int nc = 0; + int i; + + llassert (cstringTable_isDefined (h)); + + for (i = 0; i < h->size; i++) + { + nc += hbucket_ncollisions (h->buckets[i]); + } + + return (nc); +} + + +static int +cstringTable_countEmpty (cstringTable h) +{ + int nc = 0; + int i; + + llassert (cstringTable_isDefined (h)); + + for (i = 0; i < h->size; i++) + { + if (hbucket_isEmpty (h->buckets[i])) + { + nc++; + } + } + + return (nc); +} + +/* +** hash function snarfed from quake/hash.c Hash_String +** by Stephen Harrison +*/ + +static unsigned int +cstringTable_hashValue (/*@notnull@*/ cstringTable h, cstring key) +{ + char *p; + unsigned int hash_value = 0; + + for (p = cstring_toCharsSafe (key); *p != '\0'; p++) + { + hash_value = (hash_value << 1) ^ g_randomNumbers[*p % 256]; + } + + return (hash_value % h->size); +} + +static /*@exposed@*/ hbucket +cstringTable_hash (/*@notnull@*/ cstringTable h, cstring key) +{ + return h->buckets[cstringTable_hashValue (h, key)]; +} + + +/*@only@*/ cstringTable +cstringTable_create (int size) +{ + int i; + cstringTable h = (cstringTable) dmalloc (sizeof (*h)); + + h->size = size; + h->nentries = 0; + h->buckets = (hbucket *) dmalloc (sizeof (*h->buckets) * size); + + /*@+loopexec@*/ + for (i = 0; i < size; i++) + { + h->buckets[i] = hbucket_undefined; + } + /*@-loopexec@*/ + return h; +} + +cstring cstringTable_unparse (cstringTable h) +{ + cstring res = cstring_newEmpty (); + int i; + + if (cstringTable_isDefined (h)) + { + for (i = 0; i < h->size; i++) + { + hbucket hb = h->buckets[i]; + + if (hb != NULL) + { + res = message ("%q%d. %q\n", res, i, hbucket_unparse (hb)); + } + } + + res = message ("%qsize: %d, collisions: %d, empty: %d", + res, + h->size, + cstringTable_countCollisions (h), + cstringTable_countEmpty (h)); + } + else + { + cstring_free (res); + res = cstring_makeLiteral ("< empty cstring table >"); + } + + return res; +} + + +/*@only@*/ cstring +cstringTable_stats (cstringTable h) +{ + llassert (cstringTable_isDefined (h)); + return (message ("size: %d, collisions: %d, empty: %d\n", + h->size, cstringTable_countCollisions (h), + cstringTable_countEmpty (h))); +} + +static void +cstringTable_rehash (/*@notnull@*/ cstringTable h) +{ + /* + ** rehashing based (loosely) on code by Steve Harrison + */ + + int i; + int oldsize = h->size; + int newsize = 1 + ((oldsize * 26244) / 10000); /* 26244 = 162^2 */ + hbucket *oldbuckets = h->buckets; + + h->size = newsize; + h->nentries = 0; + h->buckets = (hbucket *) dmalloc (sizeof (*h->buckets) * newsize); + + /*@+loopexec@*/ + for (i = 0; i < newsize; i++) + { + h->buckets[i] = hbucket_undefined; + } + /*@=loopexec@*/ + + for (i = 0; i < oldsize; i++) + { + hbucket bucket = oldbuckets[i]; + + oldbuckets[i] = NULL; + + if (!hbucket_isNull (bucket)) + { + int j; + + for (j = 0; j < bucket->size; j++) + { + cstringTable_addEntry (h, bucket->entries[j]); + } + + /* + ** evans 2001-03-24: new memory leak detected by LCLint + ** after I fixed the checkCompletelyDestroyed. + */ + + sfree (bucket->entries); + sfree (bucket); + } + } + + sfree (oldbuckets); +} + +static void +cstringTable_addEntry (/*@notnull@*/ cstringTable h, /*@only@*/ hentry e) +{ + unsigned int hindex = cstringTable_hashValue (h, e->key); + + /* + ** using + ** hbucket hb = h->buckets[hindex]; + ** instead reveals a bug I don't want to deal with right now! + */ + + if (hbucket_isNull (h->buckets[hindex])) + { + h->buckets[hindex] = hbucket_single (e); + h->nentries++; + } + else + { + if (hbucket_contains (h->buckets[hindex], e->key)) { + llcontbug + (message + ("cstringTable: Attempt to add duplicate entry: %s " + "[previous value %d, new value %d]", + e->key, cstringTable_lookup (h, e->key), e->val)); + hentry_free (e); + return; + } + + hbucket_add (h->buckets[hindex], e); + h->nentries++; + } +} + +void +cstringTable_insert (cstringTable h, cstring key, int value) +{ + unsigned int hindex; + hbucket hb; + hentry e; + + llassert (cstringTable_isDefined (h)); + + h->nentries++; + + if (h->nentries * 162 > h->size * 100) + { + cstringTable_rehash (h); + } + + e = hentry_create (key, value); + hindex = cstringTable_hashValue (h, key); + + hb = h->buckets[hindex]; + + if (hbucket_isNull (hb)) + { + h->buckets[hindex] = hbucket_single (e); + } + else + { + llassert (!hbucket_contains (hb, e->key)); + hbucket_add (hb, e); + } +} + +int +cstringTable_lookup (cstringTable h, cstring key) +{ + hbucket hb; + llassert (cstringTable_isDefined (h)); + + hb = cstringTable_hash (h, key); + return (hbucket_lookup (hb, key)); +} + +void +cstringTable_update (cstringTable h, cstring key, int newval) +{ + hbucket hb; + + llassert (cstringTable_isDefined (h)); + + hb = cstringTable_hash (h, key); + + if (!hbucket_isNull (hb)) + { + int i; + + for (i = 0; i < hb->size; i++) + { + if (cstring_equal (hb->entries[i]->key, key)) + { + hb->entries[i]->val = newval; + return; + } + } + } + + llbug (message ("cstringTable_update: %s not found", key)); +} + +/* +** This is needed if oldkey is going to be released. +*/ + +void +cstringTable_replaceKey (cstringTable h, cstring oldkey, /*@only@*/ cstring newkey) +{ + hbucket hb; + llassert (cstringTable_isDefined (h)); + + hb = cstringTable_hash (h, oldkey); + llassert (cstring_equal (oldkey, newkey)); + + if (!hbucket_isNull (hb)) + { + int i; + + for (i = 0; i < hb->size; i++) + { + if (cstring_equal (hb->entries[i]->key, oldkey)) + { + hb->entries[i]->key = newkey; + return; + } + } + } + + llbug (message ("cstringTable_replaceKey: %s not found", oldkey)); +} + +void +cstringTable_remove (cstringTable h, cstring key) +{ + hbucket hb; + + llassert (cstringTable_isDefined (h)); + hb = cstringTable_hash (h, key); + + if (!hbucket_isNull (hb)) + { + int i; + + for (i = 0; i < hb->size; i++) + { + if (cstring_equal (hb->entries[i]->key, key)) + { + if (i < hb->size - 1) + { + hb->entries[i] = hb->entries[hb->size - 1]; + } + + hb->size--; + return; + } + } + } + + llbug (message ("cstringTable_removeKey: %s not found", key)); +} + + diff --git a/src/ctbase.i b/src/ctbase.i index 53c6633..ebb1612 100644 --- a/src/ctbase.i +++ b/src/ctbase.i @@ -20,17 +20,17 @@ ** ctbase.i ** ** NOTE: This is not a stand-alone source file, but is included in ctype.c. -** (This is necessary becuase there is no other way in C to have a +** (This is necessary because there is no other way in C to have a ** hidden scope, besides at the file level.) */ /*@access cprim*/ -typedef /*@null@*/ struct __ctbase *ctbase; +abst_typedef /*@null@*/ struct s_ctbase *ctbase; -typedef struct _ctentry { +/*@private@*/ typedef struct { ctkind kind; - ctbase ctbase; + ctbase ctbase; ctype base; /* type I point to (or element of array) */ ctype ptr; /* type of pointer to me */ ctype array; /* type of array of me */ @@ -39,7 +39,7 @@ typedef struct _ctentry { typedef /*@only@*/ ctentry o_ctentry; -typedef struct _cttable { +typedef struct { int size; int nspace; /*@relnull@*/ /*@only@*/ o_ctentry *entries; @@ -120,8 +120,6 @@ static /*@notnull@*/ /*@only@*/ ctbase ctbase_makePointer (ctype p_b) /*@*/ ; static /*@notnull@*/ /*@only@*/ ctbase ctbase_makeArray (ctype p_b) /*@*/ ; static /*@notnull@*/ ctype ctbase_makeFunction (ctype p_b, /*@only@*/ uentryList p_p) /*@*/ ; -static /*@notnull@*/ /*@only@*/ ctbase - ctbase_makeRealFunction (ctype p_b, /*@dependent@*/ uentryList p_p) /*@*/ ; static /*@notnull@*/ /*@observer@*/ ctbase ctbase_realFunction (/*@notnull@*/ /*@dependent@*/ ctbase p_c) /*@*/ ; static ctype ctbase_baseArrayPtr (/*@notnull@*/ ctbase p_c) /*@*/ ; @@ -137,39 +135,38 @@ extern int cttable_lastIndex(); # define cttable_lastIndex() (cttab.size - 1) /*@=macroundef@*/ -typedef struct _cfcn +typedef struct { ctype rval; - /*@dependent@*/ uentryList params; /* params are owned if liveparams is TRUE */ - bool liveparams; + /*@only@*/ uentryList params; } *cfcn; -typedef struct _tsu +typedef struct { cstring name; uentryList fields; } *tsu; -typedef struct _tconj +typedef struct { ctype a; ctype b; bool isExplicit; } *tconj; -typedef struct _tenum +typedef struct { cstring tag; enumNameList members; } *tenum; -typedef struct _tfixed +typedef struct { ctype base; long size; } *tfixed; -typedef union _uconts +typedef union { cprim prim; /* primitive */ typeId tid; /* abstract, user */ @@ -181,7 +178,7 @@ typedef union _uconts tfixed farray; /* fixed array */ } uconts; -struct __ctbase +struct s_ctbase { ctuid type; uconts contents; @@ -286,8 +283,8 @@ static bool ctbase_isExplicitConj (/*@notnull@*/ ctbase p_c) /*@*/ ; static bool ctbase_forceMatch (ctbase p_c1, ctbase p_c2) /*@modifies p_c1, p_c2@*/ ; static /*@notnull@*/ /*@only@*/ ctbase ctbase_expectFunction (ctype p_c); static bool ctbase_isVoidPointer(/*@notnull@*/ /*@dependent@*/ ctbase p_c) /*@*/ ; -static bool ctbase_isUnion (/*@notnull@*/ /*@dependent@*/ ctbase p_c) /*@*/ ; -static bool ctbase_isStruct (/*@notnull@*/ /*@dependent@*/ ctbase p_c) /*@*/ ; +static bool ctbase_isUnion (/*@notnull@*/ /*@temp@*/ ctbase p_c) /*@*/ ; +static bool ctbase_isStruct (/*@notnull@*/ /*@temp@*/ ctbase p_c) /*@*/ ; static /*@observer@*/ cstring ctbase_enumTag (/*@notnull@*/ ctbase p_ct) /*@*/ ; static /*@only@*/ cstring ctbase_unparseNotypes (ctbase p_c) /*@*/ ; @@ -295,7 +292,14 @@ static /*@out@*/ /*@notnull@*/ /*@only@*/ ctbase ctbase_new (void) /*@*/ ; static int nctbases = 0; static /*@notnull@*/ /*@only@*/ - ctbase ctbase_makeLiveFunction (ctype p_b, /*@owned@*/ uentryList p_p); + ctbase ctbase_makeLiveFunction (ctype p_b, /*@only@*/ uentryList p_p); + +static bool ctbase_isUnnamedSU (ctbase c) +{ + return (ctbase_isDefined (c) + && (ctbase_isStruct (c) || ctbase_isUnion (c)) + && isFakeTag (c->contents.su->name)); +} static /*@observer@*/ ctbase ctbase_realType (ctbase c) { @@ -365,7 +369,7 @@ ctbase_isStruct (/*@notnull@*/ ctbase c) } static bool -ctbase_isUnion (/*@notnull@*/ /*@dependent@*/ ctbase c) +ctbase_isUnion (/*@notnull@*/ ctbase c) { ctbase r = ctbase_realType (c); @@ -438,8 +442,15 @@ ctbase_typeId (ctbase c) } else { - llcontbug (message ("ctbase_typeId: bad call: %q", ctbase_unparse (c))); - return typeId_invalid; + if (ctbase_isConj (c)) + { + return ctbase_typeId (ctype_getCtbase (ctbase_getConjA (c))); + } + else + { + llcontbug (message ("ctbase_typeId: bad call: %q", ctbase_unparse (c))); + return typeId_invalid; + } } } @@ -493,7 +504,8 @@ ctbase_unparse (ctbase c) } else { - return (message ("struct { %q }", uentryList_unparseAbbrev (c->contents.su->fields))); + return (message ("struct { %q }", + uentryList_unparseAbbrev (c->contents.su->fields))); } case CT_UNION: if (cstring_isDefined (c->contents.su->name) && @@ -788,33 +800,33 @@ static ctbase ctbase_undump (d_char *c) case 'b': return (ctbase_createBool ()); case 'p': - res = ctbase_createPrim (cprim_fromInt (getInt (c))); - checkChar (c, '|'); + res = ctbase_createPrim (cprim_fromInt (reader_getInt (c))); + reader_checkChar (c, '|'); return res; case 's': - res = ctbase_createUser (typeId_fromInt (getInt (c))); - checkChar (c, '|'); + res = ctbase_createUser (typeId_fromInt (reader_getInt (c))); + reader_checkChar (c, '|'); return res; case 'a': - res = ctbase_createAbstract (typeId_fromInt (getInt (c))); - checkChar (c, '|'); + res = ctbase_createAbstract (typeId_fromInt (reader_getInt (c))); + reader_checkChar (c, '|'); return res; case 't': res = ctbase_makePointer (ctype_undump (c)); - checkChar (c, '|'); + reader_checkChar (c, '|'); return res; case 'y': res = ctbase_makeArray (ctype_undump (c)); - checkChar (c, '|'); + reader_checkChar (c, '|'); return res; case 'F': { ctype ct = ctype_undump (c); int size; - checkChar (c, '/'); - size = getInt (c); - checkChar (c, '|'); + reader_checkChar (c, '/'); + size = reader_getInt (c); + reader_checkChar (c, '|'); return (ctbase_makeFixedArray (ct, size)); } case 'f': @@ -911,12 +923,12 @@ static ctbase ctbase_undump (d_char *c) bool isExplicit; ctype c1, c2; - isExplicit = bool_fromInt (getInt (c)); - checkChar (c, '.'); + isExplicit = bool_fromInt (reader_getInt (c)); + reader_checkChar (c, '.'); c1 = ctype_undump (c); - checkChar (c, '/'); + reader_checkChar (c, '/'); c2 = ctype_undump (c); - checkChar (c, '|'); + reader_checkChar (c, '|'); return (ctbase_makeConj (c1, c2, isExplicit)); } @@ -981,6 +993,7 @@ ctbase_dump (ctbase c) ctype_dump (c->contents.farray->base), (int) c->contents.farray->size)); case CT_FCN: + DPRINTF (("Dump function: %s", ctbase_unparse (c))); return (message ("f%q (%q)", ctype_dump (c->contents.fcn->rval), uentryList_dumpParams (c->contents.fcn->params))); case CT_STRUCT: @@ -1113,17 +1126,7 @@ ctbase_free (/*@only@*/ ctbase c) sfree (c); break; case CT_FCN: - - if (c->contents.fcn->liveparams) - { - /* Because of liveparams, we know this can be released. */ - - /*@-dependenttrans@*/ /*@-unqualifiedtrans@*/ - uentryList_free (c->contents.fcn->params); - c->contents.fcn->params = NULL; - /*@=dependenttrans@*/ /*@=unqualifiedtrans@*/ - } - + /*@i32@*/ /* uentryList_free (c->contents.fcn->params); */ sfree (c); break; case CT_STRUCT: @@ -1435,19 +1438,36 @@ ctbase_genMatch (ctbase c1, ctbase c2, bool force, bool arg, bool def, bool deep c1->contents.su->name, c2->contents.su->name)); - if (!cstring_isEmpty (c1->contents.su->name)) + if (isFakeTag (c1->contents.su->name) + && isFakeTag (c2->contents.su->name)) { - return (cstring_equal (c1->contents.su->name, c2->contents.su->name)); + /* Both fake tags, check structure */ + if (cstring_equal (c1->contents.su->name, c2->contents.su->name)) + { + return TRUE; + } + else + { + return uentryList_matchFields (c1->contents.su->fields, + c2->contents.su->fields); + } } else { - if (!cstring_isEmpty (c2->contents.su->name)) + if (!cstring_isEmpty (c1->contents.su->name)) { - return FALSE; + return (cstring_equal (c1->contents.su->name, c2->contents.su->name)); + } + else + { + if (!cstring_isEmpty (c2->contents.su->name)) + { + return FALSE; + } + + llcontbuglit ("ctbase_genMatch: match fields"); + return (FALSE); } - - llcontbuglit ("ctbase_genMatch: match fields"); - return (FALSE); } default: llcontbug (message ("ctbase_genMatch: unknown type: %d\n", (int)c1tid)); @@ -1671,14 +1691,12 @@ ctbase_makeFunction (ctype b, /*@only@*/ uentryList p) rval = ctype_makeFunction (ctb->contents.fcn->rval, p); c->contents.fcn->rval = rval; - c->contents.fcn->params = ctb->contents.fcn->params; - c->contents.fcn->liveparams = FALSE; + c->contents.fcn->params = uentryList_copy (ctb->contents.fcn->params); /* no copy before */ } else { c->contents.fcn->rval = b; - /*@i@*/ c->contents.fcn->params = p; - c->contents.fcn->liveparams = TRUE; + c->contents.fcn->params = uentryList_copy (p); /* no copy before */ /*@-branchstate@*/ /* p is really released on this branch */ } /*@=branchstate@*/ @@ -1716,15 +1734,12 @@ ctbase_makeNFFunction (ctype b, /*@only@*/ uentryList p) rval = ctype_makeNFParamsFunction (ctb->contents.fcn->rval, p); c->contents.fcn->rval = rval; - c->contents.fcn->params = ctb->contents.fcn->params; - c->contents.fcn->liveparams = FALSE; + c->contents.fcn->params = uentryList_copy (ctb->contents.fcn->params); } else { c->contents.fcn->rval = b; - /*@i@*/ c->contents.fcn->params = p; - c->contents.fcn->liveparams = TRUE; - + c->contents.fcn->params = uentryList_copy (p); /*@-branchstate@*/ } /*@=branchstate@*/ @@ -1734,7 +1749,7 @@ ctbase_makeNFFunction (ctype b, /*@only@*/ uentryList p) } static /*@only@*/ ctbase - ctbase_makeLiveFunction (ctype b, /*@owned@*/ uentryList p) + ctbase_makeLiveFunction (ctype b, /*@only@*/ uentryList p) { ctbase c = ctbase_new (); @@ -1743,26 +1758,10 @@ static /*@only@*/ ctbase c->contents.fcn = (cfcn) dmalloc (sizeof (*c->contents.fcn)); c->contents.fcn->rval = b; c->contents.fcn->params = p; - c->contents.fcn->liveparams = TRUE; /*@-mustfree@*/ return (c); /*@=mustfree@*/ } -static /*@only@*/ ctbase - ctbase_makeRealFunction (ctype b, /*@dependent@*/ uentryList p) -{ - ctbase c = ctbase_new (); - - c->type = CT_FCN; - - c->contents.fcn = (cfcn) dmalloc (sizeof (*c->contents.fcn)); - c->contents.fcn->rval = b; - c->contents.fcn->params = p; - c->contents.fcn->liveparams = FALSE; - - return (c); -} - static /*@observer@*/ /*@notnull@*/ ctbase ctbase_realFunction (/*@dependent@*/ /*@notnull@*/ ctbase c) { @@ -1939,7 +1938,7 @@ ctbase_baseisExpFcn (ctype c) if (cb->type == CT_FCN) { - c = ctype_removePointers (ctype_returnValue (c)); + c = ctype_removePointers (ctype_getReturnType (c)); cb = ctype_getCtbase (c); llassert (ctbase_isDefined (cb)); @@ -1962,13 +1961,13 @@ ctbase_newBase (ctype c, ctype p) DPRINTF (("New base: %s / %s", ctype_unparse (c), ctype_unparse (p))); - cb = ctype_getCtbase (c); - - if (ctype_isUndefined (c)) + if (ctype_isUndefined (c) || ctype_isUnknown (c)) { return p; } + cb = ctype_getCtbase (c); + if (ctype_isConj (p)) { ctbase pb = ctype_getCtbase (p); @@ -2024,7 +2023,7 @@ ctbase_newBase (ctype c, ctype p) case CT_ARRAY: return (ctype_makeArray (ctbase_newBase (cb->contents.base, p))); case CT_FCN: - return (ctype_makeRealFunction (ctbase_newBase (cb->contents.fcn->rval, p), + return (ctype_makeRawFunction (ctbase_newBase (cb->contents.fcn->rval, p), cb->contents.fcn->params)); case CT_CONJ: return (ctype_makeConjAux (ctbase_newBase (cb->contents.conj->a, p), @@ -2061,7 +2060,7 @@ ctbase_newBaseExpFcn (ctype c, ctype p) if (!ctbase_isFunction (cb)) llbuglit ("ctbase_newBaseExpFcn: expFcn -> not a function"); - tmpct = ctype_getBaseType (ctype_returnValue (c)); + tmpct = ctype_getBaseType (ctype_getReturnType (c)); /* ** pointers before expfcn -> p are pointers to function, not result @@ -2131,7 +2130,7 @@ ctbase_newBaseExpFcn (ctype c, ctype p) } exitLoop: - tmpct = ctype_returnValue (c); + tmpct = ctype_getReturnType (c); /* ** pointers to expf are pointers to return value @@ -2182,7 +2181,7 @@ ctbase_newBaseExpFcn (ctype c, ctype p) ** pointers to fp are pointers to function type */ - ret = ctype_makeRealFunction (p, ctargs); + ret = ctype_makeRawFunction (p, uentryList_copy (ctargs)); while (ctype_getCtKind (fp) > CTK_PLAIN) { @@ -2340,6 +2339,10 @@ ctbase_compare (ctbase c1, ctbase c2, bool strict) } } + DPRINTF (("Comparing fields: %s / %s", + ctbase_unparse (c1), + ctbase_unparse (c2))); + return (uentryList_compareFields (c1->contents.su->fields, c2->contents.su->fields)); case CT_CONJ: @@ -2486,3 +2489,17 @@ ctbase_almostEqual (ctbase c1, ctbase c2) return (FALSE); } } + +/*drl added July 02, 001 + called by ctype_getArraySize +*/ + +long int ctbase_getArraySize (ctbase ctb) +{ + llassert (ctbase_isDefined (ctb) ); + + llassert (ctbase_isFixedArray(ctb) ); + + return (ctb->contents.farray->size); + +} diff --git a/src/cttable.i b/src/cttable.i index 45da726..0cbe38a 100644 --- a/src/cttable.i +++ b/src/cttable.i @@ -62,81 +62,6 @@ static void cttable_reset (void) cttab.nspace = 0 ; } -static /*@observer@*/ ctbase ctype_getCtbase (ctype c) -{ - /*@+enumint@*/ - if (c >= 0 && c < cttab.size) - { - return (cttab.entries[c]->ctbase); - } - else - { - if (c == CTK_UNKNOWN) - llbuglit ("ctype_getCtbase: ctype unknown"); - if (c == CTK_INVALID) - llbuglit ("ctype_getCtbase: ctype invalid"); - if (c == CTK_DNE) - llbuglit ("ctype_getCtbase: ctype dne"); - if (c == CTK_ELIPS) - llbuglit ("ctype_getCtbase: elips marker"); - - llfatalbug (message ("ctype_getCtbase: ctype out of range: %d", c)); - BADEXIT; - } - - /*@=enumint@*/ -} - -static /*@notnull@*/ /*@observer@*/ ctbase -ctype_getCtbaseSafe (ctype c) -{ - ctbase res = ctype_getCtbase (c); - - llassert (ctbase_isDefined (res)); - return res; -} - -/* -** ctentry -*/ - -static ctentry -ctype_getCtentry (ctype c) -{ - static /*@only@*/ ctentry errorEntry = NULL; - - if (cttab.size == 0) - { - if (errorEntry == NULL) - { - errorEntry = ctentry_makeNew (CTK_UNKNOWN, ctbase_undefined); - } - - return errorEntry; - } - - /*@+enumint@*/ - if (c >= CTK_PLAIN && c < cttab.size) - { - return (cttab.entries[c]); - } - else if (c == CTK_UNKNOWN) - llcontbuglit ("ctype_getCtentry: ctype unknown"); - else if (c == CTK_INVALID) - llcontbuglit ("ctype_getCtentry: ctype invalid (ctype_undefined)"); - else if (c == CTK_DNE) - llcontbuglit ("ctype_getCtentry: ctype dne"); - else if (c == CTK_ELIPS) - llcontbuglit ("ctype_getCtentry: ctype elipsis"); - else if (c == CTK_MISSINGPARAMS) - llcontbuglit ("ctype_getCtentry: ctype missing params"); - else - llbug (message ("ctype_getCtentry: ctype out of range: %d", c)); - - return (cttab.entries[ctype_unknown]); - /*@=enumint@*/ -} - static ctentry ctentry_makeNew (ctkind ctk, /*@only@*/ ctbase c) { @@ -232,40 +157,40 @@ ctentry_undump (/*@dependent@*/ char *s) ctkind kind; ctbase ct; - kind = ctkind_fromInt (getInt (&s)); + kind = ctkind_fromInt (reader_getInt (&s)); ct = ctbase_undump (&s); - if (optCheckChar (&s, '&')) + if (reader_optCheckChar (&s, '&')) { base = ctype_dne; ptr = ctype_dne; array = ctype_dne; } - else if (optCheckChar (&s, '!')) + else if (reader_optCheckChar (&s, '!')) { base = ctype_undefined; ptr = ctype_dne; array = ctype_dne; } - else if (optCheckChar (&s, '^')) + else if (reader_optCheckChar (&s, '^')) { base = ctype_undefined; - ptr = getInt (&s); + ptr = reader_getInt (&s); array = ctype_dne; } else { - base = getInt (&s); + base = reader_getInt (&s); - if (optCheckChar (&s, '&')) + if (reader_optCheckChar (&s, '&')) { ptr = ctype_dne; array = ctype_dne; } else { - ptr = getInt (&s); - array = getInt (&s); + ptr = reader_getInt (&s); + array = reader_getInt (&s); } } @@ -352,7 +277,7 @@ cttable_print (void) { ctentry cte = cttab.entries[i]; - if (ctentry_isInteresting (cte)) + if (TRUE) /* ctentry_isInteresting (cte)) */ { if (ctbase_isUA (cte->ctbase)) { @@ -395,11 +320,17 @@ cttable_dump (FILE *fout) showdots = TRUE; } + /* + DPRINTF (("Dumping cttable: ")); + cttable_print (); + */ + for (i = 0; i < cttab.size; i++) { cstring s; s = ctentry_dump (cttab.entries[i]); + DPRINTF (("[%d] = %s", i, ctentry_unparse (cttab.entries[i]))); llassert (cstring_length (s) < MAX_DUMP_LINE_LENGTH); fputline (fout, cstring_toCharsSafe (s)); cstring_free (s); @@ -432,7 +363,12 @@ static void cttable_load (FILE *f) cttable_reset (); - while (fgets (s, MAX_DUMP_LINE_LENGTH, f) != NULL && *s == ';') + /* + DPRINTF (("Loading cttable: ")); + cttable_print (); + */ + + while (reader_readLine (f, s, MAX_DUMP_LINE_LENGTH) != NULL && *s == ';') { ; } @@ -449,17 +385,24 @@ static void cttable_load (FILE *f) cte = ctentry_undump (s); ct = cttable_addFull (cte); + DPRINTF (("Type: %d: %s", ct, ctype_unparse (ct))); + if (ctbase_isConj (cte->ctbase) - && !(cte->ctbase->contents.conj->isExplicit)) + && !(ctbase_isExplicitConj (cte->ctbase))) { ctype_recordConj (ct); } - (void) fgets (s, MAX_DUMP_LINE_LENGTH, f); + (void) reader_readLine (f, s, MAX_DUMP_LINE_LENGTH); } sfree (s); - } + + /* + DPRINTF (("Done loading cttable: ")); + cttable_print (); + */ +} /* ** cttable_init @@ -576,9 +519,10 @@ cttable_addDerived (ctkind ctk, /*@keep@*/ ctbase cnew, ctype base) } static ctype -cttable_addComplex (/*@only@*/ /*@notnull@*/ ctbase cnew) +cttable_addComplex (/*@only@*/ ctbase cnew) /*@modifies cttab; @*/ { + /*@access ctbase@*/ if (cnew->type != CT_FCN && cnew->type != CT_EXPFCN) { ctype i; @@ -594,12 +538,15 @@ cttable_addComplex (/*@only@*/ /*@notnull@*/ ctbase cnew) ctbase ctb; ctb = ctype_getCtbase (i); + + /*@i32 is this optimization really worthwhile??? */ if (ctbase_isDefined (ctb) && ctbase_equivStrict (cnew, ctb)) { DPRINTF (("EQUIV!! %s / %s", ctbase_unparse (cnew), ctbase_unparse (ctb))); + ctbase_free (cnew); return i; } @@ -615,6 +562,7 @@ cttable_addComplex (/*@only@*/ /*@notnull@*/ ctbase cnew) cttab.nspace--; return (cttab.size++); + /*@noaccess ctbase@*/ } static ctype diff --git a/src/ctype.c b/src/ctype.c index 02cd2a5..387f470 100644 --- a/src/ctype.c +++ b/src/ctype.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -108,6 +108,7 @@ ctype_destroyMod () void ctype_loadTable (FILE *f) { + DPRINTF (("Loading cttable!")); cttable_load (f); } @@ -229,22 +230,29 @@ ctype_realishType (ctype c) bool ctype_isUA (ctype c) { - return (ctbase_isUA (ctype_getCtbase (c))); + return (!ctype_isUnknown (c) && ctbase_isUA (ctype_getCtbase (c))); } bool ctype_isUser (ctype c) { - return (ctbase_isUser (ctype_getCtbase (c))); + return (!ctype_isUnknown (c) && ctbase_isUser (ctype_getCtbase (c))); } bool ctype_isAbstract (ctype c) { - return ((ctype_isPlain (c) && ctbase_isAbstract (ctype_getCtbaseSafe (c))) || - (ctype_isConj (c) && - (ctype_isAbstract (ctype_getConjA (c)) - || ctype_isAbstract (ctype_getConjB (c))))); + return (!ctype_isUnknown (c) + && ((ctype_isPlain (c) && ctbase_isAbstract (ctype_getCtbaseSafe (c))) || + (ctype_isConj (c) && + (ctype_isAbstract (ctype_getConjA (c)) + || ctype_isAbstract (ctype_getConjB (c)))))); +} + +bool +ctype_isImmutableAbstract (ctype t) +{ + return (ctype_isAbstract (t) && !ctype_isMutable (t)); } bool @@ -293,11 +301,11 @@ ctype_makePointer (ctype c) { ctype cnew = cttable_addDerived (CTK_PTR, ctbase_makePointer (c), c); ctentry_setPtr (cte, cnew); - return (cnew); + return (cnew); } else { - return clp; + return clp; } } } @@ -369,8 +377,13 @@ ctype_baseArrayPtr (ctype c) } ctype -ctype_returnValue (ctype c) +ctype_getReturnType (ctype c) { + if (ctype_isUnknown (c)) + { + return ctype_unknown; + } + return (ctbase_baseFunction (ctype_getCtbaseSafe (c))); } @@ -381,6 +394,11 @@ ctype_returnValue (ctype c) /*@observer@*/ uentryList ctype_argsFunction (ctype c) { + if (ctype_isUnknown (c)) + { + return uentryList_undefined; + } + return (ctbase_argsFunction (ctype_getCtbaseSafe (c))); } @@ -462,6 +480,23 @@ ctype_compare (ctype c1, ctype c2) ctentry ce1; ctentry ce2; + if (ctype_isUnknown (c1)) + { + if (ctype_isUnknown (c2)) + { + return 0; + } + else + { + return 1; + } + } + + if (ctype_isUnknown (c2)) + { + return -1; + } + /* Can't get entries for special ctypes (elips marker) */ if (ctype_isElips (c1) || ctype_isElips (c2) @@ -540,9 +575,9 @@ ctype ctype_expectFunction (ctype c) ** makeRealFunction: function returning base */ -ctype ctype_makeRealFunction (ctype base, uentryList p) +ctype ctype_makeRawFunction (ctype base, uentryList p) { - return (cttable_addComplex (ctbase_makeRealFunction (base, p))); + return (cttable_addComplex (ctbase_makeLiveFunction (base, p))); } /* @@ -558,13 +593,20 @@ ctype ctype_makeRealFunction (ctype base, uentryList p) bool ctype_isFunction (ctype c) { - return (ctbase_isFunction (ctype_getCtbase (c))); + if (ctype_isKnown (c) && ctype_isDefined (c)) + { + return (ctbase_isFunction (ctype_getCtbase (c))); + } + else + { + return FALSE; + } } bool ctype_isExpFcn (ctype c) { - return (ctbase_isExpFcn (ctype_getCtbase (c))); + return (ctype_isKnown (c) && ctbase_isExpFcn (ctype_getCtbase (c))); } bool @@ -841,6 +883,8 @@ ctype_isRealSU (ctype c) return (ctype_isRealSU (ctype_getConjA (c)) || ctype_isRealSU (ctype_getConjB (c))); } + + DPRINTF (("Real su: %s / %s", ctype_unparse (c), ctype_unparse (ctype_realType (c)))); return (ctype_isStructorUnion (ctype_realType (c))); } @@ -970,13 +1014,13 @@ ctype_makeExplicitConj (ctype c1, ctype c2) { if (ctype_isFunction (c1) && !ctype_isFunction (c2)) { - ctype ret = ctype_makeExplicitConj (ctype_returnValue (c1), c2); + ctype ret = ctype_makeExplicitConj (ctype_getReturnType (c1), c2); return ctype_makeFunction (ret, uentryList_copy (ctype_getParams (c1))); } else if (ctype_isFunction (c2) && !ctype_isFunction (c1)) { - ctype ret = ctype_makeExplicitConj (c1, ctype_returnValue (c2)); + ctype ret = ctype_makeExplicitConj (c1, ctype_getReturnType (c2)); return ctype_makeFunction (ret, uentryList_copy (ctype_getParams (c2))); } @@ -1117,14 +1161,22 @@ ctype_makeConj (ctype c1, ctype c2) DPRINTF (("Make conj: %s / %s", ctype_unparse (c1), ctype_unparse (c2))); - if (ctype_isFunction (c1) && !ctype_isFunction (c2)) + if (ctype_isUnknown (c1)) { - ctype ret = ctype_makeConj (ctype_returnValue (c1), c2); + return c2; + } + else if (ctype_isUnknown (c2)) + { + return c1; + } + else if (ctype_isFunction (c1) && !ctype_isFunction (c2)) + { + ctype ret = ctype_makeConj (ctype_getReturnType (c1), c2); return ctype_makeFunction (ret, uentryList_copy (ctype_getParams (c1))); } else if (ctype_isFunction (c2) && !ctype_isFunction (c1)) { - ctype ret = ctype_makeConj (c1, ctype_returnValue (c2)); + ctype ret = ctype_makeConj (c1, ctype_getReturnType (c2)); return ctype_makeFunction (ret, uentryList_copy (ctype_getParams (c2))); } else @@ -1428,7 +1480,18 @@ ctype_almostEqual (ctype c1, ctype c2) } else { - return (ctbase_almostEqual (ctype_getCtbase (c1), ctype_getCtbase (c2))); + if (ctype_isUnknown (c1)) + { + return ctype_isUnknown (c2); + } + else if (ctype_isUnknown (c2)) + { + return FALSE; + } + else + { + return (ctbase_almostEqual (ctype_getCtbase (c1), ctype_getCtbase (c2))); + } } } @@ -1444,7 +1507,9 @@ ctype_matchDef (ctype c1, ctype c2) return (ctype_isElips (c2) || ctype_isUnknown (c2)); if (ctype_isElips (c2)) - return (ctype_isUnknown (c2)); + { + return (ctype_isUnknown (c2)); + } else { bool oldrelax = context_getFlag (FLG_RELAXQUALS); @@ -1604,7 +1669,15 @@ cstring ctype_unparseDeclaration (ctype c, /*@only@*/ cstring name) { llassert (!(ctype_isElips (c) || ctype_isMissingParamsMarker (c))); - return (ctbase_unparseDeclaration (ctype_getCtbase (c), name)); + + if (ctype_isUnknown (c)) + { + return message ("? %q", name); + } + else + { + return (ctbase_unparseDeclaration (ctype_getCtbase (c), name)); + } } cstring @@ -1618,6 +1691,10 @@ ctype_unparse (ctype c) { return cstring_makeLiteralTemp ("-"); } + else if (ctype_isUnknown (c)) + { + return cstring_makeLiteralTemp ("?"); + } else { /*@-modobserver@*/ @@ -1675,7 +1752,7 @@ ctype_unparseDeep (ctype c) ctype ctype_undump (char **c) { - return ((ctype) getInt (c)); /* check its valid? */ + return ((ctype) reader_getInt (c)); /* check its valid? */ } cstring @@ -1715,9 +1792,7 @@ ctype_getBaseType (ctype c) switch (ctentry_getKind (cte)) { case CTK_UNKNOWN: - llcontbuglit ("ctype_getBaseType: unknown ctype"); break; case CTK_INVALID: - llcontbuglit ("ctype_getBaseType: invalid ctype"); break; case CTK_PLAIN: return c; case CTK_PTR: @@ -1729,6 +1804,7 @@ ctype_getBaseType (ctype c) if (ctbase_isDefined (ctb)) { + /*@access ctbase@*/ switch (ctb->type) { case CT_UNKNOWN: @@ -1751,6 +1827,7 @@ ctype_getBaseType (ctype c) case CT_CONJ: /* base type of A conj branch? */ return (ctype_getBaseType (ctb->contents.conj->a)); } + /*@noaccess ctbase@*/ } else { @@ -1771,7 +1848,7 @@ ctype_adjustPointers (int np, ctype c) if (ctype_isFunction (c)) { c = ctype_makeParamsFunction - (ctype_adjustPointers (np, ctype_returnValue (c)), + (ctype_adjustPointers (np, ctype_getReturnType (c)), uentryList_copy (ctype_argsFunction (c))); } else @@ -1851,11 +1928,21 @@ ctype_resolveNumerics (ctype c1, ctype c2) if (ctype_isEnum (c2)) c2 = ctype_int; if (c1 == ctype_ldouble || c2 == ctype_ldouble) return ctype_ldouble; + + /* 2001-06-08: This fix provided by Jim Zelenka. */ + if (c1 == ctype_llint || c2 == ctype_llint) return ctype_llint; + if (c1 == ctype_ullint || c2 == ctype_ullint) return ctype_ullint; + if (c1 == ctype_ulint || c2 == ctype_ulint) return ctype_ulint; if (c1 == ctype_lint || c2 == ctype_lint) return ctype_lint; if (c1 == ctype_uint || c2 == ctype_uint) return ctype_uint; if (c1 == ctype_int || c2 == ctype_int) return ctype_int; + + /* 2001-06-08: This fix provided by Jim Zelenka. */ + if (c1 == ctype_usint || c2 == ctype_usint) return ctype_usint; + if (c1 == ctype_sint || c2 == ctype_sint) return ctype_sint; + if (c1 == ctype_uchar || c2 == ctype_uchar) return ctype_uchar; if (c1 == ctype_char || c2 == ctype_char) return ctype_char; @@ -1892,6 +1979,8 @@ ctype_createUnnamedStruct (/*@only@*/ uentryList f) { ctype ret = usymtab_structFieldsType (f); + DPRINTF (("unnamed struct: %s", ctype_unparse (ret))); + if (ctype_isDefined (ret)) { uentryList_free (f); @@ -1902,9 +1991,11 @@ ctype_createUnnamedStruct (/*@only@*/ uentryList f) cstring ft = fakeTag (); ctype ct = ctype_createStruct (cstring_copy (ft), f); uentry ue = uentry_makeStructTagLoc (ft, ct); - - usymtab_supGlobalEntry (ue); - + + DPRINTF (("Unnamed struct: %s", uentry_unparseFull (ue))); + ue = usymtab_supGlobalEntryReturn (ue); + DPRINTF (("After Unnamed struct: %s", uentry_unparseFull (ue))); + cstring_free (ft); return (ct); } @@ -1932,6 +2023,19 @@ ctype_createUnnamedUnion (/*@only@*/ uentryList f) } } +bool +ctype_isUnnamedSU (ctype c) +{ + if (ctype_isSU (c)) + { + return ctbase_isUnnamedSU (ctype_getCtbase (c)); + } + else + { + return FALSE; + } +} + ctype ctype_createForwardStruct (cstring n) { @@ -1957,7 +2061,7 @@ ctype_removePointers (ctype c) { ctype oldc; - while (ctype_isArrayPtr (c)) + while (ctype_isKnown (c) && ctype_isArrayPtr (c)) { oldc = c; c = ctype_baseArrayPtr (c); @@ -1977,6 +2081,7 @@ bool ctype_isMutable (ctype t) else { return (ctype_isPointer (ctype_realType (t))); + /*!! || ctype_isStructorUnion (ctype_realType (t))); */ } } @@ -2014,6 +2119,7 @@ bool ctype_isVisiblySharable (ctype t) else { return ctype_isVisiblySharable (rt); + } } else @@ -2140,6 +2246,14 @@ ctype ctype_combine (ctype dominant, ctype modifier) return ctype_llint; } + /* ++jimz */ + if (dominant == ctype_ulint) + { + /* unsigned long long not supported by ANSI */ + return ctype_ullint; + } + /* ==jimz */ + if (dominant == ctype_sint || dominant == ctype_usint) { if (!context_getFlag (FLG_IGNOREQUALS)) @@ -2180,6 +2294,18 @@ ctype ctype_combine (ctype dominant, ctype modifier) return dominant; } +/* ++jimz */ + else if (dominant == ctype_llint) + { + if (!context_getFlag (FLG_IGNOREQUALS)) + { + llerrorlit (FLG_SYNTAX, + "Contradictory long long and short type qualifiers"); + } + + return dominant; + } +/* ==jimz */ else { if (!context_getFlag (FLG_IGNOREQUALS)) @@ -2317,9 +2443,22 @@ ctype_isUnsigned (ctype c) return (c == ctype_uint || c == ctype_uchar || c == ctype_usint || c == ctype_ulint + || c == ctype_ullint || c == ctype_unsignedintegral); } +/* ++jimz */ +static bool +ctype_isLongLong (ctype c) +{ + if (ctype_isConj (c)) + return (ctype_isLongLong (ctype_getConjA (c)) || + ctype_isLongLong (ctype_getConjB (c))); + + return (c == ctype_llint || c == ctype_ullint); +} +/* ==jimz */ + static bool ctype_isLong (ctype c) { @@ -2359,16 +2498,18 @@ static bool ctype_isMoreUnsigned (ctype c1, ctype c2) static bool ctype_isLonger (ctype c1, ctype c2) { + /* 2001-06-10: Fix for long long's provided by Jim Zelenka */ return ((ctype_isDouble (c1) && !ctype_isDouble (c2)) - || (ctype_isLong (c1) && !ctype_isLong (c2)) + || (ctype_isLongLong (c1) && !ctype_isLongLong (c2)) + || (ctype_isLong (c1) + && (!ctype_isLong (c2)) && (!ctype_isLongLong (c2))) || (ctype_isShort (c2) && !ctype_isShort (c1))); } ctype ctype_widest (ctype c1, ctype c2) { - if (ctype_isMoreUnsigned (c2, c1) - || ctype_isLonger (c2, c1)) + if (ctype_isMoreUnsigned (c2, c1) || ctype_isLonger (c2, c1)) { return c2; } @@ -2378,21 +2519,97 @@ ctype_widest (ctype c1, ctype c2) } } +static /*@observer@*/ ctbase ctype_getCtbase (ctype c) +{ + /*@+enumint@*/ + if (c >= 0 && c < cttab.size) + { + return (cttab.entries[c]->ctbase); + } + else + { + if (c == ctype_unknown) + llbuglit ("ctype_getCtbase: ctype unknown"); + if (c == ctype_undefined) + llbuglit ("ctype_getCtbase: ctype undefined"); + if (c == ctype_dne) + llbuglit ("ctype_getCtbase: ctype dne"); + if (c == ctype_elipsMarker) + llbuglit ("ctype_getCtbase: elips marker"); + + llfatalbug (message ("ctype_getCtbase: ctype out of range: %d", c)); + BADEXIT; + } + + /*@=enumint@*/ +} + +static /*@notnull@*/ /*@observer@*/ ctbase +ctype_getCtbaseSafe (ctype c) +{ + ctbase res = ctype_getCtbase (c); + + llassert (ctbase_isDefined (res)); + return res; +} + +/* +** ctentry +*/ + +static ctentry +ctype_getCtentry (ctype c) +{ + static /*@only@*/ ctentry errorEntry = NULL; + + if (cttab.size == 0) + { + if (errorEntry == NULL) + { + errorEntry = ctentry_makeNew (CTK_UNKNOWN, ctbase_undefined); + } + + return errorEntry; + } + + /*@+enumint@*/ + if (c >= CTK_PLAIN && c < cttab.size) + { + return (cttab.entries[c]); + } + else if (c == CTK_UNKNOWN) + llcontbuglit ("ctype_getCtentry: ctype unknown"); + else if (c == CTK_INVALID) + llcontbuglit ("ctype_getCtentry: ctype invalid (ctype_undefined)"); + else if (c == CTK_DNE) + llcontbuglit ("ctype_getCtentry: ctype dne"); + else if (c == CTK_ELIPS) + llcontbuglit ("ctype_getCtentry: ctype elipsis"); + else if (c == CTK_MISSINGPARAMS) + llcontbuglit ("ctype_getCtentry: ctype missing params"); + else + llbug (message ("ctype_getCtentry: ctype out of range: %d", c)); + + return (cttab.entries[ctype_unknown]); + /*@=enumint@*/ +} + /*drl 11/28/2000 */ /* requires that the type is an fixed array */ /* return the size of the array */ long int ctype_getArraySize (ctype c) { + long int size; ctentry cte = ctype_getCtentry (c); ctbase ctb; llassert ( (ctentry_getKind (cte) == CTK_COMPLEX) || (ctentry_getKind(cte) == CTK_ARRAY) ); ctb = cte->ctbase; - llassert (ctbase_isDefined (ctb) ); - - llassert (ctb->type == CT_FIXEDARRAY); + size = ctbase_getArraySize (ctb); - return (ctb->contents.farray->size); + DPRINTF(( message("ctype_getArraySize: got fixed array size of %d ", (int)size) )); + return size; } + diff --git a/src/ctypeList.c b/src/ctypeList.c index c5fab28..47ea1e8 100644 --- a/src/ctypeList.c +++ b/src/ctypeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -79,6 +79,31 @@ void ctypeList_addh (ctypeList s, ctype el) s->nelements++; } +ctypeList ctypeList_add (ctypeList s, ctype el) +{ + llassert (ctypeListBASESIZE > 0); + + if (ctypeList_isUndefined (s)) + { + s = ctypeList_new (); + } + + ctypeList_addh (s, el); + return s; +} + +ctypeList ctypeList_append (ctypeList s1, ctypeList s2) +{ + ctypeList res = s1; + + ctypeList_elements (s2, el) + { + res = ctypeList_add (res, el); + } end_ctypeList_elements; + + return res; +} + /*@only@*/ cstring ctypeList_unparse (ctypeList ct) { diff --git a/src/cvar.c b/src/cvar.c index 107d238..bb837b4 100644 --- a/src/cvar.c +++ b/src/cvar.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/declaratorInvNodeList.c b/src/declaratorInvNodeList.c index 64cc2d7..8d18ee2 100644 --- a/src/declaratorInvNodeList.c +++ b/src/declaratorInvNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/declaratorNodeList.c b/src/declaratorNodeList.c index 118f132..4c6a6be 100644 --- a/src/declaratorNodeList.c +++ b/src/declaratorNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/ekind.c b/src/ekind.c index af5b6cf..3887c9f 100644 --- a/src/ekind.c +++ b/src/ekind.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/enumNameList.c b/src/enumNameList.c index 9a45d09..774db76 100644 --- a/src/enumNameList.c +++ b/src/enumNameList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/enumNameSList.c b/src/enumNameSList.c index 6edd020..398fe68 100644 --- a/src/enumNameSList.c +++ b/src/enumNameSList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/exprChecks.c b/src/exprChecks.c index 4b564c2..70a33be 100644 --- a/src/exprChecks.c +++ b/src/exprChecks.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -29,7 +29,7 @@ # include "basic.h" # include "cgrammar.h" # include "cgrammar_tokens.h" -# include "aliasChecks.h" +# include "transferChecks.h" # include "exprChecks.h" /* @@ -39,9 +39,9 @@ /*@access exprNode@*/ -static bool checkCallModifyAux (sRef p_s, exprNode p_f, sRef p_alias, exprNode p_err); -static bool checkModifyValAux (sRef p_s, exprNode p_f, sRef p_alias, exprNode p_err); -static bool checkModifyAux (sRef p_s, exprNode p_f, sRef p_alias, exprNode p_err); +static bool checkCallModifyAux (/*@exposed@*/ sRef p_s, exprNode p_f, sRef p_alias, exprNode p_err); +static bool checkModifyValAux (/*@exposed@*/ sRef p_s, exprNode p_f, sRef p_alias, exprNode p_err); +static bool checkModifyAux (/*@exposed@*/ sRef p_s, exprNode p_f, sRef p_alias, exprNode p_err); static void checkSafeReturnExpr (/*@notnull@*/ exprNode p_e); /* @@ -206,14 +206,33 @@ checkRefGlobParam (sRef base, /*@notnull@*/ exprNode e, if (ctype_isVisiblySharable (ct)) { - if (sRef_isGlobal (base)) + if (sRef_isFileOrGlobalScope (base)) { - voptgenerror - (FLG_RETALIAS, - message ("Function returns reference to global %q: %s", - sRef_unparse (base), - exprNode_unparse (e)), - e->loc); + uentry fcn = context_getHeader (); + bool noerror = FALSE; + + if (uentry_isValid (fcn) && uentry_isFunction (fcn)) + { + sRef res = uentry_getSref (fcn); + + /* If result is dependent and global is owned, this is okay... */ + if (sRef_isDependent (res) + && sRef_isOwned (base)) + { + noerror = TRUE; + + } + } + + if (!noerror) + { + voptgenerror + (FLG_RETALIAS, + message ("Function returns reference to global %q: %s", + sRef_unparse (base), + exprNode_unparse (e)), + e->loc); + } return TRUE; } @@ -261,7 +280,7 @@ checkRefGlobParam (sRef base, /*@notnull@*/ exprNode e, { if (ctype_isVisiblySharable (e->typ)) { - if (sRef_isGlobal (base)) + if (sRef_isFileOrGlobalScope (base)) { voptgenerror (FLG_RETALIAS, @@ -325,7 +344,7 @@ exprNode_checkModify (exprNode e, exprNode err) llassert (exprNode_isDefined (e)); DPRINTF (("Check modify: %s", exprNode_unparse (e))); - + if (sRef_isValid (e->sref)) { sRef_aliasCheckPred (checkModifyAux, sRef_isReference, e->sref, e, err); @@ -359,7 +378,7 @@ exprChecks_checkNullReturn (fileloc loc) { if (ctype_isFunction (context_currentFunctionType ())) { - ctype tr = ctype_returnValue (context_currentFunctionType ()); + ctype tr = ctype_getReturnType (context_currentFunctionType ()); if (!ctype_isFirstVoid (tr)) { @@ -434,7 +453,8 @@ exprNode_checkPred (cstring c, exprNode e) e->loc); } - if (ctype_isRealBool (ct)) + if (ctype_isRealBool (ct) || ctype_isUnknown (ct)) + /* evs 2000-12-20 added || ctype_isUnknown to avoid spurious messages */ { ; } @@ -762,7 +782,7 @@ void exprNode_checkMacroBody (/*@only@*/ exprNode e) e->loc); } - e->typ = ctype_returnValue (e->typ); + e->typ = ctype_getReturnType (e->typ); rettype = e->typ; /* avoid aditional errors */ } } @@ -862,7 +882,7 @@ void exprNode_checkFunctionBody (exprNode body) && context_inRealFunction () && ctype_isFunction (context_currentFunctionType ())) { - ctype tr = ctype_returnValue (context_currentFunctionType ()); + ctype tr = ctype_getReturnType (context_currentFunctionType ()); if (!ctype_isFirstVoid (tr)) { @@ -883,9 +903,6 @@ void exprNode_checkFunctionBody (exprNode body) } } } - - /*@i44*/ /* drl added call*/ - // exprNode_checkFunction (context_getHeader (), body); if (!checkret) { @@ -896,42 +913,47 @@ void exprNode_checkFunctionBody (exprNode body) /*drl modified */ -void exprNode_checkFunction (/*@unused@*/ uentry ue, exprNode body) +void exprNode_checkFunction (/*@unused@*/ uentry ue, /*@only@*/ exprNode fcnBody) { constraintList c, t, post; constraintList c2, fix; constraintList implicitFcnConstraints; + /*@owned@*/ exprNode body; + // return; // context_setFlag(FLG_ORCONSTRAINT, TRUE); context_enterInnerContext (); + body = fcnBody; + exprNode_generateConstraints (body); + c = uentry_getFcnPreconditions (ue); DPRINTF(("function constraints\n")); DPRINTF (("\n\n\n\n\n\n\n")); - if (c != NULL) + if (constraintList_isDefined(c) ) { DPRINTF ( (message ("Function preconditions are %s \n\n\n\n\n", constraintList_printDetailed (c) ) ) ); - body->requiresConstraints = reflectChangesFreePre (body->requiresConstraints, c); + body->requiresConstraints = constraintList_reflectChangesFreePre (body->requiresConstraints, c); c2 = constraintList_copy (c); fix = constraintList_makeFixedArrayConstraints (body->uses); - c2 = reflectChangesFreePre (c2, fix); + c2 = constraintList_reflectChangesFreePre (c2, fix); constraintList_free(fix); if ( context_getFlag (FLG_ORCONSTRAINT) ) { - t = reflectChangesOr (body->requiresConstraints, c2 ); + t = constraintList_reflectChangesOr (body->requiresConstraints, c2 ); } else { - t = reflectChanges (body->requiresConstraints, c2); + t = constraintList_reflectChanges(body->requiresConstraints, c2); } constraintList_free(body->requiresConstraints); @@ -948,7 +970,7 @@ void exprNode_checkFunction (/*@unused@*/ uentry ue, exprNode body) constraintList_free(c2); } - if (c != NULL) + if (constraintList_isDefined(c) ) { DPRINTF((message ("The Function %s has the preconditions %s", uentry_unparse(ue), constraintList_printDetailed(c) ) ) ); } @@ -959,11 +981,11 @@ void exprNode_checkFunction (/*@unused@*/ uentry ue, exprNode body) implicitFcnConstraints = getImplicitFcnConstraints(); - if ( implicitFcnConstraints != NULL) + if (constraintList_isDefined(implicitFcnConstraints) ) { if (context_getFlag (FLG_IMPLICTCONSTRAINT) ) { - body->requiresConstraints = reflectChangesFreePre (body->requiresConstraints, implicitFcnConstraints ); + body->requiresConstraints = constraintList_reflectChangesFreePre (body->requiresConstraints, implicitFcnConstraints ); } } @@ -973,26 +995,26 @@ void exprNode_checkFunction (/*@unused@*/ uentry ue, exprNode body) if ( context_getFlag (FLG_CHECKPOST) ) { - if (post != NULL) + if (constraintList_isDefined(post) ) { constraintList post2; DPRINTF ( (message ("The declared function postconditions are %s \n\n\n\n\n", constraintList_printDetailed (post) ) ) ); - post = reflectChangesFreePre (post, body->ensuresConstraints); + post = constraintList_reflectChangesFreePre (post, body->ensuresConstraints); post2 = constraintList_copy (post); fix = constraintList_makeFixedArrayConstraints (body->uses); - post2 = reflectChangesFreePre (post2, fix); + post2 = constraintList_reflectChangesFreePre (post2, fix); constraintList_free(fix); if ( context_getFlag (FLG_ORCONSTRAINT) ) { - t = reflectChangesOr (post2, body->ensuresConstraints); + t = constraintList_reflectChangesOr (post2, body->ensuresConstraints); } else { - t = reflectChanges (post2, body->ensuresConstraints); + t = constraintList_reflectChanges(post2, body->ensuresConstraints); } constraintList_free(post2); @@ -1007,7 +1029,7 @@ void exprNode_checkFunction (/*@unused@*/ uentry ue, exprNode body) } } - if (post != NULL) + if (constraintList_isDefined(post) ) constraintList_free(post); @@ -1021,14 +1043,14 @@ void exprNode_checkFunction (/*@unused@*/ uentry ue, exprNode body) // printf ("The required constraints are:\n%s", constraintList_printDetailed(body->requiresConstraints) ); // printf ("The ensures constraints are:\n%s", constraintList_printDetailed(body->ensuresConstraints) ); - if (c != NULL) + if (constraintList_isDefined(c) ) constraintList_free(c); context_exitInnerPlain(); /*is it okay not to free this?*/ - exprNode_free (body); -} + exprNode_free (body); + } void exprChecks_checkEmptyMacroBody (void) { @@ -1078,7 +1100,7 @@ void exprNode_checkIterEnd (/*@only@*/ exprNode body) } static -bool checkModifyAuxAux (sRef s, exprNode f, sRef alias, exprNode err) +bool checkModifyAuxAux (/*@exposed@*/ sRef s, exprNode f, sRef alias, exprNode err) { bool hasMods = context_hasMods (); flagcode errCode = hasMods ? FLG_MODIFIES : FLG_MODNOMODS; @@ -1092,20 +1114,20 @@ bool checkModifyAuxAux (sRef s, exprNode f, sRef alias, exprNode err) && (hasMods || context_getFlag (FLG_MODNOMODS))) { sRefSet mods = context_modList (); - + if (!sRef_canModify (s, mods)) { sRef rb = sRef_getRootBase (s); - - if (sRef_isGlobal (rb)) + + if (sRef_isFileOrGlobalScope (rb)) { if (!context_checkGlobMod (rb)) { - return FALSE; + return FALSE; } } - + if (sRef_isInvalid (alias) || sRef_sameName (s, alias)) { if (sRef_isLocalVar (sRef_getRootBase (s))) @@ -1177,7 +1199,7 @@ bool checkModifyAuxAux (sRef s, exprNode f, sRef alias, exprNode err) } static -bool checkModifyAux (sRef s, exprNode f, sRef alias, exprNode err) +bool checkModifyAux (/*@exposed@*/ sRef s, exprNode f, sRef alias, exprNode err) { DPRINTF (("Check modify aux: %s", sRef_unparseFull (s))); @@ -1247,17 +1269,20 @@ bool checkModifyAux (sRef s, exprNode f, sRef alias, exprNode err) } static -bool checkModifyValAux (sRef s, exprNode f, sRef alias, exprNode err) +bool checkModifyValAux (/*@exposed@*/ sRef s, exprNode f, sRef alias, exprNode err) { (void) checkModifyAuxAux (s, f, alias, err); return FALSE; } static -bool checkCallModifyAux (sRef s, exprNode f, sRef alias, exprNode err) +bool checkCallModifyAux (/*@exposed@*/ sRef s, exprNode f, sRef alias, exprNode err) { bool result = FALSE; + DPRINTF (("Check modify aux: %s / %s", + sRef_unparse (s), sRef_unparse (alias))); + if (sRef_isObserver (s) && context_maybeSet (FLG_MODOBSERVER)) { sRef p = sRef_isAddress (s) ? sRef_constructPointer (s) : s; @@ -1297,6 +1322,10 @@ bool checkCallModifyAux (sRef s, exprNode f, sRef alias, exprNode err) } else if (context_maybeSet (FLG_MODIFIES)) { + DPRINTF (("can modify: %s / %s", + sRef_unparse (s), + sRefSet_unparse (context_modList ()))); + if (!(sRef_canModifyVal (s, context_modList ()))) { sRef p = sRef_isAddress (s) ? sRef_constructPointer (s) : s; @@ -1305,8 +1334,10 @@ bool checkCallModifyAux (sRef s, exprNode f, sRef alias, exprNode err) sRef rb = sRef_getRootBase (s); flagcode errCode = hasMods ? FLG_MODIFIES : FLG_MODNOMODS; bool check = TRUE; - - if (sRef_isGlobal (rb)) + + DPRINTF (("Can't modify! %s", sRef_unparse (s))); + + if (sRef_isFileOrGlobalScope (rb)) { uentry ue = sRef_getUentry (rb); @@ -1389,6 +1420,7 @@ bool checkCallModifyAux (sRef s, exprNode f, sRef alias, exprNode err) void exprNode_checkCallModifyVal (sRef s, exprNodeList args, exprNode f, exprNode err) { s = sRef_fixBaseParam (s, args); + DPRINTF (("Check call modify: %s", sRef_unparse (s))); sRef_aliasCheckPred (checkCallModifyAux, NULL, s, f, err); } @@ -1458,7 +1490,7 @@ exprChecks_checkExport (uentry e) static void checkSafeReturnExpr (/*@notnull@*/ exprNode e) { - ctype tr = ctype_returnValue (context_currentFunctionType ()); + ctype tr = ctype_getReturnType (context_currentFunctionType ()); ctype te = exprNode_getType (e); if (!ctype_forceMatch (tr, te) && !exprNode_matchLiteral (tr, e)) @@ -1475,8 +1507,18 @@ static void checkSafeReturnExpr (/*@notnull@*/ exprNode e) uentry rval = context_getHeader (); sRef resultref = uentry_getSref (rval); + DPRINTF (("Check return: %s / %s / %s", + exprNode_unparse (e), + sRef_unparseFull (e->sref), + uentry_unparse (rval))); + checkReturnTransfer (e, rval); + DPRINTF (("After return: %s / %s / %s", + exprNode_unparse (e), + sRef_unparseFull (e->sref), + uentry_unparse (rval))); + if (!(sRef_isExposed (uentry_getSref (context_getHeader ())) || sRef_isObserver (uentry_getSref (context_getHeader ()))) && (context_getFlag (FLG_RETALIAS) @@ -1509,3 +1551,7 @@ static void checkSafeReturnExpr (/*@notnull@*/ exprNode e) } } + + + + diff --git a/src/exprData.c b/src/exprData.c index bbeea0f..18d1805 100644 --- a/src/exprData.c +++ b/src/exprData.c @@ -9,7 +9,6 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" void exprData_freeShallow (/*@only@*/ exprData data, exprKind kind) diff --git a/src/exprNode.c b/src/exprNode.c index d23c4e6..93a7569 100644 --- a/src/exprNode.c +++ b/src/exprNode.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -32,7 +32,7 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" +# include "transferChecks.h" # include "exprNodeSList.h" static bool exprNode_isEmptyStatement (exprNode p_e); @@ -40,9 +40,9 @@ static /*@exposed@*/ exprNode exprNode_firstStatement (/*@returned@*/ exprNode p static bool exprNode_isFalseConstant (exprNode p_e) /*@*/ ; static bool exprNode_isBlock (exprNode p_e); static void checkGlobUse (uentry p_glob, bool p_isCall, /*@notnull@*/ exprNode p_e); -static void exprNode_addUse (exprNode p_e, sRef p_s); +static void exprNode_addUse (exprNode p_e, /*@exposed@*/ sRef p_s); static bool exprNode_matchArgType (ctype p_ct, exprNode p_e); - +static exprNode exprNode_fakeCopy (exprNode p_e) /*@*/ ; static exprNode exprNode_statementError (/*@only@*/ exprNode p_e, /*@only@*/ lltok p_t); static bool exprNode_matchTypes (exprNode p_e1, exprNode p_e2); static void checkUniqueParams (exprNode p_fcn, @@ -55,12 +55,12 @@ static void abstractOpError (ctype p_tr1, ctype p_tr2, lltok p_op, static ctype checkNumerics (ctype p_tr1, ctype p_tr2, ctype p_te1, ctype p_te2, /*@notnull@*/ exprNode p_e1, /*@notnull@*/ exprNode p_e2, lltok p_op); static void doAssign (/*@notnull@*/ exprNode p_e1, /*@notnull@*/ exprNode p_e2, bool p_isInit); -static void checkSafeUse (exprNode p_e, sRef p_s); +static void checkSafeUse (exprNode p_e, /*@exposed@*/ sRef p_s); static void reflectNullTest (/*@notnull@*/ exprNode p_e, bool p_isnull); static void checkMacroParen (exprNode p_e); static exprNodeSList exprNode_flatten (/*@dependent@*/ exprNode p_e); static void exprNode_checkSetAny (exprNode p_e, /*@dependent@*/ cstring p_name); -static void exprNode_checkUse (exprNode p_e, sRef p_s, fileloc p_loc); +static void exprNode_checkUse (exprNode p_e, /*@exposed@*/ sRef p_s, fileloc p_loc); static void exprNode_mergeUSs (exprNode p_res, exprNode p_other); static void exprNode_mergeCondUSs (exprNode p_res, exprNode p_other1, exprNode p_other2); static /*@only@*/ /*@notnull@*/ exprNode exprNode_fromIdentifierAux (/*@observer@*/ uentry p_c); @@ -105,11 +105,16 @@ static ctype ctypeType; static ctype filelocType; static bool initMod = FALSE; -# define exprNode_defineConstraints(e) { \ - (e)->requiresConstraints = constraintList_makeNew(); \ +static void exprNode_defineConstraints(/*@sef@*/ /*@special@*/ /*@notnull@*/ exprNode p_e) + /*@defines p_e->requiresConstraints, p_e->ensuresConstraints, p_e->trueEnsuresConstraints, p_e->falseEnsuresConstraints @*/ + ; + +# define exprNode_defineConstraints(e) \ +do{ (e)->requiresConstraints = constraintList_makeNew(); \ (e)->ensuresConstraints = constraintList_makeNew(); \ (e)->trueEnsuresConstraints = constraintList_makeNew(); \ - (e)->falseEnsuresConstraints = constraintList_makeNew(); } + (e)->falseEnsuresConstraints = constraintList_makeNew(); } while(FALSE) + /* ** must occur after library has been read @@ -227,6 +232,13 @@ static void exprNode_resetSref (/*@notnull@*/ exprNode e) e->sref = defref; } +exprNode exprNode_fakeCopy (exprNode e) +{ + /*@-temptrans@*/ /*@-retalias@*/ + return e; + /*@=temptrans@*/ /*@=retalias@*/ +} + static bool isFlagKey (char key) { return (key == '-' || key == '+' || key == ' ' || key == '#'); @@ -268,7 +280,15 @@ exprNode_freeIniter (/*@only@*/ exprNode e) switch (e->kind) { case XPR_FACCESS: + /* + ** Its a fake copy, don't free the field->rec and field->field + ** fields. + */ + + /*@-compdestroy@*/ sfree (e->edata->field); + /*@=compdestroy@*/ + sfree (e->edata); break; case XPR_FETCH: @@ -405,8 +425,8 @@ exprNode_new (void) static /*@notnull@*/ /*@special@*/ exprNode exprNode_createPlain (ctype c) /*@defines result@*/ - /*@post:isnull result->edata, result->loc, result->val, result->guards, - result->uses, result->sets, result->msets, result->etext @*/ + /*@ensures isnull result->edata, result->loc, result->val, result->guards, + result->uses, result->sets, result->msets, result->etext @*/ /*@*/ { exprNode e = exprNode_new (); @@ -627,7 +647,6 @@ static /*@notnull@*/ /*@special@*/ exprNode return (ret); } - } bool @@ -736,12 +755,56 @@ multiVal exprNode_getValue (exprNode e) } /*@only@*/ exprNode -exprNode_stringLiteral (/*@only@*/ cstring t, /*@only@*/ fileloc loc) +exprNode_combineLiterals (exprNode e, exprNode rest) +{ + cstring ns; + + /* Both must be string literals. */ + + if (exprNode_isUndefined (rest) || exprNode_isUndefined (e)) + { + exprNode_free (rest); + return e; + } + + if (!exprNode_isStringLiteral (e)) + { + voptgenerror + (FLG_SYNTAX, + message ("Constant concatentation is ungrammatical: %s %s", exprNode_unparse (e), + exprNode_unparse (rest)), + e->loc); + exprNode_free (rest); + return e; + } + + if (!exprNode_isStringLiteral (rest)) + { + voptgenerror + (FLG_SYNTAX, + message ("Constant concatentation is ungrammatical: %s %s", exprNode_unparse (e), exprNode_unparse (rest)), + rest->loc); + + exprNode_free (rest); + return e; + } + + ns = cstring_concat (multiVal_forceString (exprNode_getValue (e)), + multiVal_forceString (exprNode_getValue (rest))); + + multiVal_free (e->val); + exprData_free (e->edata, e->kind); + e->edata = exprData_makeLiteral (cstring_copy (ns)); + e->val = multiVal_makeString (ns); + exprNode_free (rest); + return e; +} + +/*@only@*/ exprNode +exprNode_rawStringLiteral (/*@only@*/ cstring t, /*@only@*/ fileloc loc) { exprNode e = exprNode_createLoc (ctype_string, loc); - int len = cstring_length (t) - 2; - char *ts = cstring_toCharsSafe (t); - char *s = cstring_toCharsSafe (cstring_create (len + 1)); + int len = cstring_length (t); if (context_getFlag (FLG_STRINGLITERALLEN)) { @@ -750,7 +813,7 @@ exprNode_stringLiteral (/*@only@*/ cstring t, /*@only@*/ fileloc loc) voptgenerror (FLG_STRINGLITERALLEN, message ("String literal length (%d) exceeds maximum " - "length (%d): %s", + "length (%d): \"%s\"", len, context_getValue (FLG_STRINGLITERALLEN), t), @@ -758,24 +821,10 @@ exprNode_stringLiteral (/*@only@*/ cstring t, /*@only@*/ fileloc loc) } } - strncpy (s, ts+1, size_fromInt (len)); - *(s + len) = '\0'; - - e->kind = XPR_STRINGLITERAL; - e->val = multiVal_makeString (cstring_fromCharsO (s)); + e->val = multiVal_makeString (cstring_copy (t)); e->edata = exprData_makeLiteral (t); e->sref = sRef_makeType (ctype_string); - /* Start modifications */ - /* This expr is null terminated, so we set the len and size */ - sRef_setNullTerminatedState(e->sref); - /* - DPRINTF("Len is set to : %d\n\n", strlen((char *)multiVal_forceString(e->val))); - DPRINTF("Size is set to : %d\n\n", strlen((char *)multiVal_forceString(e->val))); - DPRINTF("State is set to: %d\n\n", e->sref->bufinfo.bufstate); - */ - sRef_setLen(e->sref, (int) strlen((char *)multiVal_forceString(e->val))); - sRef_setSize(e->sref, (int) strlen((char *)multiVal_forceString(e->val))); if (context_getFlag (FLG_READONLYSTRINGS)) { @@ -790,6 +839,20 @@ exprNode_stringLiteral (/*@only@*/ cstring t, /*@only@*/ fileloc loc) return (e); /* s released */ } +/*@only@*/ exprNode +exprNode_stringLiteral (/*@only@*/ cstring t, /*@only@*/ fileloc loc) +{ + int len = cstring_length (t) - 2; + char *ts = cstring_toCharsSafe (t); + char *s = cstring_toCharsSafe (cstring_create (len + 1)); + + llassert (*ts == '\"' && *(ts + len + 1) == '\"'); + strncpy (s, ts+1, size_fromInt (len)); + *(s + len) = '\0'; + cstring_free (t); + return exprNode_rawStringLiteral (cstring_fromCharsO (s), loc); +} + exprNode exprNode_fromUIO (cstring c) { fileloc loc = context_getSaveLocation (); @@ -847,8 +910,7 @@ exprNode exprNode_fromUIO (cstring c) else { voptgenerror - (FLG_UNRECOG, message ("Unrecognized identifier: %s", c), - e->loc); + (FLG_UNRECOG, message ("Unrecognized identifier: %s", c), e->loc); } } @@ -927,7 +989,7 @@ exprNode exprNode_createId (/*@observer@*/ uentry c) } else { - return exprNode_createUnknown (); + return exprNode_createUnknown (); } } @@ -964,7 +1026,7 @@ exprNode_fromIdentifierAux (/*@observer@*/ uentry c) uentry_setUsed (c, e->loc); - if (uentry_isVar (c) && sRef_isGlobal (sr)) + if (uentry_isVar (c) && sRef_isFileOrGlobalScope (sr)) { checkGlobUse (c, FALSE, e); } @@ -1172,7 +1234,7 @@ exprNode_arrayFetch (/*@only@*/ exprNode e1, /*@only@*/ exprNode e2) } else { - ret->sref = sRef_makeArrayFetch (arr->sref); + ret->sref = sRef_makeArrayFetch (arr->sref); } ret->sets = sRefSet_realNewUnion (arr->sets, ind->sets); @@ -1276,16 +1338,20 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, while ((code = strchr (code, '%')) != NULL) { char *origcode = code; + cstring codetext = cstring_newEmpty (); char key = *(++code); ctype modtype = ctype_int; bool modified = FALSE; fileloc_addColumn (formatloc, code - ocode); + codetext = cstring_appendChar (codetext, key); + /* ignore flags */ while (isFlagKey (key)) { key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } @@ -1298,6 +1364,7 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, while (isdigit ((int) key) != 0) { key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } @@ -1305,6 +1372,7 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, if (key == '.') { key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); /* @@ -1323,6 +1391,7 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, while (isdigit ((int) key) != 0) { key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } } @@ -1332,17 +1401,20 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, { modtype = ctype_sint; /* short */ key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } else if (key == 'l' || key == 'L') { modtype = ctype_lint; /* long */ key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); if (key == 'l' || key == 'L') { modtype = ctype_llint; /* long long */ key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } } @@ -1362,9 +1434,9 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, if (optgenerror (FLG_TYPE, message ("No argument corresponding to %q format " - "code %d (%%%h): \"%s\"", + "code %d (%%%s): \"%s\"", uentry_getName (fcn), - i, key, + i, codetext, cstring_fromChars (format)), f->loc)) { @@ -1403,9 +1475,10 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, expecttype = ctype_combine (ctype_int, modtype); /*@switchbreak@*/ break; - case 'x': /* unsigned int */ + case 'x': /* unsigned int */ case 'X': - expecttype = ctype_combine (ctype_uint, modtype); + expecttype = ctype_combine (ctype_uint, modtype); + /*@switchbreak@*/ break; case 'e': @@ -1428,6 +1501,7 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, while (((key = *(++code)) != ']') && (key != '\0')) { + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } @@ -1484,11 +1558,12 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, if (llgenformattypeerror (expecttype, exprNode_undefined, a->typ, a, - message ("Format argument %d to %q (%%%h) expects " + message ("Format argument %d to %q (%%%s) expects " "%t gets %t: %s", i - argno, uentry_getName (fcn), - key, expecttype, + codetext, + expecttype, a->typ, exprNode_unparse (a)), a->loc)) { @@ -1526,13 +1601,15 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, } } } + ocode = code; + cstring_free (codetext); } if (i < nargs) { voptgenerror (FLG_TYPE, - message ("Format string for %q has %d arg%p, given %d", + message ("Format string for %q has %d arg%&, given %d", uentry_getName (fcn), i - argno, nargs - argno), f->loc); } @@ -1540,8 +1617,17 @@ checkPrintfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, else { /* no checking possible for compile-time unknown format strings */ + if (exprNode_isDefined (a)) + { + voptgenerror + (FLG_FORMATCONST, + message ("Format string parameter to %s is not a compile-time constant: %s", + exprNode_unparse (f), + exprNode_unparse (a)), + f->loc); + } } - + fileloc_free (formatloc); } @@ -1578,11 +1664,13 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, { char *origcode = code; char key = *(++code); + cstring codetext = cstring_newEmpty (); ctype modtype = ctype_int; char modifier = '\0'; bool modified = TRUE; bool ignore = FALSE; + codetext = cstring_appendChar (codetext, key); fileloc_addColumn (formatloc, code - ocode); /* @@ -1595,6 +1683,7 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, if (key == '*') { key = *(++code); + codetext = cstring_appendChar (codetext, key); modified = FALSE; ignore = TRUE; fileloc_incColumn (formatloc); @@ -1604,6 +1693,7 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, while (isdigit ((int) key) != 0) { key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } @@ -1611,6 +1701,7 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, { modtype = ctype_sint; /* short */ key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } else if (key == 'l' || key == 'L') @@ -1619,11 +1710,14 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, modifier = key; key = *(++code); + codetext = cstring_appendChar (codetext, key); + fileloc_incColumn (formatloc); if (key == 'l' || key == 'L') { modtype = ctype_llint; /* long long */ key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } } @@ -1649,9 +1743,9 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, if (optgenerror (FLG_TYPE, message ("No argument corresponding to %q format " - "code %d (%%%h): \"%s\"", + "code %d (%%%s): \"%s\"", uentry_getName (fcn), - i, key, + i, codetext, cstring_fromChars (format)), f->loc)) { @@ -1728,6 +1822,7 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, while (((key = *(++code)) != ']') && (key != '\0')) { + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } @@ -1773,52 +1868,24 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, } else { - if (modifier != '\0') - { - if (llgenformattypeerror - (expecttype, exprNode_undefined, - a->typ, a, - message ("Format argument %d to %q (%%%h%h) expects " - "%t gets %t: %s", - i - argno, - uentry_getName (fcn), - modifier, - key, expecttype, - a->typ, exprNode_unparse (a)), - a->loc)) - { - if (fileloc_isDefined (formatloc) - && context_getFlag (FLG_SHOWCOL)) - { - llgenindentmsg - (cstring_makeLiteral - ("Corresponding format code"), - formatloc); - } - } - - } - else + if (llgenformattypeerror + (expecttype, exprNode_undefined, + a->typ, a, + message ("Format argument %d to %q (%%%s) expects " + "%t gets %t: %s", + i - argno, + uentry_getName (fcn), + codetext, expecttype, + a->typ, exprNode_unparse (a)), + a->loc)) { - if (llgenformattypeerror - (expecttype, exprNode_undefined, - a->typ, a, - message ("Format argument %d to %q (%%%h) expects " - "%t gets %t: %s", - i - argno, - uentry_getName (fcn), - key, expecttype, - a->typ, exprNode_unparse (a)), - a->loc)) + if (fileloc_isDefined (formatloc) + && context_getFlag (FLG_SHOWCOL)) { - if (fileloc_isDefined (formatloc) - && context_getFlag (FLG_SHOWCOL)) - { - llgenindentmsg - (cstring_makeLiteral - ("Corresponding format code"), - formatloc); - } + llgenindentmsg + (cstring_makeLiteral + ("Corresponding format code"), + formatloc); } } } @@ -1841,13 +1908,15 @@ checkScanfArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry fcn, } } } + ocode = code; + cstring_free (codetext); } if (i < nargs) { voptgenerror (FLG_TYPE, - message ("Format string for %q has %d arg%p, given %d", + message ("Format string for %q has %d arg%&, given %d", uentry_getName (fcn), i - argno, nargs - argno), f->loc); } @@ -1912,13 +1981,17 @@ checkMessageArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, { char *origcode = code; char key = *(++code); + cstring codetext = cstring_newEmpty (); bool isOnly = FALSE; + codetext = cstring_appendChar (codetext, key); + fileloc_addColumn (formatloc, code - ocode); while (key >= '0' && key <= '9') { key = *(++code); + codetext = cstring_appendChar (codetext, key); fileloc_incColumn (formatloc); } @@ -1927,7 +2000,7 @@ checkMessageArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, if (key != '%') { - if (key == 'p') + if (key == '&') /* plural marker */ { goto nextKey; } @@ -1936,8 +2009,8 @@ checkMessageArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, { voptgenerror (FLG_TYPE, - message ("Message missing format arg %d (%%%h): \"%s\"", - i + 1, key, format), + message ("Message missing format arg %d (%%%s): \"%s\"", + i + 1, codetext, format), f->loc); i++; } @@ -1971,7 +2044,7 @@ checkMessageArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, case 'b': expecttype = ctype_bool; break; case 't': expecttype = ctypeType; break; case 'l': expecttype = filelocType; break; - case 'p': /* a wee bit of a hack methinks */ + case '&': /* a wee bit of a hack methinks */ expecttype = ctype_int; break; case 'r': expecttype = ctype_bool; break; @@ -2000,11 +2073,11 @@ checkMessageArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, if (llgenformattypeerror (expecttype, exprNode_undefined, a->typ, a, - message ("Format argument %d to %q (%%%h) expects " + message ("Format argument %d to %q (%%%s) expects " "%t gets %t: %s", i - argno, uentry_getName (fcn), - key, expecttype, + codetext, expecttype, a->typ, exprNode_unparse (a)), a->loc)) { @@ -2041,12 +2114,14 @@ checkMessageArgs (/*@notnull@*/ /*@dependent@*/ exprNode f, } } } + + cstring_free (codetext); } if (i < nargs) { voptgenerror (FLG_TYPE, - message ("Format string for %q has %d arg%p, given %d", + message ("Format string for %q has %d arg%&, given %d", uentry_getName (fcn), i - argno, nargs -argno), f->loc); } @@ -2069,7 +2144,7 @@ static void { bool hadUncon = FALSE; - if (sRef_isGlobal (sRef_getRootBase (e1->sref)) && + if (sRef_isFileOrGlobalScope (sRef_getRootBase (e1->sref)) && sRefSet_hasUnconstrained (sets2)) { voptgenerror @@ -2083,7 +2158,7 @@ static void e2->loc); } - if (sRef_isGlobal (sRef_getRootBase (e2->sref)) && + if (sRef_isFileOrGlobalScope (sRef_getRootBase (e2->sref)) && sRefSet_hasUnconstrained (sets1)) { voptgenerror @@ -2504,7 +2579,7 @@ checkSequencingOne (exprNode f, exprNodeList args, { sRefSet otheruses = jl->uses; - if (sRef_isGlobal (sRef_getRootBase (jl->sref)) && + if (sRef_isFileOrGlobalScope (sRef_getRootBase (jl->sref)) && sRefSet_hasUnconstrained (thissets)) { voptgenerror @@ -2634,6 +2709,8 @@ checkGlobMods (/*@notnull@*/ /*@dependent@*/ exprNode f, bool freshMods = FALSE; uentryList params = uentryList_undefined; + DPRINTF (("Check glob mods: %s", exprNode_unparse (ret))); + /* ** check globals and modifies */ @@ -2656,7 +2733,7 @@ checkGlobMods (/*@notnull@*/ /*@dependent@*/ exprNode f, if (!context_getFlag (FLG_MODNOMODS) && !context_getFlag (FLG_GLOBUNSPEC)) { - checkUnspecCall (f, params, args); + checkUnspecCall (f, params, args); } return; @@ -2683,6 +2760,7 @@ checkGlobMods (/*@notnull@*/ /*@dependent@*/ exprNode f, uentry_unparse (le))); params = ctype_argsFunction (ct); + return; /*@32 ! remove this? */ } /* @@ -2690,7 +2768,6 @@ checkGlobMods (/*@notnull@*/ /*@dependent@*/ exprNode f, */ setCodePoint (); - globSet_allElements (usesGlobs, el) { @@ -2801,6 +2878,8 @@ checkGlobMods (/*@notnull@*/ /*@dependent@*/ exprNode f, sRefSet_allElements (mods, s) /* s is something which may be modified */ { + DPRINTF (("Check modify: %s", sRef_unparse (s))); + if (sRef_isKindSpecial (s)) { if (sRef_isSpecInternalState (s)) @@ -2831,7 +2910,7 @@ checkGlobMods (/*@notnull@*/ /*@dependent@*/ exprNode f, { sRef rb = sRef_getRootBase (s); - if (sRef_isGlobal (rb)) + if (sRef_isFileOrGlobalScope (rb)) { context_usedGlobal (rb); } @@ -2997,6 +3076,253 @@ void checkGlobUse (uentry glob, bool isCall, /*@notnull@*/ exprNode e) } } +static void +reflectEnsuresClause (uentry le, exprNode f, exprNodeList args) +{ + DPRINTF (("Reflect ensures clause: %s(%s) / %s / %s", + exprNode_unparse (f), exprNodeList_unparse (args), + uentry_unparseFull (le), + stateClauseList_unparse (uentry_getStateClauseList (le)))); + + if (uentry_isValid (le) && uentry_isFunction (le)) + { + stateClauseList sclauses = uentry_getStateClauseList (le); + + if (stateClauseList_isDefined (sclauses)) + { + DPRINTF (("Reflect ensures: %s / %s / %s", + uentry_unparse (le), + exprNode_unparse (f), exprNodeList_unparse (args))); + + stateClauseList_elements (sclauses, cl) + { + if (stateClause_hasEnsures (cl)) + { + /* Same in usymtab.c:1904 */ + if (stateClause_setsMetaState (cl)) + { + qual q = stateClause_getMetaQual (cl); + annotationInfo ainfo = qual_getAnnotationInfo (q); + metaStateInfo minfo = annotationInfo_getState (ainfo); + cstring key = metaStateInfo_getName (minfo); + int mvalue = annotationInfo_getValue (ainfo); + + sRefSet osrs = sRefSet_undefined; + sRefSet srs; + + if (stateClause_isGlobal (cl)) + { + srs = sRefSet_single (usymtab_lookupGlobalMarker ()); + osrs = srs; + } + else + { + srs = stateClause_getRefs (cl); + } + + DPRINTF (("Reflect ensures clause: %s", stateClause_unparse (cl))); + + + DPRINTF (("Sets meta state! %s", stateClause_unparse (cl))); + + sRefSet_elements (srs, sel) + { + sRef s; + + if (sRef_isResult (sRef_getRootBase (sel))) + { + ; /*@i423 what do we do about results */ + } + else + { + s = sRef_fixBaseParam (sel, args); + DPRINTF (("Reflecting state clause on: %s / %s", + sRef_unparse (sel), sRef_unparse (s))); + + sRef_setMetaStateValueComplete (s, key, mvalue, exprNode_loc (f)); + } + } end_sRefSet_elements; + + sRefSet_free (osrs); + } + else + { + sRefSet srs = stateClause_getRefs (cl); + sRefModVal modf = stateClause_getEnsuresFunction (cl); + int eparam = stateClause_getStateParameter (cl); + + DPRINTF (("Reflect after clause: %s / %s", + stateClause_unparse (cl), + sRefSet_unparse (srs))); + + sRefSet_elements (srs, sel) + { + sRef s; + + DPRINTF (("elements: %s", sRef_unparse (sel))); + DPRINTF (("elements: %s", sRef_unparseFull (sel))); + + if (sRef_isResult (sRef_getRootBase (sel))) + { + ; /*@i423 what do we do about results */ + } + else + { + s = sRef_fixBaseParam (sel, args); + + DPRINTF (("elements: %s", sRef_unparse (s))); + DPRINTF (("elements: %s", sRef_unparseFull (s))); + + DPRINTF (("Reflecting state clause on: %s / %s", + sRef_unparse (sel), sRef_unparse (s))); + + modf (s, eparam, exprNode_loc (f)); + } + } end_sRefSet_elements; + } + } + } end_stateClauseList_elements ; + + } + } +} + +static void +checkRequiresClause (uentry le, exprNode f, exprNodeList args) +{ + DPRINTF (("Check requires clause: %s(%s) / %s / %s", + exprNode_unparse (f), exprNodeList_unparse (args), + uentry_unparseFull (le), + stateClauseList_unparse (uentry_getStateClauseList (le)))); + + if (uentry_isValid (le) && uentry_isFunction (le)) + { + stateClauseList sclauses = uentry_getStateClauseList (le); + + if (stateClauseList_isDefined (sclauses)) + { + DPRINTF (("Check requires: %s / %s / %s", + uentry_unparse (le), + exprNode_unparse (f), exprNodeList_unparse (args))); + + stateClauseList_elements (sclauses, cl) + { + DPRINTF (("Check clause: %s / %s", + stateClause_unparse (cl), + bool_unparse (stateClause_hasRequires (cl)))); + + if (stateClause_hasRequires (cl)) + { + sRefSet osrs = sRefSet_undefined; + sRefSet srs; + + if (stateClause_isGlobal (cl)) + { + srs = sRefSet_single (usymtab_lookupGlobalMarker ()); + osrs = srs; + } + else + { + srs = stateClause_getRefs (cl); + } + + DPRINTF (("Refs: %s", sRefSet_unparse (srs))); + + if (stateClause_setsMetaState (cl)) + { + qual q = stateClause_getMetaQual (cl); + annotationInfo ainfo = qual_getAnnotationInfo (q); + metaStateInfo minfo = annotationInfo_getState (ainfo); + cstring key = metaStateInfo_getName (minfo); + int mvalue = annotationInfo_getValue (ainfo); + + DPRINTF (("Requires meta state! %s = %d", key, mvalue)); + + sRefSet_elements (srs, sel) + { + sRef s = sRef_fixBaseParam (sel, args); + + if (sRef_isResult (sRef_getRootBase (sel))) + { + ; /*@i423 what do we do about results */ + } + else + { + DPRINTF (("Checking state clause on: %s / %s / %s = %d", + sRef_unparseFull (sel), sRef_unparseFull (s), + key, mvalue)); + + if (!sRef_checkMetaStateValue (s, key, mvalue)) + { + DPRINTF (("HERE: %s", sRef_unparse (s))); + if (optgenerror + (FLG_STATETRANSFER, + message + ("Requires clause of called function %q not satisfied%q (state is %s): %q", + uentry_getName (le), + sRef_isGlobalMarker (s) + ? message ("") + : message (" by %q", sRef_unparse (s)), + stateValue_unparseValue (sRef_getMetaStateValue (s, key), + minfo), + stateClause_unparse (cl)), + exprNode_loc (f))) + { + sRef_showAliasInfo (s); + } + else + { + DPRINTF (("Error supressed!")); + DPRINTF (("Loc: %s", fileloc_unparse (exprNode_loc (f)))); + DPRINTF (("Context supress: %s", + bool_unparse (context_suppressFlagMsg (FLG_STATETRANSFER, exprNode_loc (f))))); + } + } + } + } end_sRefSet_elements; + } + else + { + sRefModVal modf = stateClause_getRequiresBodyFunction (cl); + int eparam = stateClause_getStateParameter (cl); + + DPRINTF (("Reflect after clause: %s / %s", + stateClause_unparse (cl), + sRefSet_unparse (srs))); + + sRefSet_elements (srs, sel) + { + sRef s; + + DPRINTF (("elements: %s", sRef_unparse (sel))); + DPRINTF (("elements: %s", sRef_unparseFull (sel))); + + s = sRef_fixBaseParam (sel, args); + + DPRINTF (("elements: %s", sRef_unparse (s))); + DPRINTF (("elements: %s", sRef_unparseFull (s))); + + if (sRef_isResult (sRef_getRootBase (sel))) + { + ; /*@i423 what do we do about results */ + } + else + { + DPRINTF (("Reflecting state clause on: %s / %s", + sRef_unparse (sel), sRef_unparse (s))); + + modf (s, eparam, exprNode_loc (f)); + } + } end_sRefSet_elements; + } + + sRefSet_free (osrs); + } + } end_stateClauseList_elements ; + } + } +} + static /*@only@*/ exprNode functionCallSafe (/*@only@*/ /*@notnull@*/ exprNode f, ctype t, /*@keep@*/ exprNodeList args) @@ -3008,8 +3334,10 @@ functionCallSafe (/*@only@*/ /*@notnull@*/ exprNode f, int special; setCodePoint (); - - ret->typ = ctype_returnValue (t); + + DPRINTF (("Call: %s %s",exprNode_unparse (f), exprNodeList_unparse (args))); + + ret->typ = ctype_getReturnType (t); ret->kind = XPR_CALL; ret->edata = exprData_makeCall (f, args); @@ -3046,7 +3374,11 @@ functionCallSafe (/*@only@*/ /*@notnull@*/ exprNode f, special = checkArgs (le, f, t, args, ret); checkGlobMods (f, le, args, ret, special); + checkRequiresClause (le, f, args); + setCodePoint (); + DPRINTF (("Reflect: %s", uentry_unparseFull (le))); + reflectEnsuresClause (le, f, args); setCodePoint (); if (uentry_isValid (le) @@ -3059,6 +3391,9 @@ functionCallSafe (/*@only@*/ /*@notnull@*/ exprNode f, /* f->typ is already set to the return type */ ret->sref = uentry_returnedRef (le, args); + DPRINTF (("Returned: %s / %s", + uentry_unparseFull (le), + sRef_unparseFull (ret->sref))); if (uentry_isFunction (le) && exprNodeList_size (args) >= 1) { @@ -3294,8 +3629,9 @@ exprNode_functionCall (/*@only@*/ exprNode f, /*@only@*/ exprNodeList args) } } -exprNode -exprNode_fieldAccess (/*@only@*/ exprNode s, /*@only@*/ cstring f) +static exprNode +exprNode_fieldAccessAux (/*@only@*/ exprNode s, /*@observer@*/ fileloc loc, + /*@only@*/ cstring f) { exprNode ret = exprNode_createPartialCopy (s); @@ -3310,11 +3646,11 @@ exprNode_fieldAccess (/*@only@*/ exprNode s, /*@only@*/ cstring f) { ctype t = exprNode_getType (s); ctype tr = ctype_realType (t); - + checkMacroParen (s); ret->edata = exprData_makeField (s, f); - + if (ctype_isStructorUnion (tr)) { uentry tf = uentryList_lookupField (ctype_getFields (tr), f); @@ -3324,8 +3660,8 @@ exprNode_fieldAccess (/*@only@*/ exprNode s, /*@only@*/ cstring f) voptgenerror (FLG_TYPE, message ("Access non-existent field %s of %t: %s", f, t, exprNode_unparse (ret)), - s->loc); - + loc); + /*! cstring_free (f); */ /* evans 2001-03-25 self-detect */ return (ret); } else @@ -3336,6 +3672,7 @@ exprNode_fieldAccess (/*@only@*/ exprNode s, /*@only@*/ cstring f) checkSafeUse (ret, s->sref); ret->sref = sRef_makeField (s->sref, uentry_rawName (tf)); + /*!? exprNode_free (s); */ /* evans 2001-03-25 self-detect */ return (ret); } } @@ -3347,7 +3684,7 @@ exprNode_fieldAccess (/*@only@*/ exprNode s, /*@only@*/ cstring f) (FLG_ABSTRACT, message ("Access field of abstract type (%t): %s.%s", t, exprNode_unparse (s), f), - s->loc); + loc); ret->typ = ctype_unknown; } else @@ -3359,27 +3696,36 @@ exprNode_fieldAccess (/*@only@*/ exprNode s, /*@only@*/ cstring f) message ("Access field of non-struct or union (%t): %s.%s", t, exprNode_unparse (s), f), - s->loc); + loc); ret->typ = ctype_unknown; } else { cstring sn = cstring_copy (f); - + checkSafeUse (ret, s->sref); cstring_markOwned (sn); ret->sref = sRef_makeField (s->sref, sn); - return (ret); } } + return (ret); } } BADEXIT; } +exprNode +exprNode_fieldAccess (/*@only@*/ exprNode s, /*@only@*/ lltok dot, + /*@only@*/ cstring f) +{ + exprNode res = exprNode_fieldAccessAux (s, lltok_getLoc (dot), f); + lltok_release (dot); + return res; +} + exprNode exprNode_addParens (/*@only@*/ lltok lpar, /*@only@*/ exprNode e) { @@ -3401,179 +3747,189 @@ exprNode_addParens (/*@only@*/ lltok lpar, /*@only@*/ exprNode e) return ret; } -exprNode -exprNode_arrowAccess (/*@only@*/ exprNode s, /*@only@*/ cstring f) +static exprNode +exprNode_arrowAccessAux (/*@only@*/ exprNode s, /*@observer@*/ fileloc loc, + /*@only@*/ cstring f) { exprNode ret = exprNode_createPartialCopy (s); ret->edata = exprData_makeField (s, f); ret->kind = XPR_ARROW; - + if (exprNode_isError (s)) { return (ret); } else { - ctype t = exprNode_getType (s); - ctype tr = ctype_realType (t); - - checkMacroParen (s); - - (void) ctype_fixArrayPtr (tr); /* REWRITE THIS */ - - if (ctype_isRealPointer (tr)) - { - ctype b = ctype_realType (ctype_baseArrayPtr (tr)); - - if (ctype_isStructorUnion (b)) - { - uentry fentry = uentryList_lookupField (ctype_getFields (b), f); - - if (sRef_isKnown (s->sref) && sRef_possiblyNull (s->sref)) - { - if (!usymtab_isGuarded (s->sref) && !context_inProtectVars ()) - { - if (optgenerror - (FLG_NULLDEREF, - message ("Arrow access from %s pointer%q: %s", - sRef_nullMessage (s->sref), - sRef_unparsePreOpt (s->sref), - exprNode_unparse (ret)), - s->loc)) - { - sRef_showNullInfo (s->sref); - sRef_setNullError (s->sref); - } - } - } - - if (uentry_isUndefined (fentry)) - { - voptgenerror - (FLG_TYPE, - message ("Access non-existent field %s of %t: %s", - f, t, exprNode_unparse (ret)), - s->loc); - ret->typ = ctype_unknown; - - return (ret); - } - else - { - /* - ** was safeUse: shouldn't be safe! - ** - ** to do rec->field - ** rec must be defined, - ** *rec must be allocated - ** rec->field need only be defined it if is an rvalue - */ - - uentry_setUsed (fentry, exprNode_loc (ret)); - ret->typ = uentry_getType (fentry); - - exprNode_checkUse (ret, s->sref, s->loc); - - /* exprNode_checkUse (ret, sRef_makePointer (s->sref), s->loc); */ - ret->sref = sRef_makeArrow (s->sref, uentry_rawName (fentry)); - return (ret); - } - } - else /* Pointer to something that is not a struct or union*/ - { - if (ctype_isRealAbstract (tr)) - { - ctype xrt = ctype_forceRealType (tr); - - voptgenerror - (FLG_ABSTRACT, - message ("Arrow access field of abstract type (%t): %s->%s", - t, exprNode_unparse (s), f), - s->loc); - - /* - ** Set the state correctly, as if the abstraction is broken. - */ - - if (ctype_isRealPointer (xrt) && - (b = ctype_realType (ctype_baseArrayPtr (xrt)), - ctype_isStructorUnion (b))) - { - uentry fentry = uentryList_lookupField (ctype_getFields (b), f); - ret->typ = uentry_getType (fentry); - ret->sref = sRef_makeArrow (s->sref, uentry_rawName (fentry)); - } - else - { - ret->typ = ctype_unknown; - ret->sref = sRef_undefined; - } - } - else /* not a struct, union or abstract */ - { - if (ctype_isUnknown (tr)) { - cstring sn = cstring_copy (f); - - DPRINTF (("Here: %s", exprNode_unparse (s))); - - exprNode_checkUse (ret, s->sref, s->loc); - exprNode_checkUse (ret, sRef_makePointer (s->sref), s->loc); - - cstring_markOwned (sn); - ret->sref = sRef_makeArrow (s->sref, sn); - - ret->kind = XPR_ARROW; - return (ret); - } else { - voptgenerror - (FLG_TYPE, - message ("Arrow access field of non-struct or union " - "pointer (%t): %s->%s", - t, exprNode_unparse (s), f), - s->loc); - - ret->typ = ctype_unknown; - ret->sref = sRef_undefined; - } - } - } - } - else /* its not a pointer */ - { - if (!ctype_isUnknown (tr)) - { - voptgenerror - (FLG_TYPE, - message ("Arrow access of non-pointer (%t): %s->%s", - t, exprNode_unparse (s), f), - s->loc); - - ret->typ = ctype_unknown; - ret->sref = sRef_undefined; - } - else - { - cstring sn = cstring_copy (f); - - DPRINTF (("Here: %s", exprNode_unparse (s))); - - exprNode_checkUse (ret, s->sref, s->loc); - exprNode_checkUse (ret, sRef_makePointer (s->sref), s->loc); - - cstring_markOwned (sn); - ret->sref = sRef_makeArrow (s->sref, sn); - - ret->kind = XPR_ARROW; - return (ret); - } - } - + ctype t = exprNode_getType (s); + ctype tr = ctype_realType (t); + + checkMacroParen (s); + + (void) ctype_fixArrayPtr (tr); /* REWRITE THIS */ + + if (ctype_isRealPointer (tr)) + { + ctype b = ctype_realType (ctype_baseArrayPtr (tr)); + + if (ctype_isStructorUnion (b)) + { + uentry fentry = uentryList_lookupField (ctype_getFields (b), f); + + if (sRef_isKnown (s->sref) && sRef_possiblyNull (s->sref)) + { + if (!usymtab_isGuarded (s->sref) && !context_inProtectVars ()) + { + if (optgenerror + (FLG_NULLDEREF, + message ("Arrow access from %s pointer%q: %s", + sRef_nullMessage (s->sref), + sRef_unparsePreOpt (s->sref), + exprNode_unparse (ret)), + loc)) + { + sRef_showNullInfo (s->sref); + sRef_setNullError (s->sref); + } + } + } + + if (uentry_isUndefined (fentry)) + { + voptgenerror + (FLG_TYPE, + message ("Access non-existent field %s of %t: %s", + f, t, exprNode_unparse (ret)), + loc); + ret->typ = ctype_unknown; + return (ret); + } + else + { + /* + ** was safeUse: shouldn't be safe! + ** + ** to do rec->field + ** rec must be defined, + ** *rec must be allocated + ** rec->field need only be defined it if is an rvalue + */ + + uentry_setUsed (fentry, exprNode_loc (ret)); + ret->typ = uentry_getType (fentry); + + exprNode_checkUse (ret, s->sref, s->loc); + + /* exprNode_checkUse (ret, sRef_makePointer (s->sref), s->loc); */ + ret->sref = sRef_makeArrow (s->sref, uentry_rawName (fentry)); + return (ret); + } + } + else /* Pointer to something that is not a struct or union*/ + { + if (ctype_isRealAbstract (tr)) + { + ctype xrt = ctype_forceRealType (tr); + + voptgenerror + (FLG_ABSTRACT, + message ("Arrow access field of abstract type (%t): %s->%s", + t, exprNode_unparse (s), f), + loc); + + /* + ** Set the state correctly, as if the abstraction is broken. + */ + + if (ctype_isRealPointer (xrt) && + (b = ctype_realType (ctype_baseArrayPtr (xrt)), + ctype_isStructorUnion (b))) + { + uentry fentry = uentryList_lookupField (ctype_getFields (b), f); + ret->typ = uentry_getType (fentry); + ret->sref = sRef_makeArrow (s->sref, uentry_rawName (fentry)); + } + else + { + ret->typ = ctype_unknown; + ret->sref = sRef_undefined; + } + } + else /* not a struct, union or abstract */ + { + if (ctype_isUnknown (tr)) { + cstring sn = cstring_copy (f); + + DPRINTF (("Here: %s", exprNode_unparse (s))); + + exprNode_checkUse (ret, s->sref, s->loc); + exprNode_checkUse (ret, sRef_makePointer (s->sref), s->loc); + + cstring_markOwned (sn); + ret->sref = sRef_makeArrow (s->sref, sn); + + ret->kind = XPR_ARROW; + return (ret); + } else { + voptgenerror + (FLG_TYPE, + message ("Arrow access field of non-struct or union " + "pointer (%t): %s->%s", + t, exprNode_unparse (s), f), + loc); + + ret->typ = ctype_unknown; + ret->sref = sRef_undefined; + } + } + } + } + else /* its not a pointer */ + { + if (!ctype_isUnknown (tr)) + { + voptgenerror + (FLG_TYPE, + message ("Arrow access of non-pointer (%t): %s->%s", + t, exprNode_unparse (s), f), + loc); + + ret->typ = ctype_unknown; + ret->sref = sRef_undefined; + } + else + { + cstring sn = cstring_copy (f); + + DPRINTF (("Here: %s", exprNode_unparse (s))); + + exprNode_checkUse (ret, s->sref, s->loc); + exprNode_checkUse (ret, sRef_makePointer (s->sref), s->loc); + + cstring_markOwned (sn); + ret->sref = sRef_makeArrow (s->sref, sn); + + ret->kind = XPR_ARROW; + return (ret); + } + } + return (ret); } BADEXIT; } +exprNode +exprNode_arrowAccess (/*@only@*/ exprNode s, + /*@only@*/ lltok arrow, + /*@only@*/ cstring f) +{ + exprNode res = exprNode_arrowAccessAux (s, lltok_getLoc (arrow), f); + lltok_release (arrow); + return res; +} + /* ** only postOp's in C: i++ and i-- */ @@ -3747,7 +4103,6 @@ exprNode_preOp (/*@only@*/ exprNode e, /*@only@*/ lltok op) { case INC_OP: case DEC_OP: /* should also check modification! */ - if (sRef_isMacroParamRef (e->sref)) { voptgenerror @@ -3849,7 +4204,7 @@ exprNode_preOp (/*@only@*/ exprNode e, /*@only@*/ lltok op) case TEXCL: /* maybe this should be restricted */ guardSet_flip (ret->guards); - if (ctype_isRealBool (te)) + if (ctype_isRealBool (te) || ctype_isUnknown (te)) { ; } @@ -3861,7 +4216,7 @@ exprNode_preOp (/*@only@*/ exprNode e, /*@only@*/ lltok op) { ret->guards = guardSet_addFalseGuard (ret->guards, e->sref); } - + voptgenerror2n (FLG_BOOLOPS, FLG_PTRNEGATE, message ("Operand of %s is non-boolean (%t): %s", @@ -4375,6 +4730,11 @@ exprNode_cast (/*@only@*/ lltok tok, /*@only@*/ exprNode e, /*@only@*/ qtype q) } else { + DPRINTF (("No access to: %s / %d", + ctype_unparse (bc), ctype_typeId (bc))); + DPRINTF (("Context %s %s", + bool_unparse (context_inFunctionLike ()), + context_unparse ())); voptgenerror (FLG_ABSTRACT, message ("Cast to abstract type %t: %s", bc, @@ -5081,10 +5441,10 @@ exprNode_makeOp (/*@keep@*/ exprNode e1, /*@keep@*/ exprNode e2, default: { llfatalbug (cstring_makeLiteral - ("There has been a problem in the parser. This is due to a bug " - "in either lclint, bison or gcc version 2.95 optimizations, " - "but it has not been confirmed. Please try rebuidling LCLint " - "without the -O option.")); + ("There has been a problem in the parser. This is believed to result " + "from a problem with bison v. 1.25. Please try rebuidling LCLint " + "using the pre-compiled grammar files by commenting out the " + "BISON= line in the top-level Makefile.")); } } } @@ -5133,7 +5493,7 @@ void exprNode_checkAssignMod (exprNode e1, exprNode ret) sRef_unparseFull (ref))); if (sRef_isObserver (ref) - || ((sRef_isFileStatic (ref) || sRef_isGlobal (ref)) + || ((sRef_isFileStatic (ref) || sRef_isFileOrGlobalScope (ref)) && ctype_isArray (ctype_realType (sRef_getType (ref))))) { sRef base = sRef_getBase (ref); @@ -5714,6 +6074,8 @@ exprNode exprNode_concat (/*@only@*/ exprNode e1, /*@only@*/ exprNode e2) { exprNode ret = exprNode_createPartialCopy (e1); + DPRINTF (("Concat: %s / %s", exprNode_unparse (e1), exprNode_unparse (e2))); + ret->edata = exprData_makePair (e1, e2); ret->kind = XPR_STMTLIST; @@ -5813,7 +6175,7 @@ exprNode exprNode_concat (/*@only@*/ exprNode e1, /*@only@*/ exprNode e2) } exprNode_mergeUSs (ret, e2); - // ret = exprNode_mergeEnvironments (ret, e1, e2); + usymtab_setExitCode (ret->exitCode); if (ret->mustBreak) @@ -5826,7 +6188,8 @@ exprNode exprNode_concat (/*@only@*/ exprNode e1, /*@only@*/ exprNode e2) exprNode exprNode_createTok (/*@only@*/ lltok t) { - exprNode ret = exprNode_create (ctype_unknown); + exprNode ret; /*@i23 if on same line, bad things happen...!@*/ + ret = exprNode_create (ctype_unknown); ret->kind = XPR_TOK; ret->edata = exprData_makeTok (t); return ret; @@ -6609,9 +6972,9 @@ exprNode exprNode_doWhile (/*@only@*/ exprNode b, /*@only@*/ exprNode t) ** forgot the copy's --- why wasn't this detected?? */ - ret->sets = sRefSet_copy (ret->sets, b->sets); - ret->msets = sRefSet_copy (ret->msets, b->msets); - ret->uses = sRefSet_copy (ret->uses, b->uses); + ret->sets = sRefSet_copyInto (ret->sets, b->sets); + ret->msets = sRefSet_copyInto (ret->msets, b->msets); + ret->uses = sRefSet_copyInto (ret->uses, b->uses); /* left this out --- causes and aliasing bug (infinite loop) should be detected?? */ @@ -6706,9 +7069,9 @@ exprNode exprNode_for (/*@keep@*/ exprNode inc, /*@keep@*/ exprNode body) context_clearMessageAnnote (); - ret->uses = sRefSet_copy (ret->uses, inc->uses); - ret->sets = sRefSet_copy (ret->sets, inc->sets); - ret->msets = sRefSet_copy (ret->msets, inc->msets); + ret->uses = sRefSet_copyInto (ret->uses, inc->uses); + ret->sets = sRefSet_copyInto (ret->sets, inc->sets); + ret->msets = sRefSet_copyInto (ret->msets, inc->msets); } } @@ -7228,7 +7591,7 @@ static bool exprNode_checkOneInit (/*@notnull@*/ exprNode el, exprNode val) hasError = optgenerror (FLG_FULLINITBLOCK, message ("Initializer block for " - "%s has %d field%p, but %s has %d field%p: %q", + "%s has %d field%&, but %s has %d field%&: %q", exprNode_unparse (el), exprNodeList_size (vals), ctype_unparse (t1), @@ -7241,7 +7604,7 @@ static bool exprNode_checkOneInit (/*@notnull@*/ exprNode el, exprNode val) hasError = optgenerror (FLG_TYPE, message ("Initializer block for " - "%s has %d field%p, but %s has %d field%p: %q", + "%s has %d field%&, but %s has %d field%&: %q", exprNode_unparse (el), exprNodeList_size (vals), ctype_unparse (t1), @@ -7256,8 +7619,9 @@ static bool exprNode_checkOneInit (/*@notnull@*/ exprNode el, exprNode val) { uentry thisfield = uentryList_getN (fields, i); exprNode newel = - exprNode_fieldAccess (exprNode_fakeCopy (el), - uentry_getName (thisfield)); + exprNode_fieldAccessAux (exprNode_fakeCopy (el), + exprNode_loc (el), + uentry_getName (thisfield)); if (exprNode_isDefined (newel)) { @@ -7305,37 +7669,100 @@ static bool exprNode_checkOneInit (/*@notnull@*/ exprNode el, exprNode val) return hasError; } +static exprNode +exprNode_makeInitializationAux (/*@temp@*/ idDecl t) +{ + exprNode ret; + + if (usymtab_exists (idDecl_observeId (t))) + { + uentry ue = usymtab_lookup (idDecl_observeId (t)); + ret = exprNode_createId (ue); + + /*@i723 don't do this...but why? */ +# if 0 + ct = ctype_realishType (ret->typ); + + DPRINTF (("Type: %s", ctype_unparse (ret->typ))); + + if (ctype_isUnknown (ct)) + { + if (uentry_isAnyTag (ue)) + { + voptgenerror + (FLG_IMPTYPE, + message ("%s used but not previously declared: %s", + uentry_ekindName (ue), + idDecl_getName (t)), + g_currentloc); + + } + else + { + voptgenerror + (FLG_IMPTYPE, + message ("Variable has unknown (implicitly int) type: %s", + idDecl_getName (t)), + g_currentloc); + } + + ct = ctype_int; + } +# endif + } + else + { + uentry ue = uentry_makeUnrecognized (idDecl_observeId (t), + g_currentloc); + ret = exprNode_fromIdentifierAux (ue); + + /* + ** No error - this happens in old style declarations: + + voptgenerror + (FLG_UNRECOG, + message ("Unrecognized identifier in intializer: %s", idDecl_observeId (t)), + g_currentloc); + + ** + */ + } + + exprData_free (ret->edata, ret->kind); + ret->edata = exprData_undefined; + ret->exitCode = XK_NEVERESCAPE; + ret->mustBreak = FALSE; + ret->kind = XPR_INIT; + return ret; +} + +exprNode exprNode_makeEmptyInitialization (/*@only@*/ idDecl t) +{ + exprNode ret = exprNode_makeInitializationAux (t); + llassert (ret->edata == exprData_undefined); + ret->edata = exprData_makeInit (t, exprNode_undefined); + return ret; +} + exprNode exprNode_makeInitialization (/*@only@*/ idDecl t, /*@only@*/ exprNode e) { uentry ue = usymtab_lookup (idDecl_observeId (t)); - bool isUsed = uentry_isUsed (ue); - exprNode ret = exprNode_fromIdentifierAux (ue); - ctype ct = ctype_realishType (ret->typ); - fileloc loc; - - if (ctype_isUnknown (ct)) - { - voptgenerror (FLG_IMPTYPE, - message ("Variable has unknown (implicitly int) type: %s", - idDecl_getName (t)), - exprNode_isDefined (e) ? exprNode_loc (e) : g_currentloc); - - ct = ctype_int; - } + exprNode ret = exprNode_makeInitializationAux (t); + fileloc loc = exprNode_loc (e); if (exprNode_isError (e)) { e = exprNode_createUnknown (); - loc = g_currentloc; + idDecl_free (t); /* error: assume initializer is defined */ - sRef_setDefined (ret->sref, loc); + sRef_setDefined (ret->sref, g_currentloc); } else { - loc = exprNode_loc (e); - + ctype ct = ctype_realishType (ret->typ); + /* ** evs - 9 Apr 1995 ** @@ -7344,6 +7771,9 @@ exprNode exprNode_makeInitialization (/*@only@*/ idDecl t, ** int x = 3, y = x ? */ + exprData_free (ret->edata, ret->kind); + ret->edata = exprData_makeInit (t, e); + exprNode_checkUse (ret, e->sref, e->loc); if (ctype_isUnknown (e->typ) && uentry_isValid (ue)) @@ -7381,8 +7811,8 @@ exprNode exprNode_makeInitialization (/*@only@*/ idDecl t, (void) gentypeerror (exprNode_getType (e), e, exprNode_getType (ret), ret, message - ("Variable %s initialized to type %t, expects %t: %s", - exprNode_unparse (ret), exprNode_getType (e), + ("Variable %q initialized to type %t, expects %t: %s", + uentry_getName (ue), exprNode_getType (e), exprNode_getType (ret), exprNode_unparse (e)), e->loc); @@ -7410,23 +7840,9 @@ exprNode exprNode_makeInitialization (/*@only@*/ idDecl t, } else { - if (!isUsed) /* could be @unused@-qualified variable */ - { - uentry_setNotUsed (ue); - } + ; } - ret->exitCode = XK_NEVERESCAPE; - ret->mustBreak = FALSE; - - /* - ** Must be before new kind is assigned! - */ - - exprData_free (ret->edata, ret->kind); - - ret->kind = XPR_INIT; - ret->edata = exprData_makeInit (t, e); exprNode_mergeUSs (ret, e); return ret; } @@ -7756,7 +8172,7 @@ exprNode_unparseFirst (exprNode e) } /*@observer@*/ cstring -exprNode_unparse (exprNode e) +exprNode_unparse (/*@temp@*/ exprNode e) { if (exprNode_isError (e)) { @@ -8038,13 +8454,17 @@ static /*@only@*/ exprNode exprNode_effect (exprNode e) break; case XPR_FACCESS: - ret = exprNode_fieldAccess (exprNode_effect (exprData_getFieldNode (data)), - cstring_copy (exprData_getFieldName (data))); + ret = exprNode_fieldAccessAux + (exprNode_effect (exprData_getFieldNode (data)), + exprNode_loc (exprData_getFieldNode (data)), + cstring_copy (exprData_getFieldName (data))); break; case XPR_ARROW: - ret = exprNode_arrowAccess (exprNode_effect (exprData_getFieldNode (data)), - cstring_copy (exprData_getFieldName (data))); + ret = exprNode_arrowAccessAux + (exprNode_effect (exprData_getFieldNode (data)), + exprNode_loc (exprData_getFieldNode (data)), + cstring_copy (exprData_getFieldName (data))); break; case XPR_STRINGLITERAL: @@ -8152,7 +8572,6 @@ static /*@observer@*/ cstring exprNode_rootVarName (exprNode e) return ret; } - static /*@only@*/ cstring exprNode_doUnparse (exprNode e) { cstring ret; @@ -8382,9 +8801,16 @@ static /*@only@*/ cstring exprNode_doUnparse (exprNode e) break; case XPR_INIT: - ret = message ("%s = %s", - idDecl_getName (exprData_getInitId (data)), - exprNode_unparse (exprData_getInitNode (data))); + if (exprNode_isError (exprData_getInitNode (data))) + { + ret = message ("%q", idDecl_unparseC (exprData_getInitId (data))); + } + else + { + ret = message ("%q = %s", + idDecl_unparseC (exprData_getInitId (data)), + exprNode_unparse (exprData_getInitNode (data))); + } break; case XPR_FACCESS: @@ -8400,7 +8826,7 @@ static /*@only@*/ cstring exprNode_doUnparse (exprNode e) break; case XPR_STRINGLITERAL: - ret = cstring_copy (exprData_getLiteral (data)); + ret = message ("\"%s\"", exprData_getLiteral (data)); break; case XPR_NUMLIT: @@ -8415,6 +8841,13 @@ static /*@only@*/ cstring exprNode_doUnparse (exprNode e) return ret; } +bool +exprNode_isInitializer (exprNode e) +{ + return (exprNode_isDefined (e) + && e->kind == XPR_INIT); +} + bool exprNode_isCharLit (exprNode e) { @@ -8754,7 +9187,7 @@ exprNode_mergeCondUSs (exprNode res, exprNode other1, exprNode other2) */ static void -exprNode_addUse (exprNode e, sRef s) +exprNode_addUse (exprNode e, /*@exposed@*/ sRef s) { if (exprNode_isDefined (e)) { @@ -8763,7 +9196,7 @@ exprNode_addUse (exprNode e, sRef s) } void -exprNode_checkUse (exprNode e, sRef s, fileloc loc) +exprNode_checkUse (exprNode e, /*@exposed@*/ sRef s, fileloc loc) { if (sRef_isKnown (s) && !sRef_isConst (s)) { @@ -8773,7 +9206,7 @@ exprNode_checkUse (exprNode e, sRef s, fileloc loc) DPRINTF (("Check use: %s / %s", exprNode_unparse (e), sRef_unparse (s))); - + exprNode_addUse (e, s); if (!context_inProtectVars ()) @@ -8792,6 +9225,9 @@ exprNode_checkUse (exprNode e, sRef s, fileloc loc) { ynm readable = sRef_isReadable (s); + DPRINTF (("Readable: %s / %s", + sRef_unparseFull (s), ynm_unparse (readable))); + if (!(ynm_toBoolStrict (readable))) { if (ynm_isMaybe (readable)) @@ -8884,7 +9320,7 @@ exprNode_checkUse (exprNode e, sRef s, fileloc loc) } else { - DPRINTF (("HERE: %s", sRef_unparse (errorRef))); + DPRINTF (("HERE: %s", sRef_unparseFull (errorRef))); voptgenerror (FLG_USEDEF, @@ -8909,7 +9345,7 @@ exprNode_checkUse (exprNode e, sRef s, fileloc loc) } static void -checkSafeUse (exprNode e, sRef s) +checkSafeUse (exprNode e, /*@exposed@*/ sRef s) { if (exprNode_isDefined (e) && sRef_isKnown (s)) { @@ -8927,7 +9363,7 @@ exprNode_checkSetAny (exprNode e, /*@dependent@*/ cstring name) } void -exprNode_checkSet (exprNode e, sRef s) +exprNode_checkSet (exprNode e, /*@exposed@*/ sRef s) { sRef defines = sRef_undefined; @@ -9030,7 +9466,7 @@ exprNode_checkSet (exprNode e, sRef s) } void -exprNode_checkMSet (exprNode e, sRef s) +exprNode_checkMSet (exprNode e, /*@exposed@*/ sRef s) { if (sRef_isValid (s) && !sRef_isNothing (s)) { @@ -9190,7 +9626,7 @@ static void if (specialArgs == 0 || (paramno < specialArgs)) { - checkOneArg (ucurrent, current, fcn, isSpec, paramno, nargs); + checkOneArg (ucurrent, current, fcn, isSpec, paramno, nargs); if (context_maybeSet (FLG_ALIASUNIQUE)) { @@ -9225,7 +9661,7 @@ static void sRef fb; sRef rb = sRef_getRootBase (s); - if (sRef_isGlobal (rb)) + if (sRef_isFileOrGlobalScope (rb)) { context_usedGlobal (rb); } @@ -9587,7 +10023,7 @@ checkOneRepExpose (sRef ysr, sRef base, } } - if (sRef_isGlobal (s2b)) + if (sRef_isFileOrGlobalScope (s2b)) { if (sRef_sameName (base, sRef_getRootBase (e2->sref))) { @@ -9687,7 +10123,7 @@ doAssign (/*@notnull@*/ exprNode e1, /*@notnull@*/ exprNode e2, bool isInit) } } - if (sRef_isGlobal (s2b)) + if (sRef_isFileOrGlobalScope (s2b)) { voptgenerror (FLG_ASSIGNEXPOSE, @@ -9728,6 +10164,8 @@ doAssign (/*@notnull@*/ exprNode e1, /*@notnull@*/ exprNode e2, bool isInit) { if (isInit) { + DPRINTF (("Check init: %s / %s", + exprNode_unparse (e1), exprNode_unparse (e2))); checkInitTransfer (e1, e2); } else @@ -9766,15 +10204,15 @@ doAssign (/*@notnull@*/ exprNode e1, /*@notnull@*/ exprNode e2, bool isInit) } } - if (isInit && sRef_isGlobal (e1->sref)) + if (isInit && sRef_isFileOrGlobalScope (e1->sref)) { ; } else { + DPRINTF (("Update aliases: %s / %s", exprNode_unparse (e1), exprNode_unparse (e2))); updateAliases (e1, e2); } - // updateEnvironment (e1, e2); } static void @@ -9838,13 +10276,27 @@ static void updateAliases (/*@notnull@*/ exprNode e1, /*@notnull@*/ exprNode e2) if (!ctype_isRealSU (t1)) { + DPRINTF (("Copying real! %s", ctype_unparse (t1))); sRef_copyRealDerivedComplete (s1, s2); } + else + { + /* + ** Fields should alias + */ + + DPRINTF (("Not COPYING!: %s", ctype_unparse (t1))); + } if (ctype_isMutable (t1) && sRef_isKnown (s1)) { usymtab_clearAlias (s1); usymtab_addMustAlias (s1, s2); + DPRINTF (("Add must alias: %s / %s", sRef_unparse (s1), sRef_unparse (s2))); + } + else + { + DPRINTF (("Not mutable: %s", ctype_unparse (t1))); } if (sRef_possiblyNull (s1) && usymtab_isGuarded (s1)) @@ -10015,22 +10467,12 @@ long exprNode_getLongValue (exprNode e) { lltok t = exprData_getUopTok (e->edata); return fileloc_copy(lltok_getLoc (t)); } else { - #warning fix + //drl possible problem : warning fix // llcontbug (message ("Cannot get next sequence point: %s", exprNode_unparse (e))); return fileloc_undefined; } } - -/*drl added - */ -exprNode exprNode_fakeCopy (/*@returned@*/ exprNode e) -{ - /*@-temptrans@*/ /*@-retalias@*/ - return e; - /*@=temptrans@*/ /*@=retalias@*/ -} - exprNode exprNode_createNew(ctype c) { exprNode ret; diff --git a/src/exprNodeList.c b/src/exprNodeList.c index 69c5dcc..6e9d59b 100644 --- a/src/exprNodeList.c +++ b/src/exprNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/exprNodeSList.c b/src/exprNodeSList.c index 123da58..b1cc5f4 100644 --- a/src/exprNodeSList.c +++ b/src/exprNodeSList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/fcnNodeList.c b/src/fcnNodeList.c index 8dfa917..bb66439 100644 --- a/src/fcnNodeList.c +++ b/src/fcnNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/fileIdList.c b/src/fileIdList.c index 1a97e0b..a25d72c 100644 --- a/src/fileIdList.c +++ b/src/fileIdList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -28,9 +28,3 @@ # include "lclintMacros.nf" # include "basic.h" # include "fileIdList.h" - - - - - - diff --git a/src/fileLib.c b/src/fileLib.c new file mode 100644 index 0000000..c023e08 --- /dev/null +++ b/src/fileLib.c @@ -0,0 +1,231 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** fileLib.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "portab.h" + +bool +fileLib_isCExtension (cstring ext) +{ + return (cstring_equalLit (ext, ".c") + || cstring_equalLit (ext, ".C") + || cstring_equalLit (ext, ".h") + || cstring_equalLit (ext, ".lh") + || cstring_equalLit (ext, ".xh") + || cstring_equalLit (ext, ".H") + || cstring_equalLit (ext, ".y") + || cstring_equalLit (ext, ".l")); +} + +bool +fileLib_isLCLFile (cstring s) +{ + return (fileLib_hasExtension (s, LCL_EXTENSION)); +} + +/*@only@*/ cstring fileLib_withoutExtension (/*@temp@*/ cstring s, cstring suffix) +{ + /*@access cstring@*/ + char *t; + char *s2; + + if (cstring_isUndefined (s)) { + return cstring_undefined; + } + + t = strrchr (s, '.'); + if (t == (char *) 0 || !mstring_equal (t, suffix)) + { + return mstring_copy (s); + } + + /*@-mods@*/ + *t = '\0'; + s2 = mstring_copy (s); + *t = '.'; + /*@=mods@*/ /* Modification is undone. */ + return s2; + /*@noaccess cstring@*/ +} + +# ifndef NOLCL +/*@only@*/ cstring fileLib_removePath (cstring s) +{ + /*@access cstring@*/ + char *t; + + if (cstring_isUndefined (s)) { + return cstring_undefined; + } + + t = strrchr (s, CONNECTCHAR); + + if (t == NULL) return (mstring_copy (s)); + else return (mstring_copy (t + 1)); + /*@noaccess cstring@*/ +} +# endif + +/*@only@*/ cstring +fileLib_removePathFree (/*@only@*/ cstring s) +{ + /*@access cstring@*/ + char *t; + + + if (cstring_isUndefined (s)) { + return cstring_undefined; + } + + t = strrchr (s, CONNECTCHAR); + +# ifdef ALTCONNECTCHAR + { + char *at = strrchr (s, ALTCONNECTCHAR); + if (t == NULL || (at > t)) { + t = at; + } + } +# endif + + if (t == NULL) + { + return (s); + } + else + { + char *res = mstring_copy (t + 1); + mstring_free (s); + return res; + } + /*@noaccess cstring@*/ +} + +/*@only@*/ cstring +fileLib_removeAnyExtension (cstring s) +{ + /*@access cstring@*/ + char *ret; + char *t; + + + if (cstring_isUndefined (s)) { + return cstring_undefined; + } + + t = strrchr (s, '.'); + + if (t == (char *) 0) + { + return mstring_copy (s); + } + + /*@-mods@*/ + *t = '\0'; + ret = mstring_copy (s); + *t = '.'; + /*@=mods@*/ /* modification is undone */ + + return ret; + /*@noaccess cstring@*/ +} + +/*@only@*/ cstring +fileLib_addExtension (/*@temp@*/ cstring s, cstring suffix) +{ + /*@access cstring@*/ + llassert (cstring_isDefined (s)); + + if (strrchr (s, '.') == (char *) 0) + { + /* <<< was mstring_concatFree1 --- bug detected by lclint >>> */ + return (cstring_concat (s, suffix)); + } + else + { + return cstring_copy (s); + } +} + +bool fileLib_hasExtension (cstring s, cstring ext) +{ + return cstring_equal (fileLib_getExtension (s), ext); +} + +/*@observer@*/ cstring fileLib_getExtension (/*@returned@*/ cstring s) +{ + llassert (cstring_isDefined (s)); + + /*@access cstring@*/ + return (strrchr(s, '.')); + /*@noaccess cstring@*/ +} + +cstring removePreDirs (cstring s) +{ + /*@access cstring@*/ + + llassert (cstring_isDefined (s)); + + while (*s == '.' && *(s + 1) == CONNECTCHAR) + { + s += 2; + } + +# if defined(OS2) || defined(MSDOS) + /* remove remainders from double path delimiters... */ + while (*s == CONNECTCHAR) + { + ++s; + } +# endif /* !defined(OS2) && !defined(MSDOS) */ + + return s; + /*@noaccess cstring@*/ +} + +bool isHeaderFile (cstring fname) +{ + cstring ext = fileLib_getExtension (fname); + + return (cstring_equalLit (ext, ".h") + || cstring_equalLit (ext, ".H") + || cstring_equal (ext, LH_EXTENSION)); +} + +cstring fileLib_cleanName (cstring s) +{ + if (cstring_equalPrefix (s, "./")) + { + return cstring_copySegment (s, 2, cstring_length (s) - 1); + } + + + + return cstring_copy (s); +} diff --git a/src/fileTable.c b/src/fileTable.c index e974cfd..0edbab5 100644 --- a/src/fileTable.c +++ b/src/fileTable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -63,7 +63,7 @@ static bool fileTable_inRange (fileTable ft, fileId fid) /*@*/ static fileId fileTable_internAddEntry (fileTable p_ft, /*@only@*/ ftentry p_e) /*@modifies p_ft@*/ ; -static /*@only@*/ char *makeTempName (char *p_dir, char *p_pre, char *p_suf); +static /*@only@*/ cstring makeTempName (cstring p_dir, cstring p_pre, cstring p_suf); static /*@only@*/ cstring fileType_unparse (fileType ft) @@ -74,7 +74,9 @@ fileType_unparse (fileType ft) case FILE_NODELETE: return cstring_makeLiteral ("normal"); case FILE_LSLTEMP: return cstring_makeLiteral ("ltemp"); case FILE_HEADER: return cstring_makeLiteral ("header"); + case FILE_XH: return cstring_makeLiteral ("xh"); case FILE_MACROS: return cstring_makeLiteral ("macros"); + case FILE_METASTATE: return cstring_makeLiteral ("metastate"); } BADEXIT; @@ -84,7 +86,7 @@ static int fileTable_getIndex (fileTable ft, cstring s) { if (ft == NULL) return NOT_FOUND; - return (hashTable_lookup (ft->htable, s)); + return (cstringTable_lookup (ft->htable, s)); } /*@only@*/ cstring @@ -189,7 +191,7 @@ fileTable_create () ft->nentries = 0; ft->nspace = FTBASESIZE; ft->elements = (ftentry *) dmalloc (FTBASESIZE * sizeof (*ft->elements)); - ft->htable = hashTable_create (FTHASHSIZE); + ft->htable = cstringTable_create (FTHASHSIZE); return (ft); } @@ -225,7 +227,7 @@ fileTable_internAddEntry (fileTable ft, /*@only@*/ ftentry e) ft->nspace--; - hashTable_insert (ft->htable, e->fname, ft->nentries); + cstringTable_insert (ft->htable, e->fname, ft->nentries); ft->elements[ft->nentries] = e; ft->nentries++; @@ -266,15 +268,14 @@ fileTable_addFilePrim (fileTable ft, /*@only@*/ cstring name, { llassert (cstring_isUndefined (e->basename)); - e->basename = cstring_fromChars - (removePathFree (removeAnyExtension - (cstring_toCharsSafe (name)))); + e->basename = fileLib_removePathFree (fileLib_removeAnyExtension (name)); e->fsystem = context_isSystemDir (name); e->fspecial = context_isSpecialFile (name); if (e->fspecial) { - cstring srcname = cstring_concatFree (cstring_fromChars (removeAnyExtension (cstring_toCharsSafe (name))), cstring_makeLiteral (".c")); + cstring srcname = cstring_concatFree1 (fileLib_removeAnyExtension (name), + C_EXTENSION); fileId fid = fileTable_lookup (ft, srcname); cstring_free (srcname); @@ -310,6 +311,7 @@ fileId fileTable_addFile (fileTable ft, cstring name) { /* while (*name == '.' && *(name + 1) == '/') name += 2; */ + return (fileTable_addFilePrim (ft, cstring_copy (name), FALSE, FILE_NORMAL, fileId_invalid)); } @@ -323,8 +325,12 @@ fileTable_addFileOnly (fileTable ft, /*@only@*/ cstring name) fileId fileTable_addHeaderFile (fileTable ft, cstring name) { - return (fileTable_addFilePrim (ft, cstring_copy (name), FALSE, - FILE_HEADER, fileId_invalid)); + fileId res; + + res = fileTable_addFilePrim (ft, cstring_copy (name), FALSE, + FILE_HEADER, fileId_invalid); + return res; + } bool @@ -351,6 +357,18 @@ fileTable_isSystemFile (fileTable ft, fileId fid) return (ft->elements[fid]->fsystem); } +bool +fileTable_isXHFile (fileTable ft, fileId fid) +{ + if (fileId_isInvalid (fid)) + { + return FALSE; + } + + llassert (fileTable_isDefined (ft) && fileTable_inRange (ft, fid)); + return (ft->elements[fid]->ftype == FILE_XH); +} + bool fileTable_isSpecialFile (fileTable ft, fileId fid) { @@ -370,6 +388,13 @@ fileTable_addLibraryFile (fileTable ft, cstring name) FALSE, FILE_HEADER, fileId_invalid)); } +fileId +fileTable_addXHFile (fileTable ft, cstring name) +{ + return (fileTable_addFilePrim (ft, cstring_copy (name), + FALSE, FILE_XH, fileId_invalid)); +} + # ifndef NOLCL fileId fileTable_addImportFile (fileTable ft, cstring name) @@ -393,33 +418,57 @@ static int tmpcounter = 0; fileId fileTable_addMacrosFile (fileTable ft) { - cstring newname = cstring_fromChars - (makeTempName (cstring_toCharsSafe (context_tmpdir ()), "lmx", ".llm")); + cstring newname = + makeTempName (context_tmpdir (), cstring_makeLiteralTemp ("lmx"), + cstring_makeLiteralTemp (".llm")); return (fileTable_addFilePrim (ft, newname, TRUE, FILE_MACROS, fileId_invalid)); } +fileId +fileTable_addMetastateFile (fileTable ft, cstring name) +{ + return (fileTable_addFilePrim (ft, cstring_copy (name), + FALSE, FILE_METASTATE, fileId_invalid)); +} + fileId fileTable_addCTempFile (fileTable ft, fileId fid) { # if FALSE /* Can't control output file name for cl preprocessor */ - cstring newname = cstring_concatChars (removeAnyExtension (fileName (fid)), ".i"); + cstring newname = cstring_concatChars (fileLib_removeAnyExtension (fileName (fid)), ".i"); # else - cstring newname = cstring_fromChars - (makeTempName (cstring_toCharsSafe (context_tmpdir ()), "cl", ".c")); + cstring newname = + makeTempName (context_tmpdir (), cstring_makeLiteralTemp ("cl"), + C_EXTENSION); # endif llassert (fileTable_isDefined (ft)); if (!fileId_isValid (ft->elements[fid]->fder)) { - return (fileTable_addFilePrim (ft, newname, TRUE, FILE_NORMAL, fid)); + if (fileTable_isXHFile (ft, fid)) + { + return (fileTable_addFilePrim (ft, newname, TRUE, FILE_XH, fid)); + } + else + { + return (fileTable_addFilePrim (ft, newname, TRUE, FILE_NORMAL, fid)); + } } else { - return (fileTable_addFilePrim (ft, newname, TRUE, FILE_NORMAL, - ft->elements[fid]->fder)); + if (fileTable_isXHFile (ft, fid)) + { + return (fileTable_addFilePrim (ft, newname, TRUE, FILE_XH, + ft->elements[fid]->fder)); + } + else + { + return (fileTable_addFilePrim (ft, newname, TRUE, FILE_NORMAL, + ft->elements[fid]->fder)); + } } } @@ -427,12 +476,12 @@ fileTable_addCTempFile (fileTable ft, fileId fid) fileId fileTable_addltemp (fileTable ft) { - char *newname = makeTempName (cstring_toCharsSafe (context_tmpdir ()), - "ls", ".lsl"); - char *onewname; + cstring newname = makeTempName (context_tmpdir (), + cstring_makeLiteralTemp ("ls"), + cstring_makeLiteralTemp (".lsl")); fileId ret; - if (cstring_hasNonAlphaNumBar (cstring_fromChars (newname))) + if (cstring_hasNonAlphaNumBar (newname)) { char *lastpath = (char *)NULL; @@ -441,21 +490,22 @@ fileTable_addltemp (fileTable ft) lldiagmsg (message ("Operating system generates tmp filename containing invalid charater: %s", - cstring_fromChars (newname))); + newname)); lldiagmsg (cstring_makeLiteral ("Try cleaning up the tmp directory. Attempting to continue.")); } + /*@access cstring@*/ + llassert (cstring_isDefined (newname)); lastpath = strrchr (newname, CONNECTCHAR); /* get the directory */ llassert (lastpath != NULL); *lastpath = '\0'; - onewname = newname; - newname = cstring_toCharsSafe (message ("%s%hlsl%d.lsl", - cstring_fromChars (newname), - CONNECTCHAR, - tmpcounter)); - sfree (onewname); + newname = message ("%q%hlsl%d.lsl", + newname, + CONNECTCHAR, + tmpcounter); + /*@noaccess cstring@*/ tmpcounter++; } @@ -465,9 +515,9 @@ fileTable_addltemp (fileTable ft) ** since cstring is abstract. Should make it an only? */ - ret = fileTable_addFilePrim (ft, cstring_copy (cstring_fromChars (newname)), + ret = fileTable_addFilePrim (ft, cstring_copy (newname), TRUE, FILE_LSLTEMP, fileId_invalid); - sfree (newname); + cstring_free (newname); return (ret); } # endif @@ -498,6 +548,21 @@ fileTable_lookup (fileTable ft, cstring s) } } +/* +** This is pretty awkward --- when we find the real path of +** a .xh file, we may need to change the recorded name. [Sigh] +*/ + +void +fileTable_setFilePath (fileTable ft, fileId fid, cstring path) +{ + llassert (fileId_isValid (fid)); + llassert (fileTable_isDefined (ft)); + /* Need to put new string in hash table */ + cstringTable_insert (ft->htable, cstring_copy (path), fid); + ft->elements[fid]->fname = cstring_copy (path); +} + fileId fileTable_lookupBase (fileTable ft, cstring base) { @@ -555,13 +620,6 @@ fileTable_getRootName (fileTable ft, fileId fid) return cstring_makeLiteralTemp (""); } - if (fid >= ft->nentries) - { - llcontbug (message ("fileTable_getName: called with invalid id: %d", fid)); - // fprintf(stderr, "\nbad\n"); - return cstring_makeLiteralTemp (""); - } - fder = ft->elements[fid]->fder; if (fileId_isValid (fder)) @@ -667,11 +725,12 @@ fileTable_cleanup (fileTable ft) } else if (fileId_isValid (fe->fder)) { - (void) osd_unlink (cstring_toCharsSafe (fe->fname)); + /*@i423 this should use close (fd) also... */ + (void) osd_unlink (fe->fname); } else if (fe->ftype == FILE_MACROS) { - (void) osd_unlink (cstring_toCharsSafe (fe->fname)); + (void) osd_unlink (fe->fname); } else { @@ -720,7 +779,7 @@ fileTable_free (/*@only@*/ fileTable f) i++; } - hashTable_free (f->htable); + cstringTable_free (f->htable); sfree (f->elements); sfree (f); } @@ -768,15 +827,15 @@ static void nextMsg (char *msg) /*@-charint@*/ } -static /*@only@*/ char *makeTempName (char *dir, char *pre, char *suf) +static /*@only@*/ cstring makeTempName (cstring dir, cstring pre, cstring suf) { static int pid = 0; static /*@owned@*/ char *msg = NULL; - static /*@only@*/ char *pidname = NULL; - size_t maxlen; - char *buf; + static /*@only@*/ cstring pidname = NULL; + int maxlen; + cstring smsg; - llassert (strlen (pre) <= 3); + llassert (cstring_length (pre) <= 3); /* ** We limit the temp name to 8 characters: @@ -797,31 +856,24 @@ static /*@only@*/ char *makeTempName (char *dir, char *pre, char *suf) /*@=matchanyintegral@*/ } - if (pidname == NULL) + if (cstring_isUndefined (pidname)) { - pidname = cstring_toCharsSafe (message ("%d", pid % 100)); - } - else - { - pidname = mstring_createEmpty (); + pidname = message ("%d", pid % 100); } - maxlen = (strlen (dir) + strlen (pre) + strlen (msg) - + strlen (pidname) + strlen (suf) + 2); - - buf = mstring_create (size_toInt (maxlen)); + maxlen = (cstring_length (dir) + cstring_length (pre) + mstring_length (msg) + + cstring_length (pidname) + cstring_length (suf) + 2); - sprintf (buf, "%s%s%s%s%s", dir, pre, pidname, msg, suf); + smsg = message ("%s%s%s%s%s", dir, pre, pidname, cstring_fromChars (msg), suf); nextMsg (msg); - while (osd_fileExists (buf)) + while (osd_fileExists (smsg)) { - sprintf (buf, "%s%s%s%s%s", dir, pre, pidname, msg, suf); + cstring_free (smsg); + smsg = message ("%s%s%s%s%s", dir, pre, pidname, cstring_fromChars (msg), suf); nextMsg (msg); } - - return buf; -} - + return smsg; +} diff --git a/src/fileloc.c b/src/fileloc.c index bf21ba4..54018f6 100644 --- a/src/fileloc.c +++ b/src/fileloc.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -44,7 +44,7 @@ static flkind fileId_kind (fileId s) { cstring fname = rootFileName (s); - if (isLCLfile (fname)) + if (fileLib_isLCLFile (fname)) { return (FL_SPEC); } @@ -298,6 +298,14 @@ fileloc_isStandardLibrary (fileloc f) } # endif +bool +fileloc_sameFileAndLine (fileloc f1, fileloc f2) +{ + return (fileloc_sameFile (f1, f2) + && (fileloc_isDefined (f1) && fileloc_isDefined (f2) + && f1->lineno == f2->lineno)); +} + bool fileloc_sameFile (fileloc f1, fileloc f2) { @@ -369,6 +377,18 @@ bool fileloc_isSystemFile (fileloc f1) return FALSE; } +bool fileloc_isXHFile (fileloc f1) +{ + if (fileloc_isDefined (f1) + && !fileloc_isBuiltin (f1) + && !fileloc_isExternal (f1)) + { + return (fileTable_isXHFile (context_fileTable (), f1->fid)); + } + + return FALSE; +} + bool fileloc_almostSameFile (fileloc f1, fileloc f2) { @@ -542,7 +562,7 @@ fileloc_createPrim (flkind kind, fileId fid, int line, int col) f->fid = fid; f->lineno = line; f->column = col; - + return (f); } @@ -607,10 +627,8 @@ fileloc_unparse (fileloc f) if (fileloc_isDefined (f)) { - switch (f->kind) + switch (f->kind) { - case FL_LIB: - return (message ("load file %s", rootFileName (f->fid))); case FL_BUILTIN: return (cstring_makeLiteral ("Command Line")); case FL_IMPORT: @@ -634,57 +652,67 @@ fileloc_unparse (fileloc f) case FL_EXTERNAL: return (cstring_makeLiteral ("")); default: - if (context_getFlag (FLG_SHOWCOL)) - { - if (fileloc_linenoDefined (f)) - { - if (fileloc_columnDefined (f)) - { - if (parenFormat) - { - return (message ("%s(%d,%d)", - rootFileName (f->fid), - f->lineno, f->column)); - } - else - { - return (message ("%s:%d:%d", - rootFileName (f->fid), - f->lineno, f->column)); - } - } - else - { - if (parenFormat) - { - return (message ("%s(%d)", rootFileName (f->fid), f->lineno)); - } - else - { - return (message ("%s:%d", rootFileName (f->fid), f->lineno)); - } - } - } - return (cstring_copy (rootFileName (f->fid))); - } - else if (fileloc_linenoDefined (f)) - { - if (parenFormat) - { - return (message ("%s(%d)", - rootFileName (f->fid), f->lineno)); - } - else - { - return (message ("%s:%d", rootFileName (f->fid), f->lineno)); - } - } - else - { - return (cstring_copy (rootFileName (f->fid))); - } + { + cstring fname; + + if (f->kind == FL_LIB) + { + fname = message ("load file %s", rootFileName (f->fid)); + cstring_markOwned (fname); /*@i32 memory leak...@*/ + } + else + { + fname = rootFileName (f->fid); + } + + if (context_getFlag (FLG_SHOWCOL)) + { + if (fileloc_linenoDefined (f)) + { + if (fileloc_columnDefined (f)) + { + if (parenFormat) + { + return (message ("%s(%d,%d)", fname, f->lineno, f->column)); + } + else + { + return (message ("%s:%d:%d", fname, f->lineno, f->column)); + } + } + else + { + if (parenFormat) + { + return (message ("%s(%d)", fname, f->lineno)); + } + else + { + return (message ("%s:%d", fname, f->lineno)); + } + } + } + return (cstring_copy (fname)); + } + else if (fileloc_linenoDefined (f)) + { + if (parenFormat) + { + return (message ("%s(%d)", fname, f->lineno)); + } + else + { + return (message ("%s:%d", fname, f->lineno)); + } + } + else + { + return (cstring_copy (fname)); + } + } } } + return (cstring_makeLiteral ("< Location unknown >")); } @@ -757,11 +785,6 @@ bool fileloc_isRealSpec (fileloc f) return (fileloc_isDefined (f) && (f->kind == FL_SPEC)); } -bool fileloc_isRealLib (fileloc f) -{ - return (fileloc_isDefined (f) && f->kind == FL_LIB); -} - bool fileloc_isLib (fileloc f) { return (fileloc_isDefined (f) diff --git a/src/filelocList.c b/src/filelocList.c index 8c3b4c2..2649d37 100644 --- a/src/filelocList.c +++ b/src/filelocList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/filelocStack.c b/src/filelocStack.c index 354488f..1476c83 100644 --- a/src/filelocStack.c +++ b/src/filelocStack.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/flagMarker.c b/src/flagMarker.c index 86b0ca8..a34d281 100644 --- a/src/flagMarker.c +++ b/src/flagMarker.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -71,6 +71,7 @@ flagMarker flagMarker_createIgnoreCount (int count, fileloc loc) c->info.nerrors = count; c->loc = fileloc_copy (loc); + DPRINTF (("Create ignore count: %s", flagMarker_unparse (c))); return c; } @@ -113,7 +114,7 @@ cstring flagMarker_unparse (flagMarker c) case FMK_LOCALSET: return (message ("%q: %s%s", fileloc_unparse (c->loc), ynm_unparseCode (c->info.set), - flagcode_name (c->code))); + flagcode_unparse (c->code))); case FMK_IGNORECOUNT: return (message ("%q: ignore count %d", fileloc_unparse (c->loc), c->info.nerrors)); @@ -126,7 +127,7 @@ cstring flagMarker_unparse (flagMarker c) case FMK_SUPPRESS: return (message ("%q: suppress %s", fileloc_unparse (c->loc), - flagcode_name (c->code))); + flagcode_unparse (c->code))); } BADBRANCH; @@ -134,6 +135,7 @@ cstring flagMarker_unparse (flagMarker c) void flagMarker_free (/*@only@*/ flagMarker c) { + fileloc_free (c->loc); /* evans 2001-03-24: LCLint caught this... */ sfree (c); } diff --git a/src/flagMarkerList.c b/src/flagMarkerList.c index cd3fe67..5439569 100644 --- a/src/flagMarkerList.c +++ b/src/flagMarkerList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -71,39 +71,40 @@ void flagMarkerList_add (flagMarkerList s, flagMarker fm) { int i = s->nelements - 1; - if (i > 0) { flagMarker last = s->elements[i]; - if (flagMarker_isIgnoreCount (last)) { if (!flagMarker_isIgnoreOff (fm)) { if (flagMarker_isLocalSet (fm)) { - llforceerror - (FLG_WARNFLAGS, - cstring_makeLiteral ("Cannot set flag inside ignore " - "count region."), - flagMarker_getLoc (fm)); - llgenindentmsg - (cstring_makeLiteral ("Ignore count region starts"), - flagMarker_getLoc (last)); - + if (llforceerror + (FLG_WARNFLAGS, + cstring_makeLiteral ("Cannot set flag inside ignore " + "count region."), + flagMarker_getLoc (fm))) + { + llgenindentmsg + (cstring_makeLiteral ("Ignore count region starts"), + flagMarker_getLoc (last)); + } } else { if (flagMarker_isIgnoreOn (fm)) { - llforceerror - (FLG_WARNFLAGS, - cstring_makeLiteral ("Cannot nest ignore regions."), - flagMarker_getLoc (fm)); - llgenindentmsg - (cstring_makeLiteral ("Previous ignore region starts"), - flagMarker_getLoc (last)); + if (llforceerror + (FLG_WARNFLAGS, + cstring_makeLiteral ("Cannot nest ignore regions."), + flagMarker_getLoc (fm))) + { + llgenindentmsg + (cstring_makeLiteral ("Previous ignore region starts"), + flagMarker_getLoc (last)); + } } } @@ -116,37 +117,42 @@ void flagMarkerList_add (flagMarkerList s, flagMarker fm) if (flagMarker_isIgnoreOff (last)) { flagMarker nlast = s->elements [i - 1]; - + if (flagMarker_isIgnoreCount (nlast)) { - if (fileloc_sameFile (flagMarker_getLoc (fm), - flagMarker_getLoc (last)) - && fileloc_notAfter (flagMarker_getLoc (fm), - flagMarker_getLoc (last))) + if (fileloc_sameFileAndLine (flagMarker_getLoc (fm), + flagMarker_getLoc (nlast))) { if (flagMarker_isLocalSet (fm)) { - llforceerror - (FLG_WARNFLAGS, - cstring_makeLiteral ("Cannot set flag inside ignore " - "count region."), - flagMarker_getLoc (fm)); - llgenindentmsg - (cstring_makeLiteral ("Ignore count region starts"), - flagMarker_getLoc (nlast)); - + if (llforceerror + (FLG_WARNFLAGS, + cstring_makeLiteral ("Cannot set flag inside ignore " + "count region."), + flagMarker_getLoc (fm))) + { + llgenindentmsg + (cstring_makeLiteral ("Ignore count region starts"), + flagMarker_getLoc (nlast)); + DPRINTF (("Last: %s / %s", + fileloc_unparse (flagMarker_getLoc (last)), + fileloc_unparse (flagMarker_getLoc (fm)))); + + } } else { if (flagMarker_isIgnoreOn (fm)) { - llforceerror - (FLG_WARNFLAGS, - cstring_makeLiteral ("Cannot nest ignore regions."), - flagMarker_getLoc (fm)); - llgenindentmsg - (cstring_makeLiteral ("Previous ignore region starts"), - flagMarker_getLoc (nlast)); + if (llforceerror + (FLG_WARNFLAGS, + cstring_makeLiteral ("Cannot nest ignore regions."), + flagMarker_getLoc (fm))) + { + llgenindentmsg + (cstring_makeLiteral ("Previous ignore region starts"), + flagMarker_getLoc (nlast)); + } } } @@ -223,10 +229,11 @@ void flagMarkerList_checkSuppressCounts (flagMarkerList s) if (nexpected > 0 && nexpected != nsuppressed) { - llforceerror + /* Must use forceerror to prevent self-suppression! */ + llforceerror (FLG_SUPCOUNTS, message - ("Line expects to suppress %d error%p, found %d error%p", + ("Line expects to suppress %d error%&, found %d error%&", nexpected, nsuppressed), loc); } diff --git a/src/flagSpec.c b/src/flagSpec.c new file mode 100644 index 0000000..d2acb8b --- /dev/null +++ b/src/flagSpec.c @@ -0,0 +1,177 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** flagSpec.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +static /*@only@*/ flagSpecItem flagSpecItem_create (/*@only@*/ cstring fname) +{ + flagSpecItem res = (flagSpecItem) dmalloc (sizeof (*res)); + res->name = fname; + res->code = identifyFlag (fname); + /* Invalid flag okay for now... */ + return res; +} + +static void flagSpecItem_free (/*@only@*/ flagSpecItem fitem) +{ + cstring_free (fitem->name); + sfree (fitem); +} + +static /*@only@*/ flagSpec flagSpec_create (/*@only@*/ flagSpecItem fitem, + /*@only@*/ flagSpec frest) +{ + flagSpec res = (flagSpec) dmalloc (sizeof (*res)); + res->tspec = fitem; + res->trest = frest; + return res; +} + +flagSpec flagSpec_createPlain (cstring fname) +{ + flagSpecItem fitem = flagSpecItem_create (fname); + flagSpec res = flagSpec_create (fitem, flagSpec_undefined); + return res; +} + +flagSpec flagSpec_createOr (cstring fname, flagSpec f) +{ + return flagSpec_create (flagSpecItem_create (fname), f); +} + +void flagSpec_free (flagSpec f) +{ + if (flagSpec_isDefined (f)) + { + flagSpecItem_free (f->tspec); + if (flagSpec_isDefined (f->trest)) + { + flagSpec_free (f->trest); + } + + sfree (f); + } +} + +cstring flagSpec_unparse (flagSpec f) +{ + if (flagSpec_isDefined (f)) + { + if (flagSpec_isDefined (f->trest)) + { + return message ("%s | %q", f->tspec->name, flagSpec_unparse (f->trest)); + } + else + { + return cstring_copy (f->tspec->name); + } + } + else + { + return cstring_makeLiteral ("<*** flagSpec undefined ***>"); + } +} + +cstring flagSpec_dump (flagSpec f) +{ + llassert (flagSpec_isDefined (f)); + llassert (!cstring_containsChar (f->tspec->name, '|')); + llassert (!cstring_containsChar (f->tspec->name, '#')); + + if (flagSpec_isDefined (f->trest)) + { + return message ("%s|%q", f->tspec->name, flagSpec_dump (f->trest)); + } + else + { + return cstring_copy (f->tspec->name); + } +} + +flagSpec +flagSpec_undump (char **s) +{ + cstring flagname; + flagname = reader_readUntilOne (s, "#|"); + + if (reader_optCheckChar (s, '|')) + { + return flagSpec_createOr (flagname, flagSpec_undump (s)); + } + else + { + return flagSpec_createPlain (flagname); + } +} + +flagcode +flagSpec_getDominant (flagSpec fs) +{ + llassert (flagSpec_isDefined (fs)); + + /* Invalid flags? */ + return fs->tspec->code; +} + +bool +flagSpec_isOn (flagSpec fs, fileloc loc) +{ + llassert (flagSpec_isDefined (fs)); + + if (context_flagOn (fs->tspec->code, loc)) + { + return TRUE; + } + else if (flagSpec_isDefined (fs->trest)) + { + return flagSpec_isOn (fs->trest, loc); + } + else + { + return FALSE; + } +} + +flagcode +flagSpec_getFirstOn (flagSpec fs, fileloc loc) +{ + llassert (flagSpec_isDefined (fs)); + + if (context_flagOn (fs->tspec->code, loc)) + { + return fs->tspec->code; + } + else if (flagSpec_isDefined (fs->trest)) + { + return flagSpec_getFirstOn (fs->trest, loc); + } + else + { + BADBRANCH; + } +} diff --git a/src/flags.c b/src/flags.c index 4b70fa6..299e05a 100644 --- a/src/flags.c +++ b/src/flags.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -54,9 +54,10 @@ static flagcatinfo categories[] = { FK_ANSI, "ansi", "violations of constraints imposed by ANSI/ISO standard" } , { FK_ARRAY, "arrays", "special checking involving arrays" } , { FK_BOOL, "booleans", "checking and naming of boolean types" } , - { FK_COMMENTS, "comments", "interpretation of stylized comments" } , + { FK_COMMENTS, "comments", "interpretation of semantic comments" } , { FK_COMPLETE, "complete", "completely defined, used, or specified system" } , { FK_CONTROL, "controlflow", "suspicious control structures" } , + { FK_DEBUG, "debug", "flags for debugging lclint" } , { FK_DECL, "declarations", "consistency of declarations" } , { FK_DEF, "definition", "undefined storage errors" } , { FK_DIRECT, "directories", "set directores" } , @@ -92,13 +93,14 @@ static flagcatinfo categories[] = { FK_PROTOS, "prototypes", "function prototypes" } , { FK_DEAD, "released", "using storage that has been deallocated" } , { FK_IGNORERET, "returnvals", "ignored return values" }, + { FK_SECURITY, "security", "possible security vulnerability" }, { FK_SPEC, "specifications", "checks involving .lcl specifications" } , { FK_SUPPRESS, "suppress", "local and global suppression of messages" } , { FK_TYPEEQ, "typeequivalence", "control what types are equivalent" } , { FK_BEHAVIOR, "undefined", "code with undefined or implementation-defined behavior" } , { FK_UNRECOG, "unrecognized", "unrecognized identifiers" } , { FK_UNSPEC, "unconstrained", "checking in the presence of unconstrained functions" } , - { FK_DEBUG, NULL, NULL } , + { FK_WARNUSE, "warnuse", "use of possibly problematic function" } , { FK_SYNTAX, NULL, NULL } , { FK_TYPE, NULL, NULL } , { FK_SECRET, NULL, NULL } , @@ -193,6 +195,11 @@ void flags_initMod () /*@+enumint@*/ if (flags[code].code != code) { + fprintf (stderr, + "*** ERROR: inconsistent flag %s / %d / %d", + flags[code].flag, + flags[code].code, code); + llbug (message ("*** ERROR: inconsistent flag %s / %d / %d", cstring_fromChars (flags[code].flag), flags[code].code, code)); @@ -626,8 +633,9 @@ void printAlphaFlags () cstringSList_printSpaced (fl, 3, 1, context_getLineLen () - 25); cstringSList_free (fl); } + /*@observer@*/ cstring -flagcode_name (flagcode code) +flagcode_unparse (flagcode code) { return cstring_fromChars (flags[code].flag); } @@ -941,6 +949,8 @@ void setValueFlag (flagcode opt, cstring arg) case FLG_LCLEXPECT: case FLG_LIMIT: case FLG_LINELEN: + case FLG_INDENTSPACES: + case FLG_BUGSLIMIT: case FLG_EXTERNALNAMELEN: case FLG_INTERNALNAMELEN: case FLG_CONTROLNESTDEPTH: @@ -962,7 +972,7 @@ void setValueFlag (flagcode opt, cstring arg) } else { - context_setValueAndFlag (opt, val); + context_setValueAndFlag (opt, val); } } break; @@ -1116,7 +1126,6 @@ extern int flagcode_valueIndex (flagcode f) /*@unchecked@*/ static bool initialized = FALSE; int i; /*@unchecked@*/ static flagcode valueFlags[NUMVALUEFLAGS]; - if (!initialized) { @@ -1127,14 +1136,15 @@ extern int flagcode_valueIndex (flagcode f) if (flagcode_hasValue (code)) { llassert (nv < NUMVALUEFLAGS); + DPRINTF (("Value flag: %s [%d]", flagcode_unparse (code), (int) code)); valueFlags[nv] = code; - nv++; + nv++; } } end_allFlagCodes; llassertprint (nv == NUMVALUEFLAGS, - ("number of value flags: %d (expected %d)", - nv, NUMVALUEFLAGS)); + ("Number of value flags: %d (expected %d)", + nv, (int) NUMVALUEFLAGS)); initialized = TRUE; } @@ -1147,7 +1157,12 @@ extern int flagcode_valueIndex (flagcode f) } } + fprintf (stderr, "Cannot find value flag: %d", (int) f); + exit (EXIT_FAILURE); + /* Cannot do this...might call recursively... + llfatalbug (message ("Cannot fine value flag: %d", (int) f)); BADEXIT; + */ } extern int flagcode_stringIndex (flagcode f) diff --git a/src/flags.def b/src/flags.def index 510acff..6fde927 100644 --- a/src/flags.def +++ b/src/flags.def @@ -27,6 +27,8 @@ /*@notfunction@*/ # define debugFlag FALSE, TRUE, FALSE, FALSE, ARG_NONE /*@notfunction@*/ +# define debugValueFlag FALSE, TRUE, FALSE, FALSE, ARG_VALUE +/*@notfunction@*/ # define specialDebugFlag TRUE, TRUE, FALSE, FALSE, ARG_NONE /*@notfunction@*/ # define globalFlag FALSE, FALSE, TRUE, FALSE, ARG_NONE @@ -52,3472 +54,3617 @@ ** the lines. */ -static flaglist flags = { - /* Deprecated +static flaglist flags = { - FK_ABSTRACT, FK_BOOL, plainFlag, - "bool", - F*//*Hide flag from makefile grep*//*LG_ABSTRACTBOOL, - "boolean type is abstract", - NULL, 0, 0 + { + FK_BOOL, FK_HELP, plainFlag, + "likelybool", + FLG_LIKELYBOOL, + "type name is probably a boolean type but does not match default " + "boolean type name, \"bool\", and alternate name is not set", + "Use the -booltype, -boolfalse and -booltrue flags to change the " + "name of the default boolean type.", + 0, 0 }, - */ -{ - FK_BOOL, FK_HELP, plainFlag, - "likelybool", - FLG_LIKELYBOOL, - "type name is probably a boolean type but does not match default " - "boolean type name, \"bool\", and alternate name is not set", - "Use the -booltype, -boolfalse and -booltrue flags to change the " - "name of the default boolean type.", - 0, 0 - }, -{ - FK_ABSTRACT, FK_IMPLICIT, plainFlag, - "impabstract", - FLG_IMPABSTRACT, - "assume user type definitions are abstract (unless /*@concrete@*/ is used)", - NULL, - 0, 0 - }, -{ - FK_ABSTRACT, FK_NAMES, specialFlag, - "accessall", - FLG_ACCESSALL, - "set accessmodule, accessfile and accessczech", - "Sets accessmodule, accessfile and accessczech", - 0, 0 - }, -{ - FK_ABSTRACT, FK_NAMES, plainFlag, - "accessmodule", - FLG_ACCESSMODULE, - "allow access to abstract types in definition module", - "The representation of an abstract type defined in . is " - "accessible anywhere in a file named ..", - 0, 0 - }, -{ - FK_ABSTRACT, FK_NAMES, plainFlag, - "accessfile", - FLG_ACCESSFILE, - "allow access to abstract types by file name convention", - "The representation of an abstract type named is " - "accessible anywhere in a file named ..", - 0, 0 - }, -{ - FK_ABSTRACT, FK_NAMES, plainFlag, - "accessczech", - FLG_ACCESSCZECH, - "allow access to abstract types by czech naming convention", - "The representation of an abstract type named is accessible " - "in the definition of a function or constant named _", - 0, 0 - }, -{ - FK_ABSTRACT, FK_NAMES, plainFlag, - "accessslovak", - FLG_ACCESSSLOVAK, - "allow access to abstract types by slovak naming convention", - "The representation of an abstract type named is accessible " - "in the definition of a function or constant named ", - 0, 0 - }, -{ - FK_ABSTRACT, FK_NAMES, plainFlag, - "accessczechoslovak", - FLG_ACCESSCZECHOSLOVAK, - "allow access to abstract types by czechoslovak naming convention", - "The representation of an abstract type named is accessible " - "in the definition of a function or constant named _ or ", - 0, 0 - }, -{ - FK_ABSTRACT, FK_NONE, plainFlag, - "abstract", - FLG_ABSTRACT, - "data abstraction barriers", - "An abstraction barrier is broken. If necessary, use /*@access @*/ to allow access to an abstract type.", - 0, 0 - }, -{ - FK_ABSTRACT, FK_NONE, modeFlag, - "mutrep", - FLG_MUTREP, - "representation of mutable type has sharing semantics", - "LCL semantics requires that a mutable type exhibits sharing semantics. In order for objects to be shared a indirection is necessary in the representation. A mutable type may be represented by a pointer or an abstract mutable type. Handles into static data are fine, too, but will generate this error message unless it is suppressed.", - 0, 0 - }, -{ - FK_ALIAS, FK_GLOBALS, specialFlag, - "globalias", - FLG_GLOBALIAS, - "function returns with global aliasing external state (sets " - "checkstrictglobalias, checkedglobalias, checkmodglobalias and " - "uncheckedglobalias)", - "A global variable aliases externally-visible state when the function returns.", - 0, 0 - }, -{ - FK_ALIAS, FK_GLOBALS, modeFlag, - "checkstrictglobalias", - FLG_CHECKSTRICTGLOBALIAS, - "function returns with a checkstrict global aliasing external state", - "A global variable aliases externally-visible state when the function returns.", - 0, 0 - }, -{ - FK_ALIAS, FK_GLOBALS, modeFlag, - "checkedglobalias", - FLG_CHECKEDGLOBALIAS, - "function returns with a checked global aliasing external state", - "A global variable aliases externally-visible state when the function returns.", - 0, 0 - }, -{ - FK_ALIAS, FK_GLOBALS, modeFlag, - "checkmodglobalias", - FLG_CHECKMODGLOBALIAS, - "function returns with a checkmod global aliasing external state", - "A global variable aliases externally-visible state when the function returns.", - 0, 0 - }, -{ - FK_ALIAS, FK_GLOBALS, modeFlag, - "uncheckedglobalias", - FLG_UNCHECKEDGLOBALIAS, - "function returns with an unchecked global aliasing external state", - "A global variable aliases externally-visible state when the function returns.", - 0, 0 - }, -{ - FK_ALIAS, FK_MEMORY, modeFlag, - "aliasunique", - FLG_ALIASUNIQUE, - "unique parameter is aliased", - "A unique or only parameter is aliased by some other parameter or visible global.", - 0, 0 - }, -{ - FK_ALIAS, FK_MEMORY, modeFlag, - "mayaliasunique", - FLG_MAYALIASUNIQUE, - "unique parameter may be aliased", - "A unique or only parameter may be aliased by some other parameter or visible global.", - 0, 0 - }, -{ - FK_ALIAS, FK_MEMORY, modeFlag, - "mustnotalias", - FLG_MUSTNOTALIAS, - "temp storage aliased at return point or scope exit", - "An alias has been added to a temp-qualifier parameter or global that is visible externally when the function returns. If the aliasing is needed, use the /*@shared@*/ annotation to indicate that new aliases to the parameter may be created.", - 0, 0 - }, -{ - FK_ALIAS, FK_NONE, modeFlag, - "retalias", - FLG_RETALIAS, - "function returns alias to parameter or global", - "The returned value shares storage with a parameter or global. If a parameter is to be returned, use the returned qualifier. If the result is not modified, use the observer qualifier on the result type. Otherwise, exposed can be used, but limited checking is done.", 0, 0 - }, -{ - FK_ANSI, FK_PROTOS, modeFlag, - "noparams", - FLG_NOPARAMS, - "function declaration has no parameter list", - "A function declaration does not have a parameter list.", - 0, 0 - }, -{ - FK_ANSI, FK_PROTOS, modeFlag, - "oldstyle", - FLG_OLDSTYLE, - "old style function definition", - "Function definition is in old style syntax. Standard prototype " - "syntax is preferred.", - 0, 0 - }, -{ - FK_ANSI, FK_SYNTAX, plainFlag, - "gnuextensions", - FLG_GNUEXTENSIONS, - "support some gnu (gcc) language extensions", - NULL, 0, 0 - }, -{ - FK_ANSI, FK_NONE, plainFlag, - "usevarargs", - FLG_USEVARARGS, - "non-standard included", - "Header is not part of ANSI Standard. " - "Should use instead.", - 0, 0 - }, -{ - FK_ANSI, FK_LIBS, plainFlag, - "warnposixheaders", - FLG_WARNPOSIX, - "a POSIX header is included, but the POSIX library is not used", - "Header name matches a POSIX header, but the POSIX library is not selected.", - 0, 0 - }, -{ - FK_BEHAVIOR, FK_ANSI, modeFlag, - "exitarg", - FLG_EXITARG, - "argument to exit has implementation defined behavior", - "The argument to exit should be 0, EXIT_SUCCESS or EXIT_FAILURE", - 0, 0 - }, -{ - FK_BEHAVIOR, FK_ANSI, modeFlag, - "evalorder", - FLG_EVALORDER, - "code has unspecified or implementation-dependent behavior " - "because of order of evaluation", - "Code has unspecified behavior. " - "Order of evaluation of function parameters or subexpressions " - "is not defined, so if a value is used and modified in different " - "places not separated by a sequence point constraining " - "evaluation order, then the result of the expression is " - "unspecified.", - 0, 0 - }, -{ - FK_BEHAVIOR, FK_ANSI, modeFlag, - "evalorderuncon", - FLG_EVALORDERUNCON, - "code involving call to unspecified function has undefined or implementation-dependent behavior", - "Code involving a call to function with no modifies or globals clause " - "may have undefined or implementation-dependent behavior (LCLint assumes the " - "unconstrained call may modify any reachable state or use any global). Add a " - "specification for the function.", - 0, 0 - }, -{ - FK_BOOL, FK_NONE, regStringFlag, - "boolfalse", - FLG_BOOLFALSE, - "set name of boolean false (default FALSE)", - NULL, 0, 0 - }, -{ - FK_BOOL, FK_NONE, regStringFlag, - "booltype", - FLG_BOOLTYPE, - "set name of boolean type (default bool)", - NULL, 0, 0 - }, -{ - FK_BOOL, FK_NONE, regStringFlag, - "booltrue", - FLG_BOOLTRUE, - "set name of boolean true (default TRUE)", - NULL, 0, 0 - }, -{ - FK_COMMENTS, FK_ABSTRACT, plainFlag, - "noaccess", - FLG_NOACCESS, - "ignore access comments", - NULL, 0, 0 - }, -{ - FK_COMMENTS, FK_SUPPRESS, plainFlag, - "nocomments", - FLG_NOCOMMENTS, - "ignore all stylized comments", - NULL, 0, 0 - }, -{ - FK_COMMENTS, FK_SYNTAX, plainFlag, - "unrecogcomments", - FLG_UNRECOGCOMMENTS, - "stylized comment is unrecognized", - "Word after a stylized comment marker does not correspond to a " - "stylized comment.", - 0, 0 - }, -{ - FK_COMMENTS, FK_SYNTAX, plainFlag, - "continuecomment", - FLG_CONTINUECOMMENT, - "line continuation marker (\\) in comment before */ on same line", - "A line continuation marker (\\) appears inside a comment on the same " - "line as the comment close. Preprocessors should handle this " - "correctly, but it causes problems for some preprocessors.", - 0, 0 - }, -{ - FK_COMMENTS, FK_SYNTAX, plainFlag, - "nestcomment", - FLG_NESTCOMMENT, - "comment begins inside comment", - "A comment open sequence (/*) appears within a comment. This usually " - "means an earlier comment was not closed.", - 0, 0 - }, -{ - FK_COMMENTS, FK_SUPPRESS, modeFlag, - "tmpcomments", - FLG_TMPCOMMENTS, - "interpret t comments (ignore errors in lines marked with /*@t@*/", - NULL, 0, 0 - }, -{ - FK_COMMENTS, FK_SUPPRESS, plainFlag, - "lintcomments", - FLG_LINTCOMMENTS, - "interpret traditional lint comments (/*FALLTHROUGH*/, /*NOTREACHED*/)", - NULL, 0, 0 - }, -{ - FK_COMMENTS, FK_SUPPRESS, modeFlag, - "warnlintcomments", - FLG_WARNLINTCOMMENTS, - "print a warning and suggest an alternative when a traditional lint " - "comment is used", - "A traditional lint comment is used. Some traditional lint comments " - "are interpreted by LCLint to enable easier checking of legacy " - "code. It is preferable to replace these comments with the " - "suggested LCLint alternative.", - 0, 0 - }, -{ - FK_COMPLETE, FK_NONE, modeFlag, - "declundef", - FLG_DECLUNDEF, - "function or variable declared but never defined", - "A function or variable is declared, but not defined in any source code file.", - 0, 0 - }, -{ - FK_COMPLETE, FK_SPEC, modeFlag, - "specundef", - FLG_SPECUNDEF, - "function or variable specified but never defined", - "A function or variable is declared in an .lcl file, but not defined in any source code file.", - 0, 0 - }, -{ - FK_COMPLETE, FK_SPEC, plainFlag, - "specundecl", - FLG_SPECUNDECL, - "function or variable specified but never declared in a source file", - "A function or variable is declared in an .lcl file, but not declared " - "in any source code file.", - 0, 0 - }, -{ - FK_CONTROL, FK_MEMORY, modeFlag, - "loopexec", - FLG_LOOPEXEC, - "assume all loops execute at least once", - NULL, 0, 0 - }, -{ - FK_CONTROL, FK_NONE, plainFlag, - "control", - FLG_CONTROL, - NULL, NULL, - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "infloops", - FLG_INFLOOPS, - "likely infinite loop is detected", - "This appears to be an infinite loop. Nothing in the body of the " - "loop or the loop test modifies the value of the loop test. " - "Perhaps the specification of a function called in the loop " - "body is missing a modification.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "infloopsuncon", - FLG_INFLOOPSUNCON, - "likely infinite loop is detected (may result from unconstrained function)", - "This appears to be an infinite loop. Nothing in the body of the " + { + FK_ABSTRACT, FK_IMPLICIT, plainFlag, + "impabstract", + FLG_IMPABSTRACT, + "assume user type definitions are abstract (unless /*@concrete@*/ is used)", + NULL, + 0, 0 + }, + { + FK_ABSTRACT, FK_NAMES, specialFlag, + "accessall", + FLG_ACCESSALL, + "set accessmodule, accessfile and accessczech", + "Sets accessmodule, accessfile and accessczech", + 0, 0 + }, + { + FK_ABSTRACT, FK_NAMES, plainFlag, + "accessmodule", + FLG_ACCESSMODULE, + "allow access to abstract types in definition module", + "The representation of an abstract type defined in . is " + "accessible anywhere in a file named ..", + 0, 0 + }, + { + FK_ABSTRACT, FK_NAMES, plainFlag, + "accessfile", + FLG_ACCESSFILE, + "allow access to abstract types by file name convention", + "The representation of an abstract type named is " + "accessible anywhere in a file named ..", + 0, 0 + }, + { + FK_ABSTRACT, FK_NAMES, plainFlag, + "accessczech", + FLG_ACCESSCZECH, + "allow access to abstract types by czech naming convention", + "The representation of an abstract type named is accessible " + "in the definition of a function or constant named _", + 0, 0 + }, + { + FK_ABSTRACT, FK_NAMES, plainFlag, + "accessslovak", + FLG_ACCESSSLOVAK, + "allow access to abstract types by slovak naming convention", + "The representation of an abstract type named is accessible " + "in the definition of a function or constant named ", + 0, 0 + }, + { + FK_ABSTRACT, FK_NAMES, plainFlag, + "accessczechoslovak", + FLG_ACCESSCZECHOSLOVAK, + "allow access to abstract types by czechoslovak naming convention", + "The representation of an abstract type named is accessible " + "in the definition of a function or constant named _ or ", + 0, 0 + }, + { + FK_ABSTRACT, FK_NONE, plainFlag, + "abstract", + FLG_ABSTRACT, + "data abstraction barriers", + "An abstraction barrier is broken. If necessary, use /*@access @*/ to allow access to an abstract type.", + 0, 0 + }, + { + FK_ABSTRACT, FK_NONE, modeFlag, + "mutrep", + FLG_MUTREP, + "representation of mutable type has sharing semantics", + "LCL semantics requires that a mutable type exhibits sharing semantics. In order for objects to be shared a indirection is necessary in the representation. A mutable type may be represented by a pointer or an abstract mutable type. Handles into static data are fine, too, but will generate this error message unless it is suppressed.", + 0, 0 + }, + { + FK_ALIAS, FK_GLOBALS, specialFlag, + "globalias", + FLG_GLOBALIAS, + "function returns with global aliasing external state (sets " + "checkstrictglobalias, checkedglobalias, checkmodglobalias and " + "uncheckedglobalias)", + "A global variable aliases externally-visible state when the function returns.", + 0, 0 + }, + { + FK_ALIAS, FK_GLOBALS, modeFlag, + "checkstrictglobalias", + FLG_CHECKSTRICTGLOBALIAS, + "function returns with a checkstrict global aliasing external state", + "A global variable aliases externally-visible state when the function returns.", + 0, 0 + }, + { + FK_ALIAS, FK_GLOBALS, modeFlag, + "checkedglobalias", + FLG_CHECKEDGLOBALIAS, + "function returns with a checked global aliasing external state", + "A global variable aliases externally-visible state when the function returns.", + 0, 0 + }, + { + FK_ALIAS, FK_GLOBALS, modeFlag, + "checkmodglobalias", + FLG_CHECKMODGLOBALIAS, + "function returns with a checkmod global aliasing external state", + "A global variable aliases externally-visible state when the function returns.", + 0, 0 + }, + { + FK_ALIAS, FK_GLOBALS, modeFlag, + "uncheckedglobalias", + FLG_UNCHECKEDGLOBALIAS, + "function returns with an unchecked global aliasing external state", + "A global variable aliases externally-visible state when the function returns.", + 0, 0 + }, + { + FK_ALIAS, FK_MEMORY, modeFlag, + "aliasunique", + FLG_ALIASUNIQUE, + "unique parameter is aliased", + "A unique or only parameter is aliased by some other parameter or visible global.", + 0, 0 + }, + { + FK_ALIAS, FK_MEMORY, modeFlag, + "mayaliasunique", + FLG_MAYALIASUNIQUE, + "unique parameter may be aliased", + "A unique or only parameter may be aliased by some other parameter or visible global.", + 0, 0 + }, + { + FK_ALIAS, FK_MEMORY, modeFlag, + "mustnotalias", + FLG_MUSTNOTALIAS, + "temp storage aliased at return point or scope exit", + "An alias has been added to a temp-qualifier parameter or global that is visible externally when the function returns. If the aliasing is needed, use the /*@shared@*/ annotation to indicate that new aliases to the parameter may be created.", + 0, 0 + }, + { + FK_ALIAS, FK_NONE, modeFlag, + "retalias", + FLG_RETALIAS, + "function returns alias to parameter or global", + "The returned value shares storage with a parameter or global. If a parameter is to be returned, use the returned qualifier. If the result is not modified, use the observer qualifier on the result type. Otherwise, exposed can be used, but limited checking is done.", 0, 0 + }, + { + FK_ANSI, FK_PROTOS, modeFlag, + "noparams", + FLG_NOPARAMS, + "function declaration has no parameter list", + "A function declaration does not have a parameter list.", + 0, 0 + }, + { + FK_ANSI, FK_PROTOS, modeFlag, + "oldstyle", + FLG_OLDSTYLE, + "old style function definition", + "Function definition is in old style syntax. Standard prototype " + "syntax is preferred.", + 0, 0 + }, + { + FK_ANSI, FK_SYNTAX, plainFlag, + "gnuextensions", + FLG_GNUEXTENSIONS, + "support some gnu (gcc) language extensions", + NULL, 0, 0 + }, + { + FK_ANSI, FK_NONE, plainFlag, + "usevarargs", + FLG_USEVARARGS, + "non-standard included", + "Header is not part of ANSI Standard. " + "Should use instead.", + 0, 0 + }, + { + FK_ANSI, FK_LIBS, plainFlag, + "warnposixheaders", + FLG_WARNPOSIX, + "a POSIX header is included, but the POSIX library is not used", + "Header name matches a POSIX header, but the POSIX library is not selected.", + 0, 0 + }, + { + FK_BEHAVIOR, FK_ANSI, modeFlag, + "exitarg", + FLG_EXITARG, + "argument to exit has implementation defined behavior", + "The argument to exit should be 0, EXIT_SUCCESS or EXIT_FAILURE", + 0, 0 + }, + { + FK_BEHAVIOR, FK_ANSI, modeFlag, + "evalorder", + FLG_EVALORDER, + "code has unspecified or implementation-dependent behavior " + "because of order of evaluation", + "Code has unspecified behavior. " + "Order of evaluation of function parameters or subexpressions " + "is not defined, so if a value is used and modified in different " + "places not separated by a sequence point constraining " + "evaluation order, then the result of the expression is " + "unspecified.", + 0, 0 + }, + { + FK_BEHAVIOR, FK_ANSI, modeFlag, + "evalorderuncon", + FLG_EVALORDERUNCON, + "code involving call to unspecified function has undefined or implementation-dependent behavior", + "Code involving a call to function with no modifies or globals clause " + "may have undefined or implementation-dependent behavior (LCLint assumes the " + "unconstrained call may modify any reachable state or use any global). Add a " + "specification for the function.", + 0, 0 + }, + { + FK_BOOL, FK_NONE, regStringFlag, + "boolfalse", + FLG_BOOLFALSE, + "set name of boolean false (default FALSE)", + NULL, 0, 0 + }, + { + FK_BOOL, FK_NONE, regStringFlag, + "booltype", + FLG_BOOLTYPE, + "set name of boolean type (default bool)", + NULL, 0, 0 + }, + { + FK_BOOL, FK_NONE, regStringFlag, + "booltrue", + FLG_BOOLTRUE, + "set name of boolean true (default TRUE)", + NULL, 0, 0 + }, + { + FK_COMMENTS, FK_ABSTRACT, plainFlag, + "noaccess", + FLG_NOACCESS, + "ignore access comments", + NULL, 0, 0 + }, + { + FK_COMMENTS, FK_SUPPRESS, plainFlag, + "nocomments", + FLG_NOCOMMENTS, + "ignore all stylized comments", + NULL, 0, 0 + }, + { + FK_COMMENTS, FK_SYNTAX, plainFlag, + "unrecogcomments", + FLG_UNRECOGCOMMENTS, + "stylized comment is unrecognized", + "Word after a stylized comment marker does not correspond to a " + "stylized comment.", + 0, 0 + }, + { + FK_COMMENTS, FK_SYNTAX, plainFlag, + "continuecomment", + FLG_CONTINUECOMMENT, + "line continuation marker (\\) in comment before */ on same line", + "A line continuation marker (\\) appears inside a comment on the same " + "line as the comment close. Preprocessors should handle this " + "correctly, but it causes problems for some preprocessors.", + 0, 0 + }, + { + FK_COMMENTS, FK_SYNTAX, plainFlag, + "nestcomment", + FLG_NESTCOMMENT, + "comment begins inside comment", + "A comment open sequence (/*) appears within a comment. This usually " + "means an earlier comment was not closed.", + 0, 0 + }, + { + FK_COMMENTS, FK_SUPPRESS, modeFlag, + "tmpcomments", + FLG_TMPCOMMENTS, + "interpret t comments (ignore errors in lines marked with /*@t@*/", + NULL, 0, 0 + }, + { + FK_COMMENTS, FK_SUPPRESS, plainFlag, + "lintcomments", + FLG_LINTCOMMENTS, + "interpret traditional lint comments (/*FALLTHROUGH*/, /*NOTREACHED*/)", + NULL, 0, 0 + }, + { + FK_COMMENTS, FK_SUPPRESS, modeFlag, + "warnlintcomments", + FLG_WARNLINTCOMMENTS, + "print a warning and suggest an alternative when a traditional lint " + "comment is used", + "A traditional lint comment is used. Some traditional lint comments " + "are interpreted by LCLint to enable easier checking of legacy " + "code. It is preferable to replace these comments with the " + "suggested LCLint alternative.", + 0, 0 + }, + { + FK_COMPLETE, FK_NONE, modeFlag, + "declundef", + FLG_DECLUNDEF, + "function or variable declared but never defined", + "A function or variable is declared, but not defined in any source code file.", + 0, 0 + }, + { + FK_COMPLETE, FK_SPEC, modeFlag, + "specundef", + FLG_SPECUNDEF, + "function or variable specified but never defined", + "A function or variable is declared in an .lcl file, but not defined in any source code file.", + 0, 0 + }, + { + FK_COMPLETE, FK_SPEC, plainFlag, + "specundecl", + FLG_SPECUNDECL, + "function or variable specified but never declared in a source file", + "A function or variable is declared in an .lcl file, but not declared " + "in any source code file.", + 0, 0 + }, + { + FK_CONTROL, FK_MEMORY, modeFlag, + "loopexec", + FLG_LOOPEXEC, + "assume all loops execute at least once", + NULL, 0, 0 + }, + { + FK_CONTROL, FK_NONE, plainFlag, + "control", + FLG_CONTROL, + NULL, NULL, + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "infloops", + FLG_INFLOOPS, + "likely infinite loop is detected", + "This appears to be an infinite loop. Nothing in the body of the " + "loop or the loop test modifies the value of the loop test. " + "Perhaps the specification of a function called in the loop " + "body is missing a modification.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "infloopsuncon", + FLG_INFLOOPSUNCON, + "likely infinite loop is detected (may result from unconstrained function)", + "This appears to be an infinite loop. Nothing in the body of the " "loop or the loop test modifies the value of the loop test. " "There may be a modification through a call to an unconstrained " "function, or an unconstrained function in the loop test may use " "a global variable modified by the loop body.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, specialFlag, - "deepbreak", - FLG_DEEPBREAK, - "break inside nested while or for or switch", - "A break statement appears inside the body of a nested while, for or " - "switch statement. Sets looploopbreak, loopswitchbreak, " - "switchloopbreak, switchswitchbreak, and looploopcontinue.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "looploopbreak", - FLG_LOOPLOOPBREAK, - "break inside nested while or for", - "A break statement appears inside the body of a nested while or for " - "statement. This is perfectly reasonable code, but check that " - "the break is intended to break only the inner loop. The " - "break statement may be preceded by /*@innerbreak@*/ to suppress " - "the message for this break only.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "switchloopbreak", - FLG_SWITCHLOOPBREAK, - "break in loop inside switch", - "A break statement appears inside the body of a while or for " - "statement within a switch. This is perfectly reasonable code, but check that " - "the break is intended to break only the inner loop. The " - "break statement may be preceded by /*@loopbreak@*/ to suppress " - "the message for this break only.", - 0, 0 - }, - { - FK_CONTROL, FK_NONE, modeFlag, - "loopswitchbreak", - FLG_LOOPSWITCHBREAK, - "break in switch inside loop", - "A break statement appears inside a switch statement within a while or " - "for loop. This is perfectly reasonable code, but check that " - "the break is intended to break only the inner loop. The " - "break statement may be preceded by /*@switchbreak@*/ to suppress " - "the message for this break only.", - 0, 0 - }, - { - FK_CONTROL, FK_NONE, modeFlag, - "switchswitchbreak", - FLG_SWITCHSWITCHBREAK, - "break in switch inside switch", - "A break statement appears inside a switch statement within another " - "switch statement. This is perfectly reasonable code, but check that " - "the break is intended to break only the inner switch. The " - "break statement may be preceded by /*@innerbreak@*/ to suppress " - "the message for this break only.", - 0, 0 - }, - { - FK_CONTROL, FK_NONE, modeFlag, - "looploopcontinue", - FLG_LOOPLOOPCONTINUE, - "continue inside nested loop", - "A continue statement appears inside a loop within a loop. " - "This is perfectly reasonable code, but check that " - "the continue is intended to continue only the inner loop. The " - "continue statement may be preceded by /*@innercontinue@*/ to suppress " - "the message for this continue only.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "unreachable", - FLG_UNREACHABLE, - "unreachable code detected", - "This code will never be reached on any possible execution.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "whileempty", - FLG_WHILEEMPTY, - "a while statement has no body", - "While statement has no body.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "whileblock", - FLG_WHILEBLOCK, - "the body of a while statement is not a block", - "While body is a single statement, not a compound block.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "forempty", - FLG_FOREMPTY, - "a for statement has no body", - "For statement has no body.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "forblock", - FLG_FORBLOCK, - "the body of a for statement is not a block", - "Loop body is a single statement, not a compound block.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "ifempty", - FLG_IFEMPTY, - "an if statement has no body", - "If statement has no body.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "ifblock", - FLG_IFBLOCK, - "the body of an if statement is not a block", - "If body is a single statement, not a compound block.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, specialFlag, - "allempty", - FLG_ALLEMPTY, - "an if, while or for statement has no body (sets ifempty, " - "whileempty and forempty", - NULL, - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, specialFlag, - "allblock", - FLG_ALLBLOCK, - "the body of an if, while or for statement is not a block " - "(sets ifblock, whileblock and forblock)", - "Body is a single statement, not a compound block.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "elseifcomplete", - FLG_ELSEIFCOMPLETE, - "if ... else if chains must have final else", - "There is no final else following an else if construct.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "noret", - FLG_NORETURN, - "path with no return detected in non-void function", - "There is a path through a function declared to return a value on " - "which there is no return statement. This means the execution " - "may fall through without returning a meaningful result to " - "the caller.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "casebreak", - FLG_CASEBREAK, - "non-empty case in a switch without preceding break", - "Execution falls through from the previous case.", 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "misscase", - FLG_MISSCASE, - "switch on enum type missing case for some value", - "Not all values in an enumeration are present as cases in the switch.", - 0, 0 - }, -{ - FK_CONTROL, FK_NONE, modeFlag, - "firstcase", - FLG_FIRSTCASE, - "first statement in switch is not a case", - "The first statement after a switch is not a case.", - 0, 0 - }, -{ - FK_DEBUG, FK_NONE, specialDebugFlag, - "grammar", - FLG_GRAMMAR, - NULL, NULL, - 0, 0 - }, -{ - FK_DEBUG, FK_NONE, debugFlag, - "nopp", - FLG_NOPP, - NULL, NULL, - 0, 0 - }, -{ - FK_DECL, FK_NONE, modeFlag, - "shadow", - FLG_SHADOW, - "declaration reuses name visible in outer scope", - "An outer declaration is shadowed by the local declaration.", - 0, 0 - }, -{ - FK_DECL, FK_LIBS, modeFlag, - "incondefslib", - FLG_INCONDEFSLIB, - "function, variable or constant defined in a library is redefined with inconsistent type", - "A function, variable or constant previously defined in a library is " - "redefined with a different type.", - 0, 0 - }, -{ - FK_DECL, FK_LIBS, modeFlag, - "overload", - FLG_WARNOVERLOAD, - "library function overloaded", - "A function, variable or constant defined in the library is redefined " - "with a different type.", - 0, 0 - }, -{ - FK_DECL, FK_NONE, modeFlag, - "nestedextern", - FLG_NESTEDEXTERN, - "an extern declaration is inside a function scope", - "An extern declaration is used inside a function scope.", - 0, 0 + 0, 0 + }, + { + FK_CONTROL, FK_NONE, specialFlag, + "deepbreak", + FLG_DEEPBREAK, + "break inside nested while or for or switch", + "A break statement appears inside the body of a nested while, for or " + "switch statement. Sets looploopbreak, loopswitchbreak, " + "switchloopbreak, switchswitchbreak, and looploopcontinue.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "looploopbreak", + FLG_LOOPLOOPBREAK, + "break inside nested while or for", + "A break statement appears inside the body of a nested while or for " + "statement. This is perfectly reasonable code, but check that " + "the break is intended to break only the inner loop. The " + "break statement may be preceded by /*@innerbreak@*/ to suppress " + "the message for this break only.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "switchloopbreak", + FLG_SWITCHLOOPBREAK, + "break in loop inside switch", + "A break statement appears inside the body of a while or for " + "statement within a switch. This is perfectly reasonable code, but check that " + "the break is intended to break only the inner loop. The " + "break statement may be preceded by /*@loopbreak@*/ to suppress " + "the message for this break only.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "loopswitchbreak", + FLG_LOOPSWITCHBREAK, + "break in switch inside loop", + "A break statement appears inside a switch statement within a while or " + "for loop. This is perfectly reasonable code, but check that " + "the break is intended to break only the inner loop. The " + "break statement may be preceded by /*@switchbreak@*/ to suppress " + "the message for this break only.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "switchswitchbreak", + FLG_SWITCHSWITCHBREAK, + "break in switch inside switch", + "A break statement appears inside a switch statement within another " + "switch statement. This is perfectly reasonable code, but check that " + "the break is intended to break only the inner switch. The " + "break statement may be preceded by /*@innerbreak@*/ to suppress " + "the message for this break only.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "looploopcontinue", + FLG_LOOPLOOPCONTINUE, + "continue inside nested loop", + "A continue statement appears inside a loop within a loop. " + "This is perfectly reasonable code, but check that " + "the continue is intended to continue only the inner loop. The " + "continue statement may be preceded by /*@innercontinue@*/ to suppress " + "the message for this continue only.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "unreachable", + FLG_UNREACHABLE, + "unreachable code detected", + "This code will never be reached on any possible execution.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "whileempty", + FLG_WHILEEMPTY, + "a while statement has no body", + "While statement has no body.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "whileblock", + FLG_WHILEBLOCK, + "the body of a while statement is not a block", + "While body is a single statement, not a compound block.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "forempty", + FLG_FOREMPTY, + "a for statement has no body", + "For statement has no body.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "forblock", + FLG_FORBLOCK, + "the body of a for statement is not a block", + "Loop body is a single statement, not a compound block.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "ifempty", + FLG_IFEMPTY, + "an if statement has no body", + "If statement has no body.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "ifblock", + FLG_IFBLOCK, + "the body of an if statement is not a block", + "If body is a single statement, not a compound block.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, specialFlag, + "allempty", + FLG_ALLEMPTY, + "an if, while or for statement has no body (sets ifempty, " + "whileempty and forempty", + NULL, + 0, 0 + }, + { + FK_CONTROL, FK_NONE, specialFlag, + "allblock", + FLG_ALLBLOCK, + "the body of an if, while or for statement is not a block " + "(sets ifblock, whileblock and forblock)", + "Body is a single statement, not a compound block.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "elseifcomplete", + FLG_ELSEIFCOMPLETE, + "if ... else if chains must have final else", + "There is no final else following an else if construct.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "noret", + FLG_NORETURN, + "path with no return detected in non-void function", + "There is a path through a function declared to return a value on " + "which there is no return statement. This means the execution " + "may fall through without returning a meaningful result to " + "the caller.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "casebreak", + FLG_CASEBREAK, + "non-empty case in a switch without preceding break", + "Execution falls through from the previous case.", 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "misscase", + FLG_MISSCASE, + "switch on enum type missing case for some value", + "Not all values in an enumeration are present as cases in the switch.", + 0, 0 + }, + { + FK_CONTROL, FK_NONE, modeFlag, + "firstcase", + FLG_FIRSTCASE, + "first statement in switch is not a case", + "The first statement after a switch is not a case.", + 0, 0 + }, + { + FK_DEBUG, FK_NONE, specialDebugFlag, + "grammar", + FLG_GRAMMAR, + NULL, NULL, + 0, 0 + }, + { + FK_DEBUG, FK_NONE, debugFlag, + "nopp", + FLG_NOPP, + NULL, NULL, + 0, 0 + }, + { + FK_DECL, FK_NONE, modeFlag, + "shadow", + FLG_SHADOW, + "declaration reuses name visible in outer scope", + "An outer declaration is shadowed by the local declaration.", + 0, 0 + }, + { + FK_DECL, FK_LIBS, modeFlag, + "incondefslib", + FLG_INCONDEFSLIB, + "function, variable or constant defined in a library is redefined with inconsistent type", + "A function, variable or constant previously defined in a library is " + "redefined with a different type.", + 0, 0 + }, + { + FK_DECL, FK_LIBS, modeFlag, + "overload", + FLG_WARNOVERLOAD, + "library function overloaded", + "A function, variable or constant defined in the library is redefined " + "with a different type.", + 0, 0 + }, + { + FK_DECL, FK_NONE, modeFlag, + "nestedextern", + FLG_NESTEDEXTERN, + "an extern declaration is inside a function scope", + "An extern declaration is used inside a function scope.", + 0, 0 }, -{ - FK_DECL, FK_NONE, modeFlag, - "redecl", - FLG_REDECL, - "function or variable redeclared", - "A function or variable is declared in more than one place. This is " - "not necessarily a problem, since the declarations are consistent.", - 0, 0 + { + FK_DECL, FK_NONE, modeFlag, + "redecl", + FLG_REDECL, + "function or variable redeclared", + "A function or variable is declared in more than one place. This is " + "not necessarily a problem, since the declarations are consistent.", + 0, 0 }, -{ - FK_DECL, FK_NONE, plainFlag, - "redef", - FLG_REDEF, - "function or variable redefined", - "A function or variable is redefined. One of the declarations should use extern.", - 0, 0 - }, -{ - FK_DECL, FK_TYPE, modeFlag, - "incondefs", - FLG_INCONDEFS, - "function, variable or constant redefined with inconsistent type", - "A function, variable or constant is redefined with a different type.", - 0, 0 - }, -{ - FK_DECL, FK_TYPE, modeFlag, - "imptype", - FLG_IMPTYPE, - "variable declaration has unknown (implicitly int) type", - "A variable declaration has no explicit type. The type is implicitly int.", - 0, 0 - }, -{ - FK_DECL, FK_TYPE, modeFlag, - "matchfields", - FLG_MATCHFIELDS, - "struct or enum type redefined with inconsistent fields or members", - "A struct, union or enum type is redefined with inconsistent fields or members.", - 0, 0 - }, -{ - FK_DEF, FK_NONE, modeFlag, - "usedef", - FLG_USEDEF, - "use before definition", - "An rvalue is used that may not be initialized to a value on some execution path.", - 0, 0 - }, -{ - FK_DEF, FK_IMPLICIT, modeFlag, - "impouts", - FLG_IMPOUTS, - "pointer parameters to unspecified functions may be implicit out parameters", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_FILES, globalStringFlag, - "tmpdir", - FLG_TMPDIR, - "set directory for writing temp files", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_FILES, globalStringFlag, - "larchpath", - FLG_LARCHPATH, - "set path for searching for library files (overrides LARCH_PATH environment variable)", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_FILES, globalStringFlag, - "lclimportdir", - FLG_LCLIMPORTDIR, - "set directory to search for LCL import files (overrides LCLIMPORTDIR)", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_FILES, globalStringFlag, - "sysdirs", - FLG_SYSTEMDIRS, - "set directories for system files (default /usr/include). Separate " - "directories with colons (e.g., \"/usr/include:/usr/local/lib\"). " - "Flag settings propagate to files in a system directory. If " - "-sysdirerrors is set, no errors are reported for files in " - "system directories.", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_FILES, plainFlag, - "skipansiheaders", - FLG_SKIPANSIHEADERS, - "prevent inclusion of header files in a system directory with " + { + FK_DECL, FK_NONE, plainFlag, + "redef", + FLG_REDEF, + "function or variable redefined", + "A function or variable is redefined. One of the declarations should use extern.", + 0, 0 + }, + { + FK_DECL, FK_TYPE, modeFlag, + "incondefs", + FLG_INCONDEFS, + "function, variable or constant redefined with inconsistent type", + "A function, variable or constant is redefined with a different type.", + 0, 0 + }, + { + FK_DECL, FK_TYPE, modeFlag, + "imptype", + FLG_IMPTYPE, + "variable declaration has unknown (implicitly int) type", + "A variable declaration has no explicit type. The type is implicitly int.", + 0, 0 + }, + { + FK_DECL, FK_TYPE, modeFlag, + "matchfields", + FLG_MATCHFIELDS, + "struct or enum type redefined with inconsistent fields or members", + "A struct, union or enum type is redefined with inconsistent fields or members.", + 0, 0 + }, + { + FK_DEF, FK_NONE, modeFlag, + "usedef", + FLG_USEDEF, + "use before definition", + "An rvalue is used that may not be initialized to a value on some execution path.", + 0, 0 + }, + { + FK_DEF, FK_IMPLICIT, modeFlag, + "impouts", + FLG_IMPOUTS, + "pointer parameters to unspecified functions may be implicit out parameters", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_FILES, globalStringFlag, + "tmpdir", + FLG_TMPDIR, + "set directory for writing temp files", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_FILES, globalStringFlag, + "larchpath", + FLG_LARCHPATH, + "set path for searching for library files (overrides LARCH_PATH environment variable)", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_FILES, globalStringFlag, + "lclimportdir", + FLG_LCLIMPORTDIR, + "set directory to search for LCL import files (overrides LCLIMPORTDIR)", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_FILES, globalStringFlag, + "sysdirs", + FLG_SYSTEMDIRS, + "set directories for system files (default /usr/include). Separate " + "directories with colons (e.g., \"/usr/include:/usr/local/lib\"). " + "Flag settings propagate to files in a system directory. If " + "-sysdirerrors is set, no errors are reported for files in " + "system directories.", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_FILES, plainFlag, + "skipansiheaders", + FLG_SKIPANSIHEADERS, + "prevent inclusion of header files in a system directory with " "names that match standard ANSI headers. The symbolic information " "in the standard library is used instead. Flag in effect only " "if a library including the ANSI library is loaded. The ANSI " "headers are: assert, ctype, errno, float, limits, locale, math, " - "setjmp, signal, stdarg, stddef, stdio, stdlib, strings, string, " - "time, and wchar.", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_FILES, plainFlag, - "skipposixheaders", - FLG_SKIPPOSIXHEADERS, - "prevent inclusion of header files in a system directory with " + "setjmp, signal, stdarg, stddef, stdio, stdlib, strings, string, " + "time, and wchar.", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_FILES, plainFlag, + "skipposixheaders", + FLG_SKIPPOSIXHEADERS, + "prevent inclusion of header files in a system directory with " "names that match standard POSIX headers. The symbolic information " "in the posix library is used instead. The POSIX headers are: " - "dirent, fcntl, grp, pwd, termios, sys/stat, sys/times, " - "sys/types, sys/utsname, sys/wait, unistd, and utime.", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_SUPPRESS, modeFlag, - "sysdirerrors", - FLG_SYSTEMDIRERRORS, - "report errors in files in system directories (set by -sysdirs)", - NULL, 0, 0 - }, -{ - FK_HEADERS, FK_MACROS, plainFlag, - "sysdirexpandmacros", - FLG_SYSTEMDIREXPAND, - "expand macros in system directories regardless of other settings, " - "except for macros corresponding to names defined in a load library", - NULL, 0, 0 + "dirent, fcntl, grp, pwd, termios, sys/stat, sys/times, " + "sys/types, sys/utsname, sys/wait, unistd, and utime.", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_SUPPRESS, modeFlag, + "sysdirerrors", + FLG_SYSTEMDIRERRORS, + "report errors in files in system directories (set by -sysdirs)", + NULL, 0, 0 + }, + { + FK_HEADERS, FK_MACROS, plainFlag, + "sysdirexpandmacros", + FLG_SYSTEMDIREXPAND, + "expand macros in system directories regardless of other settings, " + "except for macros corresponding to names defined in a load library", + NULL, 0, 0 }, -{ - FK_DIRECT, FK_HEADERS, globalExtraArgFlag, - "I", - FLG_INCLUDEPATH, - "add to C include path", - NULL, 0, 0 - }, -{ - FK_DIRECT, FK_SPEC, globalExtraArgFlag, - "S", - FLG_SPECPATH, - "add to spec path", - NULL, 0, 0 - }, -{ - FK_DISPLAY, FK_ERRORS, plainFlag, - "quiet", - FLG_QUIET, - "suppress herald and error count", - NULL, 0, 0 - }, -{ - FK_DISPLAY, FK_ERRORS, plainFlag, - "usestderr", - FLG_USESTDERR, - "send error messages to standard error (instead of standard out)", - NULL, 0, 0 - }, -{ - FK_DISPLAY, FK_ERRORS, plainFlag, - "showsummary", - FLG_SHOWSUMMARY, - "show summary of all errors reported and suppressed", - NULL, 0, 0 - }, -{ - FK_DISPLAY, FK_FILES, plainFlag, - "showscan", - FLG_SHOWSCAN, - "show file names are they are processed", - NULL, 0, 0 - }, -{ - FK_DISPLAY, FK_NONE, globalFlag, - "stats", - FLG_STATS, - "display lines processed and time", - NULL, 0, 0 - }, -{ - FK_DISPLAY, FK_NONE, globalFlag, - "timedist", - FLG_TIMEDIST, - "display time distribution", - NULL, 0, 0 - }, -{ - FK_DISPLAY, FK_USE, globalFlag, - "showalluses", - FLG_SHOWUSES, - "show sorted list of uses of all globals", - NULL, 0, 0 - }, -{ - FK_EFFECT, FK_CONTROL, modeFlag, - "noeffect", - FLG_NOEFFECT, - "statement with no effect", - "Statement has no visible effect --- no values are modified.", - 0, 0 - }, -{ - FK_EFFECT, FK_CONTROL, modeFlag, - "noeffectuncon", - FLG_NOEFFECTUNCON, - "statement with no effect (except possibly through call to " - "unconstrained function)", - "Statement has no visible effect --- no values are modified. It may " - "modify something through a call to an unconstrained function.", - 0, 0 - }, -{ - FK_EXPORT, FK_SPEC, specialFlag, - "exportany", - FLG_EXPORTANY, - "variable, function or type exported but not specified", - "A variable, function or type is exported, but not specified.", - 0, 0 - }, -{ - FK_EXPORT, FK_SPEC, modeFlag, - "exportfcn", - FLG_EXPORTFCN, - "function exported but not specified", - "A function is exported, but not specified.", 0, 0 - }, -{ - FK_EXPORT, FK_SPEC, modeFlag, - "exportmacro", - FLG_EXPORTMACRO, - "expanded macro exported but not specified", - "A macro is exported, but not specified.", 0, 0 - }, -{ - FK_EXPORT, FK_SPEC, modeFlag, - "exporttype", - FLG_EXPORTTYPE, - "type definition exported but not specified", - "A type is exported, but not specified.", 0, 0 - }, -{ - FK_EXPORT, FK_SPEC, modeFlag, - "exportvar", - FLG_EXPORTVAR, - "variable exported but not specified", - "A variable is exported, but not specified.", 0, 0 - }, -{ - FK_EXPORT, FK_SPEC, modeFlag, - "exportconst", - FLG_EXPORTCONST, - "constant exported but not specified", - "A constant is exported, but not specified.", 0, 0 - }, -{ - FK_EXPORT, FK_SPEC, modeFlag, - "exportiter", - FLG_EXPORTITER, - "constant exported but not specified", - "A constant is exported, but not specified.", 0, 0 - }, -{ - FK_EXPOSURE, FK_ABSTRACT, specialFlag, - "repexpose", - FLG_REPEXPOSE, - "abstract representation is exposed (sets assignexpose, retexpose, and castexpose)", - "The internal representation of an abstract type is visible to the " - "caller. This means clients may have access to a pointer " - "into the abstract representation.", - 0, 0 - }, -{ - FK_EXPOSURE, FK_ABSTRACT, modeFlag, - "retexpose", - FLG_RETEXPOSE, - "abstract representation is exposed (return values only)", - "The return value shares storage with an instance of an abstract " - "type. This means clients may have access to a pointer into " - "the abstract representation. Use the observer qualifier to " - "return exposed storage that may not be modified by the " - "client. Use the exposed qualifier to return modifiable " - "(but not deallocatable) exposed storage (dangerous).", - 0, 0 - }, -{ - FK_EXPOSURE, FK_ABSTRACT, modeFlag, - "assignexpose", - FLG_ASSIGNEXPOSE, - "abstract representation is exposed (assignments only)", - "Storage internal to the representation of an abstract type is " - "assigned to an external pointer. This means clients may " - "have access to a pointer into the abstract representation. " - "If the external pointer is a parameter, the exposed qualifier " - "can be used to allow the assignment, however, this is " - "considered dangerous programming practice.", - 0, 0 - }, -{ - FK_EXPOSURE, FK_ABSTRACT, modeFlag, - "castexpose", - FLG_CASTEXPOSE, - "abstract representation is exposed through a cast", - "Storage internal to the representation of an abstract type is exposed " - "through a type cast. This means clients may have access to a " - "pointer into the abstract representation.", - 0, 0 + { + FK_DIRECT, FK_HEADERS, globalExtraArgFlag, + "I", + FLG_INCLUDEPATH, + "add to C include path", + NULL, 0, 0 + }, + { + FK_DIRECT, FK_SPEC, globalExtraArgFlag, + "S", + FLG_SPECPATH, + "add to spec path", + NULL, 0, 0 + }, + { + FK_DISPLAY, FK_ERRORS, plainFlag, + "quiet", + FLG_QUIET, + "suppress herald and error count", + NULL, 0, 0 + }, + { + FK_DISPLAY, FK_ERRORS, plainFlag, + "usestderr", + FLG_USESTDERR, + "send error messages to standard error (instead of standard out)", + NULL, 0, 0 + }, + { + FK_DISPLAY, FK_ERRORS, plainFlag, + "showsummary", + FLG_SHOWSUMMARY, + "show summary of all errors reported and suppressed", + NULL, 0, 0 + }, + { + FK_DISPLAY, FK_FILES, plainFlag, + "showscan", + FLG_SHOWSCAN, + "show file names are they are processed", + NULL, 0, 0 + }, + { + FK_DISPLAY, FK_NONE, globalFlag, + "stats", + FLG_STATS, + "display lines processed and time", + NULL, 0, 0 + }, + { + FK_DISPLAY, FK_NONE, globalFlag, + "timedist", + FLG_TIMEDIST, + "display time distribution", + NULL, 0, 0 + }, + { + FK_DISPLAY, FK_USE, globalFlag, + "showalluses", + FLG_SHOWUSES, + "show sorted list of uses of all globals", + NULL, 0, 0 + }, + { + FK_EFFECT, FK_CONTROL, modeFlag, + "noeffect", + FLG_NOEFFECT, + "statement with no effect", + "Statement has no visible effect --- no values are modified.", + 0, 0 + }, + { + FK_EFFECT, FK_CONTROL, modeFlag, + "noeffectuncon", + FLG_NOEFFECTUNCON, + "statement with no effect (except possibly through call to " + "unconstrained function)", + "Statement has no visible effect --- no values are modified. It may " + "modify something through a call to an unconstrained function.", + 0, 0 + }, + { + FK_EXPORT, FK_SPEC, specialFlag, + "exportany", + FLG_EXPORTANY, + "variable, function or type exported but not specified", + "A variable, function or type is exported, but not specified.", + 0, 0 + }, + { + FK_EXPORT, FK_SPEC, modeFlag, + "exportfcn", + FLG_EXPORTFCN, + "function exported but not specified", + "A function is exported, but not specified.", 0, 0 + }, + { + FK_EXPORT, FK_SPEC, modeFlag, + "exportmacro", + FLG_EXPORTMACRO, + "expanded macro exported but not specified", + "A macro is exported, but not specified.", 0, 0 + }, + { + FK_EXPORT, FK_SPEC, modeFlag, + "exporttype", + FLG_EXPORTTYPE, + "type definition exported but not specified", + "A type is exported, but not specified.", 0, 0 + }, + { + FK_EXPORT, FK_SPEC, modeFlag, + "exportvar", + FLG_EXPORTVAR, + "variable exported but not specified", + "A variable is exported, but not specified.", 0, 0 + }, + { + FK_EXPORT, FK_SPEC, modeFlag, + "exportconst", + FLG_EXPORTCONST, + "constant exported but not specified", + "A constant is exported, but not specified.", 0, 0 + }, + { + FK_EXPORT, FK_SPEC, modeFlag, + "exportiter", + FLG_EXPORTITER, + "constant exported but not specified", + "A constant is exported, but not specified.", 0, 0 + }, + { + FK_EXPOSURE, FK_ABSTRACT, specialFlag, + "repexpose", + FLG_REPEXPOSE, + "abstract representation is exposed (sets assignexpose, retexpose, and castexpose)", + "The internal representation of an abstract type is visible to the " + "caller. This means clients may have access to a pointer " + "into the abstract representation.", + 0, 0 + }, + { + FK_EXPOSURE, FK_ABSTRACT, modeFlag, + "retexpose", + FLG_RETEXPOSE, + "abstract representation is exposed (return values only)", + "The return value shares storage with an instance of an abstract " + "type. This means clients may have access to a pointer into " + "the abstract representation. Use the observer qualifier to " + "return exposed storage that may not be modified by the " + "client. Use the exposed qualifier to return modifiable " + "(but not deallocatable) exposed storage (dangerous).", + 0, 0 + }, + { + FK_EXPOSURE, FK_ABSTRACT, modeFlag, + "assignexpose", + FLG_ASSIGNEXPOSE, + "abstract representation is exposed (assignments only)", + "Storage internal to the representation of an abstract type is " + "assigned to an external pointer. This means clients may " + "have access to a pointer into the abstract representation. " + "If the external pointer is a parameter, the exposed qualifier " + "can be used to allow the assignment, however, this is " + "considered dangerous programming practice.", + 0, 0 + }, + { + FK_EXPOSURE, FK_ABSTRACT, modeFlag, + "castexpose", + FLG_CASTEXPOSE, + "abstract representation is exposed through a cast", + "Storage internal to the representation of an abstract type is exposed " + "through a type cast. This means clients may have access to a " + "pointer into the abstract representation.", + 0, 0 }, -{ - FK_FORMAT, FK_DISPLAY, valueFlag, - "linelen", - FLG_LINELEN, - "set length of messages (number of chars)", - NULL, 0, 0 - }, -{ - FK_FORMAT, FK_DISPLAY, plainFlag, - "showcolumn", - FLG_SHOWCOL, - "show column number where error is found", - NULL, 0, 0 - }, -{ - FK_FORMAT, FK_DISPLAY, plainFlag, - "parenfileformat", - FLG_PARENFILEFORMAT, - "show column number where error is found", - NULL, 0, 0 - }, -{ - FK_FORMAT, FK_NONE, plainFlag, - "showfunc", - FLG_SHOWFUNC, - "show name of function containing error", - NULL, 0, 0 - }, -{ - FK_FORMAT, FK_NONE, plainFlag, - "showallconjs", - FLG_SHOWALLCONJS, - "show all possible types", - "When a library function is declared with multiple possible type, the " - "alternate types are shown only if +showallconjs.", - 0, 0 - }, -{ - FK_LIBS, FK_NONE, plainFlag, - "impconj", - FLG_IMPCONJ, - "make all alternate types implicit (useful for making system libraries", - NULL, 0, 0 + { + FK_FORMAT, FK_DISPLAY, valueFlag, + "linelen", + FLG_LINELEN, + "set length of messages (number of chars)", + NULL, 0, 0 + }, + { + FK_FORMAT, FK_DISPLAY, valueFlag, + "indentspaces", + FLG_INDENTSPACES, + "set number of spaces to indent sub-messages", + NULL, 0, 0 + }, + { + FK_FORMAT, FK_DISPLAY, plainFlag, + "showcolumn", + FLG_SHOWCOL, + "show column number where error is found", + NULL, 0, 0 + }, + { + FK_FORMAT, FK_DISPLAY, plainFlag, + "parenfileformat", + FLG_PARENFILEFORMAT, + "show column number where error is found", + NULL, 0, 0 + }, + { + FK_FORMAT, FK_NONE, plainFlag, + "showfunc", + FLG_SHOWFUNC, + "show name of function containing error", + NULL, 0, 0 + }, + { + FK_FORMAT, FK_NONE, plainFlag, + "showallconjs", + FLG_SHOWALLCONJS, + "show all possible types", + "When a library function is declared with multiple possible type, the " + "alternate types are shown only if +showallconjs.", + 0, 0 + }, + { + FK_LIBS, FK_NONE, plainFlag, + "impconj", + FLG_IMPCONJ, + "make all alternate types implicit (useful for making system libraries", + NULL, 0, 0 } , -{ - FK_GLOBAL, FK_ERRORS, globalValueFlag, - "expect", - FLG_EXPECT, - "expect code errors", - NULL, 0, 0 - }, -{ - FK_GLOBAL, FK_ERRORS, globalValueFlag, - "lclexpect", - FLG_LCLEXPECT, - "expect spec errors", - NULL, 0, 0 - }, -{ - FK_GLOBAL, FK_USE, idemSpecialFlag, - "partial", - FLG_PARTIAL, - "check as partial system (-specundef, -declundef, -exportlocal, " - "don't check macros in headers without corresponding .c files)", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_SPEC, plainFlag, - "globs", - FLG_GLOBALS, - "undocumented use of a checked global variable", - "A checked global variable is used in the function, but not listed in " - "its globals clause. By default, only globals specified in .lcl " - "files are checked. To check all globals, use +allglobals. To " - "check globals selectively use /*@checked@*/ in the global " - "declaration.", - 0, 0 - }, -{ - FK_GLOBALS, FK_SPEC, modeFlag, - "globuse", - FLG_USEALLGLOBS, - "global listed for a function not used", - "A global variable listed in the function's globals list is not used " - "in the body of the function.", - 0, 0 - }, -{ - FK_GLOBALS, FK_NONE, modeFlag, - "internalglobs", - FLG_INTERNALGLOBS, - "use of internalState", - "A called function uses internal state, but the globals list for the " - "function being checked does not include internalState", - 0, 0 - }, -{ - FK_GLOBALS, FK_NONE, modeFlag, - "internalglobsnoglobs", - FLG_INTERNALGLOBSNOGLOBS, - "use of internalState (in function with no globals list)", - "A called function uses internal state, but the function being checked " - "has no globals list", - 0, 0 - }, -{ - FK_GLOBALS, FK_MODIFIES, modeFlag, - "warnmissingglobs", - FLG_WARNMISSINGGLOBALS, - "global variable used in modifies clause is not listed in globals list", - "A global variable is used in the modifies clause, but it not listed in " - "the globals list. The variable will be added to the globals list.", - 0, 0 + { + FK_GLOBAL, FK_ERRORS, globalValueFlag, + "expect", + FLG_EXPECT, + "expect code errors", + NULL, 0, 0 + }, + { + FK_GLOBAL, FK_ERRORS, globalValueFlag, + "lclexpect", + FLG_LCLEXPECT, + "expect spec errors", + NULL, 0, 0 + }, + { + FK_GLOBAL, FK_USE, idemSpecialFlag, + "partial", + FLG_PARTIAL, + "check as partial system (-specundef, -declundef, -exportlocal, " + "don't check macros in headers without corresponding .c files)", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_SPEC, plainFlag, + "globs", + FLG_GLOBALS, + "undocumented use of a checked global variable", + "A checked global variable is used in the function, but not listed in " + "its globals clause. By default, only globals specified in .lcl " + "files are checked. To check all globals, use +allglobals. To " + "check globals selectively use /*@checked@*/ in the global " + "declaration.", + 0, 0 + }, + { + FK_GLOBALS, FK_SPEC, modeFlag, + "globuse", + FLG_USEALLGLOBS, + "global listed for a function not used", + "A global variable listed in the function's globals list is not used " + "in the body of the function.", + 0, 0 + }, + { + FK_GLOBALS, FK_NONE, modeFlag, + "internalglobs", + FLG_INTERNALGLOBS, + "use of internalState", + "A called function uses internal state, but the globals list for the " + "function being checked does not include internalState", + 0, 0 + }, + { + FK_GLOBALS, FK_NONE, modeFlag, + "internalglobsnoglobs", + FLG_INTERNALGLOBSNOGLOBS, + "use of internalState (in function with no globals list)", + "A called function uses internal state, but the function being checked " + "has no globals list", + 0, 0 + }, + { + FK_GLOBALS, FK_MODIFIES, modeFlag, + "warnmissingglobs", + FLG_WARNMISSINGGLOBALS, + "global variable used in modifies clause is not listed in globals list", + "A global variable is used in the modifies clause, but it not listed in " + "the globals list. The variable will be added to the globals list.", + 0, 0 }, -{ - FK_GLOBALS, FK_MODIFIES, modeFlag, - "warnmissingglobsnoglobs", - FLG_WARNMISSINGGLOBALSNOGLOBS, - "global variable used in modifies clause in a function with no globals list", - "A global variable is used in the modifies clause, but the function " - "has no globals list. The variable will be added to the globals list.", - 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "globnoglobs", - FLG_GLOBUNSPEC, - "use of checked global in a function with no globals list or specification", - "A specified global variable is used in the function, but not listed " - "in its globals list. Without +globnoglobs, only globals " - "declared with /*@checkedstrict@*/ will produce use " - "errors in functions without globals " - "lists. The /*@globals ... @*/ control comment can be used to give " - "a globals list for an unspecified function.", - 0, 0 - }, -{ - FK_GLOBALS, FK_IMPLICIT, modeFlag, - "allglobs", - FLG_ALLGLOBALS, - "report use and modification errors for globals not annotated with unchecked", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "checkstrictglobs", - FLG_CHECKSTRICTGLOBALS, - "report use and modification errors for checkedstrict globals", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckedspecglobs", - FLG_IMPCHECKEDSPECGLOBALS, - "assume checked qualifier for unqualified global declarations in .lcl files", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckmodspecglobs", - FLG_IMPCHECKMODSPECGLOBALS, - "assume checkmod qualifier for unqualified global declarations in .lcl files", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckedstrictspecglobs", - FLG_IMPCHECKEDSTRICTSPECGLOBALS, - "assume checkmod qualifier for unqualified global declarations in .lcl files", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckedglobs", - FLG_IMPCHECKEDGLOBALS, - "assume checked qualifier for unqualified global declarations", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckmodglobs", - FLG_IMPCHECKMODGLOBALS, - "assume checkmod qualifier for unqualified global declarations", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckedstrictglobs", - FLG_IMPCHECKEDSTRICTGLOBALS, - "assume checkedstrict qualifier for unqualified global declarations", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckedstatics", - FLG_IMPCHECKEDSTATICS, - "assume checked qualifier for unqualified file static declarations", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckmodstatics", - FLG_IMPCHECKMODSTATICS, - "assume checkmod qualifier for unqualified file static declarations", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckmodinternals", - FLG_IMPCHECKMODINTERNALS, - "assume checkmod qualifier for unqualified local " - "static declarations (for internal state modifications)", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_UNSPEC, modeFlag, - "impcheckedstrictstatics", - FLG_IMPCHECKEDSTRICTSTATICS, - "assume checkedstrict qualifier for unqualified file static declarations", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_MODIFIES, modeFlag, - "modglobs", - FLG_MODGLOBS, - "undocumented modification of a checked global variable", - "A checked global variable is modified by the function, but not listed in " - "its modifies clause.", - 0, 0 - }, -{ - FK_GLOBALS, FK_MODIFIES, modeFlag, - "modglobsnomods", - FLG_MODGLOBSUNSPEC, - "undocumented modification of a checked global variable in a function " - "declared with no modifies clause", - "A checked global variable is modified by the function, but not listed in " - "its modifies clause.", - 0, 0 - }, -{ - FK_GLOBALS, FK_MODIFIES, modeFlag, - "modstrictglobsnomods", - FLG_MODSTRICTGLOBSUNSPEC, - "undocumented modification of a strict checked global variable in a " - "function declared with no modifies clause", - "A checked global variable is modified by the function, but not listed in " - "its modifies clause.", - 0, 0 - }, -{ - FK_GLOBALS, FK_MODIFIES, modeFlag, - "modglobsunchecked", - FLG_MODGLOBSUNCHECKED, - "undocumented modification of an unchecked checked global variable", - "An unchecked global variable is modified by the function, but not listed in " - "its modifies clause.", - 0, 0 - }, -{ - FK_HEADERS, FK_DEBUG, debugFlag, - "keep", - FLG_KEEP, - NULL, NULL, - 0, 0 - }, -{ - FK_HEADERS, FK_SPEC, globalFlag, - "lh", - FLG_DOLH, - "generate .lh files", NULL, - 0, 0 - }, -{ - FK_HEADERS, FK_SPEC, globalFlag, - "lcs", - FLG_DOLCS, - "generate .lcs files", NULL, - 0, 0 - }, -{ - FK_HEADERS, FK_SPEED, globalFlag, - "singleinclude", - FLG_SINGLEINCLUDE, - "optimize header inclusion to eliminate redundant includes", - "When checking multiple files, each header file is processed only " - "once. This may change the meaning of the code, if the " - "same header file is included in different contexts (e.g., the " - "header file includes #if directives and the values are " - "different when it is included in different places.)", - 0, 0 - }, -{ - FK_HEADERS, FK_SPEED, globalFlag, - "neverinclude", - FLG_NEVERINCLUDE, - "optimize header inclusion to not include any header files", - "Ignore header includes. Only works if relevant information is " - "loaded from a library.", - 0, 0 - }, -{ - FK_HEADERS, FK_SPEED, globalFlag, - "skipsysheaders", - FLG_SKIPSYSHEADERS, - "do not include header files in system directories (set by -sysdirs)", - "Do not include header files in system directories (set by -sysdirs)", - 0, 0 - }, -{ - FK_HELP, FK_NONE, plainFlag, - "warnflags", - FLG_WARNFLAGS, - "warn when command line sets flag to default value in mode", - NULL, 0, 0 - }, -{ - FK_HELP, FK_NONE, plainFlag, - "warnunixlib", - FLG_WARNUNIXLIB, - "warn when the unix library is used", - NULL, 0, 0 - }, -{ - FK_HELP, FK_NONE, plainFlag, - "badflag", - FLG_BADFLAG, - "a flag is not recognized or used in an incorrect way", - NULL, 0, 0 - }, -{ - FK_HELP, FK_NONE, plainFlag, - "forcehints", - FLG_FORCEHINTS, - "provide hints for all errors reported", - NULL, 0, 0 - }, -{ - FK_HELP, FK_NONE, globalExtraArgFlag, - "help", - FLG_HELP, - "-help will describe flags", - NULL, 0, 0 - }, -{ - FK_HELP, FK_FORMAT, plainFlag, - "hints", - FLG_HINTS, - "provide hints on using lclint (hint only reported for first related error)", - NULL, 0, 0 - }, -{ - FK_IGNORERET, FK_NONE, specialFlag, - "retval", - FLG_RETVAL, - "return value ignored (sets retvalint, retvalbool and retvalother)", - "Result returned by function call is not used. If this is intended, " - "cast result to (void) to eliminate message.", - 0, 0 - }, -{ - FK_IGNORERET, FK_BOOL, modeFlag, - "retvalother", - FLG_RETVALOTHER, - "return value of type other than bool or int ignored", - "Result returned by function call is not used. If this is intended, " - "can cast result to (void) to eliminate message.", - 0, 0 - }, -{ - FK_IGNORERET, FK_BOOL, modeFlag, - "retvalbool", - FLG_RETVALBOOL, - "return value of manifest type bool ignored", - "Result returned by function call is not used. If this is intended, " - "can cast result to (void) to eliminate message.", - 0, 0 - }, -{ - FK_IGNORERET, FK_NONE, modeFlag, - "retvalint", - FLG_RETVALINT, - "return value of type int ignored", - "Result returned by function call is not used. If this is intended, " - "can cast result to (void) to eliminate message.", - 0, 0 - }, -{ - FK_INIT, FK_FILES, globalExtraArgFlag, - "f", - FLG_OPTF, - "load options file (default ~/.lclintrc not loaded)", - NULL, 0, 0 - }, -{ - FK_INIT, FK_FILES, globalExtraArgFlag, - "i", - FLG_INIT, - "set LCL initilization file", - NULL, 0, 0 - }, -{ - FK_INIT, FK_FILES, globalFlag, - "nof", - FLG_NOF, - "do not read options file", - NULL, 0, 0 - }, -{ - FK_INIT, FK_SPEC, plainFlag, - "needspec", - FLG_NEEDSPEC, - "information in specifications is not also included in syntactic comments", - "There is information in the specification that is not duplicated " - "in syntactic comments. Normally, this is not an " - "error, but it may be useful to detect it to make " - "sure checking incomplete systems without the specifications will " - "still use this information.", - 0, 0 - }, -{ - FK_DECL, FK_LIBS, plainFlag, - "newdecl", - FLG_NEWDECL, - "report new global declarations in source files", - "There is a new declaration that is not declared in a loaded library " - "or earlier file. (Use this flag to check for consistency " - "against a library.)", - 0, 0 - }, -{ - FK_ITER, FK_NONE, plainFlag, - "iter", - FLG_ITER, - NULL, NULL, - 0, 0 - }, -{ - FK_ITER, FK_NONE, plainFlag, - "hasyield", - FLG_HASYIELD, - "iter declaration has no yield parameters", - "An iterator has been declared with no parameters annotated with " - "yield. This may be what you want, if the iterator is meant " - "to do something a fixed number of times, but returns no " - "information to the calling context. Probably, a parameter " - "is missing the yield annotation to indicate that it is " - "assigned a value in the calling context.", - 0, 0 - }, -{ - FK_LIBS, FK_FILES, globalStringFlag, - "dump", - FLG_DUMP, - "save state for merging (default suffix .lcd)", - NULL, 0, 0 - }, -{ - FK_LIBS, FK_FILES, globalStringFlag, - "load", - FLG_MERGE, - "load state from dump file (default suffix .lcd)", - NULL, 0, 0 - }, -{ - FK_LIBS, FK_INIT, idemGlobalFlag, - "nolib", - FLG_NOLIB, - "do not load standard library", - NULL, 0, 0 - }, -{ - FK_LIBS, FK_INIT, globalFlag, - "ansilib", - FLG_ANSILIB, - "use ANSI (ISO) standard library", - "Library based on the ANSI standard library specification is used.", - 0, 0 - }, -{ - FK_LIBS, FK_INIT, globalFlag, - "strictlib", - FLG_STRICTLIB, - "interpret standard library strictly", - "Stricter version of the standard library is used. (The default " - "library is standard.lcd; strict library is strict.lcd.)", - 0, 0 - }, -{ - FK_LIBS, FK_INIT, globalFlag, - "unixlib", - FLG_UNIXLIB, - "use UNIX (sort-of) standard library", - "UNIX version of the standard library is used.", - 0, 0 - }, -{ - FK_LIBS, FK_INIT, globalFlag, - "unixstrictlib", - FLG_UNIXSTRICTLIB, - "use strict version of UNIX (sort-of) library", - "strict version of the UNIX library is used.", - 0, 0 - }, -{ - FK_LIBS, FK_INIT, globalFlag, - "posixlib", - FLG_POSIXLIB, - "use POSIX standard library", - "POSIX version of the standard library is used.", - 0, 0 - }, -{ - FK_LIBS, FK_INIT, globalFlag, - "posixstrictlib", - FLG_POSIXSTRICTLIB, - "use strict POSIX standard library", - "POSIX version of the strict standard library is used.", - 0, 0 - }, -{ - FK_LIBS, FK_INIT, globalFlag, - "whichlib", - FLG_WHICHLIB, - "show standard library filename", - NULL, 0, 0 - }, -{ - FK_INIT, FK_COMMENTS, valueFlag, - "commentchar", - FLG_COMMENTCHAR, - "set marker character for syntactic comments (default is '@')", - "Set the marker character for syntactic comments. Comments beginning " - "with /* are interpreted by lclint, where is the " - "comment marker character.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, plainSpecialFlag, - "allmacros", - FLG_ALLMACROS, - "sets fcnmacros and constmacros", - "All macros (not preceded by /*@notfunction@*/) are checked as functions or " - "constants depending on whether or not they have parameter lists.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, plainFlag, - "libmacros", - FLG_LIBMACROS, - "check all macros with declarations in library as functions", - "Every macro declared in the load library is checked.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, plainFlag, - "specmacros", - FLG_SPECMACROS, - "check all macros corresponding to specified functions or constants", - "Every macro declared a specification file is checked.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, plainFlag, - "fcnmacros", - FLG_FCNMACROS, - "check all macros with parameter lists as functions", - "Every parameterized macro (not preceded by /*@notfunction@*/) " - "is checked as a function.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, plainFlag, - "constmacros", - FLG_CONSTMACROS, - "check all macros without parameter lists as constants", - "Every non-parameterized macro (not preceded by /*@notfunction@*/) " - "is checked as a constant.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, modeFlag, - "macromatchname", - FLG_MACROMATCHNAME, - "macro definition does not match iter or constant declaration", - "A iter or constant macro is defined using a different name from the " - "one used in the previous syntactic comment", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, plainFlag, - "nextlinemacros", - FLG_MACRONEXTLINE, - "the line after a constant or iter declaration must be a macro definition", - "A constant or iter declaration is not immediately followed by a macro definition.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, modeFlag, - "macrostmt", - FLG_MACROSTMT, - "macro definition is syntactically not equivalent to function", - "A macro is defined in a way that may cause syntactic problems. If the macro returns a value, use commas to separate expressions; otherwise, use do { } while (FALSE) construct.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, modeFlag, - "macroempty", - FLG_MACROEMPTY, - "macro definition for is empty", - "A macro definition has no body.", - 0, 0 - }, -{ - FK_MACROS, FK_PARAMS, modeFlag, - "macroparams", - FLG_MACROPARAMS, - "macro parameter not used exactly once", - "A macro parameter is not used exactly once in all possible " - "invocations of the macro. To behave like a function, " - "each macro parameter must be used exactly once on all " - "invocations of the macro so that parameters with " - "side-effects are evaluated exactly once. Use /*@sef@*/ to " - "denote parameters that must be side-effect free.", - 0, 0 - }, -{ - FK_MACROS, FK_PARAMS, modeFlag, - "macroassign", - FLG_MACROASSIGN, - "assignment to a macro parameter", - "A macro parameter is used as the left side of an " - "assignment expression. This exhibits behavior that " - "could not be implemented by a function.", - 0, 0 - }, -{ - FK_MACROS, FK_PARAMS, modeFlag, - "sefparams", - FLG_SEFPARAMS, - "a parameter with side-effects is passed as a sef parameter", - "An actual parameter corresponding to a sef parameter may have a side-effect.", - 0, 0 - }, -{ - FK_MACROS, FK_PARAMS, modeFlag, - "sefuncon", - FLG_SEFUNSPEC, - "a parameter with unconstrained side-effects is passed as a sef parameter", - "An actual parameter corresponding to a sef parameter involves a call " - "to a procedure with no modifies clause that may have a side-effect.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, modeFlag, - "macroparens", - FLG_MACROPARENS, - "macro parameter used without parentheses (in potentially dangerous context)", - "A macro parameter is used without parentheses. This could be " - "dangerous if the macro is invoked with a complex expression " - "and precedence rules will change the evaluation inside the macro.", - 0, 0 - }, -{ - FK_MACROS, FK_PROTOS, modeFlag, - "macrodecl", - FLG_MACRODECL, - "macro without prototype or specification (sets macrofcndecl and macroconstdecl)", - "Argument checking cannot be done well for macros without prototypes " - "or specifications, since the types of the arguments are unknown.", - 0, 0 - }, -{ - FK_MACROS, FK_PROTOS, modeFlag, - "macrofcndecl", - FLG_MACROFCNDECL, - "parameterized macro without prototype or specification", - "Function macro has no declaration.", - 0, 0 - }, -{ - FK_MACROS, FK_PROTOS, modeFlag, - "macroconstdecl", - FLG_MACROCONSTDECL, - "non-parameterized macro without prototype or specification", - "Macro constant has no declaration. Use /*@constant ...@*/ to " - "declare the macro.", - 0, 0 - }, -{ - FK_MACROS, FK_NONE, modeFlag, - "macroredef", - FLG_MACROREDEF, - "macro redefined", - "A macro is defined in more than one place.", 0, 0 - }, -{ - FK_MACROS, FK_UNRECOG, modeFlag, - "macrounrecog", - FLG_MACROUNDEF, - "unrecognized identifier in macro", - "An unrecognized identifier appears in a macro. If the identifier " - "is defined before the macro is used, then this is okay.", - 0, 0 - }, -{ - FK_MEMORY, FK_DEAD, modeFlag, - "stackref", - FLG_RETSTACK, - "external reference to stack-allocated storage is created", - "A stack reference is pointed to by an external reference when the " - "function returns. The stack-allocated storage is destroyed " - "after the call, leaving a dangling reference.", - 0, 0 - }, -{ - FK_MEMORY, FK_DEAD, modeFlag, - "usereleased", - FLG_USERELEASED, - "storage used after release", - "Memory is used after it has been released (either by passing " - "as an only param or assigning to and only global.", - 0, 0 - }, -{ - FK_MEMORY, FK_DEAD, modeFlag, - "strictusereleased", - FLG_STRICTUSERELEASED, - "element used after it may have been released", - "Memory (through fetch) is used after it may have been released " - "(either by passing as an only param or assigning to and only global.", - 0, 0 - }, -{ - FK_MEMORY, FK_DEF, modeFlag, - "compdef", - FLG_COMPDEF, - "parameter, return value or global completely defined", - "Storage derivable from a parameter, return value or global is " - "not defined. Use /*@out@*/ to denote passed or returned " - "storage which need not be defined.", - 0, 0 - }, -{ - FK_MEMORY, FK_DEF, modeFlag, - "compmempass", - FLG_COMPMEMPASS, - "actual parameter matches alias kind of formal parameter completely ", - "Storage derivable from a parameter does not match the alias kind " - "expected for the formal parameter.", - 0, 0 - }, -{ - FK_MEMORY, FK_DEF, modeFlag, - "mustdefine", - FLG_MUSTDEFINE, - "out storage not defined before return or scope exit", - "An out parameter or global is not defined before control is transferred.", - 0, 0 - }, -{ - FK_MEMORY, FK_DEF, modeFlag, - "uniondef", - FLG_UNIONDEF, - "at least one field of a union must be defined", - "No field of a union is defined. Generally, one field of a union is " - "expected to be defined.", - 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, modeFlag, - "memimp", - FLG_MEMIMPLICIT, - "memory errors for unqualified storage", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, plainFlag, - "paramimptemp", - FLG_PARAMIMPTEMP, - "assume unannotated parameter is temp", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, specialFlag, - "allimponly", - FLG_ALLIMPONLY, - "sets globimponly, retimponly, structimponly, specglobimponly, " - "specretimponly and specstructimponly", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, specialFlag, - "codeimponly", - FLG_CODEIMPONLY, - "sets globimponly, retimponly and structimponly", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, specialFlag, - "specimponly", - FLG_SPECALLIMPONLY, - "sets specglobimponly, specretimponly and specstructimponly", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, plainFlag, - "globimponly", - FLG_GLOBIMPONLY, - "assume unannotated global storage is only", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, plainFlag, - "retimponly", - FLG_RETIMPONLY, - "assume unannotated returned storage is only", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, plainFlag, - "structimponly", - FLG_STRUCTIMPONLY, - "assume unannotated structure field is only", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, plainFlag, - "specglobimponly", - FLG_SPECGLOBIMPONLY, - "assume unannotated global storage is only", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, plainFlag, - "specretimponly", - FLG_SPECRETIMPONLY, - "assume unannotated returned storage is only", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_IMPLICIT, plainFlag, - "specstructimponly", - FLG_SPECSTRUCTIMPONLY, - "assume unannotated structure field is only", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_ARRAY, modeFlag, - "deparrays", - FLG_DEPARRAYS, - "array elements are dependent storage", - "When an element is fetched from an array, lclint analysis is " - "not able to determine if the same element is reused. " - "If +deparrays, lclint will mark local storage assigned from " - "array fetches as dependent.", - 0, 0 - }, -{ - FK_MEMORY, FK_LEAK, modeFlag, - "compdestroy", - FLG_COMPDESTROY, - "all only references derivable from void pointer out only parameter are released", - "A storage leak due to incomplete deallocation of a structure or deep " - "pointer is suspected. Unshared storage that is reachable from " - "a reference that is being deallocated has not yet been deallocated. " - "LCLint assumes when an object is passed " - "as an out only void pointer that the outer object will be " - "deallocated, but the inner objects will not.", - 0, 0 - }, -{ - FK_MEMORY, FK_LEAK, modeFlag, - "strictdestroy", - FLG_STRICTDESTROY, - "report complete destruction errors for array elements that " - "may have been released", - NULL, - 0, 0 - }, -{ - FK_MEMORY, FK_LEAK, modeFlag, - "mustfree", - FLG_MUSTFREE, - "only storage not released before return or scope exit", - "A memory leak has been detected. Newly-allocated or " - "only-qualified storage is not released before the last " - "reference to it is lost.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "branchstate", - FLG_BRANCHSTATE, - "storage has inconsistent states of alternate paths through a branch", - "The state of a variable is different depending on which branch " - "is taken. This means no annotation can sensibly be applied " - "to the storage.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "strictbranchstate", - FLG_STRICTBRANCHSTATE, - "storage through array fetch has inconsistent states of alternate " - "paths through a branch", - "The state of a variable through an array fetch is different depending " - "on which branch is taken. This means no annotation can sensibly be applied " - "to the storage.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, specialFlag, - "memchecks", - FLG_MEMCHECKS, - "sets all dynamic memory checking flags (memimplicit, mustfree, mustdefine, " - "mustnotalias, null, memtrans)", - NULL, 0, 0 - }, -{ - FK_MEMORY, FK_NONE, specialFlag, - "memtrans", - FLG_MEMTRANS, - "memory transfer errors (sets all *trans flags)", - "Memory is transferred in a way that violates annotations.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "exposetrans", - FLG_EXPOSETRANS, - "exposure transfer errors", - "Exposed storage is transferred to a non-exposed, non-observer reference.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "observertrans", - FLG_OBSERVERTRANS, - "observer transfer errors", - "Observer storage is transferred to a non-observer reference.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "dependenttrans", - FLG_DEPENDENTTRANS, - "dependent transfer errors", - "Dependent storage is transferred to a non-dependent reference.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "newreftrans", - FLG_NEWREFTRANS, - "new reference transfer to reference counted reference", - "A new reference is transferred to a reference counted reference.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "onlytrans", - FLG_ONLYTRANS, - "only storage transferred to non-only reference (memory leak)", - "The only reference to this storage is transferred to another " - "reference (e.g., by returning it) that does not have the " - "only annotation. This may lead to a memory leak, since the " - "new reference is not necessarily released.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "onlyunqglobaltrans", - FLG_ONLYUNQGLOBALTRANS, - "only storage transferred to an unqualified global or " - "static reference (memory leak)", - "The only reference to this storage is transferred to another " - "reference that does not have an aliasing annotation. " - "This may lead to a memory leak, since the " - "new reference is not necessarily released.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "ownedtrans", - FLG_OWNEDTRANS, - "owned storage transferred to non-owned reference (memory leak)", - "The owned reference to this storage is transferred to another " - "reference (e.g., by returning it) that does not have the " - "owned annotation. This may lead to a memory leak, since the " - "new reference is not necessarily released.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "freshtrans", - FLG_FRESHTRANS, - "fresh storage transferred to non-only reference (memory leak)", - "Fresh storage (newly allocated in this function) is transferred " - "in a way that the obligation to release storage is not " - "propagated. Use the /*@only@*/ annotation to indicate " - "the a return value is the only reference to the returned " - "storage.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "sharedtrans", - FLG_SHAREDTRANS, - "shared storage transferred to non-shared reference", - "Shared storage is transferred to a non-shared reference. The other " - "reference may release storage needed by this reference.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "temptrans", - FLG_TEMPTRANS, - "temp storage transferred to non-temporary reference", - "Temp storage (associated with a formal parameter) is transferred " - "to a non-temporary reference. The storage may be released " - "or new aliases created.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "kepttrans", - FLG_KEPTTRANS, - "kept storage transferred to non-temporary reference", - "Kept storage is transferred " - "to a non-temporary reference. The storage may be released " - "or new aliases created.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "keeptrans", - FLG_KEEPTRANS, - "keep storage transferred inconsistently", - "Keep storage is transferred inconsistently --- either in a way " - "that may add a new alias to it, or release it.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "immediatetrans", - FLG_IMMEDIATETRANS, - "an immediate address (result of &) is transferred inconsistently", - "An immediate address (result of & operator) is transferred " - "inconsistently.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "refcounttrans", - FLG_REFCOUNTTRANS, - "reference counted storage is transferred in an inconsistent way", - "Reference counted storage is transferred in a way that may not " - "be consistent with the reference count.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "statictrans", - FLG_STATICTRANS, - "static storage is transferred in an inconsistent way", - "Static storage is transferred in an inconsistent way.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "unqualifiedtrans", - FLG_UNKNOWNTRANS, - "unqualified storage is transferred in an inconsistent way", - "Unqualified storage is transferred in an inconsistent way.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "staticinittrans", - FLG_STATICINITTRANS, - "static storage is used as an initial value in an inconsistent way", - "Static storage is used as an initial value in an inconsistent way.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "unqualifiedinittrans", - FLG_UNKNOWNINITTRANS, - "unqualified storage is used as an initial value in an inconsistent way", - "Unqualified storage is used as an initial value in an inconsistent way.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "readonlystrings", - FLG_READONLYSTRINGS, - "string literals are read-only (error if one is modified or released)", - "String literals are read-only (ANSI semantics). An error is reported " - "if a string literal may be modified or released.", - 0, 0 - }, -{ - FK_MEMORY, FK_NONE, modeFlag, - "readonlytrans", - FLG_READONLYTRANS, - "report memory transfer errors for initializations to read-only string literals", - "A read-only string literal is assigned to a non-observer reference.", - 0, 0 - }, -{ - FK_MEMORY, FK_PARAMS, modeFlag, - "passunknown", - FLG_PASSUNKNOWN, - "passing a value as an un-annotated parameter clears its annotation", - NULL, 0, 0 - }, -{ - FK_MODIFIES, FK_SPEC, plainFlag, - "mods", - FLG_MODIFIES, - "unspecified modification of caller-visible state", - "An externally-visible object is modified by a function, but not " - "listed in its modifies clause.", - 0, 0 - }, -{ - FK_MODIFIES, FK_SPEC, modeFlag, - "mustmod", - FLG_MUSTMOD, - "specified modification is not detected", - "An object listed in the modifies clause is not modified by the " - "implementation of the function. The modification may not " - "be detected if it is done through a call to an unspecified " - "function.", - 0, 0 - }, -{ - FK_MODIFIES, FK_MEMORY, plainFlag, - "modobserver", - FLG_MODOBSERVER, - "possible modification of observer storage", - "Storage declared with observer is possibly modified. Observer " - "storage may not be modified.", - 0, 0 - }, -{ - FK_MODIFIES, FK_MEMORY, modeFlag, - "modobserveruncon", - FLG_MODOBSERVERUNCON, - "possible modification of observer storage through unconstrained call", - "Storage declared with observer may be modified through a call to an " - "unconstrained function.", - 0, 0 - }, -{ - FK_MODIFIES, FK_MEMORY, modeFlag, - "modinternalstrict", - FLG_MODINTERNALSTRICT, - "possible modification of internal storage through function call", - "A function that modifies internalState is called from a function that " - "does not list internalState in its modifies clause", - 0, 0 - }, -{ - FK_MODIFIES, FK_UNSPEC, modeFlag, - "modfilesys", - FLG_MODFILESYSTEM, - "report undocumented file system modifications (applies to unspecified " - "functions if modnomods is set)", - NULL, 0, 0 - }, -{ - FK_MODIFIES, FK_UNSPEC, specialFlag, - "modunspec", - FLG_MODUNSPEC, - "modification in unspecified functions (sets modnomods, " - "modglobunspec and modstrictglobsunspec)", - NULL, 0, 0 - }, -{ - FK_MODIFIES, FK_UNSPEC, modeFlag, - "modnomods", - FLG_MODNOMODS, - "modification in a function with no modifies clause", - "An externally-visible object is modified by a function with no " - "/*@modifies@*/ comment. The /*@modifies ... @*/ control " - "comment can be used to give a modifies list for an " - "unspecified function.", - 0, 0 - }, -{ - FK_MODIFIES, FK_UNSPEC, modeFlag, - "moduncon", - FLG_MODUNCON, - "possible modification through a call to an unconstrained function", - "An unconstrained function is called in a function body where " - "modifications are checked. Since the unconstrained function " - "may modify anything, there may be undetected modifications in " - "the checked function.", - 0, 0 - }, -{ - FK_MODIFIES, FK_UNSPEC, modeFlag, - "modunconnomods", - FLG_MODUNCONNOMODS, - "possible modification through a call to an unconstrained function in " - "a function with no modifies clause", - "An unconstrained function is called in a function body where " - "modifications are checked. Since the unconstrained function " - "may modify anything, there may be undetected modifications in " - "the checked function.", - 0, 0 - }, -{ - FK_MODIFIES, FK_GLOBALS, modeFlag, - "globsimpmodsnothing", - FLG_GLOBALSIMPMODIFIESNOTHING, - "functions declared with a globals list but no modifies clause are " - "assumed to modify nothing", - "An implicit modifies nothing clause is assumed for a function " - "declared with a globals list but not modifies clause.", - 0, 0 - }, -{ - FK_MODIFIES, FK_GLOBALS, modeFlag, - "modsimpnoglobs", - FLG_MODIFIESIMPNOGLOBALS, - "functions declared with a modifies clause but no globals list " - "are assumed to use no globals", - "An implicit empty globals list is assumed for a function " - "declared with a modifies clause but no globals list.", - 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "namechecks", - FLG_NAMECHECKS, - "controls name checking without changing other settings", - NULL, 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, specialFlag, - "czech", - FLG_CZECH, - "czech naming convention (sets accessczech, czechfunctions, czechvars, " - "czechconstants, czechenums, and czechmacros)", - "Name is not consistent with Czech naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechfcns", - FLG_CZECHFUNCTIONS, - "czech naming convention violated in a function or iterator declaration", - "Function or iterator name is not consistent with Czech naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechvars", - FLG_CZECHVARS, - "czech naming convention violated in a variable declaration", - "Variable name is not consistent with Czech naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechmacros", - FLG_CZECHMACROS, - "czech naming convention violated in an expanded macro name", - "Expanded macro name is not consistent with Czech naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechconsts", - FLG_CZECHCONSTANTS, - "czech naming convention violated in a constant declaration", - "Constant name is not consistent with Czech naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechtypes", - FLG_CZECHTYPES, - "czech naming convention violated in a user-defined type definition", - "Type name is not consistent with Czech naming convention. Czech type " - "names must not use the underscore character.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, specialFlag, - "slovak", - FLG_SLOVAK, - "slovak naming convention violated", - "Name is not consistent with Slovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "slovakfcns", - FLG_SLOVAKFUNCTIONS, - "slovak naming convention violated in a function or iterator declaration", - "Function or iterator name is not consistent with Slovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "slovakmacros", - FLG_SLOVAKMACROS, - "slovak naming convention violated in an expanded macro name", - "Expanded macro name is not consistent with Slovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "slovakvars", - FLG_SLOVAKVARS, - "slovak naming convention violated in a variable declaration", - "Variable name is not consistent with Slovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "slovakconsts", - FLG_SLOVAKCONSTANTS, - "slovak naming convention violated in a constant declaration", - "Constant name is not consistent with Slovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "slovaktypes", - FLG_SLOVAKTYPES, - "slovak naming convention violated in a use-defined type definition", - "Type name is not consistent with Slovak naming convention. Slovak type " - "names may not include uppercase letters.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, specialFlag, - "czechoslovak", - FLG_CZECHOSLOVAK, - "czech or slovak naming convention violated", - "Name is not consistent with either Czech or Slovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechoslovakfcns", - FLG_CZECHOSLOVAKFUNCTIONS, - "czechoslovak naming convention violated in a function or iterator declaration", - "Function name is not consistent with Czechoslovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechoslovakmacros", - FLG_CZECHOSLOVAKMACROS, - "czechoslovak naming convention violated in an expanded macro name", - "Expanded macro name is not consistent with Czechoslovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechoslovakvars", - FLG_CZECHOSLOVAKVARS, - "czechoslovak naming convention violated in a variable declaration", - "Variable name is not consistent with Czechoslovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechoslovakconsts", - FLG_CZECHOSLOVAKCONSTANTS, - "czechoslovak naming convention violated in a constant declaration", - "Constant name is not consistent with Czechoslovak naming convention.", 0, 0 - }, -{ - FK_NAMES, FK_ABSTRACT, plainFlag, - "czechoslovaktypes", - FLG_CZECHOSLOVAKTYPES, - "czechoslovak naming convention violated in a user-defined type definition", - "Type name is not consistent with Czechoslovak naming convention. Czechoslovak " - "type names may not include uppercase letters or the underscore character.", 0, 0 - }, -{ - FK_NAMES, FK_ANSI, modeFlag, - "ansireserved", - FLG_ANSIRESERVED, - "external name conflicts with name reserved for system or standard library", - "External name is reserved for system in ANSI standard.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, modeFlag, - "cppnames", - FLG_CPPNAMES, - "external or internal name is a C++ keyword or reserved word", - "External name is a C++ keyword or reserved word. " - "This could lead to problems if the " - "code is compiled with a C++ compiler.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, modeFlag, - "ansireservedinternal", - FLG_ANSIRESERVEDLOCAL, - "internal name conflicts with name reserved for system or standard library", - "Internal name is reserved for system in ANSI standard.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, plainFlag, - "distinctexternalnames", - FLG_DISTINCTEXTERNALNAMES, - "external name is not distinguishable from another external name using " - "the number of significant characters", - "An external name is not distinguishable from another external name " - "using the number of significant characters. According to " - "ANSI Standard (3.1), an implementation may only consider the first 6 " - "characters significant, and ignore alphabetical case " - "distinctions. The " - "+externalnamelen flag may be used to change the number " - "of significant characters, and -externalnamecaseinsensitive to make " - "alphabetical case significant in external names.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, specialValueFlag, - "externalnamelen", - FLG_EXTERNALNAMELEN, - "set the number of significant characters in an external name", - "Sets the number of significant characters in an external name (ANSI " - "default is 6.) Sets +distinctexternalnames.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, plainSpecialFlag, - "externalnamecaseinsensitive", - FLG_EXTERNALNAMECASEINSENSITIVE, - "alphabetic comparisons for external names are case-insensitive", - "Make alphabetic case insignificant in external names. By ANSI " - "standard, case need not be significant in an external name. " - "If +distinctexternalnames is not set, sets " - "+distinctexternalnames with unlimited external name length.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, plainFlag, - "distinctinternalnames", - FLG_DISTINCTINTERNALNAMES, - "internal name is not distinguishable from another internal name using " - "the number of significant characters", - "An internal name is not distinguishable from another internal name " - "using the number of significant characters. According to " - "ANSI Standard (3.1), an implementation may only consider the first 31 " - "characters significant. The " - "+internalnamelen flag changes the number " - "of significant characters, -internalnamecaseinsensitive to makes " - "alphabetical case significant, and " - "+internalnamelookalike to make similar-looking characters " - "non-distinct.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, specialValueFlag, - "internalnamelen", - FLG_INTERNALNAMELEN, - "set the number of significant characters in an internal name", - "Sets the number of significant characters in an internal name (ANSI " - "default is 31.) Sets +distinctinternalnames.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, plainSpecialFlag, - "internalnamecaseinsensitive", - FLG_INTERNALNAMECASEINSENSITIVE, - "set whether case is significant an internal names " - "(-internalnamecaseinsensitive means case is significant)" , - "Set whether case is significant an internal names " - "(-internalnamecaseinsensitive " - "means case is significant). By ANSI default, case is not " - "significant. If +distinctinternalnames is not set, sets " - "+distinctinternalnames with unlimited internal name length.", - 0, 0 - }, -{ - FK_NAMES, FK_ANSI, plainSpecialFlag, - "internalnamelookalike", - FLG_INTERNALNAMELOOKALIKE, - "lookalike characters match in internal names", - "Set whether similar looking characters (e.g., \"1\" and \"l\") " - "match in internal names.", - 0, 0 - }, -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "macrovarprefix", - FLG_MACROVARPREFIX, - "set namespace prefix for variables declared in a macro body", - "A variable declared in a macro body does not start with the macrovarprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "macrovarprefixexclude", - FLG_MACROVARPREFIXEXCLUDE, - "the macrovarprefix may not be used for non-macro variables", - "A variable declared outside a macro body starts with the macrovarprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "tagprefix", - FLG_TAGPREFIX, - "set namespace prefix for struct, union and enum tags", - "A tag identifier does not start with the tagprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "tagprefixexclude", - FLG_TAGPREFIXEXCLUDE, - "the tagprefix may not be used for non-tag identifiers", - "An identifier that is not a tag starts with the tagprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "enumprefix", - FLG_ENUMPREFIX, - "set namespace prefix for enum members", - "An enum member does not start with the enumprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "enumprefixexclude", - FLG_ENUMPREFIXEXCLUDE, - "the enumprefix may not be used for non-enum member identifiers", - "An identifier that is not an enum member starts with the enumprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "filestaticprefix", - FLG_FILESTATICPREFIX, - "set namespace prefix for file static declarations", - "A file-static identifier does not start with the filestaticprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "filestaticprefixexclude", - FLG_FILESTATICPREFIXEXCLUDE, - "the filestaticprefix may not be used for identifiers that are not file static", - "An identifier that is not file static starts with the filestaticprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "globalprefix", - FLG_GLOBPREFIX, - "set namespace prefix for global variables", - "A global variable does not start with the globalprefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "globalprefixexclude", - FLG_GLOBPREFIXEXCLUDE, - "the globalprefix may not be used for non-global identifiers", - "An identifier that is not a global variable starts with the globalprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "typeprefix", - FLG_TYPEPREFIX, - "set namespace prefix for user-defined types", - "A user-defined type does not start with the typeprefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "typeprefixexclude", - FLG_TYPEPREFIXEXCLUDE, - "the typeprefix may not be used for identifiers that are not type names", - "An identifier that is not a type name starts with the typeprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "externalprefix", - FLG_EXTERNALPREFIX, - "set namespace prefix for external identifiers", - "An external identifier does not start with the externalprefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "externalprefixexclude", - FLG_EXTERNALPREFIXEXCLUDE, - "the externalprefix may not be used for non-external identifiers", - "An identifier that is not external starts with the externalprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "localprefix", - FLG_LOCALPREFIX, - "set namespace prefix for local variables", - "A local variable does not start with the localprefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "localprefixexclude", - FLG_LOCALPREFIXEXCLUDE, - "the localprefix may not be used for non-local identifiers", - "An identifier that is not a local variable starts with the localprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "uncheckedmacroprefix", - FLG_UNCHECKEDMACROPREFIX, - "set namespace prefix for unchecked macros", - "An unchecked macro name does not start with the uncheckedmacroprefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "uncheckedmacroprefixexclude", - FLG_UNCHECKEDMACROPREFIXEXCLUDE, - "the uncheckmacroprefix may not be used for identifiers that are not " - "unchecked macros", - "An identifier that is not the name of an unchecked macro " - "starts with the uncheckedmacroprefix.", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "constprefix", - FLG_CONSTPREFIX, - "set namespace prefix for constants", - "A constant does not start with the constantprefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "constprefixexclude", - FLG_CONSTPREFIXEXCLUDE, - "the constprefix may not be used for non-constant identifiers", - "An identifier that is not a constant starts with the constantprefix.", + { + FK_GLOBALS, FK_MODIFIES, modeFlag, + "warnmissingglobsnoglobs", + FLG_WARNMISSINGGLOBALSNOGLOBS, + "global variable used in modifies clause in a function with no globals list", + "A global variable is used in the modifies clause, but the function " + "has no globals list. The variable will be added to the globals list.", + 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "globnoglobs", + FLG_GLOBUNSPEC, + "use of checked global in a function with no globals list or specification", + "A specified global variable is used in the function, but not listed " + "in its globals list. Without +globnoglobs, only globals " + "declared with /*@checkedstrict@*/ will produce use " + "errors in functions without globals " + "lists. The /*@globals ... @*/ control comment can be used to give " + "a globals list for an unspecified function.", + 0, 0 + }, + { + FK_GLOBALS, FK_IMPLICIT, modeFlag, + "allglobs", + FLG_ALLGLOBALS, + "report use and modification errors for globals not annotated with unchecked", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "checkstrictglobs", + FLG_CHECKSTRICTGLOBALS, + "report use and modification errors for checkedstrict globals", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckedspecglobs", + FLG_IMPCHECKEDSPECGLOBALS, + "assume checked qualifier for unqualified global declarations in .lcl files", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckmodspecglobs", + FLG_IMPCHECKMODSPECGLOBALS, + "assume checkmod qualifier for unqualified global declarations in .lcl files", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckedstrictspecglobs", + FLG_IMPCHECKEDSTRICTSPECGLOBALS, + "assume checkmod qualifier for unqualified global declarations in .lcl files", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckedglobs", + FLG_IMPCHECKEDGLOBALS, + "assume checked qualifier for unqualified global declarations", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckmodglobs", + FLG_IMPCHECKMODGLOBALS, + "assume checkmod qualifier for unqualified global declarations", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckedstrictglobs", + FLG_IMPCHECKEDSTRICTGLOBALS, + "assume checkedstrict qualifier for unqualified global declarations", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckedstatics", + FLG_IMPCHECKEDSTATICS, + "assume checked qualifier for unqualified file static declarations", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckmodstatics", + FLG_IMPCHECKMODSTATICS, + "assume checkmod qualifier for unqualified file static declarations", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckmodinternals", + FLG_IMPCHECKMODINTERNALS, + "assume checkmod qualifier for unqualified local " + "static declarations (for internal state modifications)", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_UNSPEC, modeFlag, + "impcheckedstrictstatics", + FLG_IMPCHECKEDSTRICTSTATICS, + "assume checkedstrict qualifier for unqualified file static declarations", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_MODIFIES, modeFlag, + "modglobs", + FLG_MODGLOBS, + "undocumented modification of a checked global variable", + "A checked global variable is modified by the function, but not listed in " + "its modifies clause.", + 0, 0 + }, + { + FK_GLOBALS, FK_MODIFIES, modeFlag, + "modglobsnomods", + FLG_MODGLOBSUNSPEC, + "undocumented modification of a checked global variable in a function " + "declared with no modifies clause", + "A checked global variable is modified by the function, but not listed in " + "its modifies clause.", + 0, 0 + }, + { + FK_GLOBALS, FK_MODIFIES, modeFlag, + "modstrictglobsnomods", + FLG_MODSTRICTGLOBSUNSPEC, + "undocumented modification of a strict checked global variable in a " + "function declared with no modifies clause", + "A checked global variable is modified by the function, but not listed in " + "its modifies clause.", + 0, 0 + }, + { + FK_GLOBALS, FK_MODIFIES, modeFlag, + "modglobsunchecked", + FLG_MODGLOBSUNCHECKED, + "undocumented modification of an unchecked checked global variable", + "An unchecked global variable is modified by the function, but not listed in " + "its modifies clause.", + 0, 0 + }, + { + FK_HEADERS, FK_DEBUG, debugFlag, + "keep", + FLG_KEEP, + NULL, NULL, + 0, 0 + }, + { + FK_HEADERS, FK_SPEC, globalFlag, + "lh", + FLG_DOLH, + "generate .lh files", NULL, + 0, 0 + }, + { + FK_HEADERS, FK_SPEC, globalFlag, + "lcs", + FLG_DOLCS, + "generate .lcs files", NULL, + 0, 0 + }, + { + FK_HEADERS, FK_SPEED, globalFlag, + "singleinclude", + FLG_SINGLEINCLUDE, + "optimize header inclusion to eliminate redundant includes", + "When checking multiple files, each header file is processed only " + "once. This may change the meaning of the code, if the " + "same header file is included in different contexts (e.g., the " + "header file includes #if directives and the values are " + "different when it is included in different places.)", + 0, 0 + }, + { + FK_HEADERS, FK_SPEED, globalFlag, + "neverinclude", + FLG_NEVERINCLUDE, + "optimize header inclusion to not include any header files", + "Ignore header includes. Only works if relevant information is " + "loaded from a library.", + 0, 0 + }, + { + FK_HEADERS, FK_SPEED, globalFlag, + "skipsysheaders", + FLG_SKIPSYSHEADERS, + "do not include header files in system directories (set by -sysdirs)", + "Do not include header files in system directories (set by -sysdirs)", + 0, 0 + }, + { + FK_HELP, FK_NONE, plainFlag, + "warnflags", + FLG_WARNFLAGS, + "warn when command line sets flag to default value in mode", + NULL, 0, 0 + }, + { + FK_HELP, FK_NONE, plainFlag, + "warnunixlib", + FLG_WARNUNIXLIB, + "warn when the unix library is used", + NULL, 0, 0 + }, + { + FK_HELP, FK_NONE, plainFlag, + "badflag", + FLG_BADFLAG, + "a flag is not recognized or used in an incorrect way", + NULL, 0, 0 + }, + { + FK_HELP, FK_NONE, plainFlag, + "forcehints", + FLG_FORCEHINTS, + "provide hints for all errors reported", + NULL, 0, 0 + }, + { + FK_HELP, FK_NONE, globalExtraArgFlag, + "help", + FLG_HELP, + "-help will describe flags", + NULL, 0, 0 + }, + { + FK_HELP, FK_FORMAT, plainFlag, + "hints", + FLG_HINTS, + "provide hints on using lclint (hint only reported for first related error)", + NULL, 0, 0 + }, + { + FK_IGNORERET, FK_NONE, specialFlag, + "retval", + FLG_RETVAL, + "return value ignored (sets retvalint, retvalbool and retvalother)", + "Result returned by function call is not used. If this is intended, " + "cast result to (void) to eliminate message.", + 0, 0 + }, + { + FK_IGNORERET, FK_BOOL, modeFlag, + "retvalother", + FLG_RETVALOTHER, + "return value of type other than bool or int ignored", + "Result returned by function call is not used. If this is intended, " + "can cast result to (void) to eliminate message.", + 0, 0 + }, + { + FK_IGNORERET, FK_BOOL, modeFlag, + "retvalbool", + FLG_RETVALBOOL, + "return value of manifest type bool ignored", + "Result returned by function call is not used. If this is intended, " + "can cast result to (void) to eliminate message.", + 0, 0 + }, + { + FK_IGNORERET, FK_NONE, modeFlag, + "retvalint", + FLG_RETVALINT, + "return value of type int ignored", + "Result returned by function call is not used. If this is intended, " + "can cast result to (void) to eliminate message.", + 0, 0 + }, + { + FK_INIT, FK_FILES, globalExtraArgFlag, + "f", + FLG_OPTF, + "load options file (default ~/.lclintrc not loaded)", + NULL, 0, 0 + }, + { + FK_INIT, FK_FILES, globalExtraArgFlag, + "i", + FLG_INIT, + "set LCL initilization file", + NULL, 0, 0 + }, + { + FK_INIT, FK_FILES, globalFlag, + "nof", + FLG_NOF, + "do not read options file", + NULL, 0, 0 + }, + { + FK_INIT, FK_SPEC, plainFlag, + "needspec", + FLG_NEEDSPEC, + "information in specifications is not also included in syntactic comments", + "There is information in the specification that is not duplicated " + "in syntactic comments. Normally, this is not an " + "error, but it may be useful to detect it to make " + "sure checking incomplete systems without the specifications will " + "still use this information.", + 0, 0 + }, + { + FK_DECL, FK_LIBS, plainFlag, + "newdecl", + FLG_NEWDECL, + "report new global declarations in source files", + "There is a new declaration that is not declared in a loaded library " + "or earlier file. (Use this flag to check for consistency " + "against a library.)", + 0, 0 + }, + { + FK_ITER, FK_NONE, plainFlag, + "iter", + FLG_ITER, + NULL, NULL, + 0, 0 + }, + { + FK_ITER, FK_NONE, plainFlag, + "hasyield", + FLG_HASYIELD, + "iter declaration has no yield parameters", + "An iterator has been declared with no parameters annotated with " + "yield. This may be what you want, if the iterator is meant " + "to do something a fixed number of times, but returns no " + "information to the calling context. Probably, a parameter " + "is missing the yield annotation to indicate that it is " + "assigned a value in the calling context.", + 0, 0 + }, + { + FK_LIBS, FK_FILES, globalStringFlag, + "dump", + FLG_DUMP, + "save state for merging (default suffix .lcd)", + NULL, 0, 0 + }, + { + FK_LIBS, FK_FILES, globalStringFlag, + "load", + FLG_MERGE, + "load state from dump file (default suffix .lcd)", + NULL, 0, 0 + }, + { + FK_LIBS, FK_INIT, idemGlobalFlag, + "nolib", + FLG_NOLIB, + "do not load standard library", + NULL, 0, 0 + }, + { + FK_LIBS, FK_INIT, globalFlag, + "ansilib", + FLG_ANSILIB, + "use ANSI (ISO) standard library", + "Library based on the ANSI standard library specification is used.", + 0, 0 + }, + { + FK_LIBS, FK_INIT, globalFlag, + "strictlib", + FLG_STRICTLIB, + "interpret standard library strictly", + "Stricter version of the standard library is used. (The default " + "library is standard.lcd; strict library is strict.lcd.)", + 0, 0 + }, + { + FK_LIBS, FK_INIT, globalFlag, + "unixlib", + FLG_UNIXLIB, + "use UNIX (sort-of) standard library", + "UNIX version of the standard library is used.", + 0, 0 + }, + { + FK_LIBS, FK_INIT, globalFlag, + "unixstrictlib", + FLG_UNIXSTRICTLIB, + "use strict version of UNIX (sort-of) library", + "strict version of the UNIX library is used.", + 0, 0 + }, + { + FK_LIBS, FK_INIT, globalFlag, + "posixlib", + FLG_POSIXLIB, + "use POSIX standard library", + "POSIX version of the standard library is used.", + 0, 0 + }, + { + FK_LIBS, FK_INIT, globalFlag, + "posixstrictlib", + FLG_POSIXSTRICTLIB, + "use strict POSIX standard library", + "POSIX version of the strict standard library is used.", + 0, 0 + }, + { + FK_LIBS, FK_INIT, globalFlag, + "whichlib", + FLG_WHICHLIB, + "show standard library filename", + NULL, 0, 0 + }, + { + FK_LIBS, FK_FILES, globalStringFlag, + "mts", + FLG_MTSFILE, + "load meta state declaration and corresponding xh file", + NULL, 0, 0 + }, + { + FK_INIT, FK_COMMENTS, valueFlag, + "commentchar", + FLG_COMMENTCHAR, + "set marker character for syntactic comments (default is '@')", + "Set the marker character for syntactic comments. Comments beginning " + "with /* are interpreted by lclint, where is the " + "comment marker character.", + 0, 0 + }, + { + FK_MACROS, FK_NONE, plainSpecialFlag, + "allmacros", + FLG_ALLMACROS, + "sets fcnmacros and constmacros", + "All macros (not preceded by /*@notfunction@*/) are checked as functions or " + "constants depending on whether or not they have parameter lists.", 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "iterprefix", - FLG_ITERPREFIX, - "set namespace prefix for iterators", - "An iter does not start with the iterator prefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "iterprefixexclude", - FLG_ITERPREFIXEXCLUDE, - "the iterprefix may not be used for non-iter identifiers", - "An identifier that is not a iter starts with the iterprefix.", + }, + { + FK_MACROS, FK_NONE, plainFlag, + "libmacros", + FLG_LIBMACROS, + "check all macros with declarations in library as functions", + "Every macro declared in the load library is checked.", 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, idemStringFlag, - "protoparamprefix", - FLG_DECLPARAMPREFIX, - "set namespace prefix for parameters in function prototype declarations", - "A parameter name in a function prototype declaration does not start with the " - "declaration parameter prefix", - 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, modeFlag, - "protoparamname", - FLG_DECLPARAMNAME, - "a parameter in a function prototype has a name", - "A parameter in a function prototype has a name. This is dangerous, " - "since a macro definition could be visible here.", + }, + { + FK_MACROS, FK_NONE, plainFlag, + "specmacros", + FLG_SPECMACROS, + "check all macros corresponding to specified functions or constants", + "Every macro declared a specification file is checked.", 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, modeFlag, - "protoparammatch", - FLG_DECLPARAMMATCH, - "the name of a parameter in a function prototype and corresponding " - "declaration must match (after removing the protoparamprefix", - "A parameter in a function definition does not have the same name as " - "the corresponding in the declaration of the function after " - "removing the protoparamprefix", + }, + { + FK_MACROS, FK_NONE, plainFlag, + "fcnmacros", + FLG_FCNMACROS, + "check all macros with parameter lists as functions", + "Every parameterized macro (not preceded by /*@notfunction@*/) " + "is checked as a function.", 0, 0 - } , -{ - FK_NAMES, FK_PREFIX, plainFlag, - "protoparamprefixexclude", - FLG_DECLPARAMPREFIXEXCLUDE, - "the protoparamprefix may not be used for non-declaraction parameter identifiers", - "An identifier that is not a parameter name in a function prototype " - "starts with the protoparamprefix.", + }, + { + FK_MACROS, FK_NONE, plainFlag, + "constmacros", + FLG_CONSTMACROS, + "check all macros without parameter lists as constants", + "Every non-parameterized macro (not preceded by /*@notfunction@*/) " + "is checked as a constant.", 0, 0 - } , -{ - FK_LIMITS, FK_ANSI, modeValueFlag, - "controlnestdepth", - FLG_CONTROLNESTDEPTH, - "set maximum nesting depth of compound statements, iteration control " - "structures, and selection control structures (ANSI minimum is 15)", - "Maximum number of control levels exceeded.", - 0, 0 - }, -{ - FK_LIMITS, FK_ANSI, modeValueFlag, - "stringliterallen", - FLG_STRINGLITERALLEN, - "set maximum length of string literals (ANSI minimum is 509)", - "Maximum length of string literal exceeded.", - 0, 0 - }, -{ - FK_LIMITS, FK_ANSI, modeValueFlag, - "numstructfields", - FLG_NUMSTRUCTFIELDS, - "set maximum number of fields in a struct or union (ANSI minimum is 127)", - "Maximum number of fields in a struct or union exceeded.", - 0, 0 - }, -{ - FK_LIMITS, FK_ANSI, modeValueFlag, - "numenummembers", - FLG_NUMENUMMEMBERS, - "set maximum number of members of an enum (ANSI minimum is 127)", - "Limit on maximum number of members of an enum is exceeded.", - 0, 0 - }, -{ - FK_LIMITS, FK_ANSI, modeValueFlag, - "includenest", - FLG_INCLUDENEST, - "set maximum number of nested #include files", - "Maximum number of nested #include files exceeded.", - 0, 0 - }, -{ - FK_LIMITS, FK_ANSI, specialFlag, - "ansilimits", - FLG_ANSILIMITS, - "check for violations of standard limits (controlnestdepth, " - "stringliterallen, includenest, numstructfields, numenummembers)", - NULL, - 0, 0 - }, -{ - FK_NAMES, FK_NONE, plainFlag, - "name", - FLG_NAME, - NULL, - "Naming convention is violated.", - 0, 0 - }, -{ - FK_NONE, FK_NONE, plainFlag, - "special", - FLG_SPECIAL, -NULL, NULL, - 0, 0 - }, -{ - FK_NULL, FK_MEMORY, specialFlag, - "null", - FLG_NULL, - "misuses of null pointer", - "A possibly null pointer is misused (sets nullderef, nullpass, " - "nullref, nullassign, and nullstate).", - 0, 0 - }, -{ - FK_NT, FK_MEMORY, modeFlag, - "nullterminated", - FLG_NULLTERMINATED, - "misuse of nullterminated allocation", - "A possibly non-nullterminated string/memory is used/referenced as a nullterminated one, ", - 0, 0 -}, -{ - FK_NT, FK_MEMORY, modeFlag, - "bufferoverflow", - FLG_BUFFEROVERFLOW, - "possible buffer overflow", - "A possibly buffer overflow has been detected, ", - 0, 0 -}, -{ - FK_NT, FK_MEMORY, modeFlag, - "arrayread", - FLG_ARRAYREAD, - "possible out of bounds read", - "An array or pointer access references memory beyond the array or buffer, ", - 0, 0 -}, -{ - FK_NT, FK_MEMORY, modeFlag, - "arraywrite", - FLG_ARRAYWRITE, - "possible buffer overflow from an out of bounds write", - "Memory is set past the end of an array or or after the allocated buffer, ", - 0, 0 -}, - -{ - FK_NT, FK_MEMORY, modeFlag, - "fcnpost", - FLG_FUNCTIONPOST, - "Function has the post condition", - "LCLint has determined that the following statement is true after the function, ", - 0, 0 -}, -{ - FK_NT, FK_MEMORY, modeFlag, - "fcnconstraint", - FLG_FUNCTIONCONSTRAINT, - "unresolved constraint", - "LCLint was unable to resolve a constraint at the top of the function. If code is correct consider using explict annotation assertions, ", - 0, 0 -}, - /*drl7x added 6/18/01 */ -{ - FK_NT, FK_MEMORY, modeFlag, - "checkpost", - FLG_CHECKPOST, - "unable to verify ensures annotation", - "LCLint was unable to determine that the function satisfies a post condition given in an ensures annotation, ", - 0, 0 -}, - -{ - FK_NT, FK_MEMORY, modeFlag, - "constraintlocation", - FLG_CONSTRAINTLOCATION, - "display full c expression for every constraint generated", - ", ", - 0, 0 - },/*drl added flag 4/26/01*/ -{ - FK_NT, FK_MEMORY, modeFlag, - "implictconstraint", - FLG_IMPLICTCONSTRAINT, - "Try to generate implicit constraints for functions", - ", ", - 0, 0 -}, - /*drl7x added 4/29/01 */ -{ - FK_NT, FK_MEMORY, modeFlag, - "orconstraint", - FLG_ORCONSTRAINT, - "Use limited OR expressions to resolve constraints", - ", ", - 0, 0 -}, - -{ - FK_NT, FK_MEMORY, modeFlag, - "nullterminated", - FLG_NULLTERMINATEDWARNING, - "misuse of nullterminated allocation", - "WARNING:A user annotated non-nullterminated buffer is used/referenced as a nullterminated one, ", - 0, 0 -}, -{ - FK_NULL, FK_MEMORY, modeFlag, - "nullderef", - FLG_NULLDEREF, - "possible dereferencce of null pointer", - "A possibly null pointer is dereferenced. Value is " - "either the result of a function which may return null " - "(in which case, code should check it is not null), or a " - "global, parameter or structure field declared with the " - "null qualifier.", - 0, 0 - }, -{ - FK_TYPE, FK_NONE, modeFlag, - "fcnderef", - FLG_FCNDEREF, - "dereferencce of a function type", - "A function type is dereferenced. The ANSI standard allows this " - "because of implicit conversion of function designators, however the " - "dereference is unnecessary.", - 0, 0 - }, -{ - FK_NULL, FK_MEMORY, modeFlag, - "nullpass", - FLG_NULLPASS, - "possibly null pointer passed as formal with no null annotation", - "A possibly null pointer is passed as a parameter corresponding to " - "a formal parameter with no /*@null@*/ annotation. If NULL " - "may be used for this parameter, add a /*@null@*/ annotation " - "to the function parameter declaration.", - 0, 0 - }, -{ - FK_NULL, FK_MEMORY, modeFlag, - "nullret", - FLG_NULLRET, - "possibly null pointer returned as result with no null annotation", - "Function returns a possibly null pointer, but is not declared " - "using /*@null@*/ annotation of result. If function may " - "return NULL, add /*@null@*/ annotation to the return " - "value declaration.", - 0, 0 - }, -{ - FK_NULL, FK_MEMORY, modeFlag, - "nullstate", - FLG_NULLSTATE, - "possibly null pointer reachable from a reference with no null annotation", - "A possibly null pointer is reachable from a parameter or global " - "variable that is not declared using a /*@null@*/ annotation.", - 0, 0 - }, -{ - FK_NULL, FK_MEMORY, modeFlag, - "nullassign", - FLG_NULLASSIGN, - "inconsistent assignment or initialization involving null pointer", - "A reference with no null annotation is assigned or initialized " - "to NULL. Use /*@null@*/ to declare the reference as " - "a possibly null pointer.", - 0, 0 - }, -{ - FK_OPS, FK_BOOL, modeFlag, - "boolcompare", - FLG_BOOLCOMPARE, - "comparison between bools (dangerous because of multiple TRUE values)", - "Two bool values are compared directly using a C primitive. This " - "may produce unexpected results since all non-zero values are " - "considered TRUE, so different TRUE values may not be equal. " - "The file bool.h (included in lclint/lib) provides bool_equal " - "for safe bool comparisons.", 0, 0 - }, -{ - FK_OPS, FK_NONE, modeFlag, - "realcompare", - FLG_REALCOMPARE, - "dangerous comparison between reals (dangerous because of inexact " - "floating point representations)", - "Two real (float, double, or long double) values are compared " - "directly using a C primitive. " - "This may produce unexpected results since floating point " - "representations are inexact. Instead, compare the difference to " - "FLT_EPSILON or DBL_EPSILON.", - 0, 0, - }, -{ - FK_OPS, FK_POINTER, modeFlag, - "ptrarith", - FLG_POINTERARITH, - "arithmetic involving pointer and integer", - "Pointer arithmetic using pointer and integer.", 0, 0 - }, -{ - FK_OPS, FK_POINTER, modeFlag, - "nullptrarith", - FLG_NULLPOINTERARITH, - "arithmetic involving possibly null pointer and integer", - "Pointer arithmetic using a possibly null pointer and integer.", 0, 0 - }, -{ - FK_OPS, FK_POINTER, modeFlag, - "ptrcompare", - FLG_PTRNUMCOMPARE, - "comparison between pointer and number", - "A pointer is compared to a number.", 0, 0 - }, -{ - FK_OPS, FK_TYPE, modeFlag, - "strictops", - FLG_STRICTOPS, - "primitive operation does not type check strictly", - "A primitive operation does not type check strictly.", 0, 0 - }, -{ - FK_OPS, FK_TYPE, modeFlag, - "bitwisesigned", - FLG_BITWISEOPS, - "a bitwise logical operator does not have unsigned operands", - "An operand to a bitwise operator is not an unsigned values. This " - "may have unexpected results depending on the signed " - "representations.", 0, 0 - }, -{ - FK_OPS, FK_TYPE, modeFlag, - "shiftsigned", - FLG_SHIFTSIGNED, - "a shift operator does not have unsigned operands", - "An operand to a shift operator is not unsigned values. This " - "may have unexpected results depending on the signed " - "representations.", 0, 0 - }, -{ - FK_OPS, FK_BOOL, modeFlag, - "boolops", - FLG_BOOLOPS, - "primitive operation (!, && or ||) does not has a boolean argument", - "The operand of a boolean operator is not a boolean. Use +ptrnegate " - "to allow ! to be used on pointers.", - 0, 0 - }, -{ - FK_OPS, FK_POINTER, modeFlag, - "ptrnegate", - FLG_PTRNEGATE, - "allow ! to be used on pointer operand", - "The operand of ! operator is a pointer.", 0, 0 - }, -{ - FK_OPS, FK_TYPE, modeFlag, - "sizeoftype", - FLG_SIZEOFTYPE, - "sizeof operator has a type argument", - "Operand of sizeof operator is a type. (Safer to use expression, " - "int *x = sizeof (*x); instead of sizeof (int).)", - 0, 0 - }, -{ - FK_OPS, FK_TYPE, plainFlag, - "sizeofformalarray", - FLG_SIZEOFFORMALARRAY, - "sizeof operator has an array formal parameter argument", - "Operand of a sizeof operator is a function parameter declared as " - "an array. The value of sizeof will be the size of a pointer to the " - "element type, not the number of elements in the array.", - 0, 0 - }, -{ - FK_DECL, FK_TYPE, plainFlag, - "fixedformalarray", - FLG_FIXEDFORMALARRAY, - "formal parameter of type array is declared with size", - "A formal parameter is declared as an array with size. The size of the array " - "is ignored in this context, since the array formal parameter is treated " - "as a pointer.", - 0, 0 - }, -{ - FK_DECL, FK_TYPE, plainFlag, - "incompletetype", - FLG_INCOMPLETETYPE, - "formal parameter has an incomplete type", - "A formal parameter is declared with an incomplete type.", - 0, 0 - }, -{ - FK_DECL, FK_TYPE, plainFlag, - "formalarray", - FLG_FORMALARRAY, - "formal parameter is an array", - "A formal parameter is declared as an array. This can be confusing, since " - "a formal array parameter is treated as a pointer.", - 0, 0 - }, -{ - FK_PRED, FK_BOOL, plainFlag, - "predassign", - FLG_PREDASSIGN, - "condition test (if, while or for) is an assignment", - "The condition test is an assignment expression. Probably, you mean " - "to use == instead of =. If an assignment is intended, add an " - "extra parentheses nesting (e.g., if ((a = b)) ...) to suppress " - "this message.", - 0, 0 - }, -{ - FK_PRED, FK_BOOL, specialFlag, - "predbool", - FLG_PREDBOOL, - "type of condition test (if, while or for) not bool (sets predboolint, " - "predboolptr and predboolothers)", - "Test expression type is not boolean.", 0, 0 - }, -{ - FK_PRED, FK_BOOL, modeFlag, - "predboolint", - FLG_PREDBOOLINT, - "type of condition test (if, while or for) is an integral type", - "Test expression type is not boolean or int.", 0, 0 - }, -{ - FK_PRED, FK_BOOL, modeFlag, - "predboolothers", - FLG_PREDBOOLOTHERS, - "type of condition test (if, while or for) not bool, int or pointer", - "Test expression type is not boolean.", 0, 0 - }, -{ - FK_PRED, FK_BOOL, modeFlag, - "predboolptr", - FLG_PREDBOOLPTR, - "type of condition test (if, while or for) is a pointer", - "Test expression type is not boolean.", 0, 0 - }, -{ - FK_PREPROC, FK_NONE, globalExtraArgFlag, - "D", - FLG_DEFINE, - "passed to pre-processor", - NULL, 0, 0 - }, -{ - FK_PREPROC, FK_NONE, globalExtraArgFlag, - "U", - FLG_UNDEFINE, - "passed to pre-processor", - NULL, 0, 0 - }, -{ - FK_GLOBALS, FK_NONE, modeFlag, - "globstate", - FLG_GLOBSTATE, - "returns with global in inconsistent state (null or undefined)", - "A global variable does not satisfy its annotations when control is transferred.", - 0, 0 - }, -{ - FK_SUPPRESS, FK_COMMENTS, globalFlag, - "supcounts", - FLG_SUPCOUNTS, - "The number of errors detected does not match number in /*@i@*/.", - NULL, 0, 0 - }, -{ - FK_SUPPRESS, FK_ERRORS, valueFlag, - "limit", - FLG_LIMIT, - "limit consecutive repeated errors", - NULL, 0, 0 - }, -{ - FK_SYNTAX, FK_NONE, plainFlag, - "syntax", - FLG_SYNTAX, - "syntax error in parsing", - "Code cannot be parsed. For help on parse errors, see lclint -help parseerrors.", - 0, 0 - }, -{ - FK_SYNTAX, FK_NONE, plainFlag, - "trytorecover", - FLG_TRYTORECOVER, - "try to recover from parse error", - "Try to recover from parse error. It really means try --- this doesn't usually work.", 0, 0 - }, -{ - FK_SYNTAX, FK_PREPROC, plainFlag, - "preproc", - FLG_PREPROC, - NULL, NULL, - 0, 0 - }, -{ - FK_TYPE, FK_NONE, plainFlag, - "type", - FLG_TYPE, - "type mismatch", - "Types are incompatible.", - 0, 0 - }, -{ - FK_TYPE, FK_NONE, plainFlag, - "fullinitblock", - FLG_FULLINITBLOCK, - "initializer sets all fields", - "Initializer does not set every field in the structure.", - 0, 0 - }, -{ - FK_TYPE, FK_NONE, modeFlag, - "enummembers", - FLG_ENUMMEMBERS, - "enum members must be int values", - "Type of initial values for enum members must be int.", - 0, 0 }, - -{ - FK_TYPE, FK_NONE, plainFlag, - "maintype", - FLG_MAINTYPE, - "type of main does not match expected type", - "The function main does not match the expected type.", - 0, 0 - }, -{ - FK_TYPE, FK_NONE, plainFlag, - "formattype", - FLG_FORMATTYPE, - "type-mismatch in parameter corresponding to format code in a printf or scanf-like function", - "Type of parameter is not consistent with corresponding code in format string.", - 0, 0 - }, -{ - FK_TYPE, FK_NONE, plainFlag, - "formatcode", - FLG_FORMATCODE, - "invalid format code in format string for printf or scanf-like function", - "Format code in a format string is not valid.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_ABSTRACT, modeFlag, - "forwarddecl", - FLG_FORWARDDECL, - "forward declarations of pointers to abstract representation match abstract type", - NULL, 0, 0 - }, -{ - FK_TYPEEQ, FK_ABSTRACT, modeFlag, - "voidabstract", - FLG_ABSTVOIDP, - "void * matches pointers to abstract types, casting ok (dangerous)", - "A pointer to void is cast to a pointer to an abstract type (or vice versa).", - 0, 0 - }, -{ - FK_TYPEEQ, FK_POINTER, plainFlag, - "castfcnptr", - FLG_CASTFCNPTR, - "a pointer to a function is cast to a pointer to void (or vice versa)", - "A pointer to a function is cast to (or used as) a pointer to void (or vice versa).", - 0, 0 - }, -{ - FK_TYPEEQ, FK_ARRAY, modeFlag, - "charindex", - FLG_CHARINDEX, - "char can be used to index arrays", - "To allow char types to index arrays, use +charindex.", 0, 0 - }, -{ - FK_TYPEEQ, FK_ARRAY, modeFlag, - "enumindex", - FLG_ENUMINDEX, - "enum can be used to index arrays", - "To allow enum types to index arrays, use +enumindex.", 0, 0 - }, -{ - FK_TYPEEQ, FK_BOOL, modeFlag, - "boolint", - FLG_BOOLINT, - "bool and int are equivalent", - "To make bool and int types equivalent, use +boolint.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NONE, modeFlag, - "charint", - FLG_CHARINT, - "char and int are equivalent", - "To make char and int types equivalent, use +charint.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NONE, modeFlag, - "enumint", - FLG_ENUMINT, - "enum and int are equivalent", - "To make enum and int types equivalent, use +enumint.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NONE, modeFlag, - "floatdouble", - FLG_FLOATDOUBLE, - "float and double are equivalent", - "To make float and double types equivalent, use +floatdouble.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "ignorequals", - FLG_IGNOREQUALS, - "ignore type qualifiers (long, short, unsigned)", - "To ignore type qualifiers in type comparisons use +ignorequals.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_SYNTAX, plainFlag, - "duplicatequals", - FLG_DUPLICATEQUALS, - "report duplicate type qualifiers (e.g., long long)", - "Duplicate type qualifiers not supported by ANSI. Some " - "compilers (e.g., gcc) do support duplicate qualifiers.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "ignoresigns", - FLG_IGNORESIGNS, - "ignore signs in type comparisons (unsigned matches signed)", - "To ignore signs in type comparisons use +ignoresigns", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "numliteral", - FLG_NUMLITERAL, - "int literals can be reals", - "An int literal is used as any numeric type (including float and long long). Use +numliteral to " - "allow int literals to be used as any numeric type.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "charintliteral", - FLG_CHARINTLITERAL, - "character constants (e.g., 'a') can be used as ints", - "A character constant is used as an int. Use +charintliteral to " - "allow character constants to be used as ints. (This is safe " - "since the actual type of a char constant is int.)", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "relaxquals", - FLG_RELAXQUALS, - "report qualifier mismatches only if dangerous", - NULL, 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "relaxtypes", - FLG_RELAXTYPES, - "allow all numeric types to match", - NULL, 0, 0 - }, -{ - FK_TYPEEQ, FK_NONE, modeFlag, - "charunsignedchar", - FLG_CHARUNSIGNEDCHAR, - "allow char and unsigned char types to match", - "To allow char and unsigned char types to match use +charunsignedchar.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "matchanyintegral", - FLG_MATCHANYINTEGRAL, - "allow any intergral type to match an arbitrary integral type (e.g., dev_t)", - "To allow arbitrary integral types to match any integral type, use +matchanyintegral.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "longunsignedintegral", - FLG_LONGUNSIGNEDINTEGRAL, - "allow long unsigned type to match an arbitrary integral type (e.g., dev_t)", - "To allow arbitrary integral types to match long unsigned, use +longunsignedintegral.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "longintegral", - FLG_LONGINTEGRAL, - "allow long type to match an arbitrary integral type (e.g., dev_t)", - "To allow arbitrary integral types to match long unsigned, use +longintegral.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "longunsignedunsignedintegral", - FLG_LONGUNSIGNEDUNSIGNEDINTEGRAL, - "allow long unsigned type to match an arbitrary unsigned integral type (e.g., size_t)", - "To allow arbitrary unsigned integral types to match long unsigned, " - "use +longunsignedunsignedintegral.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_NUMBERS, modeFlag, - "longsignedintegral", - FLG_LONGSIGNEDINTEGRAL, - "allow long type to match an arbitrary signed integral type (e.g., ssize_t)", - "To allow arbitrary signed integral types to match long unsigned, use +longsignedintegral.", - 0, 0 - }, -{ - FK_TYPEEQ, FK_POINTER, plainFlag, - "zeroptr", - FLG_ZEROPTR, - "0 is treated as a pointer", - NULL, 0, 0 - }, -{ - FK_TYPEEQ, FK_BOOL, modeFlag, - "zerobool", - FLG_ZEROBOOL, - "0 is treated as a boolean", - NULL, 0, 0 - }, -{ - FK_UNRECOG, FK_DISPLAY, plainFlag, - "repeatunrecog", - FLG_REPEATUNRECOG, - "do not suppress repeated unrecognized identifier messages (instead of only reporting the first error)", - "Identifier used in code has not been declared. (Message repeated for future uses in this file.)", - 0, 0 - }, -{ - FK_UNRECOG, FK_DISPLAY, plainFlag, - "sysunrecog", - FLG_SYSTEMUNRECOG, - "report unrecognized identifiers with system (__) prefix", - "Identifier used in code has not been declared. (Message repeated for " - "future uses in this file.) Use +gnuextensions to make lclint " - "recognize some keywords that are gnu extensions.", - 0, 0 - }, -{ - FK_UNRECOG, FK_NONE, plainFlag, - "unrecog", - FLG_UNRECOG, - "unrecognized identifier", - "Identifier used in code has not been declared.", 0, 0 - }, -{ - FK_USE, FK_COMPLETE, modeFlag, - "topuse", - FLG_TOPUNUSED, - "declaration at top level not used", - "An external declaration not used in any source file.", 0, 0 - }, -{ - FK_USE, FK_EXPORT, modeFlag, - "exportlocal", - FLG_EXPORTLOCAL, - "a declaration is exported but not used outside this module", - "A declaration is exported, but not used outside this module. " - "Declaration can use static qualifier.", - 0, 0 - }, -{ - FK_USE, FK_EXPORT, modeFlag, - "exportheader", - FLG_EXPORTHEADER, - "a declaration is exported but does not appear in a header file", - "A declaration is exported, but does not appear in a header file.", - 0, 0 - }, -{ - FK_USE, FK_EXPORT, modeFlag, - "exportheadervar", - FLG_EXPORTHEADERVAR, - "a variable declaration is exported but does not appear in a header file", - "A variable declaration is exported, but does not appear in a header " - "file. (Used with exportheader.)", - 0, 0 - }, -{ - FK_USE, FK_NONE, modeFlag, - "fielduse", - FLG_FIELDUNUSED, - "field of structure type not used", - "A field is present in a structure type but never used. Use /*@unused@*/ in front of field declaration to suppress message.", - 0, 0 - }, -{ - FK_USE, FK_NONE, modeFlag, - "enummemuse", - FLG_ENUMMEMUNUSED, - "member of an enum type not used", - "A member of an enum type is never used.", - 0, 0 - }, -{ - FK_USE, FK_NONE, modeFlag, - "constuse", - FLG_CONSTUNUSED, - "constant declared but not used", - "A constant is declared but not used. Use unused in the constant declaration to suppress message.", - 0, 0 - }, -{ - FK_USE, FK_NONE, modeFlag, - "fcnuse", - FLG_FUNCUNUSED, - "function declared but not used", - "A function is declared but not used. Use /*@unused@*/ in front of function header to suppress message.", - 0, 0 - }, -{ - FK_USE, FK_PARAMS, modeFlag, - "paramuse", - FLG_PARAMUNUSED, - "function parameter not used ", - "A function parameter is not used in the body of the function. If the argument is needed for type compatibility or future plans, use /*@unused@*/ in the argument declaration.", - 0, 0 - }, -{ - FK_USE, FK_TYPE, modeFlag, - "typeuse", - FLG_TYPEUNUSED, - "type declared but not used", - "A type is declared but not used. Use /*@unused@*/ in front of typedef to suppress messages.", - 0, 0 - }, -{ - FK_USE, FK_NONE, modeFlag, - "varuse", - FLG_VARUNUSED, - "variable declared but not used", - "A variable is declared but never used. Use /*@unused@*/ in front " - "of declaration to suppress message.", - 0, 0 + { + FK_MACROS, FK_NONE, modeFlag, + "macromatchname", + FLG_MACROMATCHNAME, + "macro definition does not match iter or constant declaration", + "A iter or constant macro is defined using a different name from the " + "one used in the previous syntactic comment", + 0, 0 + }, + { + FK_MACROS, FK_NONE, plainFlag, + "nextlinemacros", + FLG_MACRONEXTLINE, + "the line after a constant or iter declaration must be a macro definition", + "A constant or iter declaration is not immediately followed by a macro definition.", + 0, 0 + }, + { + FK_MACROS, FK_NONE, modeFlag, + "macrostmt", + FLG_MACROSTMT, + "macro definition is syntactically not equivalent to function", + "A macro is defined in a way that may cause syntactic problems. If the macro returns a value, use commas to separate expressions; otherwise, use do { } while (FALSE) construct.", + 0, 0 + }, + { + FK_MACROS, FK_NONE, modeFlag, + "macroempty", + FLG_MACROEMPTY, + "macro definition for is empty", + "A macro definition has no body.", + 0, 0 + }, + { + FK_MACROS, FK_PARAMS, modeFlag, + "macroparams", + FLG_MACROPARAMS, + "macro parameter not used exactly once", + "A macro parameter is not used exactly once in all possible " + "invocations of the macro. To behave like a function, " + "each macro parameter must be used exactly once on all " + "invocations of the macro so that parameters with " + "side-effects are evaluated exactly once. Use /*@sef@*/ to " + "denote parameters that must be side-effect free.", + 0, 0 + }, + { + FK_MACROS, FK_PARAMS, modeFlag, + "macroassign", + FLG_MACROASSIGN, + "assignment to a macro parameter", + "A macro parameter is used as the left side of an " + "assignment expression. This exhibits behavior that " + "could not be implemented by a function.", + 0, 0 + }, + { + FK_MACROS, FK_PARAMS, modeFlag, + "sefparams", + FLG_SEFPARAMS, + "a parameter with side-effects is passed as a sef parameter", + "An actual parameter corresponding to a sef parameter may have a side-effect.", + 0, 0 + }, + { + FK_MACROS, FK_PARAMS, modeFlag, + "sefuncon", + FLG_SEFUNSPEC, + "a parameter with unconstrained side-effects is passed as a sef parameter", + "An actual parameter corresponding to a sef parameter involves a call " + "to a procedure with no modifies clause that may have a side-effect.", + 0, 0 + }, + { + FK_MACROS, FK_NONE, modeFlag, + "macroparens", + FLG_MACROPARENS, + "macro parameter used without parentheses (in potentially dangerous context)", + "A macro parameter is used without parentheses. This could be " + "dangerous if the macro is invoked with a complex expression " + "and precedence rules will change the evaluation inside the macro.", + 0, 0 + }, + { + FK_MACROS, FK_PROTOS, modeFlag, + "macrodecl", + FLG_MACRODECL, + "macro without prototype or specification (sets macrofcndecl and macroconstdecl)", + "Argument checking cannot be done well for macros without prototypes " + "or specifications, since the types of the arguments are unknown.", + 0, 0 + }, + { + FK_MACROS, FK_PROTOS, modeFlag, + "macrofcndecl", + FLG_MACROFCNDECL, + "parameterized macro without prototype or specification", + "Function macro has no declaration.", + 0, 0 + }, + { + FK_MACROS, FK_PROTOS, modeFlag, + "macroconstdecl", + FLG_MACROCONSTDECL, + "non-parameterized macro without prototype or specification", + "Macro constant has no declaration. Use /*@constant ...@*/ to " + "declare the macro.", + 0, 0 + }, + { + FK_MACROS, FK_NONE, modeFlag, + "macroredef", + FLG_MACROREDEF, + "macro redefined", + "A macro is defined in more than one place.", 0, 0 + }, + { + FK_MACROS, FK_UNRECOG, modeFlag, + "macrounrecog", + FLG_MACROUNDEF, + "unrecognized identifier in macro", + "An unrecognized identifier appears in a macro. If the identifier " + "is defined before the macro is used, then this is okay.", + 0, 0 + }, + { + FK_MEMORY, FK_DEAD, modeFlag, + "stackref", + FLG_RETSTACK, + "external reference to stack-allocated storage is created", + "A stack reference is pointed to by an external reference when the " + "function returns. The stack-allocated storage is destroyed " + "after the call, leaving a dangling reference.", + 0, 0 + }, + { + FK_MEMORY, FK_DEAD, modeFlag, + "usereleased", + FLG_USERELEASED, + "storage used after release", + "Memory is used after it has been released (either by passing " + "as an only param or assigning to and only global.", + 0, 0 + }, + { + FK_MEMORY, FK_DEAD, modeFlag, + "strictusereleased", + FLG_STRICTUSERELEASED, + "element used after it may have been released", + "Memory (through fetch) is used after it may have been released " + "(either by passing as an only param or assigning to and only global.", + 0, 0 + }, + { + FK_MEMORY, FK_DEF, modeFlag, + "compdef", + FLG_COMPDEF, + "parameter, return value or global completely defined", + "Storage derivable from a parameter, return value or global is " + "not defined. Use /*@out@*/ to denote passed or returned " + "storage which need not be defined.", + 0, 0 + }, + { + FK_MEMORY, FK_DEF, modeFlag, + "compmempass", + FLG_COMPMEMPASS, + "actual parameter matches alias kind of formal parameter completely ", + "Storage derivable from a parameter does not match the alias kind " + "expected for the formal parameter.", + 0, 0 + }, + { + FK_MEMORY, FK_DEF, modeFlag, + "mustdefine", + FLG_MUSTDEFINE, + "out storage not defined before return or scope exit", + "An out parameter or global is not defined before control is transferred.", + 0, 0 + }, + { + FK_MEMORY, FK_DEF, modeFlag, + "uniondef", + FLG_UNIONDEF, + "at least one field of a union must be defined", + "No field of a union is defined. Generally, one field of a union is " + "expected to be defined.", + 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, modeFlag, + "memimp", + FLG_MEMIMPLICIT, + "memory errors for unqualified storage", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, plainFlag, + "paramimptemp", + FLG_PARAMIMPTEMP, + "assume unannotated parameter is temp", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, specialFlag, + "allimponly", + FLG_ALLIMPONLY, + "sets globimponly, retimponly, structimponly, specglobimponly, " + "specretimponly and specstructimponly", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, specialFlag, + "codeimponly", + FLG_CODEIMPONLY, + "sets globimponly, retimponly and structimponly", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, specialFlag, + "specimponly", + FLG_SPECALLIMPONLY, + "sets specglobimponly, specretimponly and specstructimponly", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, plainFlag, + "globimponly", + FLG_GLOBIMPONLY, + "assume unannotated global storage is only", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, plainFlag, + "retimponly", + FLG_RETIMPONLY, + "assume unannotated returned storage is only", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, plainFlag, + "structimponly", + FLG_STRUCTIMPONLY, + "assume unannotated structure field is only", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, plainFlag, + "specglobimponly", + FLG_SPECGLOBIMPONLY, + "assume unannotated global storage is only", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, plainFlag, + "specretimponly", + FLG_SPECRETIMPONLY, + "assume unannotated returned storage is only", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_IMPLICIT, plainFlag, + "specstructimponly", + FLG_SPECSTRUCTIMPONLY, + "assume unannotated structure field is only", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_ARRAY, modeFlag, + "deparrays", + FLG_DEPARRAYS, + "array elements are dependent storage", + "When an element is fetched from an array, lclint analysis is " + "not able to determine if the same element is reused. " + "If +deparrays, lclint will mark local storage assigned from " + "array fetches as dependent.", + 0, 0 + }, + { + FK_MEMORY, FK_LEAK, modeFlag, + "compdestroy", + FLG_COMPDESTROY, + "all only references derivable from void pointer out only parameter are released", + "A storage leak due to incomplete deallocation of a structure or deep " + "pointer is suspected. Unshared storage that is reachable from " + "a reference that is being deallocated has not yet been deallocated. " + "LCLint assumes when an object is passed " + "as an out only void pointer that the outer object will be " + "deallocated, but the inner objects will not.", + 0, 0 + }, + { + FK_MEMORY, FK_LEAK, modeFlag, + "strictdestroy", + FLG_STRICTDESTROY, + "report complete destruction errors for array elements that " + "may have been released", + NULL, + 0, 0 + }, + { + FK_MEMORY, FK_LEAK, modeFlag, + "mustfree", + FLG_MUSTFREE, + "only storage not released before return or scope exit", + "A memory leak has been detected. Newly-allocated or " + "only-qualified storage is not released before the last " + "reference to it is lost.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "branchstate", + FLG_BRANCHSTATE, + "storage has inconsistent states of alternate paths through a branch", + "The state of a variable is different depending on which branch " + "is taken. This means no annotation can sensibly be applied " + "to the storage.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "strictbranchstate", + FLG_STRICTBRANCHSTATE, + "storage through array fetch has inconsistent states of alternate " + "paths through a branch", + "The state of a variable through an array fetch is different depending " + "on which branch is taken. This means no annotation can sensibly be applied " + "to the storage.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, specialFlag, + "memchecks", + FLG_MEMCHECKS, + "sets all dynamic memory checking flags (memimplicit, mustfree, mustdefine, " + "mustnotalias, null, memtrans)", + NULL, 0, 0 + }, + { + FK_MEMORY, FK_NONE, specialFlag, + "memtrans", + FLG_MEMTRANS, + "memory transfer errors (sets all *trans flags)", + "Memory is transferred in a way that violates annotations.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "exposetrans", + FLG_EXPOSETRANS, + "exposure transfer errors", + "Exposed storage is transferred to a non-exposed, non-observer reference.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "observertrans", + FLG_OBSERVERTRANS, + "observer transfer errors", + "Observer storage is transferred to a non-observer reference.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "dependenttrans", + FLG_DEPENDENTTRANS, + "dependent transfer errors", + "Dependent storage is transferred to a non-dependent reference.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "newreftrans", + FLG_NEWREFTRANS, + "new reference transfer to reference counted reference", + "A new reference is transferred to a reference counted reference.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "onlytrans", + FLG_ONLYTRANS, + "only storage transferred to non-only reference (memory leak)", + "The only reference to this storage is transferred to another " + "reference (e.g., by returning it) that does not have the " + "only annotation. This may lead to a memory leak, since the " + "new reference is not necessarily released.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "onlyunqglobaltrans", + FLG_ONLYUNQGLOBALTRANS, + "only storage transferred to an unqualified global or " + "static reference (memory leak)", + "The only reference to this storage is transferred to another " + "reference that does not have an aliasing annotation. " + "This may lead to a memory leak, since the " + "new reference is not necessarily released.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "ownedtrans", + FLG_OWNEDTRANS, + "owned storage transferred to non-owned reference (memory leak)", + "The owned reference to this storage is transferred to another " + "reference (e.g., by returning it) that does not have the " + "owned annotation. This may lead to a memory leak, since the " + "new reference is not necessarily released.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "freshtrans", + FLG_FRESHTRANS, + "fresh storage transferred to non-only reference (memory leak)", + "Fresh storage (newly allocated in this function) is transferred " + "in a way that the obligation to release storage is not " + "propagated. Use the /*@only@*/ annotation to indicate " + "the a return value is the only reference to the returned " + "storage.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "sharedtrans", + FLG_SHAREDTRANS, + "shared storage transferred to non-shared reference", + "Shared storage is transferred to a non-shared reference. The other " + "reference may release storage needed by this reference.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "temptrans", + FLG_TEMPTRANS, + "temp storage transferred to non-temporary reference", + "Temp storage (associated with a formal parameter) is transferred " + "to a non-temporary reference. The storage may be released " + "or new aliases created.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "kepttrans", + FLG_KEPTTRANS, + "kept storage transferred to non-temporary reference", + "Kept storage is transferred " + "to a non-temporary reference. The storage may be released " + "or new aliases created.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "keeptrans", + FLG_KEEPTRANS, + "keep storage transferred inconsistently", + "Keep storage is transferred inconsistently --- either in a way " + "that may add a new alias to it, or release it.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "immediatetrans", + FLG_IMMEDIATETRANS, + "an immediate address (result of &) is transferred inconsistently", + "An immediate address (result of & operator) is transferred " + "inconsistently.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "refcounttrans", + FLG_REFCOUNTTRANS, + "reference counted storage is transferred in an inconsistent way", + "Reference counted storage is transferred in a way that may not " + "be consistent with the reference count.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "statictrans", + FLG_STATICTRANS, + "static storage is transferred in an inconsistent way", + "Static storage is transferred in an inconsistent way.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "unqualifiedtrans", + FLG_UNKNOWNTRANS, + "unqualified storage is transferred in an inconsistent way", + "Unqualified storage is transferred in an inconsistent way.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "staticinittrans", + FLG_STATICINITTRANS, + "static storage is used as an initial value in an inconsistent way", + "Static storage is used as an initial value in an inconsistent way.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "unqualifiedinittrans", + FLG_UNKNOWNINITTRANS, + "unqualified storage is used as an initial value in an inconsistent way", + "Unqualified storage is used as an initial value in an inconsistent way.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "readonlystrings", + FLG_READONLYSTRINGS, + "string literals are read-only (error if one is modified or released)", + "String literals are read-only (ANSI semantics). An error is reported " + "if a string literal may be modified or released.", + 0, 0 + }, + { + FK_MEMORY, FK_NONE, modeFlag, + "readonlytrans", + FLG_READONLYTRANS, + "report memory transfer errors for initializations to read-only string literals", + "A read-only string literal is assigned to a non-observer reference.", + 0, 0 + }, + { + FK_MEMORY, FK_PARAMS, modeFlag, + "passunknown", + FLG_PASSUNKNOWN, + "passing a value as an un-annotated parameter clears its annotation", + NULL, 0, 0 + }, + { + FK_MODIFIES, FK_SPEC, plainFlag, + "mods", + FLG_MODIFIES, + "unspecified modification of caller-visible state", + "An externally-visible object is modified by a function, but not " + "listed in its modifies clause.", + 0, 0 + }, + { + FK_MODIFIES, FK_SPEC, modeFlag, + "mustmod", + FLG_MUSTMOD, + "specified modification is not detected", + "An object listed in the modifies clause is not modified by the " + "implementation of the function. The modification may not " + "be detected if it is done through a call to an unspecified " + "function.", + 0, 0 + }, + { + FK_MODIFIES, FK_MEMORY, plainFlag, + "modobserver", + FLG_MODOBSERVER, + "possible modification of observer storage", + "Storage declared with observer is possibly modified. Observer " + "storage may not be modified.", + 0, 0 + }, + { + FK_MODIFIES, FK_MEMORY, modeFlag, + "modobserveruncon", + FLG_MODOBSERVERUNCON, + "possible modification of observer storage through unconstrained call", + "Storage declared with observer may be modified through a call to an " + "unconstrained function.", + 0, 0 + }, + { + FK_MODIFIES, FK_MEMORY, modeFlag, + "modinternalstrict", + FLG_MODINTERNALSTRICT, + "possible modification of internal storage through function call", + "A function that modifies internalState is called from a function that " + "does not list internalState in its modifies clause", + 0, 0 + }, + { + FK_MODIFIES, FK_UNSPEC, modeFlag, + "modfilesys", + FLG_MODFILESYSTEM, + "report undocumented file system modifications (applies to unspecified " + "functions if modnomods is set)", + NULL, 0, 0 + }, + { + FK_MODIFIES, FK_UNSPEC, specialFlag, + "modunspec", + FLG_MODUNSPEC, + "modification in unspecified functions (sets modnomods, " + "modglobunspec and modstrictglobsunspec)", + NULL, 0, 0 + }, + { + FK_MODIFIES, FK_UNSPEC, modeFlag, + "modnomods", + FLG_MODNOMODS, + "modification in a function with no modifies clause", + "An externally-visible object is modified by a function with no " + "/*@modifies@*/ comment. The /*@modifies ... @*/ control " + "comment can be used to give a modifies list for an " + "unspecified function.", + 0, 0 + }, + { + FK_MODIFIES, FK_UNSPEC, modeFlag, + "moduncon", + FLG_MODUNCON, + "possible modification through a call to an unconstrained function", + "An unconstrained function is called in a function body where " + "modifications are checked. Since the unconstrained function " + "may modify anything, there may be undetected modifications in " + "the checked function.", + 0, 0 + }, + { + FK_MODIFIES, FK_UNSPEC, modeFlag, + "modunconnomods", + FLG_MODUNCONNOMODS, + "possible modification through a call to an unconstrained function in " + "a function with no modifies clause", + "An unconstrained function is called in a function body where " + "modifications are checked. Since the unconstrained function " + "may modify anything, there may be undetected modifications in " + "the checked function.", + 0, 0 + }, + { + FK_MODIFIES, FK_GLOBALS, modeFlag, + "globsimpmodsnothing", + FLG_GLOBALSIMPMODIFIESNOTHING, + "functions declared with a globals list but no modifies clause are " + "assumed to modify nothing", + "An implicit modifies nothing clause is assumed for a function " + "declared with a globals list but not modifies clause.", + 0, 0 + }, + { + FK_MODIFIES, FK_GLOBALS, modeFlag, + "modsimpnoglobs", + FLG_MODIFIESIMPNOGLOBALS, + "functions declared with a modifies clause but no globals list " + "are assumed to use no globals", + "An implicit empty globals list is assumed for a function " + "declared with a modifies clause but no globals list.", + 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "namechecks", + FLG_NAMECHECKS, + "controls name checking without changing other settings", + NULL, 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, specialFlag, + "czech", + FLG_CZECH, + "czech naming convention (sets accessczech, czechfunctions, czechvars, " + "czechconstants, czechenums, and czechmacros)", + "Name is not consistent with Czech naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechfcns", + FLG_CZECHFUNCTIONS, + "czech naming convention violated in a function or iterator declaration", + "Function or iterator name is not consistent with Czech naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechvars", + FLG_CZECHVARS, + "czech naming convention violated in a variable declaration", + "Variable name is not consistent with Czech naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechmacros", + FLG_CZECHMACROS, + "czech naming convention violated in an expanded macro name", + "Expanded macro name is not consistent with Czech naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechconsts", + FLG_CZECHCONSTANTS, + "czech naming convention violated in a constant declaration", + "Constant name is not consistent with Czech naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechtypes", + FLG_CZECHTYPES, + "czech naming convention violated in a user-defined type definition", + "Type name is not consistent with Czech naming convention. Czech type " + "names must not use the underscore character.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, specialFlag, + "slovak", + FLG_SLOVAK, + "slovak naming convention violated", + "Name is not consistent with Slovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "slovakfcns", + FLG_SLOVAKFUNCTIONS, + "slovak naming convention violated in a function or iterator declaration", + "Function or iterator name is not consistent with Slovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "slovakmacros", + FLG_SLOVAKMACROS, + "slovak naming convention violated in an expanded macro name", + "Expanded macro name is not consistent with Slovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "slovakvars", + FLG_SLOVAKVARS, + "slovak naming convention violated in a variable declaration", + "Variable name is not consistent with Slovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "slovakconsts", + FLG_SLOVAKCONSTANTS, + "slovak naming convention violated in a constant declaration", + "Constant name is not consistent with Slovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "slovaktypes", + FLG_SLOVAKTYPES, + "slovak naming convention violated in a use-defined type definition", + "Type name is not consistent with Slovak naming convention. Slovak type " + "names may not include uppercase letters.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, specialFlag, + "czechoslovak", + FLG_CZECHOSLOVAK, + "czech or slovak naming convention violated", + "Name is not consistent with either Czech or Slovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechoslovakfcns", + FLG_CZECHOSLOVAKFUNCTIONS, + "czechoslovak naming convention violated in a function or iterator declaration", + "Function name is not consistent with Czechoslovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechoslovakmacros", + FLG_CZECHOSLOVAKMACROS, + "czechoslovak naming convention violated in an expanded macro name", + "Expanded macro name is not consistent with Czechoslovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechoslovakvars", + FLG_CZECHOSLOVAKVARS, + "czechoslovak naming convention violated in a variable declaration", + "Variable name is not consistent with Czechoslovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechoslovakconsts", + FLG_CZECHOSLOVAKCONSTANTS, + "czechoslovak naming convention violated in a constant declaration", + "Constant name is not consistent with Czechoslovak naming convention.", 0, 0 + }, + { + FK_NAMES, FK_ABSTRACT, plainFlag, + "czechoslovaktypes", + FLG_CZECHOSLOVAKTYPES, + "czechoslovak naming convention violated in a user-defined type definition", + "Type name is not consistent with Czechoslovak naming convention. Czechoslovak " + "type names may not include uppercase letters or the underscore character.", 0, 0 + }, + { + FK_NAMES, FK_ANSI, modeFlag, + "ansireserved", + FLG_ANSIRESERVED, + "external name conflicts with name reserved for system or standard library", + "External name is reserved for system in ANSI standard.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, modeFlag, + "cppnames", + FLG_CPPNAMES, + "external or internal name is a C++ keyword or reserved word", + "External name is a C++ keyword or reserved word. " + "This could lead to problems if the " + "code is compiled with a C++ compiler.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, modeFlag, + "ansireservedinternal", + FLG_ANSIRESERVEDLOCAL, + "internal name conflicts with name reserved for system or standard library", + "Internal name is reserved for system in ANSI standard (this should not be necessary unless you are worried about C library implementations that violate the standard and use macros).", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, plainFlag, + "distinctexternalnames", + FLG_DISTINCTEXTERNALNAMES, + "external name is not distinguishable from another external name using " + "the number of significant characters", + "An external name is not distinguishable from another external name " + "using the number of significant characters. According to " + "ANSI Standard (3.1), an implementation may only consider the first 6 " + "characters significant, and ignore alphabetical case " + "distinctions. The " + "+externalnamelen flag may be used to change the number " + "of significant characters, and -externalnamecaseinsensitive to make " + "alphabetical case significant in external names.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, specialValueFlag, + "externalnamelen", + FLG_EXTERNALNAMELEN, + "set the number of significant characters in an external name", + "Sets the number of significant characters in an external name (ANSI " + "default is 6.) Sets +distinctexternalnames.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, plainSpecialFlag, + "externalnamecaseinsensitive", + FLG_EXTERNALNAMECASEINSENSITIVE, + "alphabetic comparisons for external names are case-insensitive", + "Make alphabetic case insignificant in external names. By ANSI " + "standard, case need not be significant in an external name. " + "If +distinctexternalnames is not set, sets " + "+distinctexternalnames with unlimited external name length.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, plainFlag, + "distinctinternalnames", + FLG_DISTINCTINTERNALNAMES, + "internal name is not distinguishable from another internal name using " + "the number of significant characters", + "An internal name is not distinguishable from another internal name " + "using the number of significant characters. According to " + "ANSI Standard (3.1), an implementation may only consider the first 31 " + "characters significant. The " + "+internalnamelen flag changes the number " + "of significant characters, -internalnamecaseinsensitive to makes " + "alphabetical case significant, and " + "+internalnamelookalike to make similar-looking characters " + "non-distinct.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, specialValueFlag, + "internalnamelen", + FLG_INTERNALNAMELEN, + "set the number of significant characters in an internal name", + "Sets the number of significant characters in an internal name (ANSI " + "default is 31.) Sets +distinctinternalnames.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, plainSpecialFlag, + "internalnamecaseinsensitive", + FLG_INTERNALNAMECASEINSENSITIVE, + "set whether case is significant an internal names " + "(-internalnamecaseinsensitive means case is significant)" , + "Set whether case is significant an internal names " + "(-internalnamecaseinsensitive " + "means case is significant). By ANSI default, case is not " + "significant. If +distinctinternalnames is not set, sets " + "+distinctinternalnames with unlimited internal name length.", + 0, 0 + }, + { + FK_NAMES, FK_ANSI, plainSpecialFlag, + "internalnamelookalike", + FLG_INTERNALNAMELOOKALIKE, + "lookalike characters match in internal names", + "Set whether similar looking characters (e.g., \"1\" and \"l\") " + "match in internal names.", + 0, 0 + }, + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "macrovarprefix", + FLG_MACROVARPREFIX, + "set namespace prefix for variables declared in a macro body", + "A variable declared in a macro body does not start with the macrovarprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "macrovarprefixexclude", + FLG_MACROVARPREFIXEXCLUDE, + "the macrovarprefix may not be used for non-macro variables", + "A variable declared outside a macro body starts with the macrovarprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "tagprefix", + FLG_TAGPREFIX, + "set namespace prefix for struct, union and enum tags", + "A tag identifier does not start with the tagprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "tagprefixexclude", + FLG_TAGPREFIXEXCLUDE, + "the tagprefix may not be used for non-tag identifiers", + "An identifier that is not a tag starts with the tagprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "enumprefix", + FLG_ENUMPREFIX, + "set namespace prefix for enum members", + "An enum member does not start with the enumprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "enumprefixexclude", + FLG_ENUMPREFIXEXCLUDE, + "the enumprefix may not be used for non-enum member identifiers", + "An identifier that is not an enum member starts with the enumprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "filestaticprefix", + FLG_FILESTATICPREFIX, + "set namespace prefix for file static declarations", + "A file-static identifier does not start with the filestaticprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "filestaticprefixexclude", + FLG_FILESTATICPREFIXEXCLUDE, + "the filestaticprefix may not be used for identifiers that are not file static", + "An identifier that is not file static starts with the filestaticprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "globalprefix", + FLG_GLOBPREFIX, + "set namespace prefix for global variables", + "A global variable does not start with the globalprefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "globalprefixexclude", + FLG_GLOBPREFIXEXCLUDE, + "the globalprefix may not be used for non-global identifiers", + "An identifier that is not a global variable starts with the globalprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "typeprefix", + FLG_TYPEPREFIX, + "set namespace prefix for user-defined types", + "A user-defined type does not start with the typeprefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "typeprefixexclude", + FLG_TYPEPREFIXEXCLUDE, + "the typeprefix may not be used for identifiers that are not type names", + "An identifier that is not a type name starts with the typeprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "externalprefix", + FLG_EXTERNALPREFIX, + "set namespace prefix for external identifiers", + "An external identifier does not start with the externalprefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "externalprefixexclude", + FLG_EXTERNALPREFIXEXCLUDE, + "the externalprefix may not be used for non-external identifiers", + "An identifier that is not external starts with the externalprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "localprefix", + FLG_LOCALPREFIX, + "set namespace prefix for local variables", + "A local variable does not start with the localprefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "localprefixexclude", + FLG_LOCALPREFIXEXCLUDE, + "the localprefix may not be used for non-local identifiers", + "An identifier that is not a local variable starts with the localprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "uncheckedmacroprefix", + FLG_UNCHECKEDMACROPREFIX, + "set namespace prefix for unchecked macros", + "An unchecked macro name does not start with the uncheckedmacroprefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "uncheckedmacroprefixexclude", + FLG_UNCHECKEDMACROPREFIXEXCLUDE, + "the uncheckmacroprefix may not be used for identifiers that are not " + "unchecked macros", + "An identifier that is not the name of an unchecked macro " + "starts with the uncheckedmacroprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "constprefix", + FLG_CONSTPREFIX, + "set namespace prefix for constants", + "A constant does not start with the constantprefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "constprefixexclude", + FLG_CONSTPREFIXEXCLUDE, + "the constprefix may not be used for non-constant identifiers", + "An identifier that is not a constant starts with the constantprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "iterprefix", + FLG_ITERPREFIX, + "set namespace prefix for iterators", + "An iter does not start with the iterator prefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "iterprefixexclude", + FLG_ITERPREFIXEXCLUDE, + "the iterprefix may not be used for non-iter identifiers", + "An identifier that is not a iter starts with the iterprefix.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, idemStringFlag, + "protoparamprefix", + FLG_DECLPARAMPREFIX, + "set namespace prefix for parameters in function prototype declarations", + "A parameter name in a function prototype declaration does not start with the " + "declaration parameter prefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, modeFlag, + "protoparamname", + FLG_DECLPARAMNAME, + "a parameter in a function prototype has a name", + "A parameter in a function prototype has a name. This is dangerous, " + "since a macro definition could be visible here.", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, modeFlag, + "protoparammatch", + FLG_DECLPARAMMATCH, + "the name of a parameter in a function prototype and corresponding " + "declaration must match (after removing the protoparamprefix", + "A parameter in a function definition does not have the same name as " + "the corresponding in the declaration of the function after " + "removing the protoparamprefix", + 0, 0 + } , + { + FK_NAMES, FK_PREFIX, plainFlag, + "protoparamprefixexclude", + FLG_DECLPARAMPREFIXEXCLUDE, + "the protoparamprefix may not be used for non-declaraction parameter identifiers", + "An identifier that is not a parameter name in a function prototype " + "starts with the protoparamprefix.", + 0, 0 + } , + { + FK_LIMITS, FK_ANSI, modeValueFlag, + "controlnestdepth", + FLG_CONTROLNESTDEPTH, + "set maximum nesting depth of compound statements, iteration control " + "structures, and selection control structures (ANSI minimum is 15)", + "Maximum number of control levels exceeded.", + 0, 0 + }, + { + FK_LIMITS, FK_ANSI, modeValueFlag, + "stringliterallen", + FLG_STRINGLITERALLEN, + "set maximum length of string literals (ANSI minimum is 509)", + "Maximum length of string literal exceeded.", + 0, 0 + }, + { + FK_LIMITS, FK_ANSI, modeValueFlag, + "numstructfields", + FLG_NUMSTRUCTFIELDS, + "set maximum number of fields in a struct or union (ANSI minimum is 127)", + "Maximum number of fields in a struct or union exceeded.", + 0, 0 + }, + { + FK_LIMITS, FK_ANSI, modeValueFlag, + "numenummembers", + FLG_NUMENUMMEMBERS, + "set maximum number of members of an enum (ANSI minimum is 127)", + "Limit on maximum number of members of an enum is exceeded.", + 0, 0 + }, + { + FK_LIMITS, FK_ANSI, modeValueFlag, + "includenest", + FLG_INCLUDENEST, + "set maximum number of nested #include files", + "Maximum number of nested #include files exceeded.", + 0, 0 + }, + { + FK_LIMITS, FK_ANSI, specialFlag, + "ansilimits", + FLG_ANSILIMITS, + "check for violations of standard limits (controlnestdepth, " + "stringliterallen, includenest, numstructfields, numenummembers)", + NULL, + 0, 0 + }, + { + FK_NAMES, FK_NONE, plainFlag, + "name", + FLG_NAME, + NULL, + "Naming convention is violated.", + 0, 0 + }, + { + FK_NONE, FK_NONE, plainFlag, + "special", + FLG_SPECIAL, + NULL, NULL, + 0, 0 + }, + { + FK_NULL, FK_MEMORY, specialFlag, + "null", + FLG_NULL, + "misuses of null pointer", + "A possibly null pointer is misused (sets nullderef, nullpass, " + "nullref, nullassign, and nullstate).", + 0, 0 + }, + { + FK_NT, FK_MEMORY, modeFlag, + "nullterminated", + FLG_NULLTERMINATED, + "misuse of nullterminated allocation", + "A possibly non-nullterminated string/memory is used/referenced as a nullterminated one, ", + 0, 0 + }, + { + FK_NT, FK_MEMORY, modeFlag, + "arrayread", + FLG_ARRAYREAD, + "possible out of bounds read", + "An array or pointer access references memory beyond the array or buffer, ", + 0, 0 + }, + { + FK_NT, FK_MEMORY, modeFlag, + "arraywrite", + FLG_ARRAYWRITE, + "possible buffer overflow from an out of bounds write", + "Memory is set past the end of an array or or after the allocated buffer, ", + 0, 0 + }, + + { + FK_NT, FK_MEMORY, modeFlag, + "fcnpost", + FLG_FUNCTIONPOST, + "Function has the post condition", + "LCLint has determined that the following statement is true after the function, ", + 0, 0 + }, + { + FK_NT, FK_MEMORY, modeFlag, + "fcnconstraint", + FLG_FUNCTIONCONSTRAINT, + "unresolved constraint", + "LCLint was unable to resolve a constraint at the top of the function. If code is correct consider using explict annotation assertions, ", + 0, 0 + }, + /*drl7x added 6/18/01 */ + { + FK_NT, FK_MEMORY, modeFlag, + "checkpost", + FLG_CHECKPOST, + "unable to verify ensures annotation", + "LCLint was unable to determine that the function satisfies a post condition given in an ensures annotation, ", + 0, 0 }, -{ - FK_USE, FK_COMPLETE, modeFlag, - "unusedspecial", - FLG_UNUSEDSPECIAL, - "unused declaration in special file (corresponding to .l or .y file)", - NULL, 0, 0 - } -} ; - - - - - - + { + FK_NT, FK_MEMORY, modeFlag, + "constraintlocation", + FLG_CONSTRAINTLOCATION, + "display full c expression for every constraint generated", + ", ", + 0, 0 + },/*drl added flag 4/26/01*/ + { + FK_NT, FK_MEMORY, modeFlag, + "implictconstraint", + FLG_IMPLICTCONSTRAINT, + "Try to generate implicit constraints for functions", + ", ", + 0, 0 + }, + /*drl7x added 4/29/01 */ + { + FK_NT, FK_MEMORY, modeFlag, + "orconstraint", + FLG_ORCONSTRAINT, + "Use limited OR expressions to resolve constraints", + ", ", + 0, 0 + }, + + { + FK_NT, FK_MEMORY, modeFlag, + "nullterminated", + FLG_NULLTERMINATEDWARNING, + "misuse of nullterminated allocation", + "WARNING:A user annotated non-nullterminated buffer is used/referenced as a nullterminated one, ", + 0, 0 + }, + { + FK_NULL, FK_MEMORY, modeFlag, + "nullderef", + FLG_NULLDEREF, + "possible dereferencce of null pointer", + "A possibly null pointer is dereferenced. Value is " + "either the result of a function which may return null " + "(in which case, code should check it is not null), or a " + "global, parameter or structure field declared with the " + "null qualifier.", + 0, 0 + }, + { + FK_TYPE, FK_NONE, modeFlag, + "fcnderef", + FLG_FCNDEREF, + "dereferencce of a function type", + "A function type is dereferenced. The ANSI standard allows this " + "because of implicit conversion of function designators, however the " + "dereference is unnecessary.", + 0, 0 + }, + { + FK_NULL, FK_MEMORY, modeFlag, + "nullpass", + FLG_NULLPASS, + "possibly null pointer passed as formal with no null annotation", + "A possibly null pointer is passed as a parameter corresponding to " + "a formal parameter with no /*@null@*/ annotation. If NULL " + "may be used for this parameter, add a /*@null@*/ annotation " + "to the function parameter declaration.", + 0, 0 + }, + { + FK_NULL, FK_MEMORY, modeFlag, + "nullret", + FLG_NULLRET, + "possibly null pointer returned as result with no null annotation", + "Function returns a possibly null pointer, but is not declared " + "using /*@null@*/ annotation of result. If function may " + "return NULL, add /*@null@*/ annotation to the return " + "value declaration.", + 0, 0 + }, + { + FK_NULL, FK_MEMORY, modeFlag, + "nullstate", + FLG_NULLSTATE, + "possibly null pointer reachable from a reference with no null annotation", + "A possibly null pointer is reachable from a parameter or global " + "variable that is not declared using a /*@null@*/ annotation.", + 0, 0 + }, + { + FK_NULL, FK_MEMORY, modeFlag, + "nullassign", + FLG_NULLASSIGN, + "inconsistent assignment or initialization involving null pointer", + "A reference with no null annotation is assigned or initialized " + "to NULL. Use /*@null@*/ to declare the reference as " + "a possibly null pointer.", + 0, 0 + }, + { + FK_OPS, FK_BOOL, modeFlag, + "boolcompare", + FLG_BOOLCOMPARE, + "comparison between bools (dangerous because of multiple TRUE values)", + "Two bool values are compared directly using a C primitive. This " + "may produce unexpected results since all non-zero values are " + "considered TRUE, so different TRUE values may not be equal. " + "The file bool.h (included in lclint/lib) provides bool_equal " + "for safe bool comparisons.", 0, 0 + }, + { + FK_OPS, FK_NONE, modeFlag, + "realcompare", + FLG_REALCOMPARE, + "dangerous comparison between reals (dangerous because of inexact " + "floating point representations)", + "Two real (float, double, or long double) values are compared " + "directly using a C primitive. " + "This may produce unexpected results since floating point " + "representations are inexact. Instead, compare the difference to " + "FLT_EPSILON or DBL_EPSILON.", + 0, 0, + }, + { + FK_OPS, FK_POINTER, modeFlag, + "ptrarith", + FLG_POINTERARITH, + "arithmetic involving pointer and integer", + "Pointer arithmetic using pointer and integer.", 0, 0 + }, + { + FK_OPS, FK_POINTER, modeFlag, + "nullptrarith", + FLG_NULLPOINTERARITH, + "arithmetic involving possibly null pointer and integer", + "Pointer arithmetic using a possibly null pointer and integer.", 0, 0 + }, + { + FK_OPS, FK_POINTER, modeFlag, + "ptrcompare", + FLG_PTRNUMCOMPARE, + "comparison between pointer and number", + "A pointer is compared to a number.", 0, 0 + }, + { + FK_OPS, FK_TYPE, modeFlag, + "strictops", + FLG_STRICTOPS, + "primitive operation does not type check strictly", + "A primitive operation does not type check strictly.", 0, 0 + }, + { + FK_OPS, FK_TYPE, modeFlag, + "bitwisesigned", + FLG_BITWISEOPS, + "a bitwise logical operator does not have unsigned operands", + "An operand to a bitwise operator is not an unsigned values. This " + "may have unexpected results depending on the signed " + "representations.", 0, 0 + }, + { + FK_OPS, FK_TYPE, modeFlag, + "shiftsigned", + FLG_SHIFTSIGNED, + "a shift operator does not have unsigned operands", + "An operand to a shift operator is not unsigned values. This " + "may have unexpected results depending on the signed " + "representations.", 0, 0 + }, + { + FK_OPS, FK_BOOL, modeFlag, + "boolops", + FLG_BOOLOPS, + "primitive operation (!, && or ||) does not has a boolean argument", + "The operand of a boolean operator is not a boolean. Use +ptrnegate " + "to allow ! to be used on pointers.", + 0, 0 + }, + { + FK_OPS, FK_POINTER, modeFlag, + "ptrnegate", + FLG_PTRNEGATE, + "allow ! to be used on pointer operand", + "The operand of ! operator is a pointer.", 0, 0 + }, + { + FK_OPS, FK_TYPE, modeFlag, + "sizeoftype", + FLG_SIZEOFTYPE, + "sizeof operator has a type argument", + "Operand of sizeof operator is a type. (Safer to use expression, " + "int *x = sizeof (*x); instead of sizeof (int).)", + 0, 0 + }, + { + FK_OPS, FK_TYPE, plainFlag, + "sizeofformalarray", + FLG_SIZEOFFORMALARRAY, + "sizeof operator has an array formal parameter argument", + "Operand of a sizeof operator is a function parameter declared as " + "an array. The value of sizeof will be the size of a pointer to the " + "element type, not the number of elements in the array.", + 0, 0 + }, + { + FK_DECL, FK_TYPE, plainFlag, + "fixedformalarray", + FLG_FIXEDFORMALARRAY, + "formal parameter of type array is declared with size", + "A formal parameter is declared as an array with size. The size of the array " + "is ignored in this context, since the array formal parameter is treated " + "as a pointer.", + 0, 0 + }, + { + FK_DECL, FK_TYPE, plainFlag, + "incompletetype", + FLG_INCOMPLETETYPE, + "formal parameter has an incomplete type", + "A formal parameter is declared with an incomplete type.", + 0, 0 + }, + { + FK_DECL, FK_TYPE, plainFlag, + "formalarray", + FLG_FORMALARRAY, + "formal parameter is an array", + "A formal parameter is declared as an array. This can be confusing, since " + "a formal array parameter is treated as a pointer.", + 0, 0 + }, + { + FK_PRED, FK_BOOL, plainFlag, + "predassign", + FLG_PREDASSIGN, + "condition test (if, while or for) is an assignment", + "The condition test is an assignment expression. Probably, you mean " + "to use == instead of =. If an assignment is intended, add an " + "extra parentheses nesting (e.g., if ((a = b)) ...) to suppress " + "this message.", + 0, 0 + }, + { + FK_PRED, FK_BOOL, specialFlag, + "predbool", + FLG_PREDBOOL, + "type of condition test (if, while or for) not bool (sets predboolint, " + "predboolptr and predboolothers)", + "Test expression type is not boolean.", 0, 0 + }, + { + FK_PRED, FK_BOOL, modeFlag, + "predboolint", + FLG_PREDBOOLINT, + "type of condition test (if, while or for) is an integral type", + "Test expression type is not boolean or int.", 0, 0 + }, + { + FK_PRED, FK_BOOL, modeFlag, + "predboolothers", + FLG_PREDBOOLOTHERS, + "type of condition test (if, while or for) not bool, int or pointer", + "Test expression type is not boolean.", 0, 0 + }, + { + FK_PRED, FK_BOOL, modeFlag, + "predboolptr", + FLG_PREDBOOLPTR, + "type of condition test (if, while or for) is a pointer", + "Test expression type is not boolean.", 0, 0 + }, + { + FK_PREPROC, FK_NONE, globalExtraArgFlag, + "D", + FLG_DEFINE, + "passed to pre-processor", + NULL, 0, 0 + }, + { + FK_PREPROC, FK_NONE, globalExtraArgFlag, + "U", + FLG_UNDEFINE, + "passed to pre-processor", + NULL, 0, 0 + }, + { + FK_GLOBALS, FK_NONE, modeFlag, + "globstate", + FLG_GLOBSTATE, + "returns with global in inconsistent state (null or undefined)", + "A global variable does not satisfy its annotations when control is transferred.", + 0, 0 + }, + { + FK_SUPPRESS, FK_COMMENTS, globalFlag, + "supcounts", + FLG_SUPCOUNTS, + "The number of errors detected does not match number in /*@i@*/.", + NULL, 0, 0 + }, + { + FK_SUPPRESS, FK_ERRORS, valueFlag, + "limit", + FLG_LIMIT, + "limit consecutive repeated errors", + NULL, 0, 0 + }, + { + FK_SYNTAX, FK_NONE, plainFlag, + "syntax", + FLG_SYNTAX, + "syntax error in parsing", + "Code cannot be parsed. For help on parse errors, see lclint -help parseerrors.", + 0, 0 + }, + { + FK_SYNTAX, FK_NONE, plainFlag, + "trytorecover", + FLG_TRYTORECOVER, + "try to recover from parse error", + "Try to recover from parse error. It really means try --- this doesn't usually work.", 0, 0 + }, + { + FK_SYNTAX, FK_PREPROC, plainFlag, + "preproc", + FLG_PREPROC, + NULL, NULL, + 0, 0 + }, + { + FK_TYPE, FK_NONE, plainFlag, + "type", + FLG_TYPE, + "type mismatch", + "Types are incompatible.", + 0, 0 + }, + { + FK_TYPE, FK_NONE, plainFlag, + "fullinitblock", + FLG_FULLINITBLOCK, + "initializer sets all fields", + "Initializer does not set every field in the structure.", + 0, 0 + }, + { + FK_TYPE, FK_NONE, modeFlag, + "enummembers", + FLG_ENUMMEMBERS, + "enum members must be int values", + "Type of initial values for enum members must be int.", + 0, 0 + }, + { + FK_TYPE, FK_NONE, plainFlag, + "maintype", + FLG_MAINTYPE, + "type of main does not match expected type", + "The function main does not match the expected type.", + 0, 0 + }, + { + FK_TYPE, FK_NONE, plainFlag, + "formattype", + FLG_FORMATTYPE, + "type-mismatch in parameter corresponding to format code in a printf or scanf-like function", + "Type of parameter is not consistent with corresponding code in format string.", + 0, 0 + }, + { + FK_TYPE, FK_NONE, modeFlag, + "formatconst", + FLG_FORMATCONST, + "format parameter is not a string constant (hence variable arguments cannot be typechecked)", + "Format parameter is not known at compile-time. This can lead to security vulnerabilities because the arguments cannot be type checked.", + 0, 0 + }, + { + FK_TYPE, FK_NONE, plainFlag, + "formatcode", + FLG_FORMATCODE, + "invalid format code in format string for printf or scanf-like function", + "Format code in a format string is not valid.", + 0, 0 + }, + { + FK_TYPEEQ, FK_ABSTRACT, modeFlag, + "forwarddecl", + FLG_FORWARDDECL, + "forward declarations of pointers to abstract representation match abstract type", + NULL, 0, 0 + }, + { + FK_TYPEEQ, FK_ABSTRACT, modeFlag, + "voidabstract", + FLG_ABSTVOIDP, + "void * matches pointers to abstract types, casting ok (dangerous)", + "A pointer to void is cast to a pointer to an abstract type (or vice versa).", + 0, 0 + }, + { + FK_TYPEEQ, FK_POINTER, plainFlag, + "castfcnptr", + FLG_CASTFCNPTR, + "a pointer to a function is cast to a pointer to void (or vice versa)", + "A pointer to a function is cast to (or used as) a pointer to void (or vice versa).", + 0, 0 + }, + { + FK_TYPEEQ, FK_ARRAY, modeFlag, + "charindex", + FLG_CHARINDEX, + "char can be used to index arrays", + "To allow char types to index arrays, use +charindex.", 0, 0 + }, + { + FK_TYPEEQ, FK_ARRAY, modeFlag, + "enumindex", + FLG_ENUMINDEX, + "enum can be used to index arrays", + "To allow enum types to index arrays, use +enumindex.", 0, 0 + }, + { + FK_TYPEEQ, FK_BOOL, modeFlag, + "boolint", + FLG_BOOLINT, + "bool and int are equivalent", + "To make bool and int types equivalent, use +boolint.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NONE, modeFlag, + "charint", + FLG_CHARINT, + "char and int are equivalent", + "To make char and int types equivalent, use +charint.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NONE, modeFlag, + "enumint", + FLG_ENUMINT, + "enum and int are equivalent", + "To make enum and int types equivalent, use +enumint.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NONE, modeFlag, + "floatdouble", + FLG_FLOATDOUBLE, + "float and double are equivalent", + "To make float and double types equivalent, use +floatdouble.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "ignorequals", + FLG_IGNOREQUALS, + "ignore type qualifiers (long, short, unsigned)", + "To ignore type qualifiers in type comparisons use +ignorequals.", + 0, 0 + }, + { + FK_TYPEEQ, FK_SYNTAX, plainFlag, + "duplicatequals", + FLG_DUPLICATEQUALS, + "report duplicate type qualifiers (e.g., long long)", + "Duplicate type qualifiers not supported by ANSI. Some " + "compilers (e.g., gcc) do support duplicate qualifiers.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "ignoresigns", + FLG_IGNORESIGNS, + "ignore signs in type comparisons (unsigned matches signed)", + "To ignore signs in type comparisons use +ignoresigns", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "numliteral", + FLG_NUMLITERAL, + "int literals can be reals", + "An int literal is used as any numeric type (including float and long long). Use +numliteral to " + "allow int literals to be used as any numeric type.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "charintliteral", + FLG_CHARINTLITERAL, + "character constants (e.g., 'a') can be used as ints", + "A character constant is used as an int. Use +charintliteral to " + "allow character constants to be used as ints. (This is safe " + "since the actual type of a char constant is int.)", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "relaxquals", + FLG_RELAXQUALS, + "report qualifier mismatches only if dangerous", + NULL, 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "relaxtypes", + FLG_RELAXTYPES, + "allow all numeric types to match", + NULL, 0, 0 + }, + { + FK_TYPEEQ, FK_NONE, modeFlag, + "charunsignedchar", + FLG_CHARUNSIGNEDCHAR, + "allow char and unsigned char types to match", + "To allow char and unsigned char types to match use +charunsignedchar.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "matchanyintegral", + FLG_MATCHANYINTEGRAL, + "allow any intergral type to match an arbitrary integral type (e.g., dev_t)", + "To allow arbitrary integral types to match any integral type, use +matchanyintegral.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "longunsignedintegral", + FLG_LONGUNSIGNEDINTEGRAL, + "allow long unsigned type to match an arbitrary integral type (e.g., dev_t)", + "To allow arbitrary integral types to match long unsigned, use +longunsignedintegral.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "longintegral", + FLG_LONGINTEGRAL, + "allow long type to match an arbitrary integral type (e.g., dev_t)", + "To allow arbitrary integral types to match long unsigned, use +longintegral.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "longunsignedunsignedintegral", + FLG_LONGUNSIGNEDUNSIGNEDINTEGRAL, + "allow long unsigned type to match an arbitrary unsigned integral type (e.g., size_t)", + "To allow arbitrary unsigned integral types to match long unsigned, " + "use +longunsignedunsignedintegral.", + 0, 0 + }, + { + FK_TYPEEQ, FK_NUMBERS, modeFlag, + "longsignedintegral", + FLG_LONGSIGNEDINTEGRAL, + "allow long type to match an arbitrary signed integral type (e.g., ssize_t)", + "To allow arbitrary signed integral types to match long unsigned, use +longsignedintegral.", + 0, 0 + }, + { + FK_TYPEEQ, FK_POINTER, plainFlag, + "zeroptr", + FLG_ZEROPTR, + "0 is treated as a pointer", + NULL, 0, 0 + }, + { + FK_TYPEEQ, FK_BOOL, modeFlag, + "zerobool", + FLG_ZEROBOOL, + "0 is treated as a boolean", + NULL, 0, 0 + }, + { + FK_UNRECOG, FK_DISPLAY, plainFlag, + "repeatunrecog", + FLG_REPEATUNRECOG, + "do not suppress repeated unrecognized identifier messages (instead of only reporting the first error)", + "Identifier used in code has not been declared. (Message repeated for future uses in this file.)", + 0, 0 + }, + { + FK_UNRECOG, FK_DISPLAY, plainFlag, + "sysunrecog", + FLG_SYSTEMUNRECOG, + "report unrecognized identifiers with system (__) prefix", + "Identifier used in code has not been declared. (Message repeated for " + "future uses in this file.) Use +gnuextensions to make lclint " + "recognize some keywords that are gnu extensions.", + 0, 0 + }, + { + FK_UNRECOG, FK_NONE, plainFlag, + "unrecog", + FLG_UNRECOG, + "unrecognized identifier", + "Identifier used in code has not been declared.", 0, 0 + }, + { + FK_USE, FK_COMPLETE, modeFlag, + "topuse", + FLG_TOPUNUSED, + "declaration at top level not used", + "An external declaration not used in any source file.", 0, 0 + }, + { + FK_USE, FK_EXPORT, modeFlag, + "exportlocal", + FLG_EXPORTLOCAL, + "a declaration is exported but not used outside this module", + "A declaration is exported, but not used outside this module. " + "Declaration can use static qualifier.", + 0, 0 + }, + { + FK_USE, FK_EXPORT, modeFlag, + "exportheader", + FLG_EXPORTHEADER, + "a declaration is exported but does not appear in a header file", + "A declaration is exported, but does not appear in a header file.", + 0, 0 + }, + { + FK_USE, FK_EXPORT, modeFlag, + "exportheadervar", + FLG_EXPORTHEADERVAR, + "a variable declaration is exported but does not appear in a header file", + "A variable declaration is exported, but does not appear in a header " + "file. (Used with exportheader.)", + 0, 0 + }, + { + FK_USE, FK_NONE, modeFlag, + "fielduse", + FLG_FIELDUNUSED, + "field of structure type not used", + "A field is present in a structure type but never used. Use /*@unused@*/ in front of field declaration to suppress message.", + 0, 0 + }, + { + FK_USE, FK_NONE, modeFlag, + "enummemuse", + FLG_ENUMMEMUNUSED, + "member of an enum type not used", + "A member of an enum type is never used.", + 0, 0 + }, + { + FK_USE, FK_NONE, modeFlag, + "constuse", + FLG_CONSTUNUSED, + "constant declared but not used", + "A constant is declared but not used. Use unused in the constant declaration to suppress message.", + 0, 0 + }, + { + FK_USE, FK_NONE, modeFlag, + "fcnuse", + FLG_FUNCUNUSED, + "function declared but not used", + "A function is declared but not used. Use /*@unused@*/ in front of function header to suppress message.", + 0, 0 + }, + { + FK_USE, FK_PARAMS, modeFlag, + "paramuse", + FLG_PARAMUNUSED, + "function parameter not used ", + "A function parameter is not used in the body of the function. If the argument is needed for type compatibility or future plans, use /*@unused@*/ in the argument declaration.", + 0, 0 + }, + { + FK_USE, FK_TYPE, modeFlag, + "typeuse", + FLG_TYPEUNUSED, + "type declared but not used", + "A type is declared but not used. Use /*@unused@*/ in front of typedef to suppress messages.", + 0, 0 + }, + { + FK_USE, FK_NONE, modeFlag, + "varuse", + FLG_VARUNUSED, + "variable declared but not used", + "A variable is declared but never used. Use /*@unused@*/ in front " + "of declaration to suppress message.", + 0, 0 + }, + { + FK_USE, FK_COMPLETE, modeFlag, + "unusedspecial", + FLG_UNUSEDSPECIAL, + "unused declaration in special file (corresponding to .l or .y file)", + NULL, 0, 0 + } , + { + FK_DECL, FK_TYPE, modeFlag, + "redundantsharequal", + FLG_REDUNDANTSHAREQUAL, + "declaration uses observer qualifier that is always true", + "A declaration of an immutable object uses a redundant observer qualifier.", + 0, 0 + } , + { + FK_DECL, FK_TYPE, modeFlag, + "misplacedsharequal", + FLG_MISPLACEDSHAREQUAL, + "declaration of unsharable storage uses sharing annotation", + "A declaration of an unsharable object uses a sharing annotation.", + 0, 0 + } , + { + FK_DECL, FK_TYPE, plainFlag, + "annotationerror", + FLG_ANNOTATIONERROR, + "annotation is used in inconsistent location", + "A declaration uses an invalid annotation.", + 0, 0 + } , + { + FK_DECL, FK_TYPE, plainFlag, + "commenterror", + FLG_COMMENTERROR, + "inconsistent syntactic comment", + "A syntactic comment is used inconsistently.", + 0, 0 + } , + { + FK_DEBUG, FK_NONE, debugFlag, + "showsourceloc", + FLG_SHOWSOURCELOC, + NULL, NULL, + 0, 0 + }, + { + FK_DEBUG, FK_NONE, valueFlag, + "bugslimit", + FLG_BUGSLIMIT, + "set maximum number of bugs detected before giving up", + NULL, 0, 0 + }, + { + FK_HELP, FK_NONE, plainFlag, + "fileextensions", + FLG_FILEEXTENSIONS, + "warn when command line file does not have a recognized extension", + NULL, 0, 0 + }, + { + FK_DECL, FK_NONE, plainFlag, + "warnuse", + FLG_WARNUSE, + "warn when declaration marked with warn is used", + "Declaration marked with warn clause is used (can be suppresed by more specific flags).", + 0, 0 + }, + { + FK_MEMORY, FK_DEF, modeFlag, + "statetransfer", + FLG_STATETRANSFER, + "storage has been transfered with invalid state", + "Transfer violates user-defined state rules.", + 0, 0 + }, + { + FK_MEMORY, FK_DEF, modeFlag, + "statemerge", + FLG_STATEMERGE, + "control paths merge with storage in incompatible states", + "Control path merge violates user-defined state merge rules.", + 0, 0 + }, + /* + ** The its4 level flags must appear in order. + */ + { + FK_WARNUSE, FK_SECURITY, specialFlag, + "its4mostrisky", + FLG_ITS4MOSTRISKY, + "most risky security vulnerabilities (from its4 database)", + "Security vulnerability classified as most risky in its4 database.", + 0, 0 + }, + { + FK_WARNUSE, FK_SECURITY, specialFlag, + "its4veryrisky", + FLG_ITS4VERYRISKY, + "very risky security vulnerabilities (from its4 database)", + "Security vulnerability classified as very risky in its4 database.", + 0, 0 + }, + { + FK_WARNUSE, FK_SECURITY, specialFlag, + "its4risky", + FLG_ITS4RISKY, + "risky security vulnerabilities (from its4 database)", + "Security vulnerability classified as risky in its4 database.", + 0, 0 + }, + { + FK_WARNUSE, FK_SECURITY, specialFlag, + "its4moderate", + FLG_ITS4MODERATERISK, + "moderately risky security vulnerabilities (from its4 database)", + "Security vulnerability classified as moderate risk in its4 database.", + 0, 0 + }, + { + FK_WARNUSE, FK_SECURITY, specialFlag, + "its4low", + FLG_ITS4LOWRISK, + "risky security vulnerabilities (from its4 database)", + "Security vulnerability classified as risky in its4 database.", + 0, 0 + }, + /* + ** End of its4 level flags + */ + { + FK_WARNUSE, FK_SECURITY, modeFlag, + "bufferoverflowhigh", + FLG_BUFFEROVERFLOWHIGH, + "likely buffer overflow vulnerability", + "Use of function that may lead to buffer overflow.", + 0, 0 + }, + { + FK_WARNUSE, FK_SECURITY, modeFlag, + "bufferoverflow", + FLG_BUFFEROVERFLOW, + "possible buffer overflow vulnerability", + "Use of function that may lead to buffer overflow.", + 0, 0 + }, + { + FK_WARNUSE, FK_SECURITY, modeFlag, + "toctou", + FLG_TOCTOU, + "possible time of check, time of use vulnerability", + "Possible time of check, time of use vulnerability.", + 0, 0 + }, +} ; diff --git a/src/forjunk.c b/src/forjunk.c index 861d400..1db52b5 100644 --- a/src/forjunk.c +++ b/src/forjunk.c @@ -11,7 +11,6 @@ # include "cgrammar_tokens.h" # include "exprChecks.h" -# include "aliasChecks.h" # include "exprNodeSList.h" # include "exprDataQuite.i" @@ -286,19 +285,19 @@ static /*@only@*/ constraintExpr constraintExpr_searchAndAdd (/*@only@*/ constra if ( constraintExpr_similar (c, find) ) { - constraintExpr new; + constraintExpr newExpr; cstring cPrint; cPrint = constraintExpr_unparse(c); - new = constraintExpr_makeAddExpr (c, constraintExpr_copy(add) ); + newExpr = constraintExpr_makeAddExpr (c, constraintExpr_copy(add) ); DPRINTF((message ("Replacing %q with %q", - cPrint, constraintExpr_unparse(new) + cPrint, constraintExpr_unparse(newExpr) ))); - return new; + return newExpr; } kind = c->kind; @@ -348,7 +347,7 @@ static constraint constraint_searchAndAdd (/*@returned@*/ constraint c, /*@obse } -/*@only@*/ static constraintList constraintList_searchAndAdd (/*@returned@*/ constraintList list, + static constraintList constraintList_searchAndAdd (/*@returned@*/ constraintList list, /*@observer@*/ constraintExpr find, /*@observer@*/ constraintExpr add) { constraintList newConstraints; @@ -360,12 +359,12 @@ static constraint constraint_searchAndAdd (/*@returned@*/ constraint c, /*@obse { if (constraint_search (el, find) ) { - constraint new; - new = constraint_copy (el); + constraint newExpr; + newExpr = constraint_copy (el); - new = constraint_searchAndAdd (new, find, add); - DPRINTF (( (message ("Adding constraint %s ", constraint_print (new)) ) )); - newConstraints = constraintList_add (newConstraints, new); + newExpr = constraint_searchAndAdd (newExpr, find, add); + DPRINTF (( (message ("Adding constraint %s ", constraint_print (newExpr)) ) )); + newConstraints = constraintList_add (newConstraints, newExpr); } } @@ -390,7 +389,7 @@ static void doAdjust(/*@unused@*/ exprNode e, /*@unused@*/ exprNode forPred, /*@ end_constraintList_elements; } -void forLoopHeuristics( exprNode e, exprNode forPred, exprNode forBody) +void exprNode_forLoopHeuristics( exprNode e, exprNode forPred, exprNode forBody) { exprNode init, test, inc; @@ -405,7 +404,7 @@ void forLoopHeuristics( exprNode e, exprNode forPred, exprNode forBody) iterations = getForTimes (forPred, forBody ); - if (iterations != NULL) + if (constraintExpr_isDefined (iterations) ) { doAdjust ( e, forPred, forBody, iterations); constraintExpr_free(iterations); diff --git a/src/functionClause.c b/src/functionClause.c new file mode 100644 index 0000000..5a23637 --- /dev/null +++ b/src/functionClause.c @@ -0,0 +1,185 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** functionClause.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +static /*@only@*/ /*@notnull@*/ /*@special@*/ functionClause /*@i32 need special? @*/ +functionClause_alloc (functionClauseKind kind) /*@defines result->kind@*/ +{ + functionClause res = (functionClause) dmalloc (sizeof (*res)); + + res->kind = kind; + return res; +} + +extern functionClause functionClause_createGlobals (globalsClause node) /*@*/ +{ + functionClause res = functionClause_alloc (FCK_GLOBALS); + res->val.globals = node; + return res; +} + +extern functionClause functionClause_createModifies (modifiesClause node) /*@*/ +{ + functionClause res = functionClause_alloc (FCK_MODIFIES); + res->val.modifies = node; + return res; +} + +extern functionClause functionClause_createState (stateClause node) /*@*/ +{ + functionClause res = functionClause_alloc (FCK_STATE); + res->val.state = node; + return res; +} + +extern functionClause functionClause_createWarn (warnClause node) /*@*/ +{ + functionClause res = functionClause_alloc (FCK_WARN); + res->val.warn = node; + return res; +} + +/*@only@*/ cstring functionClause_unparse (functionClause p) +{ + if (functionClause_isUndefined (p)) + { + return cstring_undefined; + } + + switch (p->kind) + { + case FCK_GLOBALS: + return globalsClause_unparse (p->val.globals); + case FCK_MODIFIES: + return modifiesClause_unparse (p->val.modifies); + case FCK_WARN: + return warnClause_unparse (p->val.warn); + case FCK_STATE: + return stateClause_unparse (p->val.state); + case FCK_DEAD: + BADBRANCH; + } + + BADBRANCH; +} + +extern bool functionClause_matchKind (functionClause p, functionClauseKind kind) /*@*/ +{ + if (functionClause_isDefined (p)) + { + return (p->kind == kind); + } + else + { + return FALSE; + } +} + +extern stateClause functionClause_getState (functionClause node) +{ + llassert (functionClause_isDefined (node)); + llassert (node->kind == FCK_STATE); + + return node->val.state; +} + +extern stateClause functionClause_takeState (functionClause fc) +{ + stateClause res; + llassert (functionClause_isDefined (fc)); + llassert (fc->kind == FCK_STATE); + + res = fc->val.state; + fc->val.state = NULL; + fc->kind = FCK_DEAD; + return res; +} + +extern warnClause functionClause_getWarn (functionClause node) +{ + llassert (functionClause_isDefined (node)); + llassert (node->kind == FCK_WARN); + + return node->val.warn; +} + +extern warnClause functionClause_takeWarn (functionClause fc) +{ + warnClause res; + llassert (functionClause_isDefined (fc)); + llassert (fc->kind == FCK_WARN); + + res = fc->val.warn; + fc->val.warn = warnClause_undefined; + fc->kind = FCK_DEAD; + return res; +} + +extern modifiesClause functionClause_getModifies (functionClause node) +{ + llassert (functionClause_isDefined (node)); + llassert (node->kind == FCK_MODIFIES); + + return node->val.modifies; +} + +extern globalsClause functionClause_getGlobals (functionClause node) +{ + llassert (functionClause_isDefined (node)); + llassert (node->kind == FCK_GLOBALS); + + return node->val.globals; +} + +extern void functionClause_free (/*@only@*/ functionClause node) +{ + if (node != NULL) + { + switch (node->kind) + { + case FCK_GLOBALS: + globalsClause_free (node->val.globals); + break; + case FCK_MODIFIES: + modifiesClause_free (node->val.modifies); + break; + case FCK_WARN: + warnClause_free (node->val.warn); + break; + case FCK_STATE: + stateClause_free (node->val.state); + break; + case FCK_DEAD: + /* Nothing to release */ + break; + } + + sfree (node); + } +} diff --git a/src/functionClauseList.c b/src/functionClauseList.c new file mode 100644 index 0000000..f68cc1a --- /dev/null +++ b/src/functionClauseList.c @@ -0,0 +1,175 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** functionClauseList.c +** +** based on list_template.c +** +** where T has T_equal (or change this) and T_unparse +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +functionClauseList +functionClauseList_new () +{ + return functionClauseList_undefined; +} + +static /*@notnull@*/ functionClauseList +functionClauseList_newEmpty (void) +{ + functionClauseList s = (functionClauseList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = functionClauseListBASESIZE; + s->elements = (functionClause *) dmalloc (sizeof (*s->elements) * functionClauseListBASESIZE); + + return (s); +} + +static void +functionClauseList_grow (/*@notnull@*/ functionClauseList s) +{ + int i; + functionClause *newelements; + + s->nspace += functionClauseListBASESIZE; + + newelements = (functionClause *) dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); + + if (newelements == (functionClause *) 0) + { + llfatalerror (cstring_makeLiteral ("functionClauseList_grow: out of memory!")); + } + + for (i = 0; i < s->nelements; i++) + { + newelements[i] = s->elements[i]; + } + + sfree (s->elements); + s->elements = newelements; +} + +functionClauseList functionClauseList_single (/*@keep@*/ functionClause el) +{ + functionClauseList s = functionClauseList_new (); + s = functionClauseList_add (s, el); + return s; +} + +functionClauseList functionClauseList_add (functionClauseList s, /*@keep@*/ functionClause el) +{ + if (!functionClauseList_isDefined (s)) + { + s = functionClauseList_newEmpty (); + } + + if (s->nspace <= 0) + { + functionClauseList_grow (s); + } + + s->nspace--; + /*@i32@*/ s->elements[s->nelements] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +functionClauseList functionClauseList_prepend (functionClauseList s, /*@keep@*/ functionClause el) +{ + int i; + + if (!functionClauseList_isDefined (s)) + { + /*@i32@*/ return functionClauseList_single (el); + } + + if (s->nspace <= 0) + { + functionClauseList_grow (s); + } + + s->nspace--; + + for (i = s->nelements; i > 0; i--) + { + s->elements[i] = s->elements [i - 1]; + } + + /*@i32@*/ s->elements[0] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +cstring +functionClauseList_unparse (functionClauseList s) +{ + return functionClauseList_unparseSep (s, cstring_makeLiteralTemp (" ")); +} + +cstring +functionClauseList_unparseSep (functionClauseList s, cstring sep) +{ + cstring st = cstring_undefined; + + if (functionClauseList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) + { + if (i == 0) + { + st = functionClause_unparse (s->elements[i]); + } + else + st = message ("%q%s%q", st, sep, functionClause_unparse (s->elements[i])); + } + } + + return st; +} + +void +functionClauseList_free (functionClauseList s) +{ + if (functionClauseList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) { + functionClause_free (s->elements[i]); + } + + sfree (s->elements); + sfree (s); + } +} + diff --git a/src/general.c b/src/general.c index d8e2fb6..b819d06 100644 --- a/src/general.c +++ b/src/general.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -50,13 +50,16 @@ void sfree (void *x) { if (x != NULL) { + /* fprintf (stderr, "Freeing: %p\n", x); */ + /* - fprintf (stderr, "Freeing: %ld\n", x); - if ((unsigned long) x < 136000000 && (unsigned long) x > 135000000) { + if ((unsigned long) x > 0xbf000000) { fprintf (stderr, "Looks bad!\n"); } */ + free (x); + /* fprintf (stderr, "Done.\n"); */ } } @@ -83,7 +86,7 @@ static long unsigned size_toLongUnsigned (size_t x) return res; } -/*@out@*/ void *dimalloc (size_t size, char *name, int line) +/*@out@*/ void *dimalloc (size_t size, const char *name, int line) { /* static void *lastaddr = 0; @@ -123,11 +126,12 @@ static long unsigned size_toLongUnsigned (size_t x) } /*@-null@*/ /* null okay for size = 0 */ + /* fprintf (stderr, "%s:%d: Allocating: [%p / %d]\n", name, line, ret, size); */ return ret; /*@=null@*/ } -void *dicalloc (size_t num, size_t size, char *name, int line) +void *dicalloc (size_t num, size_t size, const char *name, int line) { void *ret = (void *) calloc (num, size); @@ -183,47 +187,6 @@ char *FormatInt (int i) } # endif -bool -isCext (char *ext) -{ - return (!mstring_equal (ext, ".lcl") && - !mstring_equal (ext, ".spc") && - !mstring_equal (ext, ".ll")); -} - -bool -isLCLfile (cstring s) -{ - char *ext; - - ext = filenameExtension (cstring_toCharsSafe (s)); - - if (ext != NULL) - { - return (!(isCext (ext))); - } - - return (TRUE); -} - -char *removeExtension (/*@temp@*/ char *s, const char *suffix) -{ - char *t = strrchr (s, '.'); - char *s2; - - if (t == (char *) 0 || !mstring_equal (t, suffix)) - { - return mstring_copy (s); - } - - /*@-mods@*/ - *t = '\0'; - s2 = mstring_copy (s); - *t = '.'; - /*@=mods@*/ /* Modification is undone. */ - return s2; -} - # ifndef NOLCL bool firstWord (char *s, char *w) { @@ -239,230 +202,11 @@ bool firstWord (char *s, char *w) } # endif -# ifndef NOLCL -/*@only@*/ char *removePath (char *s) -{ - char *t = strrchr (s, CONNECTCHAR); - - if (t == NULL) return (mstring_copy (s)); - else return (mstring_copy (t + 1)); -} -# endif - -/*@only@*/ char * -removePathFree (/*@only@*/ char *s) -{ - char *t = strrchr (s, CONNECTCHAR); - -# ifdef ALTCONNECTCHAR - { - char *at = strrchr (s, ALTCONNECTCHAR); - if (t == NULL || (at > t)) { - t = at; - } - } -# endif - - if (t == NULL) - { - return (s); - } - else - { - char *res = mstring_copy (t + 1); - mstring_free (s); - return res; - } -} - void mstring_markFree (char *s) { sfreeEventually (s); } -/*@only@*/ char * -removeAnyExtension (char *s) -{ - char *ret; - char *t = strrchr (s, '.'); - - if (t == (char *) 0) - { - return mstring_copy (s); - } - - /*@-mods@*/ - *t = '\0'; - ret = mstring_copy (s); - *t = '.'; - /*@=mods@*/ /* modification is undone */ - - return ret; -} - -/*@only@*/ char * -addExtension (char *s, const char *suffix) -{ - if (strrchr (s, '.') == (char *) 0) - { - /* <<< was mstring_concatFree1 --- bug detected by lclint >>> */ - return (mstring_concat (s, suffix)); - } - else - { - return mstring_copy (s); - } -} - -int -getInt (char **s) -{ - bool gotOne = FALSE; - int i = 0; - - while (**s == ' ') - { - (*s)++; - } - - if (**s == '-') - { - (*s)++; - if (**s < '0' || **s > '9') - { - llbug (message ("getInt: bad int: %s", cstring_fromChars (*s))); - } - else - { - i = -1 * (int) (**s - '0'); - gotOne = TRUE; - } - - (*s)++; - } - - while (**s >= '0' && **s <= '9') - { - i *= 10; - i += (int) (**s - '0'); - (*s)++; - gotOne = TRUE; - } - - if (!gotOne) - { - llbug (message ("No int to read: %s", cstring_fromChars (*s))); - } - - while (**s == '\n' || **s == ' ' || **s == '\t') - { - (*s)++; - } - - return i; -} - -char -loadChar (char **s) -{ - char ret; - - while (**s == ' ') - { - (*s)++; - } - - ret = **s; - (*s)++; - return ret; -} - -/* -** not sure if this works... -*/ - -double -getDouble (char **s) -{ - char *end = mstring_createEmpty (); - double ret; - - ret = strtod (*s, &end); - - *s = end; - return ret; -} - -/* -** read to ' ', '\t'. '\n', '#', ',' or '\0' -*/ - -char * -getWord (char **s) -{ - char *res; - char *t = *s; - char c; - - while ((c = **s) != '\0' && (c != ' ') && (c != ',') - && (c != '\n') && (c != '\t') && (c != '#')) - { - (*s)++; - } - - if (*s == t) - { - return NULL; - } - - **s = '\0'; - res = mstring_copy (t); - **s = c; - return res; -} - -bool -optCheckChar (char **s, char c) -{ - if (**s == c) - { - (*s)++; - return TRUE; - } - else - { - return FALSE; - } -} - -void -docheckChar (char **s, char c, char *file, int line) -{ - /*@unchecked@*/ static int nbadchars = 0; - - if (**s == c) - { - (*s)++; - } - else - { - nbadchars++; - - if (nbadchars > 5) - { - llfatalbug (cstring_makeLiteral - ("checkChar: Too many errors. Check library is up to date.")); - } - else - { - llbug (message ("checkChar: %q: Bad char, expecting %h: %s", - fileloc_unparseRaw (cstring_fromChars (file), line), - c, - cstring_fromChars (*s))); - } - } -} - char *mstring_spaces (int n) { int i; @@ -483,6 +227,18 @@ char *mstring_spaces (int n) return ret; } + +bool mstring_containsChar (const char *s, char c) +{ + if (mstring_isDefined (s)) + { + return (strchr (s, c) != NULL); + } + else + { + return FALSE; + } +} char *mstring_concat (const char *s1, const char *s2) { @@ -691,46 +447,3 @@ bool mstring_equal (/*@null@*/ const char *s1, /*@null@*/ const char *s2) } } -/*@observer@*/ char *filenameExtension (/*@returned@*/ char *s) -{ - llassert (s != NULL); - - return (strrchr(s, '.')); -} - -char *removePreDirs (char *s) -{ - while (*s == '.' && *(s + 1) == CONNECTCHAR) - { - s += 2; - } - -# if defined(OS2) || defined(MSDOS) - /* remove remainders from double path delimiters... */ - while (*s == CONNECTCHAR) - { - ++s; - } -# endif /* !defined(OS2) && !defined(MSDOS) */ - - return s; -} - -void checkUngetc (int c, FILE *f) -{ - int res; - - llassert (c != EOF); - res = ungetc (c, f); - llassert (res == c); -} - -bool isHeaderFile (cstring fname) -{ - char *ext = filenameExtension (cstring_toCharsSafe (fname)); - - return (mstring_equal (ext, ".h") - || mstring_equal (ext, ".H") - || mstring_equal (ext, ".lh")); -} - diff --git a/src/genericTable.c b/src/genericTable.c new file mode 100644 index 0000000..2ce86b9 --- /dev/null +++ b/src/genericTable.c @@ -0,0 +1,488 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** genericTable.c +** +** A genericTable is a mapping from string keys to void * objects. +** We sacrific type checking here for code reuse. +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "randomNumbers.h" + +/*@constant null ghbucket ghbucket_undefined; @*/ +# define ghbucket_undefined 0 + +static /*@truenull@*/ bool ghbucket_isNull (/*@null@*/ ghbucket h) +{ + return (h == ghbucket_undefined); +} + +static ghentry +ghentry_create (/*@keep@*/ cstring key, /*@keep@*/ void *val) +{ + ghentry h = (ghentry) dmalloc (sizeof (*h)); + + h->key = key; + + llassert (val != NULL); + h->val = val; + + return (h); +} + +static bool +ghbucket_isEmpty (ghbucket h) +{ + return (h == ghbucket_undefined || h->size == 0); +} + +int genericTable_size (genericTable h) +{ + if (genericTable_isDefined (h)) { + return h->nentries; + } else { + return 0; + } +} + +static cstring +ghbucket_unparse (ghbucket h) +{ + cstring s = cstring_undefined; + + if (!ghbucket_isNull (h)) + { + int i; + + for (i = 0; i < h->size; i++) + { + s = message ("%q %s", s, h->entries[i]->key); + } + } + + return s; +} + +static ghbucket ghbucket_single (/*@keep@*/ ghentry e) +{ + ghbucket h = (ghbucket) dmalloc (sizeof (*h)); + + h->size = 1; + h->nspace = GHBUCKET_BASESIZE - 1; + h->entries = (ghentry *) dmalloc (GHBUCKET_BASESIZE * sizeof (*h->entries)); + /*@i23@*/ h->entries[0] = e; + + return (h); +} + +static void +ghbucket_grow (/*@notnull@*/ ghbucket h) +{ + int i; + ghentry *newentries; + + h->nspace += GHBUCKET_BASESIZE; + + newentries = (ghentry *) + dmalloc ((h->size + GHBUCKET_BASESIZE) * sizeof (*newentries)); + + for (i = 0; i < h->size; i++) + { + newentries[i] = h->entries[i]; + } + + /*@i32@*/ sfree (h->entries); + h->entries = newentries; +/*@i32@*/ } + +static /*@null@*/ /*@exposed@*/ void *ghbucket_lookup (ghbucket p_h, cstring p_key); + +/* +** bizarre duplicate behaviour +** required for duplicate entries +*/ + +static void +ghbucket_add (/*@notnull@*/ ghbucket h, /*@only@*/ ghentry e) +{ + void *exloc = ghbucket_lookup (h, e->key); + + if (exloc != NULL) { + llassert (FALSE); + } + + if (h->nspace == 0) { + ghbucket_grow (h); + } + + h->entries[h->size] = e; + h->size++; + h->nspace--; +/*@i23@*/ } + +static int +ghbucket_ncollisions (ghbucket h) +{ + if (!ghbucket_isNull (h) && (h->size > 1)) + return (h->size - 1); + else + return 0; +} + +/*@exposed@*/ /*@null@*/ void * +ghbucket_lookup (ghbucket h, cstring key) +{ + if (!ghbucket_isNull (h)) + { + int i; + + for (i = 0; i < h->size; i++) + { + if (cstring_equal (h->entries[i]->key, key)) + { + return h->entries[i]->val; + } + } + } + + return NULL; +} + +static +void ghbucket_free (/*@only@*/ ghbucket h) +{ + if (!ghbucket_isNull (h)) + { + /*@i32@*/ sfree (h->entries); + sfree (h); + } +} + +void +genericTable_free (/*@only@*/ genericTable h) +{ + if (genericTable_isDefined (h)) + { + int i; + + for (i = 0; i < h->size; i++) + { + ghbucket_free (h->buckets[i]); + } + + sfree (h->buckets); + sfree (h); + } +} + +static int +genericTable_countCollisions (genericTable h) +{ + int nc = 0; + int i; + + llassert (genericTable_isDefined (h)); + + for (i = 0; i < h->size; i++) + { + nc += ghbucket_ncollisions (h->buckets[i]); + } + + return (nc); +} + + +static int +genericTable_countEmpty (genericTable h) +{ + int nc = 0; + int i; + + llassert (genericTable_isDefined (h)); + + for (i = 0; i < h->size; i++) + { + if (ghbucket_isEmpty (h->buckets[i])) + { + nc++; + } + } + + return (nc); +} + +/* +** hash function snarfed from quake/hash.c Hash_String +** by Stephen Harrison +*/ + +static unsigned int +genericTable_hashValue (/*@notnull@*/ genericTable h, cstring key) +{ + char *p; + unsigned int hash_value = 0; + + llassert (h->size != 0); + + for (p = cstring_toCharsSafe (key); *p != '\0'; p++) + { + hash_value = (hash_value << 1) ^ g_randomNumbers[*p % 256]; + } + + return (hash_value % h->size); +} + +static /*@exposed@*/ ghbucket +genericTable_hash (/*@notnull@*/ genericTable h, cstring key) +{ + return h->buckets[genericTable_hashValue (h, key)]; +} + + +/*@only@*/ genericTable +genericTable_create (int size) +{ + int i; + genericTable h = (genericTable) dmalloc (sizeof (*h)); + + llassert (size > 0); + h->size = size; + h->nentries = 0; + h->buckets = (ghbucket *) dmalloc (sizeof (*h->buckets) * size); + + /*@+loopexec@*/ + for (i = 0; i < size; i++) + { + h->buckets[i] = ghbucket_undefined; + } + /*@-loopexec@*/ + return h; +} + +/*@-mustfree@*/ +static /*@unused@*/ void +genericTable_print (genericTable h) +{ + int i; + + if (genericTable_isDefined (h)) { + for (i = 0; i < h->size; i++) + { + ghbucket hb = h->buckets[i]; + + if (hb != NULL) + { + llmsg (message ("%d. %s\n", i, ghbucket_unparse (hb))); + } + } + + llmsg (message ("size: %d, collisions: %d, empty: %d", + h->size, + genericTable_countCollisions (h), + genericTable_countEmpty (h))); + } else { + llmsglit ("Empty hash table."); + } +} +/*@=mustfree@*/ + +/*@only@*/ cstring +genericTable_stats (genericTable h) +{ + llassert (genericTable_isDefined (h)); + return (message ("size: %d, collisions: %d, empty: %d\n", + h->size, genericTable_countCollisions (h), + genericTable_countEmpty (h))); +} + +static void +genericTable_addEntry (/*@notnull@*/ genericTable h, /*@keep@*/ ghentry e) +{ + unsigned int hindex = genericTable_hashValue (h, e->key); + /* + ** using + ** ghbucket hb = h->buckets[hindex]; + ** instead reveals a bug I don't want to deal with right now! + */ + + h->nentries++; + + if (ghbucket_isNull (h->buckets[hindex])) + { + h->buckets[hindex] = ghbucket_single (e); + } + else + { + /*@i23@*/ ghbucket_add (h->buckets[hindex], e); + /*@i23@*/ } +} + +void +genericTable_insert (genericTable h, cstring key, void *value) +{ + unsigned int hindex; + ghbucket hb; + ghentry e; + + llassert (genericTable_isDefined (h)); + + /* + ** rehashing based (loosely) on code by Steve Harrison + */ + + if (h->nentries * 162 > h->size * 100) + { + int i; + int oldsize = h->size; + int newsize = 1 + ((oldsize * 26244) / 10000); /* 26244 = 162^2 */ + ghbucket *oldbuckets = h->buckets; + + DPRINTF (("Rehashing...")); + h->size = newsize; + h->nentries = 0; + h->buckets = (ghbucket *) dmalloc (sizeof (*h->buckets) * newsize); + + /*@+loopexec@*/ + for (i = 0; i < newsize; i++) + { + h->buckets[i] = ghbucket_undefined; + } + /*@=loopexec@*/ + + for (i = 0; i < oldsize; i++) + { + ghbucket bucket = oldbuckets[i]; + + oldbuckets[i] = NULL; + + if (!ghbucket_isNull (bucket)) + { + int j; + + for (j = 0; j < bucket->size; j++) + { + genericTable_addEntry (h, bucket->entries[j]); + } + + sfree (bucket->entries); /* evans 2001-03-24: LCLint caught this */ + sfree (bucket); + } + } + + sfree (oldbuckets); + } + + /* evans 2000-12-22: this was before the rehash! Lost an entry size! */ + h->nentries++; + e = ghentry_create (key, value); + hindex = genericTable_hashValue (h, key); + hb = h->buckets[hindex]; + + if (ghbucket_isNull (hb)) + { + /*@i23@*/ h->buckets[hindex] = ghbucket_single (e); + } + else + { + ghbucket_add (hb, e); + /*@i23@*/ } +/*@i23@*/ } + +/*@null@*/ /*@exposed@*/ void * +genericTable_lookup (genericTable h, cstring key) +{ + ghbucket hb; + void *res; + llassert (genericTable_isDefined (h)); + + hb = genericTable_hash (h, key); + res = ghbucket_lookup (hb, key); + + /* if (res == NULL) { DPRINTF (("Lookup not found: %s", key)); } */ + return res; +} + +void +genericTable_update (genericTable h, cstring key, /*@only@*/ void *newval) +{ + ghbucket hb; + + llassert (genericTable_isDefined (h)); + + hb = genericTable_hash (h, key); + + if (!ghbucket_isNull (hb)) + { + int i; + + for (i = 0; i < hb->size; i++) + { + if (cstring_equal (hb->entries[i]->key, key)) + { + llassert (newval != NULL); + hb->entries[i]->val = newval; + return; + } + } + } + + llbug (message ("genericTable_update: %s not found", key)); +} + +void +genericTable_remove (genericTable h, cstring key) +{ + ghbucket hb; + + llassert (genericTable_isDefined (h)); + hb = genericTable_hash (h, key); + + if (!ghbucket_isNull (hb)) + { + int i; + + for (i = 0; i < hb->size; i++) + { + if (cstring_equal (hb->entries[i]->key, key)) + { + if (i < hb->size - 1) + { + hb->entries[i] = hb->entries[hb->size - 1]; + } + + hb->size--; + return; + } + } + } + + llbug (message ("genericTable_removeKey: %s not found", key)); +} + +bool genericTable_contains (genericTable h, cstring key) +{ + return (genericTable_lookup (h, key) != NULL); +} diff --git a/src/globSet.c b/src/globSet.c index 70e67ff..d8658f7 100644 --- a/src/globSet.c +++ b/src/globSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -41,11 +41,11 @@ globSet_clear (globSet g) } globSet -globSet_insert (/*@returned@*/ globSet s, sRef el) +globSet_insert (/*@returned@*/ globSet s, /*@exposed@*/ sRef el) { if (sRef_isKnown (el) && !sRef_isConst (el) && !sRef_isType (el)) { - llassertprint (sRef_isGlobal (el) || sRef_isKindSpecial (el), + llassertprint (sRef_isFileOrGlobalScope (el) || sRef_isKindSpecial (el), ("el: %s", sRef_unparse (el))); return (sRefSet_insert (s, el)); @@ -57,9 +57,22 @@ globSet_insert (/*@returned@*/ globSet s, sRef el) } globSet - globSet_copy (/*@returned@*/ globSet s1, /*@exposed@*/ globSet s2) +globSet_single (/*@exposed@*/ sRef el) { - return (sRefSet_copy (s1, s2)); + globSet res = globSet_new (); + return globSet_insert (res, el); +} + +void +globSet_markImmutable (globSet g) +{ + sRefSet_markImmutable (g); +} + +globSet +globSet_copyInto (/*@returned@*/ globSet s1, /*@exposed@*/ globSet s2) +{ + return (sRefSet_copyInto (s1, s2)); } /*@only@*/ globSet @@ -154,7 +167,8 @@ globSet_undump (char **s) /*@only@*/ cstring globSet_unparse (globSet ll) { - return (sRefSet_unparse (ll)); + return (sRefSet_unparseFull (ll)); + /* return (sRefSet_unparsePlain (ll)); */ } int diff --git a/src/globals.c b/src/globals.c index e4ff1a1..8394212 100644 --- a/src/globals.c +++ b/src/globals.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -40,7 +40,7 @@ int g_codeLine = 0; cstring g_prevCodeFile = cstring_undefined; int g_prevCodeLine = 0; -FILE *g_msgstream; +/*@open@*/ FILE *g_msgstream; /* ** These were in llmain.c. Most should not be globals... diff --git a/src/guardSet.c b/src/guardSet.c index e898a6c..543ba03 100644 --- a/src/guardSet.c +++ b/src/guardSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -270,7 +270,7 @@ void guardSet_flip (guardSet g) return guardSet_undefined; } -guardSet guardSet_addTrueGuard (/*@returned@*/ guardSet g, sRef s) +guardSet guardSet_addTrueGuard (/*@returned@*/ guardSet g, /*@exposed@*/ sRef s) { if (sRef_isMeaningful (s)) { @@ -285,7 +285,7 @@ guardSet guardSet_addTrueGuard (/*@returned@*/ guardSet g, sRef s) return g; } -guardSet guardSet_addFalseGuard (/*@returned@*/ guardSet g, sRef s) +guardSet guardSet_addFalseGuard (/*@returned@*/ guardSet g, /*@exposed@*/ sRef s) { if (sRef_isMeaningful (s)) { @@ -333,7 +333,7 @@ guardSet_isGuarded (guardSet g, sRef s) } bool -guardSet_isProbableNull (guardSet g, sRef s) +guardSet_mustBeNull (guardSet g, sRef s) { bool ret; diff --git a/src/idDecl.c b/src/idDecl.c index fb66c43..bb1ac40 100644 --- a/src/idDecl.c +++ b/src/idDecl.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -29,16 +29,23 @@ # include "basic.h" /*@only@*/ idDecl - idDecl_create (/*@only@*/ cstring s, /*@only@*/ qtype t) + idDecl_createClauses (/*@only@*/ cstring s, /*@only@*/ qtype t, /*@only@*/ functionClauseList clauses) { idDecl d = (idDecl) dmalloc (sizeof (*d)); d->id = s; d->typ = t; + d->clauses = clauses; return (d); } +/*@only@*/ idDecl + idDecl_create (/*@only@*/ cstring s, /*@only@*/ qtype t) +{ + return idDecl_createClauses (s, t, functionClauseList_undefined); +} + void idDecl_free (idDecl t) { @@ -46,6 +53,7 @@ idDecl_free (idDecl t) { cstring_free (t->id); qtype_free (t->typ); + /*@!#@#! functionClauseList_free (t->clauses);*/ sfree (t); } } @@ -55,7 +63,28 @@ idDecl_unparse (idDecl d) { if (idDecl_isDefined (d)) { - return (message ("%s : %q", d->id, qtype_unparse (d->typ))); + if (functionClauseList_isDefined (d->clauses)) + { + return (message ("%s : %q / %q", d->id, qtype_unparse (d->typ), + functionClauseList_unparse (d->clauses))); + } + else + { + return (message ("%s : %q", d->id, qtype_unparse (d->typ))); + } + } + else + { + return (cstring_makeLiteral ("")); + } +} + +cstring +idDecl_unparseC (idDecl d) +{ + if (idDecl_isDefined (d)) + { + return (message ("%q %s", qtype_unparse (d->typ), d->id)); } else { @@ -110,6 +139,19 @@ idDecl_getQuals (idDecl d) } } +functionClauseList +idDecl_getClauses (idDecl d) +{ + if (idDecl_isDefined (d)) + { + return (d->clauses); + } + else + { + return functionClauseList_undefined; + } +} + void idDecl_addQual (idDecl d, qual q) { @@ -179,3 +221,11 @@ idDecl_expectFunction (/*@returned@*/ idDecl d) qtype_setType (d->typ, ctype_expectFunction (qtype_getType (d->typ))); return d; } + +void +idDecl_addClauses (idDecl d, functionClauseList clauses) +{ + llassert (idDecl_isDefined (d)); + llassert (functionClauseList_isUndefined (d->clauses)); + d->clauses = clauses; +} diff --git a/src/idDeclList.c b/src/idDeclList.c index 8f51887..3bc2a56 100644 --- a/src/idDeclList.c +++ b/src/idDeclList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/importNodeList.c b/src/importNodeList.c index d8eb700..1682522 100644 --- a/src/importNodeList.c +++ b/src/importNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/imports.c b/src/imports.c index 209957e..1061155 100644 --- a/src/imports.c +++ b/src/imports.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -70,7 +70,7 @@ outputLCSFile (char *path, char *msg, char *specname) return; } - fprintf (outfptr, msg); + fprintf (outfptr, "%s", msg); fprintf (outfptr, "%s\n", LCL_PARSE_VERSION); /* output line %LCLimports foo bar ... */ @@ -98,10 +98,10 @@ outputLCSFile (char *path, char *msg, char *specname) void importCTrait (void) { - char **infile = (char **) dmalloc (sizeof (*infile)); - filestatus status = osd_findOnLarchPath (CTRAITSYMSNAME, infile); + cstring infile = cstring_undefined; + filestatus status = osd_findOnLarchPath (cstring_makeLiteralTemp (CTRAITSYMSNAME), + &infile); - switch (status) { case OSD_FILEFOUND: @@ -112,20 +112,21 @@ importCTrait (void) ** open the file. */ - (void) parseSignatures (cstring_fromChars (CTRAITSYMSNAME)); - (void) parseSignatures (cstring_fromChars (*infile)); + (void) parseSignatures (cstring_fromCharsNew (CTRAITSYMSNAME)); + (void) parseSignatures (infile); break; case OSD_FILENOTFOUND: /* try spec name */ - status = osd_findOnLarchPath (CTRAITSPECNAME, infile); + status = osd_findOnLarchPath (cstring_makeLiteralTemp (CTRAITSPECNAME), + &infile); if (status == OSD_FILEFOUND) { - callLSL (CTRAITSPECNAME, - cstring_toCharsSafe - (message ("includes %s (%s for String)", - cstring_fromChars (CTRAITFILENAMEN), - cstring_fromChars (sort_getName (sort_cstring))))); + callLSL (cstring_makeLiteralTemp (CTRAITSPECNAME), + message ("includes %s (%s for String)", + cstring_fromChars (CTRAITFILENAMEN), + cstring_fromChars (sort_getName (sort_cstring)))); + cstring_free (infile); break; } else @@ -134,18 +135,17 @@ importCTrait (void) (message ("Unable to find %s or %s. Check LARCH_PATH environment variable.", cstring_fromChars (CTRAITSYMSNAME), cstring_fromChars (CTRAITSPECNAME))); - llexit (LLFAILURE); + cstring_free (infile); + llexit (LLFAILURE); } case OSD_PATHTOOLONG: lclbug (message ("importCTrait: the concatenated directory and file " "name are too long: %s: " "continuing without it", cstring_fromChars (CTRAITSPECNAME))); + cstring_free (infile); break; } - - sfree (*infile); - sfree (infile); } /* @@ -165,20 +165,22 @@ void processImport (lsymbol importSymbol, ltoken tok, impkind kind) { bool readableP, oldexporting; - bool oldFormat = FALSE; - tsource *imported, *imported2, *lclsource; - char *bufptr, *tmpbufptr, *cptr; - char *name; + bool compressedFormat = FALSE; + inputStream imported, imported2, lclsource; + char *bufptr; + char *tmpbufptr; + char *cptr; + cstring name; lsymbol sym; - char importName[MAX_NAME_LENGTH + 1], *importFileName, *realfname; - char *path; - char *fpath, *fpath2; - mapping *map; + char importName[MAX_NAME_LENGTH + 1]; + cstring importFileName; + cstring path = cstring_undefined; + cstring fpath, fpath2; + mapping map; filestatus ret; - importFileName = lsymbol_toCharsSafe (importSymbol); - name = mstring_concat (importFileName, IO_SUFFIX); - realfname = name; + importFileName = lsymbol_toString (importSymbol); + name = cstring_concat (importFileName, cstring_makeLiteralTemp (IO_SUFFIX)); /* ** find .lcs file @@ -187,75 +189,74 @@ processImport (lsymbol importSymbol, ltoken tok, impkind kind) switch (kind) { case IMPPLAIN: - path = cstring_toCharsSafe - (message ("%s%c%s", cstring_fromChars (g_localSpecPath), SEPCHAR, context_getLarchPath ())); - + path = message ("%s%c%s", cstring_fromChars (g_localSpecPath), SEPCHAR, + context_getLarchPath ()); + break; case IMPBRACKET: - path = mstring_copy (cstring_toCharsSafe (context_getLCLImportDir ())); + path = cstring_copy (context_getLCLImportDir ()); break; case IMPQUOTE: - path = mstring_copy (g_localSpecPath); + path = cstring_fromCharsNew (g_localSpecPath); break; default: - path = mstring_createEmpty (); /* suppress gcc error message */ llbuglit ("bad imports case\n"); } - if ((ret = osd_getPath (path, realfname, &fpath)) != OSD_FILEFOUND) + if ((ret = osd_getPath (path, name, &fpath)) != OSD_FILEFOUND) { - char *fname2; + cstring fname2; if (ret == OSD_PATHTOOLONG) { llfatalerrorLoc (cstring_makeLiteral ("Path too long")); } - imported2 = tsource_create (importFileName, LCL_SUFFIX, FALSE); - fname2 = tsource_fileName (imported2); - - + imported2 = inputStream_create (cstring_copy (importFileName), + LCL_EXTENSION, FALSE); + fname2 = inputStream_fileName (imported2); if (osd_getPath (path, fname2, &fpath2) == OSD_FILEFOUND) { llfatalerrorLoc (message ("Specs must be processed before it can be imported: %s", - cstring_fromChars (fpath2))); + fpath2)); } else { if (kind == IMPPLAIN || kind == IMPQUOTE) - llfatalerrorLoc (message ("Cannot find file to import: %s", - cstring_fromChars (realfname))); + { + llfatalerrorLoc (message ("Cannot find file to import: %s", name)); + } else - llfatalerrorLoc (message ("Cannot find standard import file: %s", - cstring_fromChars (realfname))); + { + llfatalerrorLoc (message ("Cannot find standard import file: %s", name)); + } } } - imported = tsource_create (fpath, IO_SUFFIX, FALSE); - - - readableP = tsource_open (imported); + imported = inputStream_create (fpath, cstring_makeLiteralTemp (IO_SUFFIX), FALSE); + + readableP = inputStream_open (imported); if (!readableP) { /* can't read ? */ llfatalerrorLoc (message ("Cannot open import file for reading: %s", - cstring_fromChars (tsource_fileName (imported)))); + inputStream_fileName (imported))); } - bufptr = tsource_nextLine (imported); + bufptr = inputStream_nextLine (imported); if (bufptr == 0) { llerror (FLG_SYNTAX, message ("Import file is empty: %s", - cstring_fromChars (tsource_fileName (imported)))); - sfree (name); - (void) tsource_close (imported); - tsource_free (imported); + inputStream_fileName (imported))); + cstring_free (name); + (void) inputStream_close (imported); + inputStream_free (imported); - sfree (path); + cstring_free (path); return; } @@ -263,15 +264,15 @@ processImport (lsymbol importSymbol, ltoken tok, impkind kind) if (firstWord (bufptr, "%FAILED")) { llfatalerrorLoc - (message ("Imported file was not checked successfully: %s.", - cstring_fromChars (name))); + (message ("Imported file was not checked successfully: %s.", name)); } - /** is it generated by the right version of the checker? - ** - ** old .lcs files start with %PASSED - ** new (compressed) files start with %LCS - */ + /* + ** Is it generated by the right version of the checker? + ** + ** Uncompressed .lcs files start with %PASSED + ** Compressed files start with %LCS + */ if (firstWord (bufptr, "%PASSED")) { @@ -283,29 +284,38 @@ processImport (lsymbol importSymbol, ltoken tok, impkind kind) if (cptr != NULL) { + /* + ** Only really old files start this way! + */ + cptr += 12; if (*cptr != '2' && *cptr != '3') { - llfatalerrorLoc (message ("Imported file is obsolete: %s.", - cstring_fromChars (bufptr))); + llfatalerrorLoc (message ("Imported file %s is obsolete: %s.", + inputStream_fileName (imported), + cstring_fromChars (bufptr))); } } - oldFormat = TRUE; + + compressedFormat = FALSE; } else { if (!firstWord (bufptr, "%LCS")) { - llfatalerrorLoc (message ("Imported file is not in correct format: %s.", + llfatalerrorLoc (message ("Imported file %s is not in correct format: %s", + inputStream_fileName (imported), cstring_fromChars (bufptr))); } + + compressedFormat = TRUE; } /* push the imported LCL spec onto g_currentImports */ context_enterImport (); - bufptr = tsource_nextLine (imported); + bufptr = inputStream_nextLine (imported); llassert (bufptr != NULL); tmpbufptr = bufptr; @@ -325,8 +335,9 @@ processImport (lsymbol importSymbol, ltoken tok, impkind kind) invariant useful for checking imports cycles. */ lclsource = LCLScanSource (); lclfatalerror (tok, - message ("Imports cycle: %s.lcl imports %s", - cstring_fromChars (importFileName), + message ("Imports cycle: %s%s imports %s", + importFileName, + LCL_EXTENSION, cstring_fromChars (importName))); } /* push them onto g_currentImports */ @@ -338,7 +349,7 @@ processImport (lsymbol importSymbol, ltoken tok, impkind kind) { lclsource = LCLScanSource (); lclfatalerror (tok, message ("Unexpected line in imported file %s: %s", - cstring_fromChars (name), + name, cstring_fromChars (bufptr))); } @@ -349,18 +360,18 @@ processImport (lsymbol importSymbol, ltoken tok, impkind kind) /* tok for error line numbering */ - if (oldFormat) + if (!compressedFormat) { - sort_import (imported, tok, map); + sort_import (imported, tok, map); } - + (void) sort_setExporting (oldexporting); - + /* sort_import updates a mapping of old anonymous sorts to new anonymous sort that is needed in symtable_import */ /* mapping_print (map); */ - if (oldFormat) + if (!compressedFormat) { symtable_import (imported, tok, map); } @@ -369,12 +380,12 @@ processImport (lsymbol importSymbol, ltoken tok, impkind kind) /* symtable_loadImport (imported, tok, map); */ } - check (tsource_close (imported)); - tsource_free (imported); - - sfree (map); - sfree (name); - sfree (path); + check (inputStream_close (imported)); + inputStream_free (imported); + + mapping_free (map); + cstring_free (name); + cstring_free (path); context_leaveImport (); } diff --git a/src/initDeclNodeList.c b/src/initDeclNodeList.c index 9ac30c7..9aca5fa 100644 --- a/src/initDeclNodeList.c +++ b/src/initDeclNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/inputStream.c b/src/inputStream.c new file mode 100644 index 0000000..b454fee --- /dev/null +++ b/src/inputStream.c @@ -0,0 +1,359 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** source.c +** +** Interface to source file abstraction +** +** NOTE: This module is almost identical to the one for LCL. The +** only difference is that a couple of source lines have been +** commented out. +** +** This module has too many dependencies to be in the common +** source area. Any of the solutions that would allow this +** module to be common had its own set of compromises. It +** seemed best and most straightforward to just keep separte +** copies for LSL and LCL. We should examine this again if we +** ever reorganize the module structure. +** +** AUTHORS: +** +** Steve Garland, +** Massachusetts Institute of Technology +** Joe Wild, Technical Languages and Environments, DECspec project +*/ + +# include "lclintMacros.nf" +# include "llbasic.h" +# include "osd.h" +# include "portab.h" + +extern bool +inputStream_close (inputStream s) +{ + llassert (inputStream_isDefined (s)); + + if (s->file != NULL) + { + check (fclose (s->file) == 0); + s->file = NULL; + return TRUE; + } + + return FALSE; +} + +extern void +inputStream_free (/*@null@*/ /*@only@*/ inputStream s) +{ + if (inputStream_isDefined (s)) + { + cstring_free (s->name); + cstring_free (s->stringSource); + sfree (s); + } +} + +extern /*@only@*/ inputStream + inputStream_create (cstring name, cstring suffix, bool echo) +{ + char *ps; + inputStream s = (inputStream) dmalloc (sizeof (*s)); + + s->name = name; + s->file = NULL; + + /*@access cstring@*/ + llassert (cstring_isDefined (s->name)); + /*@i534 clean this up...*/ + ps = strrchr (s->name, CONNECTCHAR); + + if (ps == NULL) + { + ps = s->name; + } + /*@noaccess cstring@*/ + + if (strchr (ps, '.') == NULL) + { + s->name = cstring_concatFree1 (s->name, suffix); + } + + s->name = fileLib_cleanName (s->name); + + s->lineNo = 0; + s->charNo = 0; + s->curLine = NULL; + s->echo = echo; + s->fromString = FALSE; + s->stringSource = NULL; + s->stringSourceTail = NULL; + + /*@i3254@*/ return s; +} + +extern /*@only@*/ inputStream +inputStream_fromString (cstring name, cstring str) +{ + inputStream s = (inputStream) dmalloc (sizeof (*s)); + + s->name = cstring_copy (name); + s->stringSource = cstring_copy (str); + s->stringSourceTail = s->stringSource; + s->file = 0; + s->echo = FALSE; + s->fromString = TRUE; + s->lineNo = 0; + s->charNo = 0; + s->curLine = NULL; + + return s; +} + +extern int inputStream_nextChar (inputStream s) +{ + int res; + + llassert (inputStream_isDefined (s)); + res = inputStream_peekChar (s); + + if (res != EOF) + { + if (res == (int) '\n') + { + s->curLine = NULL; + s->charNo = 0; + incLine (); + } + else + { + s->charNo++; + incColumn (); + } + } + + DPRINTF (("Next char: %c [%d]", (char) res, res)); + return res; +} + +extern int inputStream_peekNChar (inputStream s, int n) + /* Doesn't work across lines! */ +{ + llassert (s->curLine != NULL); + llassert (s->charNo + n < strlen (s->curLine)); + return ((int) s->curLine [s->charNo + n]); +} + +extern int inputStream_peekChar (inputStream s) +{ + if (s->curLine == NULL) + { + char *cur; + s->curLine = NULL; + cur = inputStream_nextLine (s); + s->curLine = cur; /* split this to avoid possible undefined behavior */ + s->charNo = 0; + } + + if (s->curLine == NULL) + { + return EOF; + } + + llassert (s->charNo <= strlen (s->curLine)); + + if (s->curLine[s->charNo] == '\0') + { + return (int) '\n'; + } + + return ((int) s->curLine [s->charNo]); +} + +extern /*@dependent@*/ /*@null@*/ +char *inputStream_nextLine (inputStream s) +{ + char *currentLine; + int len; + + llassert (s->curLine == NULL); + s->charNo = 0; + + if (s->fromString) + { + if (cstring_isEmpty (s->stringSourceTail)) + { + currentLine = 0; + } + else + { + /*@access cstring@*/ + char *c = strchr (s->stringSourceTail, '\n'); + + /* in case line is terminated not by newline */ + if (c == 0) + { + c = strchr (s->stringSourceTail, '\0'); + } + + len = c - s->stringSourceTail + 1; + + if (len > STUBMAXRECORDSIZE - 2) + { + len = (STUBMAXRECORDSIZE - 2); + } + + currentLine = &(s->buffer)[0]; + strncpy (currentLine, s->stringSourceTail, size_fromInt (len)); + currentLine[len] = '\0'; + s->stringSourceTail += len; + /*@noaccess cstring@*/ + } + + } + else + { + llassert (s->file != NULL); + currentLine = fgets (&(s->buffer)[0], STUBMAXRECORDSIZE, s->file); + } + if (currentLine == 0) + { + strcpy (s->buffer, "*** End of File ***"); + } + else + { + s->lineNo++; + len = strlen (currentLine) - 1; + if (s->buffer[len] == '\n') + { + s->buffer[len] = '\0'; + } + else + { + if (len >= STUBMAXRECORDSIZE - 2) + { + lldiagmsg (message ("Input line too long: %s", + cstring_fromChars (currentLine))); + } + } + } + + /* if (s->echo) slo_echoLine (currentLine); only needed in LCL */ + return currentLine; +} + +extern bool +inputStream_open (inputStream s) +{ + if (s->fromString) + { + /* not an error: tail is dependent */ + s->stringSourceTail = s->stringSource; + return TRUE; + } + + DPRINTF (("Open: %s", s->name)); + s->file = fopen (cstring_toCharsSafe (s->name), "r"); + return (s->file != 0 || s->fromString); +} + +/* +** requires +** path != NULL \and +** s != NULL \and +** *s.name == filename (*s.name) || filetype (*s.name) +** *s.name consists of a file name and type only (".) +** No path name is included +** +** ensures +** if filefound (*path, *s) then +** result = true \and *s.name = filespec_where_file_found (*path, *s) +** else +** result = false +*/ + +extern bool inputStream_getPath (cstring path, inputStream s) +{ + cstring returnPath; + filestatus status; /* return status of osd_getEnvPath.*/ + bool rVal; /* return value of this procedure. */ + + llassert (cstring_isDefined (path)); + llassert (inputStream_isDefined (s)); + llassert (cstring_isDefined (s->name)); + + status = osd_getPath (path, s->name, &returnPath); + + if (status == OSD_FILEFOUND) + { /* Should be majority of cases. */ + rVal = TRUE; + + cstring_free (s->name); + s->name = fileLib_cleanName (returnPath); + } + else if (status == OSD_FILENOTFOUND) + { + rVal = FALSE; + } + else if (status == OSD_PATHTOOLONG) + { + rVal = FALSE; + /* Directory and filename are too long. Report error. */ + llbuglit ("soure_getPath: Filename plus directory from search path too long"); + } + else + { + rVal = FALSE; + llbuglit ("inputStream_getPath: invalid return status"); + } + + return rVal; +} + +/*@open@*/ FILE *inputStream_getFile (inputStream s) +{ + llassert (inputStream_isDefined (s)); + return s->file; +} + +cstring inputStream_fileName (inputStream s) +{ + llassert (inputStream_isDefined (s)); + return s->name; +} + +bool inputStream_isOpen (inputStream s) +{ + return (inputStream_isDefined (s) && (s->file != 0 || s->fromString)); +} + +int inputStream_thisLineNumber (inputStream s) +{ + llassert (inputStream_isDefined (s)); + return s->lineNo; +} + + + + diff --git a/src/intSet.c b/src/intSet.c index 7fdf0b3..4983c94 100644 --- a/src/intSet.c +++ b/src/intSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/interfaceNodeList.c b/src/interfaceNodeList.c index ec708a0..f243cf8 100644 --- a/src/interfaceNodeList.c +++ b/src/interfaceNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lclctypes.c b/src/lclctypes.c index 7880cb3..3a8b659 100644 --- a/src/lclctypes.c +++ b/src/lclctypes.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lclinit.c b/src/lclinit.c index 2535200..c418ff2 100644 --- a/src/lclinit.c +++ b/src/lclinit.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lclint.lcd b/src/lclint.lcd index 2a4523e..ef9856c 100644 --- a/src/lclint.lcd +++ b/src/lclint.lcd @@ -1,6 +1,6 @@ ;;LCLint Dump: lclint.lcd -;;LCLint 2.5q --- 26 July 2000 -;;lib:170 +;;LCLint 3.0b-alpha --- 20 June 2001 +;;lib:171 ;;ctTable 0 u-2 19 38 0 p1|-2 20 39 @@ -21,11 +21,11 @@ 0 p16|-2 35 54 0 p17|-2 36 55 0 p18|-2 37 56 -1 t0|0 311 852 +1 t0|0 312 853 1 t1|1& 1 t2|2& 1 t3|3& -1 t4|4 312 853 +1 t4|4 313 854 1 t5|5& 1 t6|6& 1 t7|7& @@ -60,74 +60,75 @@ 2 y17|17& 2 y18|18& -2 ?! -0 a2|& -0 s18|& -0 s19|& -0 s20|& -0 s21|& -0 s38|-1 8361 -1 -0 s39|& -0 s22|-1 380 -1 +0 a0|& +0 s10|& +0 s11|& +0 s12|& 0 s23|& -0 a0|-1 398 -1 +0 s24|-1 10522 -1 +0 s25|& +0 s26|-1 381 -1 +0 s27|& +0 a28|-1 399 -1 3 C0.5/20|! +3 C0.68/2|! 3 C0.2/5|! -3 f0 (69|@7|$#,)! -3 f1 (69|@7|$#,)! +3 f0 (70|@7|$#,)! +3 f1 (70|@7|$#,)! 3 C0.5/3|! -3 f0 (72|$#,)! -3 f2 (72|$#,)! -3 f69 (72|$#,)! -3 f0 (72|$#,)! -3 f2 (72|$#,)! -3 f69 (72|$#,)! -3 f0 (72|$#,)! -3 f2 (72|$#,)! -3 f69 (72|$#,)! -3 f0 (72|$#,)! -3 f2 (72|$#,)! -3 f69 (72|$#,)! -3 f0 (72|$#,)! -3 f2 (72|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! +3 f70 (73|$#,)! +3 f0 (73|$#,)! +3 f2 (73|$#,)! 3 C0.2/5|! -3 f87 (72|$#,)! +3 f88 (73|$#,)! 3 C0.5/3|! -3 f0 (89|$#,)! -3 f2 (89|$#,)! -3 f87 (89|$#,)! -3 f0 (89|$#,)! -3 f2 (89|$#,)! -3 f87 (89|$#,)! -3 f0 (89|$#,)! -3 f2 (89|$#,)! -3 f87 (89|$#,)! -3 f0 (89|$#,)! -3 f2 (89|$#,)! -3 f87 (89|$#,)! -3 f0 (89|$#,)! -3 f2 (89|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! +3 f88 (90|$#,)! +3 f0 (90|$#,)! +3 f2 (90|$#,)! 3 C0.2/5|! -3 f104 (89|$#,)! +3 f105 (90|$#,)! 3 C0.5/3|! -3 f0 (106|$#,)! -3 f2 (106|$#,)! -3 f104 (106|$#,)! +3 f0 (107|$#,)! +3 f2 (107|$#,)! +3 f105 (107|$#,)! 3 C0.4/5|! -3 f0 (106|$#,)! -3 f4 (106|$#,)! -3 f110 (106|$#,)! -3 f0 (106|$#,)! -3 f4 (106|$#,)! -3 f110 (106|$#,)! +3 f0 (107|$#,)! +3 f4 (107|$#,)! +3 f111 (107|$#,)! +3 f0 (107|$#,)! +3 f4 (107|$#,)! +3 f111 (107|$#,)! 3 Slconv{23|@1|0@0@3&#decimal_point,23|@1|0@0@3&#thousands_sep,23|@1|0@0@3&#grouping,23|@1|0@0@3&#int_curr_symbol,23|@1|0@0@3&#currency_symbol,23|@1|0@0@3&#mon_decimal_point,23|@1|0@0@3&#mon_thousands_sep,23|@1|0@0@3&#mon_grouping,23|@1|0@0@3&#positive_sign,23|@1|0@0@3&#negative_sign,4|@1|$#int_frac_digits,4|@1|$#frac_digits,4|@1|$#p_cs_precedes,4|@1|$#p_sep_by_space,4|@1|$#n_cs_precedes,4|@1|$#n_sep_by_space,4|@1|$#p_sign_posn,4|@1|$#n_sign_posn,}! -0 s6951|-1 124 -1 +0 s45|-1 125 -1 3 f0 (5|$#,23|0@5@7&#,)! 3 f19 (5|$#,23|0@5@7&#,)! 3 f23 (5|$#,23|0@5@7&#,)! 3 f0 ()! 3 f19 ()! -1 t118|118& -3 f124 ()! +1 t119|119& +3 f125 ()! 3 f0 (17|$#,)! 3 f17 (17|$#,)! 3 f0 (17|$#,)! @@ -172,139 +173,139 @@ 3 f17 (17|$#,36|4@0@7&#,)! 3 f0 (17|$#,17|$#,)! 3 f17 (17|$#,17|$#,)! -0 a40|& -3 f0 (170|4@0@7&#,)! -3 f5 (170|4@0@7&#,)! -3 f0 (170|$#,5|$#,)! -3 f1 (170|$#,5|$#,)! -0 s24|& +0 a123|& +3 f0 (171|4@0@7&#,)! +3 f5 (171|4@0@7&#,)! +3 f0 (171|$#,5|$#,)! +3 f1 (171|$#,5|$#,)! +0 s132|& 3 ?! -3 f176 (5|$#,)! -3 f1 (5|$#,)^179 -1 t178|178& +3 f177 (5|$#,)! +3 f1 (5|$#,)^180 +1 t179|179& 3 ?! -3 f180 (5|$#,)! -3 f1 (5|$#,)^183 -1 t182|182& +3 f181 (5|$#,)! +3 f1 (5|$#,)^184 +1 t183|183& 3 ?! -3 f184 (5|$#,)! -3 f1 (5|$#,)^187 -1 t186|186& +3 f185 (5|$#,)! +3 f1 (5|$#,)^188 +1 t187|187& 3 ?! -3 f188 (5|$#,)! -3 f1 (5|$#,)^191 -1 t190|190& -3 f0 (5|$#,191|0@5@7&#,)! -3 f19 (5|$#,191|0@5@7&#,)^194 -1 t193|193& +3 f189 (5|$#,)! +3 f1 (5|$#,)^192 +1 t191|191& +3 f0 (5|$#,192|0@5@7&#,)! +3 f19 (5|$#,192|0@5@7&#,)^195 +1 t194|194& 3 ?! -3 f195 (5|$#,)! +3 f196 (5|$#,)! 3 f19 (5|$#,)! -3 f1 (5|$#,191|0@5@7&#,)! +3 f1 (5|$#,192|0@5@7&#,)! 3 f1 (5|$#,)! -3 f199 (5|$#,191|0@5@7&#,)! +3 f200 (5|$#,192|0@5@7&#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! -0 a41|& -3 f0 (203|4@0@7&#,!.,)! -3 f1 (203|4@0@7&#,!.,)! -3 f0 (203|$#,)! -3 f1 (203|$#,)! -0 a42|-1 210 -1 -0 a43|-1 286 -1 -1 t208|208& +0 a138|& +3 f0 (204|4@0@7&#,!.,)! +3 f1 (204|4@0@7&#,!.,)! +3 f0 (204|$#,)! +3 f1 (204|$#,)! +0 a141|-1 211 -1 +0 a142|-1 287 -1 +1 t209|209& 3 f0 (23|$#,)! 3 f5 (23|$#,)! 3 f0 (23|$#,23|$#,)! 3 f5 (23|$#,23|$#,)! 3 f0 ()! 3 f19 ()! -3 f210 ()! +3 f211 ()! 3 f0 (23|@5|4@5@7&#,)! 3 f19 (23|@5|4@5@7&#,)! 3 f23 (23|@5|4@5@7&#,)! -3 f0 (210|$#,)! -3 f5 (210|$#,)! -3 f0 (210|0@5@7&#,)! -3 f5 (210|0@5@7&#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 f0 (211|0@5@7&#,)! +3 f5 (211|0@5@7&#,)! 3 f0 (23|$#,23|$#,)! 3 f19 (23|$#,23|$#,)! -3 f210 (23|$#,23|$#,)! -3 f0 (23|$#,23|$#,210|$#,)! -3 f19 (23|$#,23|$#,210|$#,)! -3 f210 (23|$#,23|$#,210|$#,)! -3 f0 (210|$#,23|0@5@19@2@0#,)! -3 f1 (210|$#,23|0@5@19@2@0#,)! -3 f0 (210|$#,23|0@5@19@2@0#,5|$#,63|$#,)! -3 f5 (210|$#,23|0@5@19@2@0#,5|$#,63|$#,)! +3 f211 (23|$#,23|$#,)! +3 f0 (23|$#,23|$#,211|$#,)! +3 f19 (23|$#,23|$#,211|$#,)! +3 f211 (23|$#,23|$#,211|$#,)! +3 f0 (211|$#,23|0@5@19@2@0#,)! +3 f1 (211|$#,23|0@5@19@2@0#,)! +3 f0 (211|$#,23|0@5@19@2@0#,5|$#,63|$#,)! +3 f5 (211|$#,23|0@5@19@2@0#,5|$#,63|$#,)! 3 C0.5/1|! -3 f0 (210|$#,23|$#,!.,)! -3 f5 (210|$#,23|$#,!.,)! -3 f235 (210|$#,23|$#,!.,)! -3 f0 (210|$#,23|$#,!.,)! -3 f5 (210|$#,23|$#,!.,)! +3 f0 (211|$#,23|$#,!.,)! +3 f5 (211|$#,23|$#,!.,)! +3 f236 (211|$#,23|$#,!.,)! +3 f0 (211|$#,23|$#,!.,)! +3 f5 (211|$#,23|$#,!.,)! 3 f0 (23|$#,!.,)! 3 f5 (23|$#,!.,)! -3 f235 (23|$#,!.,)! +3 f236 (23|$#,!.,)! 3 f0 (23|$#,!.,)! 3 f5 (23|$#,!.,)! 3 f0 (23|4@0@7&#,23|$#,!.,)! 3 f5 (23|4@0@7&#,23|$#,!.,)! -3 f235 (23|4@0@7&#,23|$#,!.,)! +3 f236 (23|4@0@7&#,23|$#,!.,)! 3 f0 (23|4@0@7&#,23|$#,!.,)! 3 f5 (23|4@0@7&#,23|$#,!.,)! -3 f0 (210|$#,23|$#,203|$#,)! -3 f5 (210|$#,23|$#,203|$#,)! -3 f0 (23|$#,203|$#,)! -3 f5 (23|$#,203|$#,)! -3 f0 (23|4@0@7&#,23|$#,203|$#,)! -3 f5 (23|4@0@7&#,23|$#,203|$#,)! -3 f0 (210|$#,)! -3 f5 (210|$#,)! -3 f0 (23|@5|4@0@7&#,5|$#,210|$#,)! -3 f19 (23|@5|4@0@7&#,5|$#,210|$#,)! -3 f23 (23|@5|4@0@7&#,5|$#,210|$#,)! +3 f0 (211|$#,23|$#,204|$#,)! +3 f5 (211|$#,23|$#,204|$#,)! +3 f0 (23|$#,204|$#,)! +3 f5 (23|$#,204|$#,)! +3 f0 (23|4@0@7&#,23|$#,204|$#,)! +3 f5 (23|4@0@7&#,23|$#,204|$#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 f0 (23|@5|4@0@7&#,5|$#,211|$#,)! +3 f19 (23|@5|4@0@7&#,5|$#,211|$#,)! +3 f23 (23|@5|4@0@7&#,5|$#,211|$#,)! 3 C0.5/4|! -3 f0 (262|$#,210|$#,)! -3 f5 (262|$#,210|$#,)! -3 f0 (23|$#,210|$#,)! -3 f5 (23|$#,210|$#,)! -3 f0 (210|@7|$#,)! -3 f5 (210|@7|$#,)! +3 f0 (263|$#,211|$#,)! +3 f5 (263|$#,211|$#,)! +3 f0 (23|$#,211|$#,)! +3 f5 (23|$#,211|$#,)! +3 f0 (211|@7|$#,)! +3 f5 (211|@7|$#,)! 3 f0 ()! 3 f5 ()! 3 f0 (23|4@0@7&#,)! 3 f19 (23|4@0@7&#,)! 3 f23 (23|4@0@7&#,)! -3 f0 (262|$#,210|@7|$#,)! -3 f5 (262|$#,210|@7|$#,)! -3 f0 (262|$#,)! -3 f5 (262|$#,)! +3 f0 (263|$#,211|@7|$#,)! +3 f5 (263|$#,211|@7|$#,)! +3 f0 (263|$#,)! +3 f5 (263|$#,)! 3 f0 (23|$#,)! 3 f5 (23|$#,)! -3 f0 (262|$#,210|$#,)! -3 f5 (262|$#,210|$#,)! -3 f0 (20|4@0@7&#,63|$#,63|$#,210|$#,)! -3 f63 (20|4@0@7&#,63|$#,63|$#,210|$#,)! -3 f0 (20|$#,63|$#,63|$#,210|$#,)! -3 f63 (20|$#,63|$#,63|$#,210|$#,)! -1 t209|209& -3 f0 (210|$#,286|4@0@7&#,)! -3 f5 (210|$#,286|4@0@7&#,)! -3 f0 (210|$#,9|$#,5|$#,)! -3 f5 (210|$#,9|$#,5|$#,)! -3 f0 (210|$#,286|$#,)! -3 f5 (210|$#,286|$#,)! -3 f0 (210|$#,)! -3 f9 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f5 (210|$#,)! -3 f0 (210|$#,)! -3 f5 (210|$#,)! +3 f0 (263|$#,211|$#,)! +3 f5 (263|$#,211|$#,)! +3 f0 (20|4@0@7&#,63|$#,63|$#,211|$#,)! +3 f63 (20|4@0@7&#,63|$#,63|$#,211|$#,)! +3 f0 (20|$#,63|$#,63|$#,211|$#,)! +3 f63 (20|$#,63|$#,63|$#,211|$#,)! +1 t210|210& +3 f0 (211|$#,287|4@0@7&#,)! +3 f5 (211|$#,287|4@0@7&#,)! +3 f0 (211|$#,9|$#,5|$#,)! +3 f5 (211|$#,9|$#,5|$#,)! +3 f0 (211|$#,287|$#,)! +3 f5 (211|$#,287|$#,)! +3 f0 (211|$#,)! +3 f9 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! 3 f0 (23|0@5@7&#,)! 3 f1 (23|0@5@7&#,)! 3 f0 (23|$#,)! @@ -315,12 +316,12 @@ 3 f9 (23|$#,)! 1 t19|19& 1 t23|23& -3 f0 (23|$#,312|4@5@7&#,)! -3 f17 (23|$#,312|4@5@7&#,)! -3 f0 (23|$#,312|4@5@7&#,5|$#,)! -3 f9 (23|$#,312|4@5@7&#,5|$#,)! -3 f0 (23|$#,312|4@5@7&#,5|$#,)! -3 f10 (23|$#,312|4@5@7&#,5|$#,)! +3 f0 (23|$#,313|4@5@7&#,)! +3 f17 (23|$#,313|4@5@7&#,)! +3 f0 (23|$#,313|4@5@7&#,5|$#,)! +3 f9 (23|$#,313|4@5@7&#,5|$#,)! +3 f0 (23|$#,313|4@5@7&#,5|$#,)! +3 f10 (23|$#,313|4@5@7&#,5|$#,)! 3 f0 ()! 3 f5 ()! 3 f0 (6|$#,)! @@ -341,253 +342,253 @@ 3 f0 (5|$#,)! 3 f1 (5|$#,)! 3 ?! -3 f338 ()! -3 f1 ()^341 -1 t340|340& -3 f0 (341|$#,)! -3 f5 (341|$#,)! +3 f339 ()! +3 f1 ()^342 +1 t341|341& +3 f0 (342|$#,)! +3 f5 (342|$#,)! 3 f0 (23|$#,)! 3 f19 (23|$#,)! 3 f23 (23|$#,)! 3 f0 (23|0@5@7&#,)! 3 f5 (23|0@5@7&#,)! 3 ?! -3 f349 (20|$#,20|$#,)! -3 f5 (20|$#,20|$#,)^352 -1 t351|351& -3 f0 (20|$#,20|$#,63|$#,63|$#,352|$#,)! -3 f19 (20|$#,20|$#,63|$#,63|$#,352|$#,)! -3 f20 (20|$#,20|$#,63|$#,63|$#,352|$#,)! +3 f350 (20|$#,20|$#,)! +3 f5 (20|$#,20|$#,)^353 +1 t352|352& +3 f0 (20|$#,20|$#,63|$#,63|$#,353|$#,)! +3 f19 (20|$#,20|$#,63|$#,63|$#,353|$#,)! +3 f20 (20|$#,20|$#,63|$#,63|$#,353|$#,)! 3 ?! -3 f356 (20|$#,20|$#,)! -3 f5 (20|$#,20|$#,)^359 -1 t358|358& -3 f0 (20|$#,63|$#,63|$#,359|$#,)! -3 f1 (20|$#,63|$#,63|$#,359|$#,)! +3 f357 (20|$#,20|$#,)! +3 f5 (20|$#,20|$#,)^360 +1 t359|359& +3 f0 (20|$#,63|$#,63|$#,360|$#,)! +3 f1 (20|$#,63|$#,63|$#,360|$#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 S!2{5|@1|$#quot,5|@1|$#rem,}! -0 s6789|& -0 s380|& +0 s220|& +0 s221|& 3 f0 (5|$#,5|$#,)! -3 f366 (5|$#,5|$#,)! +3 f367 (5|$#,5|$#,)! 3 f0 (9|$#,)! 3 f9 (9|$#,)! 3 S!3{9|@1|$#quot,9|@1|$#rem,}! -0 s6790|& -0 s381|& +0 s224|& +0 s225|& 3 f0 (9|$#,9|$#,)! -3 f373 (9|$#,9|$#,)! +3 f374 (9|$#,9|$#,)! 3 f0 (5|$#,)! 3 f66 (5|$#,)! -3 f0 (210|$#,)! -3 f66 (210|$#,)! -1 t65|65 462 -1 -3 f0 (380|@5|$#,5|$#,210|$#,)! -3 f19 (380|@5|$#,5|$#,210|$#,)! -3 f380 (380|@5|$#,5|$#,210|$#,)! -3 f0 (65|$#,210|$#,)! -3 f66 (65|$#,210|$#,)! -3 f0 (380|$#,210|$#,)! -3 f5 (380|$#,210|$#,)! -3 f0 (210|$#,5|$#,)! -3 f5 (210|$#,5|$#,)! -3 f0 (210|$#,380|$#,!.,)! -3 f5 (210|$#,380|$#,!.,)! -3 f0 (210|$#,380|$#,!.,)! -3 f5 (210|$#,380|$#,!.,)! -3 f0 (210|@7|$#,)! -3 f66 (210|@7|$#,)! +3 f0 (211|$#,)! +3 f66 (211|$#,)! +1 t65|65 463 -1 +3 f0 (381|@5|$#,5|$#,211|$#,)! +3 f19 (381|@5|$#,5|$#,211|$#,)! +3 f381 (381|@5|$#,5|$#,211|$#,)! +3 f0 (65|$#,211|$#,)! +3 f66 (65|$#,211|$#,)! +3 f0 (381|$#,211|$#,)! +3 f5 (381|$#,211|$#,)! +3 f0 (211|$#,5|$#,)! +3 f5 (211|$#,5|$#,)! +3 f0 (211|$#,381|$#,!.,)! +3 f5 (211|$#,381|$#,!.,)! +3 f0 (211|$#,381|$#,!.,)! +3 f5 (211|$#,381|$#,!.,)! +3 f0 (211|@7|$#,)! +3 f66 (211|@7|$#,)! 3 f0 ()! 3 f66 ()! 1 t67|67& -3 f0 (23|$#,63|$#,398|0@5@7&#,)! -3 f63 (23|$#,63|$#,398|0@5@7&#,)! -3 f0 (380|0@5@7&#,23|$#,63|$#,398|0@5@7&#,)! -3 f63 (380|0@5@7&#,23|$#,63|$#,398|0@5@7&#,)! -3 f0 (398|0@5@7&#,)! -3 f5 (398|0@5@7&#,)! -3 f0 (380|0@5@7&#,312|$#,63|$#,398|0@5@7&#,)! -3 f63 (380|0@5@7&#,312|$#,63|$#,398|0@5@7&#,)! -3 f0 (65|$#,210|@7|$#,)! -3 f66 (65|$#,210|@7|$#,)! +3 f0 (23|$#,63|$#,399|0@5@7&#,)! +3 f63 (23|$#,63|$#,399|0@5@7&#,)! +3 f0 (381|0@5@7&#,23|$#,63|$#,399|0@5@7&#,)! +3 f63 (381|0@5@7&#,23|$#,63|$#,399|0@5@7&#,)! +3 f0 (399|0@5@7&#,)! +3 f5 (399|0@5@7&#,)! +3 f0 (381|0@5@7&#,313|$#,63|$#,399|0@5@7&#,)! +3 f63 (381|0@5@7&#,313|$#,63|$#,399|0@5@7&#,)! +3 f0 (65|$#,211|@7|$#,)! +3 f66 (65|$#,211|@7|$#,)! 3 f0 (65|$#,)! 3 f66 (65|$#,)! -3 f0 (380|$#,63|$#,380|$#,!.,)! -3 f5 (380|$#,63|$#,380|$#,!.,)! -3 f0 (380|$#,380|$#,!.,)! -3 f5 (380|$#,380|$#,!.,)! -3 f0 (66|$#,210|$#,)! -3 f66 (66|$#,210|$#,)! -3 f0 (210|$#,380|$#,203|$#,)! -3 f5 (210|$#,380|$#,203|$#,)! -3 f0 (380|$#,63|$#,380|$#,203|$#,)! -3 f5 (380|$#,63|$#,380|$#,203|$#,)! -3 f0 (380|$#,203|$#,)! -3 f5 (380|$#,203|$#,)! -3 f0 (23|4@5@7&#,65|$#,398|0@5@7&#,)! -3 f63 (23|4@5@7&#,65|$#,398|0@5@7&#,)! -3 C0.1/380|! -3 f0 (380|@5|4@0@9&#,380|$#,)! -3 f1 (380|@5|4@0@9&#,380|$#,)! -3 f425 (380|@5|4@0@9&#,380|$#,)! -3 f0 (380|@5|$#,65|$#,)! -3 f19 (380|@5|$#,65|$#,)! -3 f380 (380|@5|$#,65|$#,)! -3 f0 (380|$#,380|$#,)! -3 f5 (380|$#,380|$#,)! -3 f0 (380|$#,380|$#,)! -3 f5 (380|$#,380|$#,)! -3 f0 (380|@5|4@0@9&#,380|$#,)! -3 f1 (380|@5|4@0@9&#,380|$#,)! -3 f425 (380|@5|4@0@9&#,380|$#,)! -3 f0 (380|$#,380|$#,)! -3 f63 (380|$#,380|$#,)! -0 s6938|-1 442 -1 -1 t441|441& -3 f0 (380|4@0@7&#,63|$#,380|$#,442|$#,)! -3 f63 (380|4@0@7&#,63|$#,380|$#,442|$#,)! -3 f0 (380|$#,)! -3 f63 (380|$#,)! -3 C0.1/380|! -3 f0 (380|@5|4@0@9&#,380|$#,63|$#,)! -3 f1 (380|@5|4@0@9&#,380|$#,63|$#,)! -3 f447 (380|@5|4@0@9&#,380|$#,63|$#,)! -3 f0 (380|$#,380|$#,63|$#,)! -3 f5 (380|$#,380|$#,63|$#,)! -3 f0 (380|@5|4@0@9&#,380|$#,63|$#,)! -3 f1 (380|@5|4@0@9&#,380|$#,63|$#,)! -3 f447 (380|@5|4@0@9&#,380|$#,63|$#,)! -3 f0 (380|@5|$#,380|$#,)! -3 f19 (380|@5|$#,380|$#,)! -3 f380 (380|@5|$#,380|$#,)! -3 f0 (380|@5|$#,65|$#,)! -3 f19 (380|@5|$#,65|$#,)! -3 f380 (380|@5|$#,65|$#,)! -1 t380|380& -3 f0 (23|0@5@7&#,462|$#,63|$#,398|0@5@7&#,)! -3 f63 (23|0@5@7&#,462|$#,63|$#,398|0@5@7&#,)! -3 f0 (380|$#,380|$#,)! -3 f63 (380|$#,380|$#,)! -3 f0 (380|$#,380|$#,)! -3 f19 (380|$#,380|$#,)! -3 f380 (380|$#,380|$#,)! -3 f0 (380|$#,462|0@5@7&#,)! -3 f17 (380|$#,462|0@5@7&#,)! -3 f0 (380|0@5@7&#,380|$#,462|$#,)! -3 f19 (380|0@5@7&#,380|$#,462|$#,)! -3 f380 (380|0@5@7&#,380|$#,462|$#,)! -3 f0 (380|$#,462|0@5@7&#,5|$#,)! -3 f9 (380|$#,462|0@5@7&#,5|$#,)! -3 f0 (380|$#,462|0@5@7&#,5|$#,)! -3 f10 (380|$#,462|0@5@7&#,5|$#,)! -3 f0 (380|0@5@7&#,380|$#,63|$#,)! -3 f63 (380|0@5@7&#,380|$#,63|$#,)! +3 f0 (381|$#,63|$#,381|$#,!.,)! +3 f5 (381|$#,63|$#,381|$#,!.,)! +3 f0 (381|$#,381|$#,!.,)! +3 f5 (381|$#,381|$#,!.,)! +3 f0 (66|$#,211|$#,)! +3 f66 (66|$#,211|$#,)! +3 f0 (211|$#,381|$#,204|$#,)! +3 f5 (211|$#,381|$#,204|$#,)! +3 f0 (381|$#,63|$#,381|$#,204|$#,)! +3 f5 (381|$#,63|$#,381|$#,204|$#,)! +3 f0 (381|$#,204|$#,)! +3 f5 (381|$#,204|$#,)! +3 f0 (23|4@5@7&#,65|$#,399|0@5@7&#,)! +3 f63 (23|4@5@7&#,65|$#,399|0@5@7&#,)! +3 C0.1/381|! +3 f0 (381|@5|4@0@9&#,381|$#,)! +3 f1 (381|@5|4@0@9&#,381|$#,)! +3 f426 (381|@5|4@0@9&#,381|$#,)! +3 f0 (381|@5|$#,65|$#,)! +3 f19 (381|@5|$#,65|$#,)! +3 f381 (381|@5|$#,65|$#,)! +3 f0 (381|$#,381|$#,)! +3 f5 (381|$#,381|$#,)! +3 f0 (381|$#,381|$#,)! +3 f5 (381|$#,381|$#,)! +3 f0 (381|@5|4@0@9&#,381|$#,)! +3 f1 (381|@5|4@0@9&#,381|$#,)! +3 f426 (381|@5|4@0@9&#,381|$#,)! +3 f0 (381|$#,381|$#,)! +3 f63 (381|$#,381|$#,)! +0 s260|-1 443 -1 +1 t442|442& +3 f0 (381|4@0@7&#,63|$#,381|$#,443|$#,)! +3 f63 (381|4@0@7&#,63|$#,381|$#,443|$#,)! +3 f0 (381|$#,)! +3 f63 (381|$#,)! +3 C0.1/381|! +3 f0 (381|@5|4@0@9&#,381|$#,63|$#,)! +3 f1 (381|@5|4@0@9&#,381|$#,63|$#,)! +3 f448 (381|@5|4@0@9&#,381|$#,63|$#,)! +3 f0 (381|$#,381|$#,63|$#,)! +3 f5 (381|$#,381|$#,63|$#,)! +3 f0 (381|@5|4@0@9&#,381|$#,63|$#,)! +3 f1 (381|@5|4@0@9&#,381|$#,63|$#,)! +3 f448 (381|@5|4@0@9&#,381|$#,63|$#,)! +3 f0 (381|@5|$#,381|$#,)! +3 f19 (381|@5|$#,381|$#,)! +3 f381 (381|@5|$#,381|$#,)! +3 f0 (381|@5|$#,65|$#,)! +3 f19 (381|@5|$#,65|$#,)! +3 f381 (381|@5|$#,65|$#,)! +1 t381|381& +3 f0 (23|0@5@7&#,463|$#,63|$#,399|0@5@7&#,)! +3 f63 (23|0@5@7&#,463|$#,63|$#,399|0@5@7&#,)! +3 f0 (381|$#,381|$#,)! +3 f63 (381|$#,381|$#,)! +3 f0 (381|$#,381|$#,)! +3 f19 (381|$#,381|$#,)! +3 f381 (381|$#,381|$#,)! +3 f0 (381|$#,463|0@5@7&#,)! +3 f17 (381|$#,463|0@5@7&#,)! +3 f0 (381|0@5@7&#,381|$#,463|$#,)! +3 f19 (381|0@5@7&#,381|$#,463|$#,)! +3 f381 (381|0@5@7&#,381|$#,463|$#,)! +3 f0 (381|$#,463|0@5@7&#,5|$#,)! +3 f9 (381|$#,463|0@5@7&#,5|$#,)! +3 f0 (381|$#,463|0@5@7&#,5|$#,)! +3 f10 (381|$#,463|0@5@7&#,5|$#,)! +3 f0 (381|0@5@7&#,381|$#,63|$#,)! +3 f63 (381|0@5@7&#,381|$#,63|$#,)! 3 f0 (66|$#,)! 3 f5 (66|$#,)! -3 f0 (380|$#,65|$#,63|$#,)! -3 f19 (380|$#,65|$#,63|$#,)! -3 f380 (380|$#,65|$#,63|$#,)! -3 f0 (380|$#,380|$#,63|$#,)! -3 f5 (380|$#,380|$#,63|$#,)! -3 f0 (380|@5|$#,380|$#,63|$#,)! -3 f19 (380|@5|$#,380|$#,63|$#,)! -3 f380 (380|@5|$#,380|$#,63|$#,)! -3 f0 (380|@5|$#,380|$#,63|$#,)! -3 f19 (380|@5|$#,380|$#,63|$#,)! -3 f380 (380|@5|$#,380|$#,63|$#,)! -3 f0 (380|@5|$#,65|$#,63|$#,)! -3 f19 (380|@5|$#,65|$#,63|$#,)! -3 f380 (380|@5|$#,65|$#,63|$#,)! -3 f0 (380|$#,!.,)! -3 f5 (380|$#,!.,)! -3 f0 (380|$#,!.,)! -3 f5 (380|$#,!.,)! -0 s25|& -0 s26|& +3 f0 (381|$#,65|$#,63|$#,)! +3 f19 (381|$#,65|$#,63|$#,)! +3 f381 (381|$#,65|$#,63|$#,)! +3 f0 (381|$#,381|$#,63|$#,)! +3 f5 (381|$#,381|$#,63|$#,)! +3 f0 (381|@5|$#,381|$#,63|$#,)! +3 f19 (381|@5|$#,381|$#,63|$#,)! +3 f381 (381|@5|$#,381|$#,63|$#,)! +3 f0 (381|@5|$#,381|$#,63|$#,)! +3 f19 (381|@5|$#,381|$#,63|$#,)! +3 f381 (381|@5|$#,381|$#,63|$#,)! +3 f0 (381|@5|$#,65|$#,63|$#,)! +3 f19 (381|@5|$#,65|$#,63|$#,)! +3 f381 (381|@5|$#,65|$#,63|$#,)! +3 f0 (381|$#,!.,)! +3 f5 (381|$#,!.,)! +3 f0 (381|$#,!.,)! +3 f5 (381|$#,!.,)! +0 s284|& +0 s285|& 3 C0.2/5|! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f503 (66|$#,)! +3 f504 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f503 (66|$#,)! +3 f504 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f503 (66|$#,)! -3 f0 (66|$#,501|$#,)! -3 f2 (66|$#,501|$#,)! -3 f503 (66|$#,501|$#,)! +3 f504 (66|$#,)! +3 f0 (66|$#,502|$#,)! +3 f2 (66|$#,502|$#,)! +3 f504 (66|$#,502|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f503 (66|$#,)! +3 f504 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! 3 C0.2/5|! -3 f521 (66|$#,)! +3 f522 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f521 (66|$#,)! +3 f522 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f521 (66|$#,)! +3 f522 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f521 (66|$#,)! +3 f522 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f521 (66|$#,)! +3 f522 (66|$#,)! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f521 (66|$#,)! +3 f522 (66|$#,)! 3 C0.2/5|! 3 f0 (66|$#,)! 3 f2 (66|$#,)! -3 f538 (66|$#,)! +3 f539 (66|$#,)! 3 C0.66/5|! -3 f0 (66|$#,502|$#,)! -3 f66 (66|$#,502|$#,)! -3 f542 (66|$#,502|$#,)! +3 f0 (66|$#,503|$#,)! +3 f66 (66|$#,503|$#,)! +3 f543 (66|$#,503|$#,)! 3 f0 (66|$#,)! 3 f66 (66|$#,)! -3 f542 (66|$#,)! +3 f543 (66|$#,)! 3 f0 (66|$#,)! 3 f66 (66|$#,)! -3 f542 (66|$#,)! +3 f543 (66|$#,)! 3 f0 (23|$#,)! -3 f502 (23|$#,)! +3 f503 (23|$#,)! 3 f0 (23|$#,)! -3 f501 (23|$#,)! +3 f502 (23|$#,)! 3 f0 (23|$#,63|$#,)! 3 f5 (23|$#,63|$#,)! -3 f0 (380|0@5@7&#,23|0@5@7&#,63|$#,)! -3 f5 (380|0@5@7&#,23|0@5@7&#,63|$#,)! +3 f0 (381|0@5@7&#,23|0@5@7&#,63|$#,)! +3 f5 (381|0@5@7&#,23|0@5@7&#,63|$#,)! 3 f0 (23|4@5@7&#,65|$#,)! 3 f5 (23|4@5@7&#,65|$#,)! -3 f0 (380|4@0@7&#,23|$#,63|$#,)! -3 f63 (380|4@0@7&#,23|$#,63|$#,)! -3 f0 (23|4@0@7&#,380|$#,63|$#,)! -3 f63 (23|4@0@7&#,380|$#,63|$#,)! +3 f0 (381|4@0@7&#,23|$#,63|$#,)! +3 f63 (381|4@0@7&#,23|$#,63|$#,)! +3 f0 (23|4@0@7&#,381|$#,63|$#,)! +3 f63 (23|4@0@7&#,381|$#,63|$#,)! 3 C0.1/20|! 3 f0 (20|@5|4@0@9&#,20|$#,63|$#,)! 3 f1 (20|@5|4@0@9&#,20|$#,63|$#,)! -3 f566 (20|@5|4@0@9&#,20|$#,63|$#,)! +3 f567 (20|@5|4@0@9&#,20|$#,63|$#,)! 3 f0 (20|@5|4@0@7&#,20|$#,63|$#,)! 3 f1 (20|@5|4@0@7&#,20|$#,63|$#,)! -3 f566 (20|@5|4@0@7&#,20|$#,63|$#,)! +3 f567 (20|@5|4@0@7&#,20|$#,63|$#,)! 3 C0.1/23|! -3 f0 (23|@5|4@0@9&#,23|$#,)! -3 f1 (23|@5|4@0@9&#,23|$#,)! -3 f573 (23|@5|4@0@9&#,23|$#,)! -3 f0 (23|@5|4@0@9&#,23|$#,63|$#,)! -3 f1 (23|@5|4@0@9&#,23|$#,63|$#,)! -3 f573 (23|@5|4@0@9&#,23|$#,63|$#,)! -3 f0 (23|@5|4@0@9&#,23|$#,)! -3 f1 (23|@5|4@0@9&#,23|$#,)! -3 f573 (23|@5|4@0@9&#,23|$#,)! -3 f0 (23|@5|4@0@9&#,23|$#,5|$#,)! -3 f1 (23|@5|4@0@9&#,23|$#,5|$#,)! -3 f573 (23|@5|4@0@9&#,23|$#,5|$#,)! +3 f0 (23|4@0@9&#,23|$#,)! +3 f1 (23|4@0@9&#,23|$#,)! +3 f574 (23|4@0@9&#,23|$#,)! +3 f0 (23|4@0@9&#,23|$#,63|$#,)! +3 f1 (23|4@0@9&#,23|$#,63|$#,)! +3 f574 (23|4@0@9&#,23|$#,63|$#,)! +3 f0 (23|4@0@9&#,23|$#,)! +3 f1 (23|4@0@9&#,23|$#,)! +3 f574 (23|4@0@9&#,23|$#,)! +3 f0 (23|4@0@9&#,23|$#,5|$#,)! +3 f1 (23|4@0@9&#,23|$#,5|$#,)! +3 f574 (23|4@0@9&#,23|$#,5|$#,)! 3 f0 (20|$#,20|$#,63|$#,)! 3 f5 (20|$#,20|$#,63|$#,)! 3 f0 (23|$#,23|$#,)! @@ -601,17 +602,17 @@ 3 f0 (20|$#,5|$#,63|$#,)! 3 f19 (20|$#,5|$#,63|$#,)! 3 f20 (20|$#,5|$#,63|$#,)! -3 f0 (23|@5|$#,262|$#,)! -3 f19 (23|@5|$#,262|$#,)! -3 f23 (23|@5|$#,262|$#,)! +3 f0 (23|$#,263|$#,)! +3 f19 (23|$#,263|$#,)! +3 f23 (23|$#,263|$#,)! 3 f0 (23|$#,23|$#,)! 3 f63 (23|$#,23|$#,)! 3 f0 (23|@5|$#,23|$#,)! 3 f19 (23|@5|$#,23|$#,)! 3 f23 (23|@5|$#,23|$#,)! -3 f0 (23|@5|$#,262|$#,)! -3 f19 (23|@5|$#,262|$#,)! -3 f23 (23|@5|$#,262|$#,)! +3 f0 (23|@5|$#,263|$#,)! +3 f19 (23|@5|$#,263|$#,)! +3 f23 (23|@5|$#,263|$#,)! 3 f0 (23|$#,23|$#,)! 3 f63 (23|$#,23|$#,)! 3 f0 (23|@5|0@0@9&#,23|$#,)! @@ -623,161 +624,161 @@ 3 C0.1/20|! 3 f0 (20|@5|4@0@7&#,5|$#,63|$#,)! 3 f1 (20|@5|4@0@7&#,5|$#,63|$#,)! -3 f618 (20|@5|4@0@7&#,5|$#,63|$#,)! +3 f619 (20|@5|4@0@7&#,5|$#,63|$#,)! 3 f0 (5|$#,)! 3 f19 (5|$#,)! 3 f23 (5|$#,)! 3 f0 (23|$#,)! 3 f63 (23|$#,)! -0 s27|& -0 s28|-1 636 -1 +0 s331|& +0 s332|-1 637 -1 3 Stm{5|@1|$#tm_sec,5|@1|$#tm_min,5|@1|$#tm_hour,5|@1|$#tm_mday,5|@1|$#tm_mon,5|@1|$#tm_year,5|@1|$#tm_wday,5|@1|$#tm_yday,5|@1|$#tm_isdst,}! 3 f0 ()! -3 f627 ()! -3 f0 (628|$#,628|$#,)! -3 f17 (628|$#,628|$#,)! -3 f0 (442|$#,)! -3 f628 (442|$#,)! -1 t628|628& -3 f0 (636|4@5@7&#,)! -3 f628 (636|4@5@7&#,)! -3 f0 (442|$#,)! -3 f19 (442|$#,)! -3 f23 (442|$#,)! -3 f0 (636|$#,)! -3 f19 (636|$#,)! -3 f23 (636|$#,)! -3 f0 (636|$#,)! -3 f19 (636|$#,)! -3 f442 (636|$#,)! -3 f0 (636|$#,)! -3 f19 (636|$#,)! -3 f442 (636|$#,)! -3 f0 (23|4@0@7&#,63|$#,23|$#,442|$#,)! -3 f63 (23|4@0@7&#,63|$#,23|$#,442|$#,)! -0 s29|& -0 s30|-1 -1 873 -0 s31|& -0 s32|-1 8360 -1 -0 s33|& -0 s34|& -0 s35|& -0 s36|& -0 a44|-1 664 -1 +3 f628 ()! +3 f0 (629|$#,629|$#,)! +3 f17 (629|$#,629|$#,)! +3 f0 (443|$#,)! +3 f629 (443|$#,)! +1 t629|629& +3 f0 (637|4@5@7&#,)! +3 f629 (637|4@5@7&#,)! +3 f0 (443|$#,)! +3 f19 (443|$#,)! +3 f23 (443|$#,)! +3 f0 (637|$#,)! +3 f19 (637|$#,)! +3 f23 (637|$#,)! +3 f0 (637|$#,)! +3 f19 (637|$#,)! +3 f443 (637|$#,)! +3 f0 (637|$#,)! +3 f19 (637|$#,)! +3 f443 (637|$#,)! +3 f0 (23|4@0@7&#,63|$#,23|$#,443|$#,)! +3 f63 (23|4@0@7&#,63|$#,23|$#,443|$#,)! +0 s342|& +0 s343|-1 -1 874 +0 s344|& +0 s345|-1 10521 -1 +0 s346|& +0 s347|& +0 s348|& +0 s349|& +0 a350|-1 665 -1 3 Sdirent{42|@1|$#d_name,}! -0 s6740|-1 672 -1 -1 t661|661& -3 f0 (664|$#,)! -3 f5 (664|$#,)! +0 s351|-1 673 -1 +1 t662|662& +3 f0 (665|$#,)! +3 f5 (665|$#,)! 3 f0 (23|$#,)! 3 f19 (23|$#,)! -3 f664 (23|$#,)! -3 f0 (664|$#,)! -3 f19 (664|$#,)! -1 t663|663& -3 f672 (664|$#,)! -3 f0 (664|$#,)! -3 f1 (664|$#,)! -3 Sflock{7|@1|$#l_type,7|@1|$#l_whence,658|@1|$#l_start,658|@1|$#l_len,659|@1|$#l_pid,}! -0 s6917|& -3 f0 (23|$#,656|$#,)! -3 f5 (23|$#,656|$#,)! +3 f665 (23|$#,)! +3 f0 (665|$#,)! +3 f19 (665|$#,)! +1 t664|664& +3 f673 (665|$#,)! +3 f0 (665|$#,)! +3 f1 (665|$#,)! +3 Sflock{7|@1|$#l_type,7|@1|$#l_whence,659|@1|$#l_start,659|@1|$#l_len,660|@1|$#l_pid,}! +0 s427|& +3 f0 (23|$#,657|$#,)! +3 f5 (23|$#,657|$#,)! 3 f0 (5|$#,5|$#,!.,)! 3 f5 (5|$#,5|$#,!.,)! 3 f0 (23|$#,5|$#,!.,)! 3 f5 (23|$#,5|$#,!.,)! -3 Sgroup{23|@1|0@0@3&#gr_name,654|@1|$#gr_gid,312|@1|0@0@3&#gr_mem,}! -0 s6826|-1 688 -1 -3 f0 (654|$#,)! -3 f19 (654|$#,)! -1 t685|685& -3 f688 (654|$#,)! +3 Sgroup{23|@1|0@0@3&#gr_name,655|@1|$#gr_gid,313|@1|0@0@3&#gr_mem,}! +0 s431|-1 689 -1 +3 f0 (655|$#,)! +3 f19 (655|$#,)! +1 t686|686& +3 f689 (655|$#,)! 3 f0 (23|$#,)! 3 f19 (23|$#,)! -3 f688 (23|$#,)! -3 Spasswd{23|@1|0@0@3&#pw_name,660|@1|$#pw_uid,654|@1|$#pw_gid,23|@1|0@0@3&#pw_dir,23|@1|0@0@3&#pw_shell,}! -0 s6921|-1 697 -1 +3 f689 (23|$#,)! +3 Spasswd{23|@1|0@0@3&#pw_name,661|@1|$#pw_uid,655|@1|$#pw_gid,23|@1|0@0@3&#pw_dir,23|@1|0@0@3&#pw_shell,}! +0 s459|-1 698 -1 3 f0 (23|$#,)! 3 f19 (23|$#,)! -1 t694|694& -3 f697 (23|$#,)! -3 f0 (660|$#,)! -3 f19 (660|$#,)! -3 f697 (660|$#,)! -0 a45|& -3 f0 (702|$#,5|$#,)! -3 f1 (702|$#,5|$#,)! -3 f0 (702|4@0@7&#,5|$#,)! -3 f5 (702|4@0@7&#,5|$#,)! -0 a1|-1 719 -1 +1 t695|695& +3 f698 (23|$#,)! +3 f0 (661|$#,)! +3 f19 (661|$#,)! +3 f698 (661|$#,)! +0 a462|& +3 f0 (703|$#,5|$#,)! +3 f1 (703|$#,5|$#,)! +3 f0 (703|4@0@7&#,5|$#,)! +3 f5 (703|4@0@7&#,5|$#,)! +0 a465|-1 720 -1 3 ?! -3 f708 ()! -3 f1 ()^711 -1 t710|710& -3 Ssigaction{!711$$$@0#sa_handler,707|@1|0@0@3&#sa_mask,5|@1|$#sa_flags,}! -0 s6875|-1 716 -1 -3 f0 (659|$#,5|$#,)! -3 f5 (659|$#,5|$#,)! -1 t713|713& -3 f0 (5|$#,716|$#,716|4@5@7&#,)! -3 f5 (5|$#,716|$#,716|4@5@7&#,)! -1 t707|707& -3 f0 (719|$#,5|$#,)! -3 f5 (719|$#,5|$#,)! -3 f0 (719|$#,5|$#,)! -3 f5 (719|$#,5|$#,)! -3 f0 (719|4@0@7&#,)! -3 f5 (719|4@0@7&#,)! -3 f0 (719|4@0@7&#,)! -3 f5 (719|4@0@7&#,)! -3 f0 (719|$#,5|$#,)! -3 f5 (719|$#,5|$#,)! -3 f0 (719|4@0@7&#,)! -3 f5 (719|4@0@7&#,)! -3 f0 (5|$#,719|0@5@7&#,719|4@5@7&#,)! -3 f5 (5|$#,719|0@5@7&#,719|4@5@7&#,)! -3 f0 (719|$#,)! -3 f5 (719|$#,)! +3 f709 ()! +3 f1 ()^712 +1 t711|711& +3 Ssigaction{!712$$$@0#sa_handler,708|@1|0@0@3&#sa_mask,5|@1|$#sa_flags,}! +0 s483|-1 717 -1 +3 f0 (660|$#,5|$#,)! +3 f5 (660|$#,5|$#,)! +1 t714|714& +3 f0 (5|$#,717|$#,717|4@5@7&#,)! +3 f5 (5|$#,717|$#,717|4@5@7&#,)! +1 t708|708& +3 f0 (720|$#,5|$#,)! +3 f5 (720|$#,5|$#,)! +3 f0 (720|$#,5|$#,)! +3 f5 (720|$#,5|$#,)! +3 f0 (720|4@0@7&#,)! +3 f5 (720|4@0@7&#,)! +3 f0 (720|4@0@7&#,)! +3 f5 (720|4@0@7&#,)! +3 f0 (720|$#,5|$#,)! +3 f5 (720|$#,5|$#,)! +3 f0 (720|4@0@7&#,)! +3 f5 (720|4@0@7&#,)! +3 f0 (5|$#,720|0@5@7&#,720|4@5@7&#,)! +3 f5 (5|$#,720|0@5@7&#,720|4@5@7&#,)! +3 f0 (720|$#,)! +3 f5 (720|$#,)! 3 f0 (5|$#,23|$#,)! 3 f19 (5|$#,23|$#,)! -3 f210 (5|$#,23|$#,)! -3 f0 (210|$#,)! -3 f5 (210|$#,)! -3 Sstat{656|@1|$#st_mode,655|@1|$#st_ino,653|@1|$#st_dev,657|@1|$#st_nlink,660|@1|$#st_uid,654|@1|$#st_gid,658|@1|$#st_size,628|@1|$#st_st_atime,628|@1|$#st_st_mtime,628|@1|$#st_st_ctime,}! -0 s6941|-1 755 -1 -3 f0 (656|@7|$#,)! -3 f2 (656|@7|$#,)! -3 f0 (656|@7|$#,)! -3 f2 (656|@7|$#,)! -3 f0 (656|@7|$#,)! -3 f2 (656|@7|$#,)! -3 f0 (656|@7|$#,)! -3 f2 (656|@7|$#,)! -3 f0 (656|@7|$#,)! -3 f2 (656|@7|$#,)! -3 f0 (23|$#,656|$#,)! -3 f5 (23|$#,656|$#,)! -1 t742|742& -3 f0 (5|$#,755|4@0@7&#,)! -3 f5 (5|$#,755|4@0@7&#,)! -3 f0 (23|$#,656|$#,)! -3 f5 (23|$#,656|$#,)! -3 f0 (23|$#,656|$#,)! -3 f5 (23|$#,656|$#,)! -3 f0 (23|$#,755|4@0@7&#,)! -3 f5 (23|$#,755|4@0@7&#,)! -3 f0 (656|$#,)! -3 f5 (656|$#,)! -3 Stms{627|@1|$#tms_utime,627|@1|$#tms_stime,627|@1|$#tms_cutime,627|@1|$#tms_cstime,}! -0 s6903|-1 768 -1 -1 t767|767& -3 f0 (768|4@0@7&#,)! -3 f627 (768|4@0@7&#,)! +3 f211 (5|$#,23|$#,)! +3 f0 (211|$#,)! +3 f5 (211|$#,)! +3 Sstat{657|@1|$#st_mode,656|@1|$#st_ino,654|@1|$#st_dev,658|@1|$#st_nlink,661|@1|$#st_uid,655|@1|$#st_gid,659|@1|$#st_size,629|@1|$#st_st_atime,629|@1|$#st_st_mtime,629|@1|$#st_st_ctime,}! +0 s498|-1 756 -1 +3 f0 (657|@7|$#,)! +3 f2 (657|@7|$#,)! +3 f0 (657|@7|$#,)! +3 f2 (657|@7|$#,)! +3 f0 (657|@7|$#,)! +3 f2 (657|@7|$#,)! +3 f0 (657|@7|$#,)! +3 f2 (657|@7|$#,)! +3 f0 (657|@7|$#,)! +3 f2 (657|@7|$#,)! +3 f0 (23|$#,657|$#,)! +3 f5 (23|$#,657|$#,)! +1 t743|743& +3 f0 (5|$#,756|4@0@7&#,)! +3 f5 (5|$#,756|4@0@7&#,)! +3 f0 (23|$#,657|$#,)! +3 f5 (23|$#,657|$#,)! +3 f0 (23|$#,657|$#,)! +3 f5 (23|$#,657|$#,)! +3 f0 (23|$#,756|4@0@7&#,)! +3 f5 (23|$#,756|4@0@7&#,)! +3 f0 (657|$#,)! +3 f5 (657|$#,)! +3 Stms{628|@1|$#tms_utime,628|@1|$#tms_stime,628|@1|$#tms_cutime,628|@1|$#tms_cstime,}! +0 s510|-1 769 -1 +1 t768|768& +3 f0 (769|4@0@7&#,)! +3 f628 (769|4@0@7&#,)! 3 Sutsname{42|@1|$#sysname,42|@1|$#nodename,42|@1|$#release,42|@1|$#version,42|@1|$#machine,}! -0 s6922|-1 773 -1 -1 t772|772& -3 f0 (773|4@0@7&#,)! -3 f5 (773|4@0@7&#,)! +0 s512|-1 774 -1 +1 t773|773& +3 f0 (774|4@0@7&#,)! +3 f5 (774|4@0@7&#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 (5|$#,)! @@ -791,39 +792,39 @@ 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 (24|4@5@7&#,)! -3 f659 (24|4@5@7&#,)! -3 f0 (659|$#,24|4@0@7&#,5|$#,)! -3 f659 (659|$#,24|4@0@7&#,5|$#,)! +3 f660 (24|4@5@7&#,)! +3 f0 (660|$#,24|4@0@7&#,5|$#,)! +3 f660 (660|$#,24|4@0@7&#,5|$#,)! 3 C0.4/8|! 3 C0.3/8|! -0 s388|& +0 s523|& 3 C0.9/9|! 3 C0.10/9|! -0 s389|& -0 s390|& -3 Stermios{798|@1|$#c_iflag,798|@1|$#c_oflag,798|@1|$#c_cflag,798|@1|$#c_lflag,794|@1|$#c_cc,}! -0 s6912|-1 801 -1 -1 t800|800& -3 f0 (801|$#,)! -3 f797 (801|$#,)! -3 f0 (801|$#,)! -3 f797 (801|$#,)! -3 f0 (801|$#,)! -3 f5 (801|$#,)! -3 f0 (801|$#,)! -3 f5 (801|$#,)! +0 s524|& +0 s525|& +3 Stermios{799|@1|$#c_iflag,799|@1|$#c_oflag,799|@1|$#c_cflag,799|@1|$#c_lflag,795|@1|$#c_cc,}! +0 s594|-1 802 -1 +1 t801|801& +3 f0 (802|$#,)! +3 f798 (802|$#,)! +3 f0 (802|$#,)! +3 f798 (802|$#,)! +3 f0 (802|$#,)! +3 f5 (802|$#,)! +3 f0 (802|$#,)! +3 f5 (802|$#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 (5|$#,5|$#,)! 3 f5 (5|$#,5|$#,)! 3 f0 (5|$#,5|$#,)! 3 f5 (5|$#,5|$#,)! -3 f0 (5|$#,801|4@0@7&#,)! -3 f5 (5|$#,801|4@0@7&#,)! +3 f0 (5|$#,802|4@0@7&#,)! +3 f5 (5|$#,802|4@0@7&#,)! 3 f0 (5|$#,5|$#,)! 3 f5 (5|$#,5|$#,)! -3 f0 (5|$#,5|$#,801|$#,)! -3 f5 (5|$#,5|$#,801|$#,)! +3 f0 (5|$#,5|$#,802|$#,)! +3 f5 (5|$#,5|$#,802|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 (5|$#,)! @@ -834,8 +835,8 @@ 3 f6 (6|$#,)! 3 f0 (23|$#,)! 3 f5 (23|$#,)! -3 f0 (23|$#,660|$#,654|$#,)! -3 f5 (23|$#,660|$#,654|$#,)! +3 f0 (23|$#,661|$#,655|$#,)! +3 f5 (23|$#,661|$#,655|$#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 (23|@5|4@5@7&#,)! @@ -856,45 +857,45 @@ 3 f5 (23|$#,23|$#,!.,)! 2 y19|19& 2 y23|23& -3 f0 (23|$#,853|$#,)! -3 f5 (23|$#,853|$#,)! -3 f0 (23|$#,853|$#,312|$#,)! -3 f5 (23|$#,853|$#,312|$#,)! -3 f0 (23|$#,853|$#,)! -3 f5 (23|$#,853|$#,)! -3 f0 ()! -3 f659 ()! +3 f0 (23|$#,854|$#,)! +3 f5 (23|$#,854|$#,)! +3 f0 (23|$#,854|$#,313|$#,)! +3 f5 (23|$#,854|$#,313|$#,)! +3 f0 (23|$#,854|$#,)! +3 f5 (23|$#,854|$#,)! +3 f0 ()! +3 f660 ()! 3 f0 (5|$#,5|$#,)! 3 f9 (5|$#,5|$#,)! 3 f0 (23|@5|4@0@7&#,63|$#,)! 3 f19 (23|@5|4@0@7&#,63|$#,)! 3 f23 (23|@5|4@0@7&#,63|$#,)! 3 f0 ()! -3 f654 ()! +3 f655 ()! 3 f0 ()! -3 f660 ()! +3 f661 ()! 3 f0 ()! -3 f654 ()! -2 y654|654& -3 f0 (5|$#,873|4@0@7&#,)! -3 f5 (5|$#,873|4@0@7&#,)! +3 f655 ()! +2 y655|655& +3 f0 (5|$#,874|4@0@7&#,)! +3 f5 (5|$#,874|4@0@7&#,)! 3 f0 ()! 3 f19 ()! 3 f23 ()! 3 f0 ()! -3 f659 ()! -3 f0 ()! -3 f659 ()! +3 f660 ()! 3 f0 ()! -3 f659 ()! +3 f660 ()! 3 f0 ()! 3 f660 ()! +3 f0 ()! +3 f661 ()! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 (23|$#,23|$#,)! 3 f5 (23|$#,23|$#,)! -3 f0 (5|$#,658|$#,5|$#,)! -3 f658 (5|$#,658|$#,5|$#,)! +3 f0 (5|$#,659|$#,5|$#,)! +3 f659 (5|$#,659|$#,5|$#,)! 3 f0 (23|$#,5|$#,)! 3 f9 (23|$#,5|$#,)! 3 f0 ()! @@ -905,22 +906,22 @@ 3 f64 (5|$#,20|4@0@7&#,63|$#,)! 3 f0 (23|$#,)! 3 f5 (23|$#,)! -3 f0 (654|$#,)! -3 f5 (654|$#,)! -3 f0 (659|$#,659|$#,)! -3 f5 (659|$#,659|$#,)! -3 f0 ()! -3 f659 ()! -3 f0 (660|$#,)! -3 f5 (660|$#,)! +3 f0 (655|$#,)! +3 f5 (655|$#,)! +3 f0 (660|$#,660|$#,)! +3 f5 (660|$#,660|$#,)! +3 f0 ()! +3 f660 ()! +3 f0 (661|$#,)! +3 f5 (661|$#,)! 3 f0 (6|$#,)! 3 f6 (6|$#,)! 3 f0 (5|$#,)! 3 f9 (5|$#,)! 3 f0 (5|$#,)! -3 f659 (5|$#,)! -3 f0 (5|$#,659|$#,)! -3 f5 (5|$#,659|$#,)! +3 f660 (5|$#,)! +3 f0 (5|$#,660|$#,)! +3 f5 (5|$#,660|$#,)! 3 f0 (5|$#,)! 3 f19 (5|$#,)! 3 f23 (5|$#,)! @@ -928,91 +929,223 @@ 3 f5 (23|$#,)! 3 f0 (5|$#,20|$#,63|$#,)! 3 f64 (5|$#,20|$#,63|$#,)! -3 Sutimbuf{628|@1|$#actime,628|@1|$#modtime,}! -0 s6747|-1 928 -1 -1 t927|927& -3 f0 (23|$#,928|0@5@7&#,)! -3 f5 (23|$#,928|0@5@7&#,)! -0 s37|& -0 s6948|-1 933 -1 -1 t932|932& -0 s52|-1 15184 -1 -0 s6889|-1 936 -1 -1 t935|935& -0 s54|& -0 s6925|-1 939 -1 -1 t938|938& -0 a56|& -0 s11|-1 2302 -1 -0 s15|-1 2585 -1 -0 s6911|-1 944 -1 -1 t943|943& -0 s57|& -0 s6939|-1 947 -1 -1 t946|946& -0 a59|-1 15219 -1 -0 s12|& -0 s6950|-1 951 -1 -1 t950|950& -0 a61|-1 4127 -1 -0 s6949|-1 954 -1 -1 t953|953& -0 a64|-1 5630 -1 -0 a5|& -0 s65|-1 4298 -1 -0 s6760|-1 959 -1 -1 t958|958& -0 a66|-1 14690 -1 -0 s6944|-1 962 -1 -1 t961|961& -0 a68|& -0 s6953|-1 965 -1 -1 t964|964& -0 a69|-1 14504 -1 -0 s6797|-1 968 -1 -1 t967|967& -0 a72|& -0 s6820|-1 971 -1 -1 t970|970& -0 a73|-1 12091 -1 -0 s6898|-1 974 -1 -1 t973|973& -0 a77|& -0 s6888|-1 977 -1 -1 t976|976& -0 a78|-1 14378 -1 -0 s6936|-1 980 -1 -1 t979|979& -0 a80|-1 11187 -1 -0 s6865|-1 983 -1 -1 t982|982& -0 a82|& -0 s6773|-1 986 -1 -1 t985|985& -0 a83|& -0 s3|& -0 a47|-1 1194 -1 -0 s85|-1 1878 -1 -0 a6|-1 4415 -1 +3 Sutimbuf{629|@1|$#actime,629|@1|$#modtime,}! +0 s686|-1 929 -1 +1 t928|928& +3 f0 (23|$#,929|0@5@7&#,)! +3 f5 (23|$#,929|0@5@7&#,)! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f1 ()! +0 s2196|-1 937 -1 +1 t936|936& +0 s2197|& +0 s2198|-1 940 -1 +1 t939|939& +0 s2199|-1 17174 -1 +0 s2200|-1 943 -1 +1 t942|942& +0 s2201|& +0 s2202|-1 946 -1 +1 t945|945& +0 s2203|& +0 s2204|-1 949 -1 +1 t948|948& +0 s2205|& +0 s2206|-1 952 -1 +1 t951|951& +0 a2207|& +0 s2208|-1 955 -1 +1 t954|954& +0 s2209|& +0 s2210|-1 958 -1 +1 t957|957& +0 a2211|& +0 s2212|-1 2912 -1 +0 s2213|-1 2931 -1 +0 s2214|-1 963 -1 +1 t962|962& +0 s2215|& +0 s2216|-1 966 -1 +1 t965|965& +0 a2217|-1 17209 -1 +0 s2218|& +0 s2219|-1 970 -1 +1 t969|969& +0 a2220|-1 13874 -1 +0 s2221|-1 973 -1 +1 t972|972& +0 a2222|-1 6146 -1 +0 a2223|& +0 s2224|-1 4713 -1 +0 s2225|-1 978 -1 +1 t977|977& +0 a2226|& +0 s2227|-1 981 -1 +1 t980|980& +0 a2228|-1 16646 -1 +0 s2229|-1 984 -1 +1 t983|983& +0 a2230|& +0 s2231|-1 987 -1 +1 t986|986& +0 a2232|-1 16440 -1 +0 s2233|-1 990 -1 +1 t989|989& +0 a2234|& +0 s2235|-1 993 -1 +1 t992|992& +0 a2236|-1 13875 -1 +0 s2237|-1 996 -1 +1 t995|995& +0 a2238|& +0 s2239|-1 999 -1 +1 t998|998& +0 a2240|& +0 s2241|-1 1002 -1 +1 t1001|1001& +0 a2242|-1 16296 -1 +0 s2243|-1 1005 -1 +1 t1004|1004& +0 a2244|& +0 s2245|-1 1008 -1 +1 t1007|1007& +0 a2246|& +0 s2247|-1 1011 -1 +1 t1010|1010& +0 a2248|& +0 s2249|-1 1014 -1 +1 t1013|1013& +0 a2250|& +0 s2251|-1 1017 -1 +1 t1016|1016& +0 a2252|& +0 a2253|& +0 a2254|& +0 a2255|& +0 s2256|-1 1023 -1 +1 t1022|1022& +0 a2257|& +0 s2258|-1 1026 -1 +1 t1025|1025& +0 a2259|-1 12868 -1 +0 s2260|-1 1029 -1 +1 t1028|1028& +0 a2261|& +0 s2262|-1 1032 -1 +1 t1031|1031& +0 a2263|& +0 s2264|-1 1035 -1 +1 t1034|1034& +0 a2265|& +0 s2266|-1 1038 -1 +1 t1037|1037& +0 a2267|& +0 s2268|-1 1041 -1 +1 t1040|1040& +0 a2269|-1 11847 -1 +0 s2270|-1 1044 -1 +1 t1043|1043& +0 a2271|& +0 s2272|-1 1047 -1 +1 t1046|1046& +0 a2273|& +0 s2274|-1 1050 -1 +1 t1049|1049& +0 a2275|& +0 s2276|-1 1053 -1 +1 t1052|1052& +0 a2277|& +0 s2278|-1 1056 -1 +1 t1055|1055& +0 a2279|& +0 s2280|-1 1059 -1 +1 t1058|1058& +0 a2281|& +0 s2282|-1 1062 -1 +1 t1061|1061& +0 a2283|& +0 s2284|-1 1065 -1 +1 t1064|1064& +0 a2285|& +0 s2286|-1 1068 -1 +1 t1067|1067& +0 a2287|-1 19885 -1 +0 s2288|-1 1071 -1 +1 t1070|1070& +0 a2289|& +0 s2290|-1 1074 -1 +1 t1073|1073& +0 a2291|& +0 s2292|-1 1077 -1 +1 t1076|1076& +0 a2293|-1 9333 -1 +0 s2294|-1 1080 -1 +1 t1079|1079& +0 a2295|& +0 s2296|-1 1083 -1 +1 t1082|1082& +0 a2297|& +0 s2298|-1 1086 -1 +1 t1085|1085& +0 a2299|& +0 s2300|-1 1089 -1 +1 t1088|1088& +0 a2301|-1 19924 -1 +0 s2302|-1 1092 -1 +1 t1091|1091& +0 a2303|& +0 s2304|-1 1095 -1 +1 t1094|1094& +0 a2305|-1 19823 -1 +0 s2306|-1 1098 -1 +1 t1097|1097& +0 a2307|& +0 s2308|-1 1101 -1 +1 t1100|1100& +0 a2309|-1 19860 -1 +0 s2310|-1 1104 -1 +1 t1103|1103& +0 a2311|& +0 a2312|& +0 s2313|-1 1108 -1 +1 t1107|1107& +0 a2314|-1 9939 -1 +0 s2315|-1 1111 -1 +1 t1110|1110& +0 a2316|& +0 s2317|-1 1114 -1 +1 t1113|1113& +0 a2318|& +0 s2319|& +0 a2320|-1 1287 -1 +0 s2321|-1 2239 -1 +0 a2322|-1 4838 -1 3 ?! -3 f992 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^995 -1 t994|994& -0 s87|& +3 f1120 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^1123 +1 t1122|1122& +0 s2323|& 3 ?! -3 f997 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)^1000 -1 t999|999& -0 s88|& +3 f1125 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)^1128 +1 t1127|1127& +0 s2324|& 3 ?! -3 f1002 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)^1005 -1 t1004|1004& -0 s89|& +3 f1130 (971|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,5|$#,1003|0@5@7&#,)^1133 +1 t1132|1132& +0 s2325|& +3 ?! +3 f1135 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)^1138 +1 t1137|1137& +0 s2326|& 3 f0 (20|4@5@2&#,)! 3 f1 (20|4@5@2&#,)! -0 s13|& -0 s16|& +0 s2328|& +0 s2329|& 3 f0 (5|$#,)! 3 f19 (5|$#,)! 3 f23 (5|$#,)! @@ -1020,42 +1153,6 @@ 3 f2 (23|$#,23|$#,)! 3 f0 (20|@7|15@0@1&#,)! 3 f1 (20|@7|15@0@1&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (23|$#,)! -3 f2 (23|$#,)! -3 f0 (23|$#,23|$#,)! -3 f19 (23|$#,23|$#,)! -3 f23 (23|$#,23|$#,)! -3 f0 (23|$#,23|$#,)! -3 f19 (23|$#,23|$#,)! -3 f23 (23|$#,23|$#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (23|0@0@2&#,)! -3 f19 (23|0@0@2&#,)! -3 f23 (23|0@0@2&#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (312|$#,)! -3 f5 (312|$#,)! -3 f0 (312|$#,)! -3 f4 (312|$#,)! -3 f0 (312|$#,)! -3 f17 (312|$#,)! -3 f0 (312|$#,4|$#,23|$#,5|$#,)! -3 f1 (312|$#,4|$#,23|$#,5|$#,)! -3 f0 (312|$#,4|$#,)! -3 f2 (312|$#,4|$#,)! -3 f0 (312|$#,4|$#,)! -3 f1 (312|$#,4|$#,)! -3 f0 (312|$#,)! -3 f19 (312|$#,)! -3 f23 (312|$#,)! -3 f0 (312|$#,)! -3 f989 (312|$#,)! 3 f0 (63|$#,)! 3 f5 (63|$#,)! 3 f0 (63|$#,)! @@ -1068,12 +1165,12 @@ 3 f5 (9|$#,)! 3 f0 (5|$#,)! 3 f10 (5|$#,)! -0 s46|& -0 s50|-1 10788 8534 -0 s51|-1 -1 14106 -3 f0 (1066|@5|0@5@7&#,)! -3 f19 (1066|@5|0@5@7&#,)! -3 f23 (1066|@5|0@5@7&#,)! +0 s2338|& +0 s2339|-1 13129 10695 +0 s2340|-1 -1 16046 +3 f0 (1163|@5|0@5@7&#,)! +3 f19 (1163|@5|0@5@7&#,)! +3 f23 (1163|@5|0@5@7&#,)! 3 f0 (5|$#,)! 3 f19 (5|$#,)! 3 f23 (5|$#,)! @@ -1096,6 +1193,8 @@ 3 f2 (23|$#,23|$#,)! 3 f0 (23|0@5@7&#,23|0@5@7&#,)! 3 f2 (23|0@5@7&#,23|0@5@7&#,)! +3 f0 (23|$#,4|$#,)! +3 f2 (23|$#,4|$#,)! 3 f0 (23|@7|0@5@7&#,)! 3 f5 (23|@7|0@5@7&#,)! 3 f0 (23|@7|0@5@7&#,)! @@ -1114,163 +1213,159 @@ 3 f1 (23|4@5@2&#,)! 3 f0 (5|@7|$#,5|@7|$#,)! 3 f5 (5|@7|$#,5|@7|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (210|$#,23|$#,)! -3 f1 (210|$#,23|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (211|$#,23|$#,)! +3 f1 (211|$#,23|$#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 (5|$#,)! 3 f4 (5|$#,)! -3 f0 (23|@5|$#,)! -3 f19 (23|@5|$#,)! -3 f23 (23|@5|$#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (5|$#,210|$#,)! -3 f1 (5|$#,210|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 ()! 3 f5 ()! 3 f0 (5|$#,)! -3 f989 (5|$#,)! -3 f0 ()! -3 f989 ()! -3 f0 (989|0@5@2&#,4|$#,)! -3 f989 (989|0@5@2&#,4|$#,)! -3 f0 (989|0@5@2&#,23|$#,5|$#,)! -3 f989 (989|0@5@2&#,23|$#,5|$#,)! -3 f0 (4|$#,989|0@5@6&#,)! -3 f989 (4|$#,989|0@5@6&#,)! -3 f0 (4|$#,989|0@5@2&#,)! -3 f989 (4|$#,989|0@5@2&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! +3 f1117 (5|$#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1117|0@5@2&#,4|$#,)! +3 f1117 (1117|0@5@2&#,4|$#,)! +3 f0 (1117|0@5@2&#,23|$#,5|$#,)! +3 f1117 (1117|0@5@2&#,23|$#,5|$#,)! +3 f0 (4|$#,1117|0@5@6&#,)! +3 f1117 (4|$#,1117|0@5@6&#,)! +3 f0 (4|$#,1117|0@5@2&#,)! +3 f1117 (4|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! 3 f0 (23|$#,5|$#,)! -3 f989 (23|$#,5|$#,)! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! +3 f1117 (23|$#,5|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! 3 e!4{CGE_SAME,CGE_DISTINCT,CGE_CASE,CGE_LOOKALIKE}! -0 s6988|& -0 s92|& -3 f0 (989|0@5@7&#,989|0@5@7&#,5|$#,2|$#,2|$#,)! -3 f1154 (989|0@5@7&#,989|0@5@7&#,5|$#,2|$#,2|$#,)! -3 f0 (989|0@5@9&#,23|$#,23|$#,)! -3 f1 (989|0@5@9&#,23|$#,23|$#,)! -3 f0 (989|0@5@7&#,)! -3 f4 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f4 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f4 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f4 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,4|$#,)! -3 f1 (989|0@5@7&#,5|$#,4|$#,)! -3 f0 (989|@5|0@5@6@2@0#,)! -3 f19 (989|@5|0@5@6@2@0#,)! -3 f23 (989|@5|0@5@6@2@0#,)! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! -3 f0 (989|0@5@9&#,989|0@5@7&#,)! -3 f2 (989|0@5@9&#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,4|$#,)! -3 f2 (989|0@5@7&#,4|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,23|$#,)! -3 f2 (989|0@5@7&#,23|$#,)! -3 f0 (989|0@5@7&#,23|$#,)! -3 f2 (989|0@5@7&#,23|$#,)! -3 f0 (989|0@5@7&#,23|$#,)! -3 f2 (989|0@5@7&#,23|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f5 (989|0@5@7&#,989|0@5@7&#,)! -1 t989|989& -3 f0 (1194|$#,1194|$#,)! -3 f5 (1194|$#,1194|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|@5|0@5@7&#,5|$#,)! -3 f989 (989|@5|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,23|$#,)! -3 f1 (989|0@5@7&#,23|$#,)! -3 f0 (989|0@5@7&#,312|$#,5|$#,)! -3 f989 (989|0@5@7&#,312|$#,5|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@2&#,989|0@5@2&#,)! -3 f2 (989|0@5@2&#,989|0@5@2&#,)! +0 s2373|& +0 s2374|& +3 f0 (1117|0@5@7&#,1117|0@5@7&#,5|$#,2|$#,2|$#,)! +3 f1247 (1117|0@5@7&#,1117|0@5@7&#,5|$#,2|$#,2|$#,)! +3 f0 (1117|0@5@9&#,23|$#,23|$#,)! +3 f1 (1117|0@5@9&#,23|$#,23|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f4 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f4 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f4 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f4 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,4|$#,)! +3 f1 (1117|0@5@7&#,5|$#,4|$#,)! +3 f0 (1117|@5|0@5@6@2@0#,)! +3 f19 (1117|@5|0@5@6@2@0#,)! +3 f23 (1117|@5|0@5@6@2@0#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! +3 f0 (1117|0@5@9&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@9&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,4|$#,)! +3 f2 (1117|0@5@7&#,4|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,23|$#,)! +3 f2 (1117|0@5@7&#,23|$#,)! +3 f0 (1117|0@5@7&#,23|$#,)! +3 f2 (1117|0@5@7&#,23|$#,)! +3 f0 (1117|0@5@7&#,23|$#,)! +3 f2 (1117|0@5@7&#,23|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,1117|0@5@7&#,)! +1 t1117|1117& +3 f0 (1287|$#,1287|$#,)! +3 f5 (1287|$#,1287|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|@5|0@5@7&#,5|$#,)! +3 f1117 (1117|@5|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,23|$#,)! +3 f1 (1117|0@5@7&#,23|$#,)! +3 f0 (1117|0@5@7&#,313|$#,5|$#,)! +3 f1117 (1117|0@5@7&#,313|$#,5|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,1117|0@5@2&#,)! +3 f2 (1117|0@5@2&#,1117|0@5@2&#,)! 3 f0 (23|@5|0@5@6@2@0#,)! -3 f989 (23|@5|0@5@6@2@0#,)! +3 f1117 (23|@5|0@5@6@2@0#,)! 3 f0 (23|0@5@2&#,)! -3 f989 (23|0@5@2&#,)! +3 f1117 (23|0@5@2&#,)! 3 f0 (23|0@5@7&#,)! -3 f989 (23|0@5@7&#,)! -3 f0 (989|@5|0@5@2@2@0#,)! -3 f19 (989|@5|0@5@2@2@0#,)! -3 f23 (989|@5|0@5@2@2@0#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! +3 f1117 (23|0@5@7&#,)! +3 f0 (1117|@5|0@5@2@2@0#,)! +3 f19 (1117|@5|0@5@2@2@0#,)! +3 f23 (1117|@5|0@5@2@2@0#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 (23|$#,)! -3 f989 (23|$#,)! +3 f1117 (23|$#,)! 3 f0 (23|$#,)! -3 f989 (23|$#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@2&#,)! -3 f989 (989|0@5@2&#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f989 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@2&#,989|0@5@2&#,)! -3 f989 (989|0@5@2&#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,989|0@5@7&#,)! -3 f989 (989|0@5@2&#,989|0@5@7&#,)! -3 f0 (989|0@5@2&#,23|$#,)! -3 f989 (989|0@5@2&#,23|$#,)! -3 f0 (989|0@5@2&#,)! -3 f942 (989|0@5@2&#,)! -3 f0 (989|0@5@17&#,)! -3 f1 (989|0@5@17&#,)! -3 f0 (989|0@5@7&#,4|$#,)! -3 f989 (989|0@5@7&#,4|$#,)! -3 f1 (989|@7|6@5@7&#,4|@3|&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,5|$#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,5|$#,)! -3 f0 (989|0@5@9&#,23|$#,)! -3 f2 (989|0@5@9&#,23|$#,)! +3 f1117 (23|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1117 (1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,1117|0@5@2&#,)! +3 f1117 (1117|0@5@2&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@2&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,23|$#,)! +3 f1117 (1117|0@5@2&#,23|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f961 (1117|0@5@2&#,)! +3 f0 (1117|0@5@17&#,)! +3 f1 (1117|0@5@17&#,)! +3 f0 (1117|0@5@7&#,4|$#,)! +3 f1117 (1117|0@5@7&#,4|$#,)! +3 f1 (1117|@7|6@5@7&#,4|@3|&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,5|$#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,5|$#,)! +3 f0 (1117|0@5@9&#,23|$#,)! +3 f2 (1117|0@5@9&#,23|$#,)! +3 f0 (1117|0@5@9&#,23|$#,)! +3 f5 (1117|0@5@9&#,23|$#,)! 3 f0 (2|$#,)! -3 f989 (2|$#,)! +3 f1117 (2|$#,)! 3 f0 (2|$#,)! -3 f989 (2|$#,)! +3 f1117 (2|$#,)! 3 f0 (2|$#,)! 3 f2 (2|$#,)! 3 f0 (2|$#,2|$#,)! @@ -1298,186 +1393,188 @@ 3 f20 (63|@7|$#,)! 3 f0 (20|0@5@17&#,)! 3 f1 (20|0@5@17&#,)! -0 s48|-1 9859 -1 +0 s2458|-1 12100 -1 3 e!5{NO,YES,MAYBE}! -0 s6989|& -0 s93|& -3 f0 (1299|@7|$#,)! -3 f989 (1299|@7|$#,)! -3 f0 (1299|@7|$#,)! -3 f989 (1299|@7|$#,)! -3 f0 (1299|$#,)! -3 f2 (1299|$#,)! -3 f0 (1299|$#,)! -3 f2 (1299|$#,)! +0 s2463|& +0 s2464|& +3 f0 (1394|@7|$#,)! +3 f1117 (1394|@7|$#,)! +3 f0 (1394|@7|$#,)! +3 f1117 (1394|@7|$#,)! +3 f0 (1394|$#,)! +3 f2 (1394|$#,)! +3 f0 (1394|$#,)! +3 f2 (1394|$#,)! 3 f0 (2|$#,)! -3 f1299 (2|$#,)! -3 f0 (1299|$#,)! -3 f2 (1299|$#,)! -3 f0 (1299|$#,)! -3 f2 (1299|$#,)! -3 f0 (1299|$#,)! -3 f2 (1299|$#,)! -3 f0 (1299|$#,1299|$#,)! -3 f5 (1299|$#,1299|$#,)! +3 f1394 (2|$#,)! +3 f0 (1394|$#,)! +3 f2 (1394|$#,)! +3 f0 (1394|$#,)! +3 f2 (1394|$#,)! +3 f0 (1394|$#,)! +3 f2 (1394|$#,)! +3 f0 (1394|$#,1394|$#,)! +3 f5 (1394|$#,1394|$#,)! 3 f0 (4|$#,)! -3 f1299 (4|$#,)! +3 f1394 (4|$#,)! 3 f0 (23|0@0@6&#,!.,)! -3 f989 (23|0@0@6&#,!.,)! -0 a7|-1 18338 -1 -3 f0 (1322|$#,)! -3 f2 (1322|$#,)! -3 f0 (1322|$#,)! -3 f2 (1322|$#,)! -3 f0 (1322|$#,1322|$#,)! -3 f2 (1322|$#,1322|$#,)! -3 f0 (1322|@7|$#,1322|@7|$#,)! -3 f5 (1322|@7|$#,1322|@7|$#,)! +3 f1117 (23|0@0@6&#,!.,)! +0 a2468|-1 20484 -1 +3 f0 (1417|$#,)! +3 f2 (1417|$#,)! +3 f0 (1417|$#,)! +3 f2 (1417|$#,)! +3 f0 (1417|$#,1417|$#,)! +3 f2 (1417|$#,1417|$#,)! +3 f0 (1417|@7|$#,1417|@7|$#,)! +3 f5 (1417|@7|$#,1417|@7|$#,)! 3 e!6{FL_NORMAL,FL_SPEC,FL_LIB,FL_STDLIB,FL_STDHDR,FL_IMPORT,FL_BUILTIN,FL_PREPROC,FL_RC,FL_EXTERNAL}! -0 s6990|& -0 s94|& -3 S__fileloc{1333|@1|^#kind,1322|@1|^#fid,5|@1|^#lineno,5|@1|^#column,}! -0 s79|-1 3902 -1 -3 f0 (978|0@5@2&#,978|0@5@7&#,)! -3 f978 (978|0@5@2&#,978|0@5@7&#,)! -3 f0 (1322|$#,5|$#,5|$#,)! -3 f978 (1322|$#,5|$#,5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (1322|$#,5|$#,5|$#,)! -3 f978 (1322|$#,5|$#,5|$#,)! -3 f0 (989|0@5@7&#,)! -3 f978 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f978 (989|0@5@7&#,)! -3 f0 (978|0@5@7&#,5|$#,)! -3 f978 (978|0@5@7&#,5|$#,)! -3 f0 (978|0@5@7&#,5|$#,)! -3 f1 (978|0@5@7&#,5|$#,)! -3 f0 ()! -3 f978 ()! -3 f0 ()! -3 f978 ()! -3 f0 ()! -3 f978 ()! -3 f0 (989|0@5@7&#,5|$#,)! -3 f978 (989|0@5@7&#,5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f5 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,5|$#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@2&#,)! -3 f1 (978|0@5@2&#,)! -3 f0 (978|0@5@2&#,)! -3 f1 (978|0@5@2&#,)! -3 f0 (978|0@5@7&#,)! -3 f5 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f5 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 ()! -3 f978 ()! -3 f0 ()! -3 f978 ()! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f978 (948|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f1 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,5|$#,)! -3 f1 (978|@7|0@5@7&#,5|$#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f1 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,5|$#,)! -3 f1 (978|@7|0@5@7&#,5|$#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f1322 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,5|$#,)! -3 f1 (978|@7|0@5@7&#,5|$#,)! -3 f0 (978|@7|0@5@7&#,5|$#,)! -3 f1 (978|@7|0@5@7&#,5|$#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f1 (978|@7|0@5@7&#,)! -3 f0 (978|@7|0@5@7&#,)! -3 f2 (978|@7|0@5@7&#,)! -3 f0 (978|0@5@2&#,1322|$#,)! -3 f978 (978|0@5@2&#,1322|$#,)! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,5|$#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1322 ()! +0 s2480|& +0 s2481|& +3 Ss_fileloc{1428|@1|^#kind,1417|@1|^#fid,5|@1|^#lineno,5|@1|^#column,}! +0 s2482|-1 4287 -1 +3 f0 (1003|0@5@2&#,1003|0@5@7&#,)! +3 f1003 (1003|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1417|$#,5|$#,5|$#,)! +3 f1003 (1417|$#,5|$#,5|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1417|$#,5|$#,5|$#,)! +3 f1003 (1417|$#,5|$#,5|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1003 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1003 (1117|0@5@7&#,)! +3 f0 (1003|0@5@7&#,5|$#,)! +3 f1003 (1003|0@5@7&#,5|$#,)! +3 f0 (1003|0@5@7&#,5|$#,)! +3 f1 (1003|0@5@7&#,5|$#,)! +3 f0 ()! +3 f1003 ()! +3 f0 ()! +3 f1003 ()! +3 f0 ()! +3 f1003 ()! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1003 (1117|0@5@7&#,5|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f5 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,5|$#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@2&#,)! +3 f1 (1003|0@5@2&#,)! +3 f0 (1003|0@5@2&#,)! +3 f1 (1003|0@5@2&#,)! +3 f0 (1003|0@5@7&#,)! +3 f5 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f5 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 ()! +3 f1003 ()! +3 f0 ()! +3 f1003 ()! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1003 (967|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f1 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,5|$#,)! +3 f1 (1003|@7|0@5@7&#,5|$#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f1 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,5|$#,)! +3 f1 (1003|@7|0@5@7&#,5|$#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f1417 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,5|$#,)! +3 f1 (1003|@7|0@5@7&#,5|$#,)! +3 f0 (1003|@7|0@5@7&#,5|$#,)! +3 f1 (1003|@7|0@5@7&#,5|$#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f1 (1003|@7|0@5@7&#,)! +3 f0 (1003|@7|0@5@7&#,)! +3 f2 (1003|@7|0@5@7&#,)! +3 f0 (1003|0@5@2&#,1417|$#,)! +3 f1003 (1003|0@5@2&#,1417|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,5|$#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,5|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1417 ()! 3 f0 ()! 3 f5 ()! 3 f0 ()! @@ -1496,601 +1593,835 @@ 3 f1 (5|$#,)! 3 f0 (5|$#,)! 3 f1 (5|$#,)! -3 f0 (1322|$#,)! -3 f1 (1322|$#,)! -3 f0 (1322|$#,5|$#,)! -3 f1 (1322|$#,5|$#,)! -3 e_quals{QU_UNKNOWN,QU_CONST,QU_VOLATILE,QU_INLINE,QU_EXTERN,QU_STATIC,QU_AUTO,QU_REGISTER,QU_SHORT,QU_LONG,QU_SIGNED,QU_UNSIGNED,QU_OUT,QU_IN,QU_ONLY,QU_IMPONLY,QU_TEMP,QU_SHARED,QU_KEEP,QU_KEPT,QU_PARTIAL,QU_SPECIAL,QU_NULL,QU_RELNULL,QU_NULLTERMINATED,QU_SETBUFFERSIZE,QU_EXPOSED,QU_RETURNED,QU_OBSERVER,QU_UNIQUE,QU_OWNED,QU_DEPENDENT,QU_RELDEF,QU_YIELD,QU_NEVEREXIT,QU_EXITS,QU_MAYEXIT,QU_TRUEEXIT,QU_FALSEEXIT,QU_UNUSED,QU_EXTERNAL,QU_SEF,QU_NOTNULL,QU_ABSTRACT,QU_CONCRETE,QU_MUTABLE,QU_IMMUTABLE,QU_REFCOUNTED,QU_REFS,QU_NEWREF,QU_KILLREF,QU_TEMPREF,QU_TRUENULL,QU_FALSENULL,QU_CHECKED,QU_UNCHECKED,QU_CHECKEDSTRICT,QU_CHECKMOD,QU_UNDEF,QU_KILLED,QU_PRINTFLIKE,QU_SCANFLIKE,QU_MESSAGELIKE,QU_LAST}! -0 s6991|& -0 s95|-1 2152 -1 -3 f0 (5|$#,)! -3 f1500 (5|$#,)! -3 f0 (1500|$#,)! -3 f989 (1500|$#,)! -3 f0 (1500|$#,1500|$#,)! -3 f2 (1500|$#,1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! -3 f0 (1500|$#,)! -3 f2 (1500|$#,)! +3 f0 (1417|$#,)! +3 f1 (1417|$#,)! +3 f0 (1417|$#,5|$#,)! +3 f1 (1417|$#,5|$#,)! +3 e!7{SKIP_FLAG,INVALID_FLAG,FLG_LIKELYBOOL,FLG_IMPABSTRACT,FLG_ACCESSALL,FLG_ACCESSMODULE,FLG_ACCESSFILE,FLG_ACCESSCZECH,FLG_ACCESSSLOVAK,FLG_ACCESSCZECHOSLOVAK,FLG_ABSTRACT,FLG_MUTREP,FLG_GLOBALIAS,FLG_CHECKSTRICTGLOBALIAS,FLG_CHECKEDGLOBALIAS,FLG_CHECKMODGLOBALIAS,FLG_UNCHECKEDGLOBALIAS,FLG_ALIASUNIQUE,FLG_MAYALIASUNIQUE,FLG_MUSTNOTALIAS,FLG_RETALIAS,FLG_NOPARAMS,FLG_OLDSTYLE,FLG_GNUEXTENSIONS,FLG_USEVARARGS,FLG_WARNPOSIX,FLG_EXITARG,FLG_EVALORDER,FLG_EVALORDERUNCON,FLG_BOOLFALSE,FLG_BOOLTYPE,FLG_BOOLTRUE,FLG_NOACCESS,FLG_NOCOMMENTS,FLG_UNRECOGCOMMENTS,FLG_CONTINUECOMMENT,FLG_NESTCOMMENT,FLG_TMPCOMMENTS,FLG_LINTCOMMENTS,FLG_WARNLINTCOMMENTS,FLG_DECLUNDEF,FLG_SPECUNDEF,FLG_SPECUNDECL,FLG_LOOPEXEC,FLG_CONTROL,FLG_INFLOOPS,FLG_INFLOOPSUNCON,FLG_DEEPBREAK,FLG_LOOPLOOPBREAK,FLG_SWITCHLOOPBREAK,FLG_LOOPSWITCHBREAK,FLG_SWITCHSWITCHBREAK,FLG_LOOPLOOPCONTINUE,FLG_UNREACHABLE,FLG_WHILEEMPTY,FLG_WHILEBLOCK,FLG_FOREMPTY,FLG_FORBLOCK,FLG_IFEMPTY,FLG_IFBLOCK,FLG_ALLEMPTY,FLG_ALLBLOCK,FLG_ELSEIFCOMPLETE,FLG_NORETURN,FLG_CASEBREAK,FLG_MISSCASE,FLG_FIRSTCASE,FLG_GRAMMAR,FLG_NOPP,FLG_SHADOW,FLG_INCONDEFSLIB,FLG_WARNOVERLOAD,FLG_NESTEDEXTERN,FLG_REDECL,FLG_REDEF,FLG_INCONDEFS,FLG_IMPTYPE,FLG_MATCHFIELDS,FLG_USEDEF,FLG_IMPOUTS,FLG_TMPDIR,FLG_LARCHPATH,FLG_LCLIMPORTDIR,FLG_SYSTEMDIRS,FLG_SKIPANSIHEADERS,FLG_SKIPPOSIXHEADERS,FLG_SYSTEMDIRERRORS,FLG_SYSTEMDIREXPAND,FLG_INCLUDEPATH,FLG_SPECPATH,FLG_QUIET,FLG_USESTDERR,FLG_SHOWSUMMARY,FLG_SHOWSCAN,FLG_STATS,FLG_TIMEDIST,FLG_SHOWUSES,FLG_NOEFFECT,FLG_NOEFFECTUNCON,FLG_EXPORTANY,FLG_EXPORTFCN,FLG_EXPORTMACRO,FLG_EXPORTTYPE,FLG_EXPORTVAR,FLG_EXPORTCONST,FLG_EXPORTITER,FLG_REPEXPOSE,FLG_RETEXPOSE,FLG_ASSIGNEXPOSE,FLG_CASTEXPOSE,FLG_LINELEN,FLG_INDENTSPACES,FLG_SHOWCOL,FLG_PARENFILEFORMAT,FLG_SHOWFUNC,FLG_SHOWALLCONJS,FLG_IMPCONJ,FLG_EXPECT,FLG_LCLEXPECT,FLG_PARTIAL,FLG_GLOBALS,FLG_USEALLGLOBS,FLG_INTERNALGLOBS,FLG_INTERNALGLOBSNOGLOBS,FLG_WARNMISSINGGLOBALS,FLG_WARNMISSINGGLOBALSNOGLOBS,FLG_GLOBUNSPEC,FLG_ALLGLOBALS,FLG_CHECKSTRICTGLOBALS,FLG_IMPCHECKEDSPECGLOBALS,FLG_IMPCHECKMODSPECGLOBALS,FLG_IMPCHECKEDSTRICTSPECGLOBALS,FLG_IMPCHECKEDGLOBALS,FLG_IMPCHECKMODGLOBALS,FLG_IMPCHECKEDSTRICTGLOBALS,FLG_IMPCHECKEDSTATICS,FLG_IMPCHECKMODSTATICS,FLG_IMPCHECKMODINTERNALS,FLG_IMPCHECKEDSTRICTSTATICS,FLG_MODGLOBS,FLG_MODGLOBSUNSPEC,FLG_MODSTRICTGLOBSUNSPEC,FLG_MODGLOBSUNCHECKED,FLG_KEEP,FLG_DOLH,FLG_DOLCS,FLG_SINGLEINCLUDE,FLG_NEVERINCLUDE,FLG_SKIPSYSHEADERS,FLG_WARNFLAGS,FLG_WARNUNIXLIB,FLG_BADFLAG,FLG_FORCEHINTS,FLG_HELP,FLG_HINTS,FLG_RETVAL,FLG_RETVALOTHER,FLG_RETVALBOOL,FLG_RETVALINT,FLG_OPTF,FLG_INIT,FLG_NOF,FLG_NEEDSPEC,FLG_NEWDECL,FLG_ITER,FLG_HASYIELD,FLG_DUMP,FLG_MERGE,FLG_NOLIB,FLG_ANSILIB,FLG_STRICTLIB,FLG_UNIXLIB,FLG_UNIXSTRICTLIB,FLG_POSIXLIB,FLG_POSIXSTRICTLIB,FLG_WHICHLIB,FLG_MTSFILE,FLG_COMMENTCHAR,FLG_ALLMACROS,FLG_LIBMACROS,FLG_SPECMACROS,FLG_FCNMACROS,FLG_CONSTMACROS,FLG_MACROMATCHNAME,FLG_MACRONEXTLINE,FLG_MACROSTMT,FLG_MACROEMPTY,FLG_MACROPARAMS,FLG_MACROASSIGN,FLG_SEFPARAMS,FLG_SEFUNSPEC,FLG_MACROPARENS,FLG_MACRODECL,FLG_MACROFCNDECL,FLG_MACROCONSTDECL,FLG_MACROREDEF,FLG_MACROUNDEF,FLG_RETSTACK,FLG_USERELEASED,FLG_STRICTUSERELEASED,FLG_COMPDEF,FLG_COMPMEMPASS,FLG_MUSTDEFINE,FLG_UNIONDEF,FLG_MEMIMPLICIT,FLG_PARAMIMPTEMP,FLG_ALLIMPONLY,FLG_CODEIMPONLY,FLG_SPECALLIMPONLY,FLG_GLOBIMPONLY,FLG_RETIMPONLY,FLG_STRUCTIMPONLY,FLG_SPECGLOBIMPONLY,FLG_SPECRETIMPONLY,FLG_SPECSTRUCTIMPONLY,FLG_DEPARRAYS,FLG_COMPDESTROY,FLG_STRICTDESTROY,FLG_MUSTFREE,FLG_BRANCHSTATE,FLG_STRICTBRANCHSTATE,FLG_MEMCHECKS,FLG_MEMTRANS,FLG_EXPOSETRANS,FLG_OBSERVERTRANS,FLG_DEPENDENTTRANS,FLG_NEWREFTRANS,FLG_ONLYTRANS,FLG_ONLYUNQGLOBALTRANS,FLG_OWNEDTRANS,FLG_FRESHTRANS,FLG_SHAREDTRANS,FLG_TEMPTRANS,FLG_KEPTTRANS,FLG_KEEPTRANS,FLG_IMMEDIATETRANS,FLG_REFCOUNTTRANS,FLG_STATICTRANS,FLG_UNKNOWNTRANS,FLG_STATICINITTRANS,FLG_UNKNOWNINITTRANS,FLG_READONLYSTRINGS,FLG_READONLYTRANS,FLG_PASSUNKNOWN,FLG_MODIFIES,FLG_MUSTMOD,FLG_MODOBSERVER,FLG_MODOBSERVERUNCON,FLG_MODINTERNALSTRICT,FLG_MODFILESYSTEM,FLG_MODUNSPEC,FLG_MODNOMODS,FLG_MODUNCON,FLG_MODUNCONNOMODS,FLG_GLOBALSIMPMODIFIESNOTHING,FLG_MODIFIESIMPNOGLOBALS,FLG_NAMECHECKS,FLG_CZECH,FLG_CZECHFUNCTIONS,FLG_CZECHVARS,FLG_CZECHMACROS,FLG_CZECHCONSTANTS,FLG_CZECHTYPES,FLG_SLOVAK,FLG_SLOVAKFUNCTIONS,FLG_SLOVAKMACROS,FLG_SLOVAKVARS,FLG_SLOVAKCONSTANTS,FLG_SLOVAKTYPES,FLG_CZECHOSLOVAK,FLG_CZECHOSLOVAKFUNCTIONS,FLG_CZECHOSLOVAKMACROS,FLG_CZECHOSLOVAKVARS,FLG_CZECHOSLOVAKCONSTANTS,FLG_CZECHOSLOVAKTYPES,FLG_ANSIRESERVED,FLG_CPPNAMES,FLG_ANSIRESERVEDLOCAL,FLG_DISTINCTEXTERNALNAMES,FLG_EXTERNALNAMELEN,FLG_EXTERNALNAMECASEINSENSITIVE,FLG_DISTINCTINTERNALNAMES,FLG_INTERNALNAMELEN,FLG_INTERNALNAMECASEINSENSITIVE,FLG_INTERNALNAMELOOKALIKE,FLG_MACROVARPREFIX,FLG_MACROVARPREFIXEXCLUDE,FLG_TAGPREFIX,FLG_TAGPREFIXEXCLUDE,FLG_ENUMPREFIX,FLG_ENUMPREFIXEXCLUDE,FLG_FILESTATICPREFIX,FLG_FILESTATICPREFIXEXCLUDE,FLG_GLOBPREFIX,FLG_GLOBPREFIXEXCLUDE,FLG_TYPEPREFIX,FLG_TYPEPREFIXEXCLUDE,FLG_EXTERNALPREFIX,FLG_EXTERNALPREFIXEXCLUDE,FLG_LOCALPREFIX,FLG_LOCALPREFIXEXCLUDE,FLG_UNCHECKEDMACROPREFIX,FLG_UNCHECKEDMACROPREFIXEXCLUDE,FLG_CONSTPREFIX,FLG_CONSTPREFIXEXCLUDE,FLG_ITERPREFIX,FLG_ITERPREFIXEXCLUDE,FLG_DECLPARAMPREFIX,FLG_DECLPARAMNAME,FLG_DECLPARAMMATCH,FLG_DECLPARAMPREFIXEXCLUDE,FLG_CONTROLNESTDEPTH,FLG_STRINGLITERALLEN,FLG_NUMSTRUCTFIELDS,FLG_NUMENUMMEMBERS,FLG_INCLUDENEST,FLG_ANSILIMITS,FLG_NAME,FLG_SPECIAL,FLG_NULL,FLG_NULLTERMINATED,FLG_ARRAYREAD,FLG_ARRAYWRITE,FLG_FUNCTIONPOST,FLG_FUNCTIONCONSTRAINT,FLG_CHECKPOST,FLG_CONSTRAINTLOCATION,FLG_IMPLICTCONSTRAINT,FLG_ORCONSTRAINT,FLG_NULLTERMINATEDWARNING,FLG_NULLDEREF,FLG_FCNDEREF,FLG_NULLPASS,FLG_NULLRET,FLG_NULLSTATE,FLG_NULLASSIGN,FLG_BOOLCOMPARE,FLG_REALCOMPARE,FLG_POINTERARITH,FLG_NULLPOINTERARITH,FLG_PTRNUMCOMPARE,FLG_STRICTOPS,FLG_BITWISEOPS,FLG_SHIFTSIGNED,FLG_BOOLOPS,FLG_PTRNEGATE,FLG_SIZEOFTYPE,FLG_SIZEOFFORMALARRAY,FLG_FIXEDFORMALARRAY,FLG_INCOMPLETETYPE,FLG_FORMALARRAY,FLG_PREDASSIGN,FLG_PREDBOOL,FLG_PREDBOOLINT,FLG_PREDBOOLOTHERS,FLG_PREDBOOLPTR,FLG_DEFINE,FLG_UNDEFINE,FLG_GLOBSTATE,FLG_SUPCOUNTS,FLG_LIMIT,FLG_SYNTAX,FLG_TRYTORECOVER,FLG_PREPROC,FLG_TYPE,FLG_FULLINITBLOCK,FLG_ENUMMEMBERS,FLG_MAINTYPE,FLG_FORMATTYPE,FLG_FORMATCONST,FLG_FORMATCODE,FLG_FORWARDDECL,FLG_ABSTVOIDP,FLG_CASTFCNPTR,FLG_CHARINDEX,FLG_ENUMINDEX,FLG_BOOLINT,FLG_CHARINT,FLG_ENUMINT,FLG_FLOATDOUBLE,FLG_IGNOREQUALS,FLG_DUPLICATEQUALS,FLG_IGNORESIGNS,FLG_NUMLITERAL,FLG_CHARINTLITERAL,FLG_RELAXQUALS,FLG_RELAXTYPES,FLG_CHARUNSIGNEDCHAR,FLG_MATCHANYINTEGRAL,FLG_LONGUNSIGNEDINTEGRAL,FLG_LONGINTEGRAL,FLG_LONGUNSIGNEDUNSIGNEDINTEGRAL,FLG_LONGSIGNEDINTEGRAL,FLG_ZEROPTR,FLG_ZEROBOOL,FLG_REPEATUNRECOG,FLG_SYSTEMUNRECOG,FLG_UNRECOG,FLG_TOPUNUSED,FLG_EXPORTLOCAL,FLG_EXPORTHEADER,FLG_EXPORTHEADERVAR,FLG_FIELDUNUSED,FLG_ENUMMEMUNUSED,FLG_CONSTUNUSED,FLG_FUNCUNUSED,FLG_PARAMUNUSED,FLG_TYPEUNUSED,FLG_VARUNUSED,FLG_UNUSEDSPECIAL,FLG_REDUNDANTSHAREQUAL,FLG_MISPLACEDSHAREQUAL,FLG_ANNOTATIONERROR,FLG_COMMENTERROR,FLG_SHOWSOURCELOC,FLG_BUGSLIMIT,FLG_FILEEXTENSIONS,FLG_WARNUSE,FLG_STATETRANSFER,FLG_STATEMERGE,FLG_ITS4MOSTRISKY,FLG_ITS4VERYRISKY,FLG_ITS4RISKY,FLG_ITS4MODERATERISK,FLG_ITS4LOWRISK,FLG_BUFFEROVERFLOWHIGH,FLG_BUFFEROVERFLOW,FLG_TOCTOU,LAST_FLAG}! +0 s2980|& +0 s2981|-1 -1 13101 +3 f1 (1597|@3|&#,)! +3 e!8{FK_ABSTRACT,FK_ANSI,FK_BEHAVIOR,FK_COMMENTS,FK_COMPLETE,FK_CONTROL,FK_DEBUG,FK_DECL,FK_DEF,FK_DIRECT,FK_DISPLAY,FK_EFFECT,FK_EXPORT,FK_EXPOSURE,FK_FORMAT,FK_GLOBAL,FK_GLOBALS,FK_HEADERS,FK_HELP,FK_IGNORERET,FK_INIT,FK_ITER,FK_LIBS,FK_LIMITS,FK_MACROS,FK_MEMORY,FK_MODIFIES,FK_NAMES,FK_NONE,FK_NULL,FK_NT,FK_OPS,FK_PRED,FK_PREPROC,FK_SECRET,FK_SUPPRESS,FK_SYNTAX,FK_TYPE,FK_TYPEEQ,FK_NUMBERS,FK_POINTER,FK_UNRECOG,FK_USE,FK_BOOL,FK_ALIAS,FK_PROTOS,FK_SPEC,FK_IMPLICIT,FK_FILES,FK_ERRORS,FK_UNSPEC,FK_SPEED,FK_PARAMS,FK_DEAD,FK_SECURITY,FK_LEAK,FK_ARRAY,FK_OBSOLETE,FK_PREFIX,FK_WARNUSE}! +0 s3047|& +0 s3048|& 3 f0 ()! -3 f1500 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (2|$#,2|$#,)! +3 f1 (2|$#,2|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1597 (1117|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@7&#,)! +3 f1 (1597|$#,1117|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1601 (1117|0@5@7&#,)! +3 f0 (1601|$#,)! +3 f1 (1601|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|@7|$#,)! +3 f2 (1597|@7|$#,)! +3 f0 (1597|@7|$#,)! +3 f2 (1597|@7|$#,)! +3 f0 (1597|@7|$#,)! +3 f2 (1597|@7|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 S!9{1117|@1|0@5@3&#name,1597|@1|^#code,}^1674 +0 s3079|& +1 t1672|1672& +0 s3080|& +0 s3081|-1 1677 -1 +1 t1676|1676& +0 a3082|& +3 Ss_flagSpec{1675|@1|0@0@3&#tspec,1678|@1|0@5@2&#trest,}! +3 f0 (1678|0@5@7&#,)! +3 f2 (1678|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1678 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1678|0@5@2&#,)! +3 f1678 (1117|0@5@2&#,1678|0@5@2&#,)! +3 f0 (1678|0@5@7&#,)! +3 f1117 (1678|0@5@7&#,)! +3 f0 (1678|0@5@2&#,)! +3 f1 (1678|0@5@2&#,)! +3 f0 (1678|0@5@7&#,)! +3 f1117 (1678|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1678 (313|$#,)! +3 f0 (1678|0@5@7&#,)! +3 f1597 (1678|0@5@7&#,)! +3 f0 (1678|0@5@7&#,1003|0@5@7&#,)! +3 f1597 (1678|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1678|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1678|0@5@7&#,1003|0@5@7&#,)! +3 e!10{QU_UNKNOWN,QU_CONST,QU_VOLATILE,QU_INLINE,QU_EXTERN,QU_STATIC,QU_AUTO,QU_REGISTER,QU_SHORT,QU_LONG,QU_SIGNED,QU_UNSIGNED,QU_OUT,QU_IN,QU_ONLY,QU_IMPONLY,QU_TEMP,QU_SHARED,QU_KEEP,QU_KEPT,QU_PARTIAL,QU_SPECIAL,QU_NULL,QU_RELNULL,QU_ISNULL,QU_NULLTERMINATED,QU_SETBUFFERSIZE,QU_EXPOSED,QU_RETURNED,QU_OBSERVER,QU_UNIQUE,QU_OWNED,QU_DEPENDENT,QU_RELDEF,QU_YIELD,QU_NEVEREXIT,QU_EXITS,QU_MAYEXIT,QU_TRUEEXIT,QU_FALSEEXIT,QU_UNUSED,QU_EXTERNAL,QU_SEF,QU_NOTNULL,QU_ABSTRACT,QU_CONCRETE,QU_MUTABLE,QU_IMMUTABLE,QU_REFCOUNTED,QU_REFS,QU_NEWREF,QU_KILLREF,QU_TEMPREF,QU_TRUENULL,QU_FALSENULL,QU_CHECKED,QU_UNCHECKED,QU_CHECKEDSTRICT,QU_CHECKMOD,QU_UNDEF,QU_KILLED,QU_PRINTFLIKE,QU_SCANFLIKE,QU_MESSAGELIKE,QU_USERANNOT,QU_LAST}! +0 s3159|& +0 s3160|& +3 S!11{1702|@1|^#kind,1012|@1|0@5@18@3@0#info,}^1705 +0 s3161|& +1 t1703|1703& +0 a3162|-1 2507 -1 +3 f0 (1706|$#,)! +3 f1117 (1706|$#,)! +3 f0 (313|$#,)! +3 f1706 (313|$#,)! +3 f0 (5|$#,)! +3 f1706 (5|$#,)! +3 f0 (1706|$#,)! +3 f1117 (1706|$#,)! +3 f0 (1706|$#,1706|$#,)! +3 f2 (1706|$#,1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|$#,)! +3 f2 (1706|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|$#,)! +3 f1012 (1706|$#,)! +3 f0 (1702|$#,)! +3 f1706 (1702|$#,)! +3 f0 (1012|0@5@7&#,)! +3 f1706 (1012|0@5@7&#,)! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! +3 f1706 ()! 3 f0 ()! -3 f1500 ()! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 f0 (1500|@7|$#,)! -3 f2 (1500|@7|$#,)! -3 S_lltok{5|@1|^#tok,978|@1|0@5@3&#loc,}! -0 s6798|& -0 s96|-1 6838 -1 -3 f0 (5|$#,978|0@5@2&#,)! -3 f1779 (5|$#,978|0@5@2&#,)! -3 f0 (1779|$#,)! -3 f989 (1779|$#,)! -3 f0 (1779|15@0@1&#,)! -3 f1 (1779|15@0@1&#,)! -3 f0 (1779|$#,)! -3 f978 (1779|$#,)! -3 f0 (1779|$#,)! -3 f5 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 e!7{NOCLAUSE,TRUECLAUSE,FALSECLAUSE,ANDCLAUSE,ORCLAUSE,WHILECLAUSE,DOWHILECLAUSE,FORCLAUSE,CASECLAUSE,SWITCHCLAUSE,CONDCLAUSE,ITERCLAUSE,TRUEEXITCLAUSE,FALSEEXITCLAUSE}! -0 s6992|& -0 s97|-1 7546 -1 -3 f0 (1826|$#,)! -3 f989 (1826|$#,)! -3 f0 (1826|$#,)! -3 f989 (1826|$#,)! -3 f0 (1826|$#,2|$#,)! -3 f989 (1826|$#,2|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f989 (1826|$#,)! -0 s86|-1 1848 -1 -1 t1847|1847& -3 S_cstringSList{5|@1|^#nelements,5|@1|^#nspace,1848|@1|11@3@3&#elements,}! -0 s6841|-1 1851 -1 -1 t1850|1850& -0 a98|-1 18019 -1 -3 f0 (1852|0@5@7&#,)! -3 f2 (1852|0@5@7&#,)! -3 f0 (1852|@7|0@5@7&#,)! -3 f5 (1852|@7|0@5@7&#,)! -3 f0 (1852|@7|0@5@7&#,)! -3 f2 (1852|@7|0@5@7&#,)! -3 f0 (1852|0@5@7&#,989|0@5@7&#,)! -3 f989 (1852|0@5@7&#,989|0@5@7&#,)! -3 f0 ()! -3 f1852 ()! -3 f0 (989|0@5@19@2@0#,)! -3 f1852 (989|0@5@19@2@0#,)! -3 f0 (1852|@5|0@5@7&#,989|0@5@19@2@0#,)! -3 f1852 (1852|@5|0@5@7&#,989|0@5@19@2@0#,)! -3 f0 (1852|0@5@7&#,)! -3 f1 (1852|0@5@7&#,)! -3 f0 (1852|0@5@7&#,)! -3 f989 (1852|0@5@7&#,)! -3 f0 (1852|0@5@7&#,)! -3 f989 (1852|0@5@7&#,)! -3 f0 (1852|0@5@2&#,)! -3 f1 (1852|0@5@2&#,)! -3 f0 (1852|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f1 (1852|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f1 (1852|@7|6@5@7&#,989|@3|6@5@19@2@0#,)! -1 t990|990& -3 S_cstringList{5|@1|^#nelements,5|@1|^#nspace,1878|@1|11@3@3&#elements,}! -0 s6842|-1 1881 -1 -1 t1880|1880& -0 a99|& -3 f0 (1882|0@5@7&#,)! -3 f2 (1882|0@5@7&#,)! -3 f0 (1882|@7|0@5@7&#,)! -3 f5 (1882|@7|0@5@7&#,)! -3 f0 (1882|@7|0@5@7&#,)! -3 f2 (1882|@7|0@5@7&#,)! -3 f0 (1882|0@5@7&#,989|0@5@7&#,)! -3 f989 (1882|0@5@7&#,989|0@5@7&#,)! -3 f0 ()! -3 f1882 ()! -3 f0 (989|0@5@4&#,)! -3 f1882 (989|0@5@4&#,)! -3 f0 (1882|@5|0@5@7&#,989|0@5@4&#,)! -3 f1882 (1882|@5|0@5@7&#,989|0@5@4&#,)! -3 f0 (1882|0@5@7&#,)! -3 f1 (1882|0@5@7&#,)! -3 f0 (1882|0@5@7&#,)! -3 f989 (1882|0@5@7&#,)! -3 f0 (1882|0@5@7&#,)! -3 f989 (1882|0@5@7&#,)! -3 f0 (1882|0@5@2&#,)! -3 f1 (1882|0@5@2&#,)! -3 f0 (1882|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f1 (1882|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f1 (1882|@7|6@5@7&#,989|@3|6@5@19@2@0#,)! -3 e!8{SKIP_FLAG,INVALID_FLAG,FLG_LIKELYBOOL,FLG_IMPABSTRACT,FLG_ACCESSALL,FLG_ACCESSMODULE,FLG_ACCESSFILE,FLG_ACCESSCZECH,FLG_ACCESSSLOVAK,FLG_ACCESSCZECHOSLOVAK,FLG_ABSTRACT,FLG_MUTREP,FLG_GLOBALIAS,FLG_CHECKSTRICTGLOBALIAS,FLG_CHECKEDGLOBALIAS,FLG_CHECKMODGLOBALIAS,FLG_UNCHECKEDGLOBALIAS,FLG_ALIASUNIQUE,FLG_MAYALIASUNIQUE,FLG_MUSTNOTALIAS,FLG_RETALIAS,FLG_NOPARAMS,FLG_OLDSTYLE,FLG_GNUEXTENSIONS,FLG_USEVARARGS,FLG_WARNPOSIX,FLG_EXITARG,FLG_EVALORDER,FLG_EVALORDERUNCON,FLG_BOOLFALSE,FLG_BOOLTYPE,FLG_BOOLTRUE,FLG_NOACCESS,FLG_NOCOMMENTS,FLG_UNRECOGCOMMENTS,FLG_CONTINUECOMMENT,FLG_NESTCOMMENT,FLG_TMPCOMMENTS,FLG_LINTCOMMENTS,FLG_WARNLINTCOMMENTS,FLG_DECLUNDEF,FLG_SPECUNDEF,FLG_SPECUNDECL,FLG_LOOPEXEC,FLG_CONTROL,FLG_INFLOOPS,FLG_INFLOOPSUNCON,FLG_DEEPBREAK,FLG_LOOPLOOPBREAK,FLG_SWITCHLOOPBREAK,FLG_LOOPSWITCHBREAK,FLG_SWITCHSWITCHBREAK,FLG_LOOPLOOPCONTINUE,FLG_UNREACHABLE,FLG_WHILEEMPTY,FLG_WHILEBLOCK,FLG_FOREMPTY,FLG_FORBLOCK,FLG_IFEMPTY,FLG_IFBLOCK,FLG_ALLEMPTY,FLG_ALLBLOCK,FLG_ELSEIFCOMPLETE,FLG_NORETURN,FLG_CASEBREAK,FLG_MISSCASE,FLG_FIRSTCASE,FLG_GRAMMAR,FLG_NOPP,FLG_SHADOW,FLG_INCONDEFSLIB,FLG_WARNOVERLOAD,FLG_NESTEDEXTERN,FLG_REDECL,FLG_REDEF,FLG_INCONDEFS,FLG_IMPTYPE,FLG_MATCHFIELDS,FLG_USEDEF,FLG_IMPOUTS,FLG_TMPDIR,FLG_LARCHPATH,FLG_LCLIMPORTDIR,FLG_SYSTEMDIRS,FLG_SKIPANSIHEADERS,FLG_SKIPPOSIXHEADERS,FLG_SYSTEMDIRERRORS,FLG_SYSTEMDIREXPAND,FLG_INCLUDEPATH,FLG_SPECPATH,FLG_QUIET,FLG_USESTDERR,FLG_SHOWSUMMARY,FLG_SHOWSCAN,FLG_STATS,FLG_TIMEDIST,FLG_SHOWUSES,FLG_NOEFFECT,FLG_NOEFFECTUNCON,FLG_EXPORTANY,FLG_EXPORTFCN,FLG_EXPORTMACRO,FLG_EXPORTTYPE,FLG_EXPORTVAR,FLG_EXPORTCONST,FLG_EXPORTITER,FLG_REPEXPOSE,FLG_RETEXPOSE,FLG_ASSIGNEXPOSE,FLG_CASTEXPOSE,FLG_LINELEN,FLG_SHOWCOL,FLG_PARENFILEFORMAT,FLG_SHOWFUNC,FLG_SHOWALLCONJS,FLG_IMPCONJ,FLG_EXPECT,FLG_LCLEXPECT,FLG_PARTIAL,FLG_GLOBALS,FLG_USEALLGLOBS,FLG_INTERNALGLOBS,FLG_INTERNALGLOBSNOGLOBS,FLG_WARNMISSINGGLOBALS,FLG_WARNMISSINGGLOBALSNOGLOBS,FLG_GLOBUNSPEC,FLG_ALLGLOBALS,FLG_CHECKSTRICTGLOBALS,FLG_IMPCHECKEDSPECGLOBALS,FLG_IMPCHECKMODSPECGLOBALS,FLG_IMPCHECKEDSTRICTSPECGLOBALS,FLG_IMPCHECKEDGLOBALS,FLG_IMPCHECKMODGLOBALS,FLG_IMPCHECKEDSTRICTGLOBALS,FLG_IMPCHECKEDSTATICS,FLG_IMPCHECKMODSTATICS,FLG_IMPCHECKMODINTERNALS,FLG_IMPCHECKEDSTRICTSTATICS,FLG_MODGLOBS,FLG_MODGLOBSUNSPEC,FLG_MODSTRICTGLOBSUNSPEC,FLG_MODGLOBSUNCHECKED,FLG_KEEP,FLG_DOLH,FLG_DOLCS,FLG_SINGLEINCLUDE,FLG_NEVERINCLUDE,FLG_SKIPSYSHEADERS,FLG_WARNFLAGS,FLG_WARNUNIXLIB,FLG_BADFLAG,FLG_FORCEHINTS,FLG_HELP,FLG_HINTS,FLG_RETVAL,FLG_RETVALOTHER,FLG_RETVALBOOL,FLG_RETVALINT,FLG_OPTF,FLG_INIT,FLG_NOF,FLG_NEEDSPEC,FLG_NEWDECL,FLG_ITER,FLG_HASYIELD,FLG_DUMP,FLG_MERGE,FLG_NOLIB,FLG_ANSILIB,FLG_STRICTLIB,FLG_UNIXLIB,FLG_UNIXSTRICTLIB,FLG_POSIXLIB,FLG_POSIXSTRICTLIB,FLG_WHICHLIB,FLG_COMMENTCHAR,FLG_ALLMACROS,FLG_LIBMACROS,FLG_SPECMACROS,FLG_FCNMACROS,FLG_CONSTMACROS,FLG_MACROMATCHNAME,FLG_MACRONEXTLINE,FLG_MACROSTMT,FLG_MACROEMPTY,FLG_MACROPARAMS,FLG_MACROASSIGN,FLG_SEFPARAMS,FLG_SEFUNSPEC,FLG_MACROPARENS,FLG_MACRODECL,FLG_MACROFCNDECL,FLG_MACROCONSTDECL,FLG_MACROREDEF,FLG_MACROUNDEF,FLG_RETSTACK,FLG_USERELEASED,FLG_STRICTUSERELEASED,FLG_COMPDEF,FLG_COMPMEMPASS,FLG_MUSTDEFINE,FLG_UNIONDEF,FLG_MEMIMPLICIT,FLG_PARAMIMPTEMP,FLG_ALLIMPONLY,FLG_CODEIMPONLY,FLG_SPECALLIMPONLY,FLG_GLOBIMPONLY,FLG_RETIMPONLY,FLG_STRUCTIMPONLY,FLG_SPECGLOBIMPONLY,FLG_SPECRETIMPONLY,FLG_SPECSTRUCTIMPONLY,FLG_DEPARRAYS,FLG_COMPDESTROY,FLG_STRICTDESTROY,FLG_MUSTFREE,FLG_BRANCHSTATE,FLG_STRICTBRANCHSTATE,FLG_MEMCHECKS,FLG_MEMTRANS,FLG_EXPOSETRANS,FLG_OBSERVERTRANS,FLG_DEPENDENTTRANS,FLG_NEWREFTRANS,FLG_ONLYTRANS,FLG_ONLYUNQGLOBALTRANS,FLG_OWNEDTRANS,FLG_FRESHTRANS,FLG_SHAREDTRANS,FLG_TEMPTRANS,FLG_KEPTTRANS,FLG_KEEPTRANS,FLG_IMMEDIATETRANS,FLG_REFCOUNTTRANS,FLG_STATICTRANS,FLG_UNKNOWNTRANS,FLG_STATICINITTRANS,FLG_UNKNOWNINITTRANS,FLG_READONLYSTRINGS,FLG_READONLYTRANS,FLG_PASSUNKNOWN,FLG_MODIFIES,FLG_MUSTMOD,FLG_MODOBSERVER,FLG_MODOBSERVERUNCON,FLG_MODINTERNALSTRICT,FLG_MODFILESYSTEM,FLG_MODUNSPEC,FLG_MODNOMODS,FLG_MODUNCON,FLG_MODUNCONNOMODS,FLG_GLOBALSIMPMODIFIESNOTHING,FLG_MODIFIESIMPNOGLOBALS,FLG_NAMECHECKS,FLG_CZECH,FLG_CZECHFUNCTIONS,FLG_CZECHVARS,FLG_CZECHMACROS,FLG_CZECHCONSTANTS,FLG_CZECHTYPES,FLG_SLOVAK,FLG_SLOVAKFUNCTIONS,FLG_SLOVAKMACROS,FLG_SLOVAKVARS,FLG_SLOVAKCONSTANTS,FLG_SLOVAKTYPES,FLG_CZECHOSLOVAK,FLG_CZECHOSLOVAKFUNCTIONS,FLG_CZECHOSLOVAKMACROS,FLG_CZECHOSLOVAKVARS,FLG_CZECHOSLOVAKCONSTANTS,FLG_CZECHOSLOVAKTYPES,FLG_ANSIRESERVED,FLG_CPPNAMES,FLG_ANSIRESERVEDLOCAL,FLG_DISTINCTEXTERNALNAMES,FLG_EXTERNALNAMELEN,FLG_EXTERNALNAMECASEINSENSITIVE,FLG_DISTINCTINTERNALNAMES,FLG_INTERNALNAMELEN,FLG_INTERNALNAMECASEINSENSITIVE,FLG_INTERNALNAMELOOKALIKE,FLG_MACROVARPREFIX,FLG_MACROVARPREFIXEXCLUDE,FLG_TAGPREFIX,FLG_TAGPREFIXEXCLUDE,FLG_ENUMPREFIX,FLG_ENUMPREFIXEXCLUDE,FLG_FILESTATICPREFIX,FLG_FILESTATICPREFIXEXCLUDE,FLG_GLOBPREFIX,FLG_GLOBPREFIXEXCLUDE,FLG_TYPEPREFIX,FLG_TYPEPREFIXEXCLUDE,FLG_EXTERNALPREFIX,FLG_EXTERNALPREFIXEXCLUDE,FLG_LOCALPREFIX,FLG_LOCALPREFIXEXCLUDE,FLG_UNCHECKEDMACROPREFIX,FLG_UNCHECKEDMACROPREFIXEXCLUDE,FLG_CONSTPREFIX,FLG_CONSTPREFIXEXCLUDE,FLG_ITERPREFIX,FLG_ITERPREFIXEXCLUDE,FLG_DECLPARAMPREFIX,FLG_DECLPARAMNAME,FLG_DECLPARAMMATCH,FLG_DECLPARAMPREFIXEXCLUDE,FLG_CONTROLNESTDEPTH,FLG_STRINGLITERALLEN,FLG_NUMSTRUCTFIELDS,FLG_NUMENUMMEMBERS,FLG_INCLUDENEST,FLG_ANSILIMITS,FLG_NAME,FLG_SPECIAL,FLG_NULL,FLG_NULLTERMINATED,FLG_BUFFEROVERFLOW,FLG_ARRAYREAD,FLG_ARRAYWRITE,FLG_FUNCTIONPOST,FLG_FUNCTIONCONSTRAINT,FLG_CHECKPOST,FLG_CONSTRAINTLOCATION,FLG_IMPLICTCONSTRAINT,FLG_ORCONSTRAINT,FLG_NULLTERMINATEDWARNING,FLG_NULLDEREF,FLG_FCNDEREF,FLG_NULLPASS,FLG_NULLRET,FLG_NULLSTATE,FLG_NULLASSIGN,FLG_BOOLCOMPARE,FLG_REALCOMPARE,FLG_POINTERARITH,FLG_NULLPOINTERARITH,FLG_PTRNUMCOMPARE,FLG_STRICTOPS,FLG_BITWISEOPS,FLG_SHIFTSIGNED,FLG_BOOLOPS,FLG_PTRNEGATE,FLG_SIZEOFTYPE,FLG_SIZEOFFORMALARRAY,FLG_FIXEDFORMALARRAY,FLG_INCOMPLETETYPE,FLG_FORMALARRAY,FLG_PREDASSIGN,FLG_PREDBOOL,FLG_PREDBOOLINT,FLG_PREDBOOLOTHERS,FLG_PREDBOOLPTR,FLG_DEFINE,FLG_UNDEFINE,FLG_GLOBSTATE,FLG_SUPCOUNTS,FLG_LIMIT,FLG_SYNTAX,FLG_TRYTORECOVER,FLG_PREPROC,FLG_TYPE,FLG_FULLINITBLOCK,FLG_ENUMMEMBERS,FLG_MAINTYPE,FLG_FORMATTYPE,FLG_FORMATCODE,FLG_FORWARDDECL,FLG_ABSTVOIDP,FLG_CASTFCNPTR,FLG_CHARINDEX,FLG_ENUMINDEX,FLG_BOOLINT,FLG_CHARINT,FLG_ENUMINT,FLG_FLOATDOUBLE,FLG_IGNOREQUALS,FLG_DUPLICATEQUALS,FLG_IGNORESIGNS,FLG_NUMLITERAL,FLG_CHARINTLITERAL,FLG_RELAXQUALS,FLG_RELAXTYPES,FLG_CHARUNSIGNEDCHAR,FLG_MATCHANYINTEGRAL,FLG_LONGUNSIGNEDINTEGRAL,FLG_LONGINTEGRAL,FLG_LONGUNSIGNEDUNSIGNEDINTEGRAL,FLG_LONGSIGNEDINTEGRAL,FLG_ZEROPTR,FLG_ZEROBOOL,FLG_REPEATUNRECOG,FLG_SYSTEMUNRECOG,FLG_UNRECOG,FLG_TOPUNUSED,FLG_EXPORTLOCAL,FLG_EXPORTHEADER,FLG_EXPORTHEADERVAR,FLG_FIELDUNUSED,FLG_ENUMMEMUNUSED,FLG_CONSTUNUSED,FLG_FUNCUNUSED,FLG_PARAMUNUSED,FLG_TYPEUNUSED,FLG_VARUNUSED,FLG_UNUSEDSPECIAL,LAST_FLAG}! -0 s6986|& -0 s100|-1 -1 10762 -3 f1 (1910|@3|&#,)! -3 e!9{FK_ABSTRACT,FK_ANSI,FK_BEHAVIOR,FK_COMMENTS,FK_COMPLETE,FK_CONTROL,FK_DEBUG,FK_DECL,FK_DEF,FK_DIRECT,FK_DISPLAY,FK_EFFECT,FK_EXPORT,FK_EXPOSURE,FK_FORMAT,FK_GLOBAL,FK_GLOBALS,FK_HEADERS,FK_HELP,FK_IGNORERET,FK_INIT,FK_ITER,FK_LIBS,FK_LIMITS,FK_MACROS,FK_MEMORY,FK_MODIFIES,FK_NAMES,FK_NONE,FK_NULL,FK_NT,FK_OPS,FK_PRED,FK_PREPROC,FK_SECRET,FK_SUPPRESS,FK_SYNTAX,FK_TYPE,FK_TYPEEQ,FK_NUMBERS,FK_POINTER,FK_UNRECOG,FK_USE,FK_BOOL,FK_ALIAS,FK_PROTOS,FK_SPEC,FK_IMPLICIT,FK_FILES,FK_ERRORS,FK_UNSPEC,FK_SPEED,FK_PARAMS,FK_DEAD,FK_LEAK,FK_ARRAY,FK_OBSOLETE,FK_PREFIX}! -0 s6993|& -0 s101|& +3 f1706 ()! 3 f0 ()! -3 f1 ()! +3 f1706 ()! 3 f0 ()! -3 f1 ()! -3 f0 (2|$#,2|$#,)! -3 f1 (2|$#,2|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f1910 (989|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@7&#,)! -3 f1 (1910|$#,989|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (989|0@5@7&#,)! -3 f1914 (989|0@5@7&#,)! -3 f0 (1914|$#,)! -3 f1 (1914|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|@7|$#,)! -3 f2 (1910|@7|$#,)! -3 f0 (1910|@7|$#,)! -3 f2 (1910|@7|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 ()! -3 f989 ()! -3 f0 ()! -3 f1 ()! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! +3 f1706 ()! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 f0 (1706|@7|$#,)! +3 f2 (1706|@7|$#,)! +3 S!12{5|@1|^#tok,1003|@1|0@5@3&#loc,}! +0 s3171|& +0 s3172|-1 7464 -1 +3 f0 (5|$#,1003|0@5@2&#,)! +3 f2013 (5|$#,1003|0@5@2&#,)! +3 f0 (2013|$#,)! +3 f1117 (2013|$#,)! +3 f0 (2013|15@0@1&#,)! +3 f1 (2013|15@0@1&#,)! +3 f0 (2013|$#,)! +3 f1003 (2013|$#,)! +3 f0 (2013|$#,)! +3 f1003 (2013|$#,)! +3 f0 (2013|$#,)! +3 f5 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 e!13{NOCLAUSE,TRUECLAUSE,FALSECLAUSE,ANDCLAUSE,ORCLAUSE,WHILECLAUSE,DOWHILECLAUSE,FORCLAUSE,CASECLAUSE,SWITCHCLAUSE,CONDCLAUSE,ITERCLAUSE,TRUEEXITCLAUSE,FALSEEXITCLAUSE}! +0 s3208|& +0 s3209|-1 8184 -1 +3 f0 (2062|$#,)! +3 f1117 (2062|$#,)! +3 f0 (2062|$#,)! +3 f1117 (2062|$#,)! +3 f0 (2062|$#,2|$#,)! +3 f1117 (2062|$#,2|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f1117 (2062|$#,)! +3 Ss_globalsClause{1106|@1|0@5@3&#globs,1003|@1|0@5@3&#loc,}! +3 f0 (2013|0@0@2&#,1106|0@5@2&#,)! +3 f1033 (2013|0@0@2&#,1106|0@5@2&#,)! +3 f0 (1033|$#,)! +3 f1106 (1033|$#,)! +3 f0 (1033|$#,)! +3 f1106 (1033|$#,)! +3 f0 (1033|$#,)! +3 f1003 (1033|$#,)! +3 f0 (1033|$#,)! +3 f1117 (1033|$#,)! +3 f0 (1033|0@0@2&#,)! +3 f1 (1033|0@0@2&#,)! +3 Ss_modifiesClause{2|@1|^#isnomods,1003|@1|0@5@3&#loc,994|@1|0@5@3&#srs,}! +3 f0 (2013|0@0@2&#,)! +3 f1036 (2013|0@0@2&#,)! +3 f0 (1036|$#,)! +3 f2 (1036|$#,)! +3 f0 (1036|$#,)! +3 f994 (1036|$#,)! +3 f0 (1036|$#,)! +3 f994 (1036|$#,)! +3 f0 (1036|$#,)! +3 f1003 (1036|$#,)! +3 f0 (2013|0@0@2&#,994|0@5@2&#,)! +3 f1036 (2013|0@0@2&#,994|0@5@2&#,)! +3 f0 (1036|$#,)! +3 f1117 (1036|$#,)! +3 f0 (1036|0@0@2&#,)! +3 f1 (1036|0@0@2&#,)! +3 Ss_warnClause{1003|@1|0@5@2&#loc,1678|@1|0@5@2&#flag,988|@1|0@5@2&#msg,}! +3 f0 (1039|0@5@7&#,)! +3 f2 (1039|0@5@7&#,)! +3 f0 (1039|0@5@7&#,)! +3 f2 (1039|0@5@7&#,)! +3 f0 (2013|0@0@2&#,1678|0@5@2&#,988|0@5@2&#,)! +3 f1039 (2013|0@0@2&#,1678|0@5@2&#,988|0@5@2&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1678 (1039|0@5@7&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1117 (1039|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1039 (313|$#,)! +3 f0 (1039|0@5@7&#,)! +3 f2 (1039|0@5@7&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1117 (1039|0@5@7&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1117 (1039|0@5@7&#,)! +3 f0 (1039|0@5@2&#,)! +3 f1 (1039|0@5@2&#,)! +3 e!14{FCK_GLOBALS,FCK_MODIFIES,FCK_WARN,FCK_STATE,FCK_DEAD}! +0 s3245|& +0 s3246|& +3 U!15{1033|@1|0@0@3&#globals,1036|@1|0@0@3&#modifies,1039|@1|0@5@3&#warn,1042|@1|0@0@3&#state,}! +0 s3247|& +3 Ss_functionClause{2136|@1|^#kind,2137|@1|^#val,}! +3 f0 (1027|0@5@7&#,)! +3 f2 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f2 (1027|0@5@7&#,)! +3 f0 (1027|@7|0@5@7&#,)! +3 f2 (1027|@7|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f2 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f2 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f2 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f2 (1027|0@5@7&#,)! +3 f0 (1033|0@0@2&#,)! +3 f1027 (1033|0@0@2&#,)! +3 f0 (1036|0@0@2&#,)! +3 f1027 (1036|0@0@2&#,)! +3 f0 (1039|0@5@2&#,)! +3 f1027 (1039|0@5@2&#,)! +3 f0 (1042|0@0@2&#,)! +3 f1027 (1042|0@0@2&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1033 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1036 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1042 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1039 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1042 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1039 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,2136|$#,)! +3 f2 (1027|0@5@7&#,2136|$#,)! +3 f0 (1027|0@5@2&#,)! +3 f1 (1027|0@5@2&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1117 (1027|0@5@7&#,)! +0 s3262|-1 2181 -1 +1 t2180|2180& +3 Ss_functionClauseList{5|@1|^#nelements,5|@1|^#nspace,2181|@1|11@3@3&#elements,}! +3 f0 (1030|0@5@7&#,)! +3 f2 (1030|0@5@7&#,)! +3 f0 (1030|0@5@7&#,)! +3 f2 (1030|0@5@7&#,)! +3 f0 (1030|@7|0@5@7&#,)! +3 f5 (1030|@7|0@5@7&#,)! +3 f0 (1030|@7|0@5@7&#,)! +3 f2 (1030|@7|0@5@7&#,)! +3 f0 (1030|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1030|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f1030 ()! +3 f0 (1027|0@5@4&#,)! +3 f1030 (1027|0@5@4&#,)! +3 f0 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f1030 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f0 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f1030 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f0 (1030|0@5@7&#,)! +3 f1117 (1030|0@5@7&#,)! +3 f0 (1030|0@5@2&#,)! +3 f1 (1030|0@5@2&#,)! +3 f1 (1030|@7|6@5@7&#,1027|@3|6@5@19@2@0#,)! +0 s3274|-1 2207 -1 +1 t2206|2206& +3 Ss_cstringSList{5|@1|^#nelements,5|@1|^#nspace,2207|@1|11@3@3&#elements,}! +0 s3275|-1 2210 -1 +1 t2209|2209& +0 a3276|-1 20419 -1 +3 f0 (2211|0@5@7&#,)! +3 f2 (2211|0@5@7&#,)! +3 f0 (2211|@7|0@5@7&#,)! +3 f5 (2211|@7|0@5@7&#,)! +3 f0 (2211|@7|0@5@7&#,)! +3 f2 (2211|@7|0@5@7&#,)! +3 f0 (2211|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (2211|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f2211 ()! +3 f0 (1117|0@5@19@2@0#,)! +3 f2211 (1117|0@5@19@2@0#,)! +3 f0 (2211|@5|0@5@7&#,1117|0@5@19@2@0#,)! +3 f2211 (2211|@5|0@5@7&#,1117|0@5@19@2@0#,)! +3 f0 (2211|0@5@7&#,)! +3 f1 (2211|0@5@7&#,)! +3 f0 (2211|0@5@7&#,5|$#,)! +3 f1117 (2211|0@5@7&#,5|$#,)! +3 f0 (2211|0@5@7&#,)! +3 f1117 (2211|0@5@7&#,)! +3 f0 (2211|0@5@7&#,)! +3 f1117 (2211|0@5@7&#,)! +3 f0 (2211|0@5@2&#,)! +3 f1 (2211|0@5@2&#,)! +3 f0 (2211|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f1 (2211|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f1 (2211|@7|6@5@7&#,1117|@3|6@5@19@2@0#,)! +1 t1118|1118& +3 Ss_cstringList{5|@1|^#nelements,5|@1|^#nspace,2239|@1|11@3@3&#elements,}! +0 s3291|-1 2242 -1 +1 t2241|2241& +0 a3292|& +3 f0 (2243|0@5@7&#,)! +3 f2 (2243|0@5@7&#,)! +3 f0 (2243|@7|0@5@7&#,)! +3 f5 (2243|@7|0@5@7&#,)! +3 f0 (2243|@7|0@5@7&#,)! +3 f2 (2243|@7|0@5@7&#,)! +3 f0 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f2243 ()! +3 f0 (1117|0@5@4&#,)! +3 f2243 (1117|0@5@4&#,)! +3 f0 (2243|@5|0@5@7&#,1117|0@5@4&#,)! +3 f2243 (2243|@5|0@5@7&#,1117|0@5@4&#,)! +3 f0 (2243|@5|0@5@2&#,1117|0@5@4&#,)! +3 f2243 (2243|@5|0@5@2&#,1117|0@5@4&#,)! +3 f0 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f2 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f0 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f5 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f0 (2243|0@5@7&#,5|$#,)! +3 f1117 (2243|0@5@7&#,5|$#,)! +3 f0 (2243|0@5@7&#,)! +3 f1 (2243|0@5@7&#,)! +3 f0 (2243|0@5@7&#,)! +3 f1117 (2243|0@5@7&#,)! +3 f0 (2243|0@5@7&#,)! +3 f1117 (2243|0@5@7&#,)! +3 f0 (2243|0@5@2&#,)! +3 f1 (2243|0@5@2&#,)! +3 f0 (2243|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f1 (2243|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f0 (2243|0@5@7&#,)! +3 f2243 (2243|0@5@7&#,)! +3 f1 (2243|@7|6@5@7&#,1117|@3|6@5@19@2@0#,)! 3 C1.2/1|! 3 f0 (2|$#,)! 3 f2 (2|$#,)! -3 f1985 (2|$#,)! -3 f0 (2|$#,989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f2 (2|$#,989|0@5@7&#,989|0@5@7&#,5|$#,)! +3 f2279 (2|$#,)! +3 f0 (2|$#,1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (2|$#,1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (2|@7|$#,)! +3 f1 (2|@7|$#,)! +3 f0 (2|@7|$#,)! +3 f1 (2|@7|$#,)! 3 f0 (2|@7|$#,)! 3 f1 (2|@7|$#,)! 3 f0 (2|@7|$#,)! 3 f1 (2|@7|$#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,)! -3 f1 (989|0@5@2&#,978|0@5@7&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,)! +3 f1 (23|$#,5|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,)! +3 f1 (23|$#,5|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f1 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! 3 f0 (23|0@0@6&#,)! 3 f1 (23|0@0@6&#,)! 3 f0 ()! 3 f5 ()! 3 f0 ()! 3 f2 ()! -3 f0 (948|0@5@7&#,989|0@5@2&#,)! -3 f1 (948|0@5@7&#,989|0@5@2&#,)! -3 f0 (948|0@5@7&#,989|0@5@2&#,)! -3 f1 (948|0@5@7&#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (967|0@5@7&#,1117|0@5@2&#,)! +3 f1 (967|0@5@7&#,1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,967|0@5@7&#,1117|0@5@2&#,)! +3 f1 (23|$#,5|$#,967|0@5@7&#,1117|0@5@2&#,)! +3 f0 (967|0@5@7&#,1117|0@5@2&#,)! +3 f1 (967|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! 3 f0 ()! 3 f2 ()! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (989|0@5@19@3@0#,)! -3 f1 (989|0@5@19@3@0#,)! -3 f0 (989|0@5@7&#,5|$#,989|0@5@2&#,)! -3 f1 (989|0@5@7&#,5|$#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,989|0@5@7&#,5|$#,)! -3 f1 (989|0@5@2&#,989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (991|@7|$#,966|@7|0@5@7&#,991|@7|$#,966|@7|0@5@7&#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f2 (991|@7|$#,966|@7|0@5@7&#,991|@7|$#,966|@7|0@5@7&#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f2 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f1 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|@7|$#,1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f1 (1910|@7|$#,1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|@7|$#,1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f1 (1910|@7|$#,1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f1 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f1 (1910|@7|$#,989|@7|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,989|0@5@2&#,978|@7|0@5@7&#,)! -3 f1 (1910|$#,989|0@5@2&#,989|0@5@2&#,978|@7|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f1 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,23|$#,)! -3 f1 (1910|$#,23|$#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,)! -3 f1 (989|0@5@2&#,978|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (1117|0@5@19@3@0#,)! +3 f1 (1117|0@5@19@3@0#,)! +3 f0 (1117|0@5@7&#,5|$#,1117|0@5@2&#,)! +3 f1 (1117|0@5@7&#,5|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1117|0@5@7&#,5|$#,)! +3 f1 (1117|0@5@2&#,1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1119|@7|$#,988|@7|0@5@7&#,1119|@7|$#,988|@7|0@5@7&#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f2 (1119|@7|$#,988|@7|0@5@7&#,1119|@7|$#,988|@7|0@5@7&#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f2 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f1 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (23|$#,5|$#,1678|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1678|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1678|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1678|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1678|@7|0@5@7&#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f1 (1678|@7|0@5@7&#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (1597|@7|$#,1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f1 (1597|@7|$#,1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (1597|@7|$#,1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f1 (1597|@7|$#,1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f1 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f1 (1597|@7|$#,1117|@7|0@5@2&#,1003|@7|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|@7|0@5@7&#,)! +3 f1 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|@7|0@5@7&#,)! +3 C1.2/1|! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2409 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2409 (1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1597|$#,23|$#,)! +3 f1 (1597|$#,23|$#,)! +3 f0 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f1 (1117|0@5@2&#,1003|0@5@7&#,)! 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 (23|$#,)! @@ -2101,2392 +2432,2515 @@ 3 f1 ()! 3 f0 (23|$#,)! 3 f1 (23|$#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (1910|$#,989|0@5@2&#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,989|0@5@2&#,)! -3 f0 (1910|$#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,)! +3 f0 (1597|$#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! 3 f0 (5|$#,)! -3 f989 (5|$#,)! +3 f1117 (5|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1117 (1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|@5|0@5@7&#,)! +3 f1117 (1117|@5|0@5@7&#,)! 2 F0/0|0& 2 F4/0|4& -3 S!10{23|@1|0@0@3&#name,210|@1|0@5@18&#file,2120|@1|^#buffer,6|@1|^#lineNo,2|@1|^#echo,2|@1|^#fromString,23|@1|0@5@17&#stringSource,23|@1|0@5@18&#stringSourceTail,}! -0 s6935|& -0 s384|-1 2124 -1 -1 t2123|2123& -3 f0 (2124|0@5@2&#,)! -3 f1 (2124|0@5@2&#,)! -3 f0 (2124|$#,)! -3 f2 (2124|$#,)! -3 f0 (23|0@0@6&#,23|$#,2|$#,)! -3 f19 (23|0@0@6&#,23|$#,2|$#,)! -3 f2124 (23|0@0@6&#,23|$#,2|$#,)! -3 f0 (23|$#,23|$#,)! -3 f19 (23|$#,23|$#,)! -3 f2124 (23|$#,23|$#,)! -3 f0 (2124|$#,)! -3 f19 (2124|$#,)! -3 f23 (2124|$#,)! -3 f0 (2124|$#,)! -3 f2 (2124|$#,)! -3 f0 (23|$#,2124|$#,)! -3 f2 (23|$#,2124|$#,)! -3 f0 (2124|$#,)! -3 f19 (2124|$#,)! -3 f23 (2124|$#,)! -3 f0 (2124|@7|$#,)! -3 f2 (2124|@7|$#,)! -3 f0 (2124|$#,)! -3 f6 (2124|$#,)! -3 f0 (23|$#,312|4@0@7&#,)! -3 f19 (23|$#,312|4@0@7&#,)! -3 f23 (23|$#,312|4@0@7&#,)! -1 t1500|1500& -3 S_qualList{5|@1|^#nelements,5|@1|^#free,2152|@1|11@3@3&#elements,}! -0 s6838|-1 2155 -1 -1 t2154|2154& -0 a102|& -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -3 f1 (2156|@7|6@5@7&#,1500|@3|&#,)! -3 f0 (2156|@7|0@5@7&#,)! -3 f5 (2156|@7|0@5@7&#,)! -3 f0 (2156|@7|0@5@7&#,)! -3 f2 (2156|@7|0@5@7&#,)! -3 f0 ()! -3 f2156 ()! -3 f0 (2156|@5|0@5@7&#,1500|$#,)! -3 f2156 (2156|@5|0@5@7&#,1500|$#,)! -3 f0 (2156|0@5@7&#,)! -3 f989 (2156|0@5@7&#,)! -3 f0 (2156|0@5@2&#,)! -3 f1 (2156|0@5@2&#,)! -3 f0 (2156|@5|0@5@7&#,2156|0@5@7&#,)! -3 f2156 (2156|@5|0@5@7&#,2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2156 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f989 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f1 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -0 s6814|-1 2189 -1 -1 t2188|2188& -3 S_mappair{942|@1|^#domain,942|@1|^#range,2189|@1|0@5@3&#next,}! -0 s103|-1 2192 -1 -1 t2191|2191 17520 -1 -0 s104|-1 2194 -1 -1 t2193|2193& -3 S!11{6|@1|^#count,2194|@1|0@3@2&#buckets,}! -0 s6750|& -0 s374|-1 2200 -1 -3 f0 ()! -3 f19 ()! -1 t2197|2197& -3 f2200 ()! -3 f0 (2200|$#,942|$#,)! -3 f942 (2200|$#,942|$#,)! -3 f0 (2200|$#,942|$#,942|$#,)! -3 f1 (2200|$#,942|$#,942|$#,)! -3 f0 (2200|0@0@2&#,)! -3 f1 (2200|0@0@2&#,)! -3 e!12{SRT_FIRST,SRT_NONE,SRT_HOF,SRT_PRIM,SRT_SYN,SRT_PTR,SRT_OBJ,SRT_ARRAY,SRT_VECTOR,SRT_STRUCT,SRT_TUPLE,SRT_UNION,SRT_UNIONVAL,SRT_ENUM,SRT_LAST}! -0 s6994|& -0 s105|& -0 s6891|-1 2212 -1 -1 t2211|2211& -3 S_smemberInfo{942|@1|^#name,941|@1|^#sort,942|@1|11@0@0&#sortname,2212|@1|0@5@18&#next,}! -0 s106|-1 2215 -1 -1 t2214|2214& -3 S_sortNode{2210|@1|^#kind,941|@1|^#handle,942|@1|^#name,942|@1|11@0@0&#tag,2|@1|11@0@0&#realtag,941|@1|^#baseSort,941|@1|11@0@0&#objSort,2215|@1|0@5@3&#members,2|@1|^#export,2|@1|^#mutable,2|@1|^#abstract,2|@1|^#imported,}! -0 s6943|& -0 s107|-1 16822 -1 -3 f0 (941|$#,)! -3 f989 (941|$#,)! -3 f0 (941|$#,)! -3 f989 (941|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,941|$#,942|$#,)! -3 f941 (948|0@5@7&#,941|$#,942|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (941|$#,5|$#,)! -3 f941 (941|$#,5|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,)! -3 f941 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f941 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f941 (948|0@5@7&#,)! -3 f0 (941|$#,2215|0@5@2&#,)! -3 f2 (941|$#,2215|0@5@2&#,)! -3 f0 (941|$#,2215|0@5@2&#,)! -3 f2 (941|$#,2215|0@5@2&#,)! -3 f0 (941|$#,2215|0@5@2&#,)! -3 f2 (941|$#,2215|0@5@2&#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (941|$#,)! -3 f942 (941|$#,)! -3 f0 (941|$#,)! -3 f19 (941|$#,)! -3 f23 (941|$#,)! -3 f0 (941|$#,)! -3 f2218 (941|$#,)! -3 f0 (941|$#,)! -3 f2218 (941|$#,)! -3 f0 (942|$#,)! -3 f941 (942|$#,)! -3 f0 (210|$#,2|$#,)! -3 f1 (210|$#,2|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (941|$#,941|$#,)! -3 f2 (941|$#,941|$#,)! -3 f0 (941|$#,941|$#,)! -3 f2 (941|$#,941|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! +3 Ss_inputStream{1117|@1|0@5@3&#name,211|@1|0@5@18&#file,2471|@1|^#buffer,5|@1|^#lineNo,63|@1|^#charNo,23|@1|0@5@18&#curLine,2|@1|^#echo,2|@1|^#fromString,1117|@1|0@5@17&#stringSource,1117|@1|0@5@18&#stringSourceTail,}! +3 f0 (1015|0@5@7&#,)! +3 f2 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f2 (1015|0@5@7&#,)! +3 f0 (1015|0@5@2&#,)! +3 f1 (1015|0@5@2&#,)! +3 f0 (1015|0@5@7&#,)! +3 f2 (1015|0@5@7&#,)! +3 f0 (1117|0@5@2&#,1117|0@5@7&#,2|$#,)! +3 f1015 (1117|0@5@2&#,1117|0@5@7&#,2|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f1015 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f19 (1015|0@5@7&#,)! +3 f23 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f5 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f5 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,5|$#,)! +3 f5 (1015|0@5@7&#,5|$#,)! +3 f0 (1015|0@5@7&#,)! +3 f2 (1015|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1015|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f1117 (1015|0@5@7&#,)! +3 f0 (1015|@7|0@5@7&#,)! +3 f2 (1015|@7|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f5 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f19 (1015|0@5@7&#,)! +3 f211 (1015|0@5@7&#,)! +1 t1706|1706& +3 S!16{5|@1|^#nelements,5|@1|^#free,2507|@1|11@3@3&#elements,}^2510 +0 s3390|& +1 t2508|2508& +0 a3391|& +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f1 (2511|@7|6@5@7&#,1706|@3|&#,)! +3 f0 (2511|@7|0@5@7&#,)! +3 f5 (2511|@7|0@5@7&#,)! +3 f0 (2511|@7|0@5@7&#,)! +3 f2 (2511|@7|0@5@7&#,)! +3 f0 ()! +3 f2511 ()! +3 f0 (2511|@5|0@5@7&#,1706|$#,)! +3 f2511 (2511|@5|0@5@7&#,1706|$#,)! +3 f0 (2511|0@5@7&#,)! +3 f1117 (2511|0@5@7&#,)! +3 f0 (2511|0@5@2&#,)! +3 f1 (2511|0@5@2&#,)! +3 f0 (2511|@5|0@5@7&#,2511|0@5@7&#,)! +3 f2511 (2511|@5|0@5@7&#,2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2511 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f1117 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f1 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +0 s3409|-1 2546 -1 +1 t2545|2545& +3 Ss_mappair{961|@1|^#domain,961|@1|^#range,2546|@1|0@5@3&#next,}! +0 s3410|-1 2549 -1 +1 t2548|2548 19510 -1 +0 s3411|-1 2551 -1 +1 t2550|2550& +3 S!17{6|@1|^#count,2551|@1|0@3@2&#buckets,}^2554 +0 s3412|& +1 t2552|2552& +0 a3413|& 3 f0 ()! -3 f941 ()! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! +3 f2555 ()! +3 f0 (2555|$#,961|$#,)! +3 f961 (2555|$#,961|$#,)! +3 f0 (2555|$#,961|$#,961|$#,)! +3 f1 (2555|$#,961|$#,961|$#,)! +3 f0 (2555|0@0@2&#,)! +3 f1 (2555|0@0@2&#,)! +3 e!18{SRT_FIRST,SRT_NONE,SRT_HOF,SRT_PRIM,SRT_SYN,SRT_PTR,SRT_OBJ,SRT_ARRAY,SRT_VECTOR,SRT_STRUCT,SRT_TUPLE,SRT_UNION,SRT_UNIONVAL,SRT_ENUM,SRT_LAST}! +0 s3435|& +0 s3436|& +0 s3437|-1 2568 -1 +1 t2567|2567& +3 Ss_smemberInfo{961|@1|^#name,960|@1|^#sort,961|@1|11@0@0&#sortname,2568|@1|0@5@18&#next,}! +0 s3438|-1 2571 -1 +1 t2570|2570& +3 S!19{2566|@1|^#kind,960|@1|^#handle,961|@1|^#name,961|@1|11@0@0&#tag,2|@1|11@0@0&#realtag,960|@1|^#baseSort,960|@1|11@0@0&#objSort,2571|@1|0@5@3&#members,2|@1|^#export,2|@1|^#mutable,2|@1|^#abstract,2|@1|^#imported,}^2574 +0 s3440|& +1 t2572|2572& +0 s3441|-1 18811 -1 +3 f0 (960|$#,)! +3 f1117 (960|$#,)! +3 f0 (960|$#,)! +3 f1117 (960|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,960|$#,961|$#,)! +3 f960 (967|0@5@7&#,960|$#,961|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (960|$#,5|$#,)! +3 f960 (960|$#,5|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,)! +3 f960 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f960 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f960 (967|0@5@7&#,)! +3 f0 (960|$#,2571|0@5@2&#,)! +3 f2 (960|$#,2571|0@5@2&#,)! +3 f0 (960|$#,2571|0@5@2&#,)! +3 f2 (960|$#,2571|0@5@2&#,)! +3 f0 (960|$#,2571|0@5@2&#,)! +3 f2 (960|$#,2571|0@5@2&#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (960|$#,)! +3 f961 (960|$#,)! +3 f0 (960|$#,)! +3 f19 (960|$#,)! +3 f23 (960|$#,)! +3 f0 (960|$#,)! +3 f2575 (960|$#,)! +3 f0 (960|$#,)! +3 f2575 (960|$#,)! +3 f0 (961|$#,)! +3 f960 (961|$#,)! +3 f0 (211|$#,2|$#,)! +3 f1 (211|$#,2|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (960|$#,960|$#,)! +3 f2 (960|$#,960|$#,)! +3 f0 (960|$#,960|$#,)! +3 f2 (960|$#,960|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! +3 f0 ()! +3 f960 ()! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! 3 f0 (2|$#,)! 3 f2 (2|$#,)! 3 f0 ()! 3 f1 ()! -1 t941|941& -3 f0 (2302|$#,2302|$#,)! -3 f2 (2302|$#,2302|$#,)! -3 f0 (942|$#,)! -3 f941 (942|$#,)! -3 f0 (2124|$#,948|0@5@7&#,2200|$#,)! -3 f1 (2124|$#,948|0@5@7&#,2200|$#,)! -3 e!13{TS_UNKNOWN,TS_VOID,TS_CHAR,TS_INT,TS_SIGNED,TS_UNSIGNED,TS_SHORT,TS_LONG,TS_FLOAT,TS_DOUBLE,TS_ENUM,TS_STRUCT,TS_UNION,TS_TYPEDEF}! -0 s6995|& -0 s108|& -3 e!14{TYS_NONE,TYS_VOID,TYS_CHAR,TYS_SCHAR,TYS_UCHAR,TYS_SSINT,TYS_USINT,TYS_INT,TYS_SINT,TYS_UINT,TYS_SLINT,TYS_ULINT,TYS_FLOAT,TYS_DOUBLE,TYS_LDOUBLE,TYS_ENUM,TYS_STRUCT,TYS_UNION,TYS_TYPENAME}! -0 s6996|& -0 s109|& -0 s90|& -3 f0 (2311|$#,2315|$#,)! -3 f2315 (2311|$#,2315|$#,)! -3 f0 (2315|$#,)! -3 f942 (2315|$#,)! -3 f0 (2315|$#,)! -3 f942 (2315|$#,)! -3 e_paramtype{PNORMAL,PYIELD,PELIPSIS}! -0 s6997|& -0 s110|& -3 S_paramNode{937|@1|0@5@3&#type,944|@1|0@5@3&#paramdecl,2324|@1|^#kind,}! -0 s6883|-1 2327 -1 -1 t2326|2326& -0 s111|-1 15296 -1 -3 f0 (2328|0@5@2&#,)! -3 f1 (2328|0@5@2&#,)! -3 f0 (2328|0@5@7&#,)! -3 f2328 (2328|0@5@7&#,)! -3 f0 (2328|$#,)! -3 f989 (2328|$#,)! -3 f0 (2328|$#,)! -3 f989 (2328|$#,)! -3 f0 (2328|$#,)! -3 f2 (2328|$#,)! -3 f0 (2328|$#,)! -3 f2 (2328|$#,)! -0 s112|-1 2342 -1 -1 t2341|2341& -3 S_paramNodeList{5|@1|^#nelements,5|@1|^#nspace,2342|@1|11@3@3&#elements,}! -0 s6843|-1 2345 -1 -1 t2344|2344& -0 a113|& -3 f1 (2346|@7|6@5@7&#,2328|@3|6@0@19@2@0#,)! -3 f0 (2346|@7|0@5@7&#,)! -3 f5 (2346|@7|0@5@7&#,)! -3 f0 (2346|@7|0@5@7&#,)! -3 f2 (2346|@7|0@5@7&#,)! -3 f0 (2328|0@0@4&#,)! -3 f2346 (2328|0@0@4&#,)! -3 f0 (2346|0@5@7&#,)! -3 f2 (2346|0@5@7&#,)! -3 f0 ()! -3 f2346 ()! -3 f0 (2346|@5|0@5@7&#,2328|0@5@2&#,)! -3 f2346 (2346|@5|0@5@7&#,2328|0@5@2&#,)! -3 f0 (2346|0@5@7&#,)! -3 f989 (2346|0@5@7&#,)! -3 f0 (2346|0@5@2&#,)! -3 f1 (2346|0@5@2&#,)! -3 f0 (2346|0@5@7&#,)! -3 f2346 (2346|0@5@7&#,)! -3 f0 (2346|0@5@7&#,)! -3 f989 (2346|0@5@7&#,)! -3 f0 (2346|0@5@7&#,)! -3 f2 (2346|0@5@7&#,)! -3 f0 (942|$#,)! -3 f2 (942|$#,)! -3 f0 (942|$#,)! -3 f2 (942|$#,)! +3 f0 (960|$#,960|$#,)! +3 f2 (960|$#,960|$#,)! +3 f0 (961|$#,)! +3 f960 (961|$#,)! +3 f0 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 f1 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 e!20{TS_UNKNOWN,TS_VOID,TS_CHAR,TS_INT,TS_SIGNED,TS_UNSIGNED,TS_SHORT,TS_LONG,TS_FLOAT,TS_DOUBLE,TS_ENUM,TS_STRUCT,TS_UNION,TS_TYPEDEF}! +0 s3506|& +0 s3507|& +3 e!21{TYS_NONE,TYS_VOID,TYS_CHAR,TYS_SCHAR,TYS_UCHAR,TYS_SSINT,TYS_USINT,TYS_INT,TYS_SINT,TYS_UINT,TYS_SLINT,TYS_ULINT,TYS_FLOAT,TYS_DOUBLE,TYS_LDOUBLE,TYS_ENUM,TYS_STRUCT,TYS_UNION,TYS_TYPENAME}! +0 s3527|& +0 s3528|& +0 s3529|& +3 f0 (2667|$#,2671|$#,)! +3 f2671 (2667|$#,2671|$#,)! +3 f0 (2671|$#,)! +3 f961 (2671|$#,)! +3 f0 (2671|$#,)! +3 f961 (2671|$#,)! +3 e!22{PNORMAL,PYIELD,PELIPSIS}! +0 s3535|& +0 s3536|& +3 S!23{956|@1|0@5@3&#type,963|@1|0@5@3&#paramdecl,2680|@1|^#kind,}^2683 +0 s3537|& +1 t2681|2681& +0 s3538|-1 17286 -1 +3 f0 (2684|0@5@2&#,)! +3 f1 (2684|0@5@2&#,)! +3 f0 (2684|0@5@7&#,)! +3 f2684 (2684|0@5@7&#,)! +3 f0 (2684|$#,)! +3 f1117 (2684|$#,)! +3 f0 (2684|$#,)! +3 f1117 (2684|$#,)! +3 f0 (2684|$#,)! +3 f2 (2684|$#,)! +3 f0 (2684|$#,)! +3 f2 (2684|$#,)! +0 s3543|-1 2698 -1 +1 t2697|2697& +3 S!24{5|@1|^#nelements,5|@1|^#nspace,2698|@1|11@3@3&#elements,}^2701 +0 s3544|& +1 t2699|2699& +0 a3545|& +3 f1 (2702|@7|6@5@7&#,2684|@3|6@0@19@2@0#,)! +3 f0 (2702|@7|0@5@7&#,)! +3 f5 (2702|@7|0@5@7&#,)! +3 f0 (2702|@7|0@5@7&#,)! +3 f2 (2702|@7|0@5@7&#,)! +3 f0 (2684|0@0@4&#,)! +3 f2702 (2684|0@0@4&#,)! +3 f0 (2702|0@5@7&#,)! +3 f2 (2702|0@5@7&#,)! +3 f0 ()! +3 f2702 ()! +3 f0 (2702|@5|0@5@7&#,2684|0@5@2&#,)! +3 f2702 (2702|@5|0@5@7&#,2684|0@5@2&#,)! +3 f0 (2702|0@5@7&#,)! +3 f1117 (2702|0@5@7&#,)! +3 f0 (2702|0@5@2&#,)! +3 f1 (2702|0@5@2&#,)! +3 f0 (2702|0@5@7&#,)! +3 f2702 (2702|0@5@7&#,)! +3 f0 (2702|0@5@7&#,)! +3 f1117 (2702|0@5@7&#,)! +3 f0 (2702|0@5@7&#,)! +3 f2 (2702|0@5@7&#,)! +3 f0 (961|$#,)! +3 f2 (961|$#,)! +3 f0 (961|$#,)! +3 f2 (961|$#,)! 3 f0 (23|0@0@6&#,)! -3 f942 (23|0@0@6&#,)! -3 f0 (989|0@5@6&#,)! -3 f942 (989|0@5@6&#,)! -3 f0 (942|$#,)! -3 f19 (942|$#,)! -3 f23 (942|$#,)! -3 f0 (942|$#,)! -3 f19 (942|$#,)! -3 f23 (942|$#,)! -3 f0 (942|$#,)! -3 f989 (942|$#,)! -3 f0 (942|$#,942|$#,)! -3 f2 (942|$#,942|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 e!15{SID_VAR,SID_TYPE,SID_OP,SID_SORT}! -0 s6998|& -0 s114|& -3 S_ltoken{6|@1|^#code,6|@1|^#col,6|@1|^#line,942|@1|^#text,942|@1|^#fname,942|@1|^#rawText,2|@1|^#defined,2|@1|^#hasSyn,2396|@1|11@0@0&#idtype,6|@1|11@0@0&#intfield,}! -0 s60|-1 2477 -1 -3 f0 (948|0@5@7&#,)! -3 f2 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f2 (948|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f2 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,2|$#,)! -3 f1 (948|@7|0@5@7&#,2|$#,)! -3 f0 (6|$#,2396|$#,942|$#,)! -3 f948 (6|$#,2396|$#,942|$#,)! -3 f0 (6|$#,942|$#,)! -3 f948 (6|$#,942|$#,)! -3 f0 (948|@7|0@5@7&#,6|$#,)! -3 f1 (948|@7|0@5@7&#,6|$#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f6 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,6|@7|$#,)! -3 f1 (948|@7|0@5@7&#,6|@7|$#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f6 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,6|$#,)! -3 f1 (948|@7|0@5@7&#,6|$#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f6 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f6 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f942 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f19 (948|@7|0@5@7&#,)! -3 f23 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f2 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f2 (948|@7|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f989 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f989 (948|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,6|$#,)! -3 f1 (948|@7|0@5@7&#,6|$#,)! -3 f0 (948|@7|0@5@7&#,942|$#,)! -3 f1 (948|@7|0@5@7&#,942|$#,)! -3 f0 (948|@7|0@5@7&#,2396|$#,)! -3 f1 (948|@7|0@5@7&#,2396|$#,)! -3 f0 (948|@7|0@5@7&#,942|$#,)! -3 f1 (948|@7|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,)! -3 f942 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,948|0@5@7&#,)! -3 f2 (948|0@5@7&#,948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f19 (948|0@5@7&#,)! -3 f23 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f989 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f948 (948|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,)! -3 f989 (948|@7|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,23|@7|$#,)! -3 f1 (948|@7|0@5@7&#,23|@7|$#,)! -3 f0 (948|0@5@7&#,)! -3 f2 (948|0@5@7&#,)! -3 f0 (948|@7|0@5@7&#,2|$#,)! -3 f1 (948|@7|0@5@7&#,2|$#,)! -3 f0 (948|0@5@2&#,)! -3 f1 (948|0@5@2&#,)! -3 f0 (6|$#,942|$#,989|0@5@7&#,6|$#,6|$#,)! -3 f948 (6|$#,942|$#,989|0@5@7&#,6|$#,6|$#,)! -3 f0 (6|$#,942|$#,)! -3 f948 (6|$#,942|$#,)! -3 f0 (948|0@5@7&#,)! -3 f989 (948|0@5@7&#,)! -3 f0 (948|0@5@17&#,)! -3 f1 (948|0@5@17&#,)! +3 f961 (23|0@0@6&#,)! +3 f0 (1117|0@5@6&#,)! +3 f961 (1117|0@5@6&#,)! +3 f0 (961|$#,)! +3 f19 (961|$#,)! +3 f23 (961|$#,)! +3 f0 (961|$#,)! +3 f19 (961|$#,)! +3 f23 (961|$#,)! +3 f0 (961|$#,)! +3 f1117 (961|$#,)! +3 f0 (961|$#,961|$#,)! +3 f2 (961|$#,961|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 e!25{SID_VAR,SID_TYPE,SID_OP,SID_SORT}! +0 s3571|& +0 s3572|& +3 Ss_ltoken{968|@1|^#code,5|@1|^#col,5|@1|^#line,961|@1|^#text,961|@1|^#fname,961|@1|^#rawText,2|@1|^#defined,2|@1|^#hasSyn,2752|@1|11@0@0&#idtype,6|@1|11@0@0&#intfield,}! +0 s3573|-1 2833 -1 +3 f0 (967|0@5@7&#,)! +3 f2 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f2 (967|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f2 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,2|$#,)! +3 f1 (967|@7|0@5@7&#,2|$#,)! +3 f0 (968|$#,2752|$#,961|$#,)! +3 f967 (968|$#,2752|$#,961|$#,)! +3 f0 (968|$#,961|$#,)! +3 f967 (968|$#,961|$#,)! +3 f0 (967|@7|0@5@7&#,6|$#,)! +3 f1 (967|@7|0@5@7&#,6|$#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f5 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,5|@7|$#,)! +3 f1 (967|@7|0@5@7&#,5|@7|$#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f5 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,5|$#,)! +3 f1 (967|@7|0@5@7&#,5|$#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f968 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f6 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f961 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f19 (967|@7|0@5@7&#,)! +3 f23 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f2 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f2 (967|@7|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1117 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1117 (967|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,968|$#,)! +3 f1 (967|@7|0@5@7&#,968|$#,)! +3 f0 (967|@7|0@5@7&#,961|$#,)! +3 f1 (967|@7|0@5@7&#,961|$#,)! +3 f0 (967|@7|0@5@7&#,2752|$#,)! +3 f1 (967|@7|0@5@7&#,2752|$#,)! +3 f0 (967|@7|0@5@7&#,961|$#,)! +3 f1 (967|@7|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,)! +3 f961 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,967|0@5@7&#,)! +3 f2 (967|0@5@7&#,967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f19 (967|0@5@7&#,)! +3 f23 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1117 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f967 (967|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,)! +3 f1117 (967|@7|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,1117|@7|0@5@7&#,)! +3 f1 (967|@7|0@5@7&#,1117|@7|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f2 (967|0@5@7&#,)! +3 f0 (967|@7|0@5@7&#,2|$#,)! +3 f1 (967|@7|0@5@7&#,2|$#,)! +3 f0 (967|0@5@2&#,)! +3 f1 (967|0@5@2&#,)! +3 f0 (968|$#,961|$#,1117|0@5@7&#,5|$#,5|$#,)! +3 f967 (968|$#,961|$#,1117|0@5@7&#,5|$#,5|$#,)! +3 f0 (968|$#,961|$#,)! +3 f967 (968|$#,961|$#,)! +3 f0 (967|0@5@7&#,)! +3 f1117 (967|0@5@7&#,)! +3 f0 (967|0@5@17&#,)! +3 f1 (967|0@5@17&#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -1 t2398|2398& -3 S_ltokenList{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,2477|@1|11@3@3&#elements,}! -0 s6894|-1 2480 -1 -1 t2479|2479& -0 a115|& -3 f1 (2481|@7|6@5@7&#,948|@3|6@5@19@2@0#,)! -3 f0 (2481|0@5@7&#,)! -3 f2 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f2 (2481|0@5@7&#,)! -3 f0 (2481|@7|0@5@7&#,)! -3 f5 (2481|@7|0@5@7&#,)! -3 f0 (2481|@7|0@5@7&#,)! -3 f2 (2481|@7|0@5@7&#,)! -3 f0 (2481|@7|0@5@7&#,)! -3 f2 (2481|@7|0@5@7&#,)! -3 f0 ()! -3 f2481 ()! -3 f0 (2481|0@5@7&#,948|0@5@2&#,)! -3 f1 (2481|0@5@7&#,948|0@5@2&#,)! -3 f0 (2481|0@5@7&#,)! -3 f1 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f1 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f989 (2481|0@5@7&#,)! -3 f0 (2481|0@5@2&#,)! -3 f1 (2481|0@5@2&#,)! -3 f0 (2481|0@5@7&#,)! -3 f948 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f948 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f2481 (2481|0@5@7&#,)! -3 f0 (948|0@5@2&#,)! -3 f2481 (948|0@5@2&#,)! -3 f0 (2481|@5|0@5@7&#,948|0@5@2&#,)! -3 f2481 (2481|@5|0@5@7&#,948|0@5@2&#,)! -3 f0 (2481|0@5@7&#,2481|0@5@7&#,)! -3 f2 (2481|0@5@7&#,2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f2 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f1 (2481|0@5@7&#,)! -0 s6923|-1 3090 -1 -0 s6915|-1 3057 -1 -0 s6833|-1 2854 -1 -0 s6880|-1 2884 -1 -0 s6827|-1 2663 -1 -0 s6882|-1 2664 -1 -0 s6737|& -0 s6900|-1 3129 -1 -0 s6904|-1 3135 -1 -0 s6761|-1 3185 -1 -0 s6765|-1 2540 -1 -0 s6794|-1 2642 -1 -3 e!16{TAG_ENUM,TAG_STRUCT,TAG_UNION,TAG_FWDSTRUCT,TAG_FWDUNION}! -0 s6999|& -0 s116|& -3 e!17{IMPPLAIN,IMPBRACKET,IMPQUOTE}! -0 s7000|& -0 s117|& -3 S_importNode{2538|@1|^#kind,948|@1|0@5@3&#val,}! -1 t2531|2531& -0 s118|-1 15372 -1 -3 f0 (2541|0@5@2&#,)! -3 f1 (2541|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2541 (948|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2541 (948|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2541 (948|0@5@2&#,)! -0 s119|-1 2551 -1 -1 t2550|2550& -3 S_importNodeList{5|@1|^#nelements,5|@1|^#nspace,2551|@1|11@3@3&#elements,}! -0 s6844|-1 2554 -1 -1 t2553|2553& -0 a120|& -3 f1 (2555|@7|&#,2541|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2555 ()! -3 f0 (2555|@5|$#,2541|0@0@2&#,)! -3 f2555 (2555|@5|$#,2541|0@0@2&#,)! -3 f0 (2555|$#,)! -3 f989 (2555|$#,)! -3 f0 (2555|0@0@2&#,)! -3 f1 (2555|0@0@2&#,)! -3 f0 (948|0@5@7&#,948|0@5@7&#,)! -3 f1 (948|0@5@7&#,948|0@5@7&#,)! -3 S_sortList{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,2302|@1|11@3@3&#elements,}! -0 s6893|-1 2569 -1 -1 t2568|2568& -0 a121|& -3 f0 ()! -3 f2570 ()! -3 f0 (2570|$#,941|$#,)! -3 f1 (2570|$#,941|$#,)! -3 f0 (2570|$#,)! -3 f1 (2570|$#,)! -3 f0 (2570|$#,)! -3 f1 (2570|$#,)! -3 f0 (2570|$#,)! -3 f989 (2570|$#,)! -3 f0 (2570|0@0@2&#,)! -3 f1 (2570|0@0@2&#,)! -3 f0 (2570|$#,)! -3 f941 (2570|$#,)! -1 t942|942& -3 S_lsymbolList{5|@1|^#nelements,5|@1|^#nspace,2585|@1|11@3@3&#elements,}! -0 s6845|-1 2588 -1 -1 t2587|2587& -0 a123|& -3 f1 (2589|@7|&#,942|@3|&#,)! -3 f0 ()! -3 f2589 ()! -3 f0 (2589|$#,942|$#,)! -3 f1 (2589|$#,942|$#,)! -3 f0 (2589|0@0@2&#,)! -3 f1 (2589|0@0@2&#,)! -3 S_lsymbolSet{5|@1|^#entries,5|@1|^#nspace,2585|@1|11@3@3&#elements,}! -0 s6817|-1 2599 -1 -1 t2598|2598& -0 a124|& -3 f0 (2600|0@5@7&#,)! -3 f2 (2600|0@5@7&#,)! -3 f1 (2600|@7|6@5@7&#,942|@3|&#,)! -3 f0 ()! -3 f2600 ()! -3 f0 (2600|0@5@7&#,942|$#,)! -3 f2 (2600|0@5@7&#,942|$#,)! -3 f0 (2600|0@5@7&#,942|$#,)! -3 f2 (2600|0@5@7&#,942|$#,)! -3 f0 (2600|0@5@7&#,)! -3 f989 (2600|0@5@7&#,)! -3 f0 (2600|0@5@2&#,)! -3 f1 (2600|0@5@2&#,)! -3 S_sortSet{5|@1|^#entries,5|@1|^#nspace,2302|@1|11@3@3&#elements,}! -0 s6816|-1 2616 -1 -1 t2615|2615& -0 a125|-1 15097 -1 -3 f1 (2617|@7|6@5@7&#,941|@3|&#,)! -3 f0 (2617|0@5@7&#,)! -3 f2 (2617|0@5@7&#,)! -3 f0 (2617|@7|0@5@7&#,)! -3 f5 (2617|@7|0@5@7&#,)! -3 f0 ()! -3 f2617 ()! -3 f0 (2617|0@5@7&#,941|$#,)! -3 f2 (2617|0@5@7&#,941|$#,)! -3 f0 (2617|0@5@7&#,941|$#,)! -3 f2 (2617|0@5@7&#,941|$#,)! -3 f0 (2617|0@5@7&#,)! -3 f989 (2617|0@5@7&#,)! -3 f0 (2617|0@5@7&#,)! -3 f989 (2617|0@5@7&#,)! -3 f0 (2617|0@5@7&#,)! -3 f989 (2617|0@5@7&#,)! -3 f0 (2617|0@5@2&#,)! -3 f1 (2617|0@5@2&#,)! -3 f0 (2617|0@5@7&#,)! -3 f941 (2617|0@5@7&#,)! -3 f0 (2617|0@5@7&#,)! -3 f2617 (2617|0@5@7&#,)! -3 S_pairNode{941|@1|^#sort,948|@1|0@5@3&#tok,}! -1 t2532|2532& -0 s127|-1 15261 -1 -3 f0 (2643|0@5@2&#,)! -3 f1 (2643|0@5@2&#,)! -0 s128|-1 2647 -1 -1 t2646|2646& -3 S_pairNodeList{5|@1|^#nelements,5|@1|^#nspace,2647|@1|11@3@3&#elements,}! -0 s6846|-1 2650 -1 -1 t2649|2649& -0 a129|& -3 f1 (2651|@7|6@5@7&#,2643|@3|6@0@19@2@0#,)! -3 f0 (2651|0@5@7&#,)! -3 f2 (2651|0@5@7&#,)! -3 f0 ()! -3 f2651 ()! -3 f0 (2651|0@5@7&#,2643|0@0@4&#,)! -3 f1 (2651|0@5@7&#,2643|0@0@4&#,)! -3 f0 (2651|0@5@7&#,)! -3 f989 (2651|0@5@7&#,)! -3 f0 (2651|0@5@2&#,)! -3 f1 (2651|0@5@2&#,)! -1 t2525|2525& -1 t2526|2526& -3 S_declaratorInvNode{2663|@1|0@0@3&#declarator,2664|@1|0@0@3&#body,}! -0 s6752|-1 2667 -1 -1 t2666|2666& -0 s132|-1 15075 -1 -3 f0 (2668|0@5@2&#,)! -3 f1 (2668|0@5@2&#,)! -3 f0 (2668|$#,)! -3 f989 (2668|$#,)! -0 s133|-1 2674 -1 -1 t2673|2673& -3 S_declaratorInvNodeList{5|@1|^#nelements,5|@1|^#nspace,2674|@1|11@3@3&#elements,}! -0 s6847|-1 2677 -1 -1 t2676|2676& -0 a134|& -3 f1 (2678|@7|&#,2668|@3|6@0@19@2@0#,)! -3 f0 (2678|$#,)! -3 f5 (2678|$#,)! -3 f0 ()! -3 f2678 ()! -3 f0 (2678|@5|$#,2668|0@0@2&#,)! -3 f2678 (2678|@5|$#,2668|0@0@2&#,)! -3 f0 (2678|$#,)! -3 f989 (2678|$#,)! -3 f0 (2678|0@0@2&#,)! -3 f1 (2678|0@0@2&#,)! -3 e!18{TEXPR_BASE,TEXPR_PTR,TEXPR_ARRAY,TEXPR_FCN}! -0 s7001|& -0 s135|& -3 S!19{945|@1|0@5@3&#elementtype,934|@1|0@5@3&#size,}! -0 s6754|& -3 S!20{945|@1|0@5@3&#returntype,2346|@1|0@5@3&#args,}! -0 s6793|& -3 U!21{948|@1|0@5@3&#base,945|@1|0@5@3&#pointer,2693|@1|^#array,2695|@1|^#function,}! -0 s6972|& -3 S_typeExpr{5|@1|^#wrapped,2692|@1|^#kind,2697|@1|^#content,941|@1|^#sort,}! -3 f0 (945|0@5@2&#,)! -3 f1 (945|0@5@2&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -0 s58|& -3 f0 (2706|0@5@2&#,)! -3 f1 (2706|0@5@2&#,)! -3 S_declaratorNode{948|@1|0@5@3&#id,945|@1|0@5@3&#type,2|@1|^#isRedecl,}! -0 s130|-1 15116 -1 -3 f0 (2710|$#,)! -3 f989 (2710|$#,)! -3 f0 (2710|0@5@2&#,)! -3 f1 (2710|0@5@2&#,)! -0 s136|-1 2716 -1 -1 t2715|2715& -3 S_declaratorNodeList{5|@1|^#nelements,5|@1|^#nspace,2716|@1|11@3@3&#elements,}! -0 s6848|-1 2719 -1 -1 t2718|2718& -0 a137|& -3 f1 (2720|@7|&#,2710|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2720 ()! -3 f0 (2720|@5|$#,2710|0@0@2&#,)! -3 f2720 (2720|@5|$#,2710|0@0@2&#,)! -3 f0 (2720|$#,)! -3 f989 (2720|$#,)! -3 f0 (2720|0@0@2&#,)! -3 f1 (2720|0@0@2&#,)! -3 f0 (2720|$#,)! -3 f2720 (2720|$#,)! -3 S_arrayQualNode{948|@1|0@5@3&#tok,933|@1|0@5@3&#term,}! -0 s6799|-1 2734 -1 -1 t2733|2733& -0 s138|& -3 S_varNode{948|@1|0@5@3&#varid,2|@1|^#isObj,937|@1|0@5@3&#type,941|@1|^#sort,}! -0 s6909|-1 2738 -1 -1 t2737|2737& -0 s139|-1 15335 -1 -3 f0 (2739|$#,)! -3 f2739 (2739|$#,)! -3 f0 (2739|0@5@2&#,)! -3 f1 (2739|0@5@2&#,)! -0 s140|-1 2745 -1 -1 t2744|2744& -3 S_varNodeList{5|@1|^#nelements,5|@1|^#nspace,2745|@1|11@3@3&#elements,}! -0 s6849|-1 2748 -1 -1 t2747|2747& -0 a141|& -3 f1 (2749|@7|&#,2739|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2749 ()! -3 f0 (2749|@5|$#,2739|0@0@2&#,)! -3 f2749 (2749|@5|$#,2739|0@0@2&#,)! -3 f0 (2749|$#,)! -3 f2749 (2749|$#,)! -3 f0 (2749|$#,)! -3 f989 (2749|$#,)! -3 f0 (2749|0@0@2&#,)! -3 f1 (2749|0@0@2&#,)! -3 S_quantifierNode{948|@1|0@5@3&#quant,2749|@1|0@0@3&#vars,2|@1|^#isForall,}! -0 s6873|-1 2763 -1 -1 t2762|2762& -0 s142|-1 15348 -1 -3 f0 (2764|$#,)! -3 f2764 (2764|$#,)! -3 f0 (2764|0@5@2&#,)! -3 f1 (2764|0@5@2&#,)! -0 s143|-1 2770 -1 -1 t2769|2769& -3 S_quantifierNodeList{5|@1|^#nelements,5|@1|^#nspace,2770|@1|11@3@3&#elements,}! -0 s6850|-1 2773 -1 -1 t2772|2772& -0 a144|& -3 f1 (2774|@7|&#,2764|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2774 ()! -3 f0 (2774|@5|$#,2764|0@0@2&#,)! -3 f2774 (2774|@5|$#,2764|0@0@2&#,)! -3 f0 (2774|$#,)! -3 f989 (2774|$#,)! -3 f0 (2774|0@0@2&#,)! -3 f1 (2774|0@0@2&#,)! -3 f0 (2774|$#,)! -3 f2774 (2774|$#,)! -3 e!22{SRN_TERM,SRN_TYPE,SRN_OBJ,SRN_SPECIAL}! -0 s7002|& -0 s145|& -3 U!23{933|@1|0@0@3&#term,937|@1|0@5@3&#type,952|@1|0@5@18&#ref,}! -0 s6971|& -3 S_storeRefNode{2788|@1|^#kind,2789|@1|^#content,}! -0 s6766|-1 2793 -1 -1 t2792|2792& -0 s146|-1 15163 -1 -3 f0 (2794|$#,)! -3 f2794 (2794|$#,)! -3 f0 (2794|$#,)! -3 f2 (2794|$#,)! -3 f0 (2794|$#,)! -3 f2 (2794|$#,)! -3 f0 (2794|$#,)! -3 f2 (2794|$#,)! -3 f0 (2794|$#,)! -3 f2 (2794|$#,)! -3 f0 (2794|0@5@2&#,)! -3 f1 (2794|0@5@2&#,)! -0 s147|-1 2808 -1 -1 t2807|2807& -3 S_storeRefNodeList{5|@1|^#nelements,5|@1|^#nspace,2808|@1|11@3@3&#elements,}! -0 s6851|-1 2811 -1 -1 t2810|2810& -0 a148|& -3 f1 (2812|@7|&#,2794|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2812 ()! -3 f0 (2812|@5|$#,2794|0@0@2&#,)! -3 f2812 (2812|@5|$#,2794|0@0@2&#,)! -3 f0 (2812|$#,)! -3 f989 (2812|$#,)! -3 f0 (2812|0@0@2&#,)! -3 f1 (2812|0@0@2&#,)! -3 f0 (2812|$#,)! -3 f2812 (2812|$#,)! -3 S_modifyNode{948|@1|0@5@3&#tok,2|@1|^#modifiesNothing,2|@1|^#hasStoreRefList,2812|@1|11@0@3&#list,}! -0 s6906|-1 2826 -1 -1 t2825|2825& -0 s149|& -3 f0 (2827|0@5@7&#,)! -3 f989 (2827|0@5@7&#,)! -3 S_letDeclNode{948|@1|0@5@3&#varid,937|@1|0@5@3&#sortspec,933|@1|0@0@3&#term,941|@1|^#sort,}! -0 s6910|-1 2832 -1 -1 t2831|2831& -0 s150|-1 15129 -1 -3 f0 (2833|0@5@2&#,)! -3 f1 (2833|0@5@2&#,)! -0 s151|-1 2837 -1 -1 t2836|2836& -3 S_letDeclNodeList{5|@1|^#nelements,5|@1|^#nspace,2837|@1|11@3@3&#elements,}! -0 s6852|-1 2840 -1 -1 t2839|2839& -0 a152|& -3 f1 (2841|@7|&#,2833|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2841 ()! -3 f0 (2841|@5|$#,2833|0@0@2&#,)! -3 f2841 (2841|@5|$#,2833|0@0@2&#,)! -3 f0 (2841|$#,)! -3 f989 (2841|$#,)! -3 f0 (2841|0@0@2&#,)! -3 f1 (2841|0@0@2&#,)! -3 e!24{ACT_SELF,ACT_ITER,ACT_ALTERNATE,ACT_SEQUENCE}! -0 s7003|& -0 s153|& -1 t2523|2523& -0 s6853|-1 2856 -1 -1 t2855|2855& -3 U!25{2854|@1|0@0@3&#self,2856|@1|0@0@3&#args,}! -0 s6962|& -3 S_programNode{5|@1|^#wrapped,2853|@1|^#kind,2857|@1|^#content,}! -0 s6884|-1 2861 -1 -1 t2860|2860& -0 s156|-1 15313 -1 -3 f0 (2862|0@5@2&#,)! -3 f1 (2862|0@5@2&#,)! -3 f0 (2862|$#,)! -3 f989 (2862|$#,)! -0 s157|-1 2868 -1 -1 t2867|2867& -3 S_programNodeList{5|@1|^#nelements,5|@1|^#nspace,2868|@1|11@3@3&#elements,}! -0 a155|& -3 f1 (2870|@7|&#,2862|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2870 ()! -3 f0 (2870|$#,2862|0@0@4&#,)! -3 f1 (2870|$#,2862|0@0@4&#,)! -3 f0 (2870|$#,)! -3 f989 (2870|$#,)! -3 f0 (2870|0@0@2&#,)! -3 f1 (2870|0@0@2&#,)! -3 e!26{LPD_PLAIN,LPD_CHECKS,LPD_REQUIRES,LPD_ENSURES,LPD_INTRACLAIM,LPD_CONSTRAINT,LPD_INITIALLY}! -0 s7004|& -0 s158|& -3 S_lclPredicateNode{948|@1|0@5@3&#tok,2882|@1|^#kind,933|@1|0@0@3&#predicate,}! -1 t2524|2524& -0 s159|& -3 S_exposedNode{948|@1|0@5@3&#tok,937|@1|0@5@3&#type,2678|@1|0@0@3&#decls,}! -0 s6881|-1 2888 -1 -1 t2887|2887& -0 s160|& -3 f0 (2889|$#,)! -3 f989 (2889|$#,)! -3 e!27{TK_ABSTRACT,TK_EXPOSED,TK_UNION}! -0 s7005|& -0 s161|& -3 S_CTypesNode{1009|@1|^#intfield,941|@1|^#sort,2481|@1|0@5@3&#ctypes,}! -0 s6829|-1 2897 -1 -1 t2896|2896& -0 s162|& -3 S_initDeclNode{2710|@1|0@0@3&#declarator,933|@1|0@5@3&#value,}! -0 s6753|-1 2901 -1 -1 t2900|2900& -0 s163|-1 15048 -1 -3 f0 (2902|$#,)! -3 f2 (2902|$#,)! -3 f0 (2902|0@5@2&#,)! -3 f1 (2902|0@5@2&#,)! -0 s164|-1 2908 -1 -1 t2907|2907& -3 S_initDeclNodeList{5|@1|^#nelements,5|@1|^#nspace,2908|@1|11@3@3&#elements,}! -0 s6854|-1 2911 -1 -1 t2910|2910& -0 a165|& -3 f1 (2912|@7|&#,2902|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2912 ()! -3 f0 (2912|@5|$#,2902|0@0@2&#,)! -3 f2912 (2912|@5|$#,2902|0@0@2&#,)! -3 f0 (2912|$#,)! -3 f989 (2912|$#,)! -3 f0 (2912|0@0@2&#,)! -3 f1 (2912|0@0@2&#,)! -3 S_constDeclarationNode{937|@1|0@5@3&#type,2912|@1|0@0@3&#decls,}! -0 s6801|-1 2924 -1 -1 t2923|2923& -0 s166|& -3 f0 (2925|0@5@7&#,)! -3 f989 (2925|0@5@7&#,)! -3 e!28{QLF_NONE,QLF_CONST,QLF_VOLATILE}! -0 s7006|& -0 s167|& -3 S_varDeclarationNode{2|@1|^#isSpecial,952|@1|11@5@18&#sref,2|@1|^#isGlobal,2|@1|^#isPrivate,2930|@1|^#qualifier,937|@1|0@5@3&#type,2912|@1|0@0@3&#decls,}! -0 s6930|-1 2933 -1 +1 t2754|2754& +3 S!26{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,2833|@1|11@3@3&#elements,}^2836 +0 s3619|& +1 t2834|2834& +0 a3620|& +3 f1 (2837|@7|6@5@7&#,967|@3|6@5@19@2@0#,)! +3 f0 (2837|0@5@7&#,)! +3 f2 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f2 (2837|0@5@7&#,)! +3 f0 (2837|@7|0@5@7&#,)! +3 f5 (2837|@7|0@5@7&#,)! +3 f0 (2837|@7|0@5@7&#,)! +3 f2 (2837|@7|0@5@7&#,)! +3 f0 (2837|@7|0@5@7&#,)! +3 f2 (2837|@7|0@5@7&#,)! +3 f0 ()! +3 f2837 ()! +3 f0 (2837|0@5@7&#,967|0@5@2&#,)! +3 f1 (2837|0@5@7&#,967|0@5@2&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1117 (2837|0@5@7&#,)! +3 f0 (2837|0@5@2&#,)! +3 f1 (2837|0@5@2&#,)! +3 f0 (2837|0@5@7&#,)! +3 f967 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f967 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f2837 (2837|0@5@7&#,)! +3 f0 (967|0@5@2&#,)! +3 f2837 (967|0@5@2&#,)! +3 f0 (2837|@5|0@5@7&#,967|0@5@2&#,)! +3 f2837 (2837|@5|0@5@7&#,967|0@5@2&#,)! +3 f0 (2837|0@5@7&#,2837|0@5@7&#,)! +3 f2 (2837|0@5@7&#,2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f2 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1 (2837|0@5@7&#,)! +3 e!27{TAG_ENUM,TAG_STRUCT,TAG_UNION,TAG_FWDSTRUCT,TAG_FWDUNION}! +0 s3644|& +0 s3645|& +3 e!28{IMPPLAIN,IMPBRACKET,IMPQUOTE}! +0 s3649|& +0 s3650|& +3 S!29{2882|@1|^#kind,967|@1|0@5@3&#val,}^2885 +0 s3651|& +1 t2883|2883& +0 s3652|-1 17362 -1 +3 f0 (2886|0@5@2&#,)! +3 f1 (2886|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f2886 (967|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f2886 (967|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f2886 (967|0@5@2&#,)! +0 s3657|-1 2896 -1 +1 t2895|2895& +3 S!30{5|@1|^#nelements,5|@1|^#nspace,2896|@1|11@3@3&#elements,}^2899 +0 s3658|& +1 t2897|2897& +0 a3659|& +3 f1 (2900|@7|&#,2886|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f2900 ()! +3 f0 (2900|@5|$#,2886|0@0@2&#,)! +3 f2900 (2900|@5|$#,2886|0@0@2&#,)! +3 f0 (2900|$#,)! +3 f1117 (2900|$#,)! +3 f0 (2900|0@0@2&#,)! +3 f1 (2900|0@0@2&#,)! +3 f0 (967|0@5@7&#,967|0@5@7&#,)! +3 f1 (967|0@5@7&#,967|0@5@7&#,)! +1 t960|960& +3 S!31{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,2912|@1|11@3@3&#elements,}^2915 +0 s3668|& +1 t2913|2913& +0 a3669|& +3 f0 ()! +3 f2916 ()! +3 f0 (2916|$#,960|$#,)! +3 f1 (2916|$#,960|$#,)! +3 f0 (2916|$#,)! +3 f1 (2916|$#,)! +3 f0 (2916|$#,)! +3 f1 (2916|$#,)! +3 f0 (2916|$#,)! +3 f1117 (2916|$#,)! +3 f0 (2916|0@0@2&#,)! +3 f1 (2916|0@0@2&#,)! +3 f0 (2916|$#,)! +3 f960 (2916|$#,)! +1 t961|961& +3 S!32{5|@1|^#nelements,5|@1|^#nspace,2931|@1|11@3@3&#elements,}^2934 +0 s3678|& 1 t2932|2932& -0 s168|-1 15324 -1 -3 f0 (2934|0@5@2&#,)! -3 f1 (2934|0@5@2&#,)! -3 f0 (2934|0@5@7&#,)! -3 f989 (2934|0@5@7&#,)! -0 s169|-1 2940 -1 -1 t2939|2939& -3 S_varDeclarationNodeList{5|@1|^#nelements,5|@1|^#nspace,2940|@1|11@3@3&#elements,}! -0 s6855|-1 2943 -1 -1 t2942|2942& -0 a170|& -3 f1 (2944|@7|&#,2934|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f2944 ()! -3 f0 (2944|$#,2934|0@0@4&#,)! -3 f1 (2944|$#,2934|0@0@4&#,)! -3 f0 (2944|$#,)! -3 f989 (2944|$#,)! -3 f0 (2944|0@0@2&#,)! -3 f1 (2944|0@0@2&#,)! -0 s171|& -3 f0 (2954|$#,)! -3 f989 (2954|$#,)! -3 f0 (2954|0@0@2&#,)! -3 f1 (2954|0@0@2&#,)! -3 S_claimNode{948|@1|0@5@3&#name,2346|@1|0@5@3&#params,2954|@1|0@5@3&#globals,2841|@1|0@5@3&#lets,2885|@1|0@5@3&#require,2862|@1|0@5@3&#body,2885|@1|0@5@3&#ensures,}! -0 s6932|-1 2961 -1 +0 a3679|& +3 f1 (2935|@7|&#,961|@3|&#,)! +3 f0 ()! +3 f2935 ()! +3 f0 (2935|$#,961|$#,)! +3 f1 (2935|$#,961|$#,)! +3 f0 (2935|0@0@2&#,)! +3 f1 (2935|0@0@2&#,)! +3 S!33{5|@1|^#entries,5|@1|^#nspace,2931|@1|11@3@3&#elements,}^2945 +0 s3686|& +1 t2943|2943& +0 a3687|& +3 f0 (2946|0@5@7&#,)! +3 f2 (2946|0@5@7&#,)! +3 f1 (2946|@7|6@5@7&#,961|@3|&#,)! +3 f0 ()! +3 f2946 ()! +3 f0 (2946|0@5@7&#,961|$#,)! +3 f2 (2946|0@5@7&#,961|$#,)! +3 f0 (2946|0@5@7&#,961|$#,)! +3 f2 (2946|0@5@7&#,961|$#,)! +3 f0 (2946|0@5@7&#,)! +3 f1117 (2946|0@5@7&#,)! +3 f0 (2946|0@5@2&#,)! +3 f1 (2946|0@5@2&#,)! +3 S!34{5|@1|^#entries,5|@1|^#nspace,2912|@1|11@3@3&#elements,}^2962 +0 s3697|& 1 t2960|2960& -0 s172|& -3 f0 (2962|$#,)! -3 f989 (2962|$#,)! -3 S_fcnNode{948|@1|0@5@3&#name,937|@1|0@5@3&#typespec,2710|@1|0@0@3&#declarator,2954|@1|0@0@3&#globals,2944|@1|0@0@3&#inits,2841|@1|0@0@3&#lets,2885|@1|0@5@3&#checks,2885|@1|0@5@3&#require,2827|@1|0@5@3&#modify,2885|@1|0@5@3&#ensures,2885|@1|0@5@3&#claim,1500|@1|^#special,}! -0 s6945|-1 2967 -1 -1 t2966|2966& -0 s173|-1 15285 -1 -3 f0 (2968|0@5@2&#,)! -3 f1 (2968|0@5@2&#,)! -3 f0 (2968|0@5@7&#,)! -3 f989 (2968|0@5@7&#,)! -0 s174|-1 2974 -1 -1 t2973|2973& -3 S_fcnNodeList{5|@1|^#nelements,5|@1|^#nspace,2974|@1|11@3@3&#elements,}! -0 s6856|-1 2977 -1 -1 t2976|2976& -0 a175|& -3 f1 (2978|@7|6@5@7&#,2968|@3|6@0@19@2@0#,)! -3 f0 (2978|0@5@7&#,)! -3 f2 (2978|0@5@7&#,)! -3 f0 (2978|0@5@7&#,)! -3 f2 (2978|0@5@7&#,)! -3 f0 (2978|@7|0@5@7&#,)! -3 f5 (2978|@7|0@5@7&#,)! -3 f0 (2978|@7|0@5@7&#,)! -3 f2 (2978|@7|0@5@7&#,)! -3 f0 ()! -3 f2978 ()! -3 f0 (2978|@5|0@5@7&#,2968|0@0@4&#,)! -3 f2978 (2978|@5|0@5@7&#,2968|0@0@4&#,)! -3 f0 (2978|0@5@7&#,)! -3 f989 (2978|0@5@7&#,)! -3 f0 (2978|0@5@2&#,)! -3 f1 (2978|0@5@2&#,)! -3 S_iterNode{948|@1|0@5@3&#name,2346|@1|0@5@3&#params,}! -0 s6780|-1 2998 -1 -1 t2997|2997& -0 s176|& -3 f0 (2999|0@5@7&#,)! -3 f989 (2999|0@5@7&#,)! -3 S_abstBodyNode{948|@1|0@5@3&#tok,2884|@1|0@5@3&#typeinv,2978|@1|0@5@3&#fcns,}! -0 s131|& -3 f0 (3003|$#,)! -3 f989 (3003|$#,)! -3 S_abstractNode{948|@1|0@5@3&#tok,2|@1|^#isMutable,2|@1|^#isRefCounted,948|@1|0@5@3&#name,941|@1|^#sort,3003|@1|0@0@3&#body,}! -0 s6928|-1 3008 -1 -1 t3007|3007& -0 s177|& -3 f0 (3009|$#,)! -3 f989 (3009|$#,)! -3 S_stDeclNode{937|@1|0@5@3&#lcltypespec,2720|@1|0@0@3&#declarators,}! -0 s6775|-1 3014 -1 -1 t3013|3013& -0 s178|-1 15140 -1 -3 f0 (3015|0@5@2&#,)! -3 f1 (3015|0@5@2&#,)! -3 f0 (3015|$#,)! -3 f3015 (3015|$#,)! -0 s179|-1 3021 -1 +0 a3698|-1 17087 -1 +3 f1 (2963|@7|6@5@7&#,960|@3|&#,)! +3 f0 (2963|0@5@7&#,)! +3 f2 (2963|0@5@7&#,)! +3 f0 (2963|@7|0@5@7&#,)! +3 f5 (2963|@7|0@5@7&#,)! +3 f0 ()! +3 f2963 ()! +3 f0 (2963|0@5@7&#,960|$#,)! +3 f2 (2963|0@5@7&#,960|$#,)! +3 f0 (2963|0@5@7&#,960|$#,)! +3 f2 (2963|0@5@7&#,960|$#,)! +3 f0 (2963|0@5@7&#,)! +3 f1117 (2963|0@5@7&#,)! +3 f0 (2963|0@5@7&#,)! +3 f1117 (2963|0@5@7&#,)! +3 f0 (2963|0@5@7&#,)! +3 f1117 (2963|0@5@7&#,)! +3 f0 (2963|0@5@2&#,)! +3 f1 (2963|0@5@2&#,)! +3 f0 (2963|0@5@7&#,)! +3 f960 (2963|0@5@7&#,)! +3 f0 (2963|0@5@7&#,)! +3 f2963 (2963|0@5@7&#,)! +3 S!35{960|@1|^#sort,967|@1|0@5@3&#tok,}^2989 +0 s3712|& +1 t2987|2987& +0 s3713|-1 17251 -1 +3 f0 (2990|0@5@2&#,)! +3 f1 (2990|0@5@2&#,)! +0 s3715|-1 2994 -1 +1 t2993|2993& +3 S!36{5|@1|^#nelements,5|@1|^#nspace,2994|@1|11@3@3&#elements,}^2997 +0 s3716|& +1 t2995|2995& +0 a3717|& +3 f1 (2998|@7|6@5@7&#,2990|@3|6@0@19@2@0#,)! +3 f0 (2998|0@5@7&#,)! +3 f2 (2998|0@5@7&#,)! +3 f0 ()! +3 f2998 ()! +3 f0 (2998|0@5@7&#,2990|0@0@4&#,)! +3 f1 (2998|0@5@7&#,2990|0@0@4&#,)! +3 f0 (2998|0@5@7&#,)! +3 f1117 (2998|0@5@7&#,)! +3 f0 (2998|0@5@2&#,)! +3 f1 (2998|0@5@2&#,)! +3 S!37{967|@1|0@5@3&#id,964|@1|0@5@3&#type,2|@1|^#isRedecl,}^3012 +0 s3726|& +1 t3010|3010& +0 s3727|-1 17106 -1 +3 f0 (3013|$#,)! +3 f1117 (3013|$#,)! +3 f0 (3013|0@5@2&#,)! +3 f1 (3013|0@5@2&#,)! +0 s3730|-1 3019 -1 +1 t3018|3018& +3 S!38{5|@1|^#nelements,5|@1|^#nspace,3019|@1|11@3@3&#elements,}^3022 +0 s3731|& 1 t3020|3020& -3 S_stDeclNodeList{5|@1|^#nelements,5|@1|^#nspace,3021|@1|11@3@3&#elements,}! -0 s6857|-1 3024 -1 -1 t3023|3023& -0 a180|& -3 f1 (3025|@7|&#,3015|@3|6@0@19@2@0#,)! -3 f0 (3025|$#,)! -3 f5 (3025|$#,)! -3 f0 ()! -3 f3025 ()! -3 f0 (3025|@5|$#,3015|0@0@2&#,)! -3 f3025 (3025|@5|$#,3015|0@0@2&#,)! -3 f0 (3025|$#,)! -3 f989 (3025|$#,)! -3 f0 (3025|0@0@2&#,)! -3 f1 (3025|0@0@2&#,)! -3 f0 (3025|$#,)! -3 f3025 (3025|$#,)! -3 S_taggedUnionNode{3025|@1|0@0@3&#structdecls,2710|@1|0@0@3&#declarator,}! -0 s6795|-1 3041 -1 -1 t3040|3040& -0 s181|& -3 f0 (3042|$#,)! -3 f989 (3042|$#,)! -3 U!29{3009|@1|0@0@3&#abstract,2889|@1|0@0@3&#exposed,3042|@1|0@0@3&#taggedunion,}! -0 s6964|& -3 S_typeNode{2894|@1|^#kind,3045|@1|^#content,}! -0 s6767|-1 3049 -1 -1 t3048|3048& -0 s182|& -3 f0 (3050|0@5@7&#,)! -3 f989 (3050|0@5@7&#,)! -3 e!30{SU_STRUCT,SU_UNION}! -0 s7007|& -0 s183|& -3 S_strOrUnionNode{3055|@1|^#kind,948|@1|0@5@3&#tok,948|@1|0@5@3&#opttagid,941|@1|^#sort,3025|@1|0@0@17&#structdecls,}! -1 t2522|2522& -0 s184|& -3 f0 (3058|0@5@7&#,)! -3 f989 (3058|0@5@7&#,)! -3 S_enumSpecNode{948|@1|0@5@3&#tok,948|@1|0@5@3&#opttagid,2481|@1|0@5@17&#enums,941|@1|^#sort,}! -0 s6907|-1 3063 -1 -1 t3062|3062& -0 s185|& -3 f0 (3064|0@5@7&#,)! -3 f989 (3064|0@5@7&#,)! -3 e!31{LTS_TYPE,LTS_STRUCTUNION,LTS_ENUM,LTS_CONJ}! -0 s7008|& -0 s186|& -0 s55|& -3 S_lclconj{3070|@1|0@5@3&#a,3070|@1|0@5@3&#b,}! -0 s6746|-1 3073 -1 -1 t3072|3072& -0 s187|& -3 U!32{2898|@1|0@5@3&#type,3058|@1|0@5@3&#structorunion,3064|@1|0@5@3&#enumspec,3074|@1|0@0@3&#conj,}! -0 s6977|& -3 S_lclTypeSpecNode{3069|@1|^#kind,2156|@1|0@5@3&#quals,3075|@1|^#content,5|@1|^#pointers,}! -3 f0 (937|0@5@7&#,)! -3 f2 (937|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f937 (937|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f989 (937|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f989 (937|0@5@7&#,)! -3 S_typeNamePack{2|@1|^#isObj,937|@1|0@5@3&#type,2706|@1|0@0@3&#abst,}! -0 s6830|-1 3088 -1 -1 t3087|3087& -0 s188|& -1 t2521|2521& -3 S_typeNameNode{2|@1|^#isTypeName,3089|@1|0@5@3&#typename,3090|@1|0@5@3&#opform,}! -0 s6831|-1 3093 -1 -1 t3092|3092& -0 s190|-1 15272 -1 -3 f0 (3094|0@5@2&#,)! -3 f1 (3094|0@5@2&#,)! -3 f0 (3094|0@5@7&#,)! -3 f989 (3094|0@5@7&#,)! -0 s191|-1 3100 -1 -1 t3099|3099& -3 S_typeNameNodeList{5|@1|^#nelements,5|@1|^#nspace,3100|@1|11@3@3&#elements,}! -0 s6858|-1 3103 -1 -1 t3102|3102& -0 a192|& -3 f1 (3104|@7|&#,3094|@3|6@0@19@2@0#,)! -3 f0 (3104|$#,)! -3 f5 (3104|$#,)! -3 f0 (3104|$#,)! -3 f2 (3104|$#,)! -3 f0 ()! -3 f3104 ()! -3 f0 (3104|@5|$#,3094|0@0@2&#,)! -3 f3104 (3104|@5|$#,3094|0@0@2&#,)! -3 f0 (3104|$#,)! -3 f989 (3104|$#,)! -3 f0 (3104|0@0@2&#,)! -3 f1 (3104|0@0@2&#,)! -3 e!33{OPF_IF,OPF_ANYOP,OPF_MANYOP,OPF_ANYOPM,OPF_MANYOPM,OPF_MIDDLE,OPF_MMIDDLE,OPF_MIDDLEM,OPF_MMIDDLEM,OPF_BMIDDLE,OPF_BMMIDDLE,OPF_BMIDDLEM,OPF_BMMIDDLEM,OPF_SELECT,OPF_MAP,OPF_MSELECT,OPF_MMAP}! -0 s7009|& -0 s193|& -3 U!34{5|@1|^#middle,948|@1|0@5@3&#anyop,948|@1|0@5@3&#id,}! -0 s6969|& -0 s387|& -3 S_opFormNode{948|@1|0@5@3&#tok,3120|@1|^#kind,3123|@1|^#content,6|@1|^#key,948|@1|0@5@3&#close,}! -0 s189|& -3 f0 (3125|0@5@7&#,)! -3 f989 (3125|0@5@7&#,)! -3 S_quantifiedTermNode{2774|@1|0@0@3&#quantifiers,948|@1|0@5@3&#open,933|@1|0@0@3&#body,948|@1|0@5@3&#close,}! -1 t2528|2528& -0 s194|& -3 e!35{TRM_LITERAL,TRM_CONST,TRM_VAR,TRM_ZEROARY,TRM_APPLICATION,TRM_QUANTIFIER,TRM_UNCHANGEDALL,TRM_UNCHANGEDOTHERS,TRM_SIZEOF}! -0 s7010|& -0 s195|& -3 S_sigNode{948|@1|0@5@3&#tok,2481|@1|0@5@3&#domain,948|@1|0@5@3&#range,6|@1|^#key,}! -1 t2529|2529& -0 s196|-1 14982 -1 -3 f0 (3136|0@5@7&#,)! -3 f989 (3136|0@5@7&#,)! -3 f0 (3136|0@5@2&#,)! -3 f1 (3136|0@5@2&#,)! -3 f0 (3136|$#,)! -3 f3136 (3136|$#,)! -3 f0 (3136|0@0@17&#,)! -3 f1 (3136|0@0@17&#,)! -0 s197|-1 3146 -1 -1 t3145|3145& -3 S_sigNodeSet{5|@1|^#entries,5|@1|^#nspace,3146|@1|11@3@3&#elements,}! -0 s6818|-1 3149 -1 -1 t3148|3148& -0 a198|& -3 f1 (3150|@7|6@5@7&#,3136|@3|6@0@19@2@0#,)! -3 f0 (3150|0@5@7&#,)! -3 f2 (3150|0@5@7&#,)! -3 f0 (3150|0@5@7&#,)! -3 f2 (3150|0@5@7&#,)! -3 f0 (3150|@7|0@5@7&#,)! -3 f2 (3150|@7|0@5@7&#,)! -3 f0 (3150|@7|0@5@7&#,)! -3 f5 (3150|@7|0@5@7&#,)! -3 f0 ()! -3 f3150 ()! -3 f0 (3136|0@0@17&#,)! -3 f3150 (3136|0@0@17&#,)! -3 f0 (3150|0@5@7&#,3136|0@0@17&#,)! -3 f2 (3150|0@5@7&#,3136|0@0@17&#,)! -3 f0 (3150|0@5@7&#,)! -3 f989 (3150|0@5@7&#,)! -3 f0 (3150|0@5@7&#,)! -3 f989 (3150|0@5@7&#,)! -3 f0 (3150|0@5@2&#,)! -3 f1 (3150|0@5@2&#,)! -3 f0 (3150|0@5@7&#,)! -3 f989 (3150|0@5@7&#,)! -3 S_signNode{948|@1|0@5@3&#tok,2570|@1|0@0@3&#domain,941|@1|^#range,6|@1|^#key,}! -0 s6905|-1 3176 -1 -1 t3175|3175& -0 s199|& -3 f0 (3177|$#,)! -3 f989 (3177|$#,)! -3 f0 (3177|0@0@2&#,)! -3 f1 (3177|0@0@2&#,)! -3 U!36{948|@1|0@5@3&#opid,3125|@1|0@5@3&#opform,}! -0 s6959|& -3 S_nameNode{2|@1|^#isOpId,3182|@1|^#content,}! -1 t2530|2530& -0 s200|& -3 f0 (3186|0@5@2&#,)! -3 f1 (3186|0@5@2&#,)! -3 f0 (3186|0@5@7&#,)! -3 f3186 (3186|0@5@7&#,)! -3 f0 (3186|0@5@7&#,)! -3 f989 (3186|0@5@7&#,)! -3 f0 (3186|$#,)! -3 f3186 (3186|$#,)! -3 S_lslOp{3186|@1|0@5@2&#name,3136|@1|0@0@18&#signature,}! -0 s6783|-1 3197 -1 -1 t3196|3196& -0 s201|-1 15009 -1 -0 s202|-1 3204 -1 -3 f0 (3198|0@0@2&#,)! -3 f1 (3198|0@0@2&#,)! -3 f0 (3198|$#,)! -3 f3198 (3198|$#,)! -1 t3199|3199& -3 S_lslOpSet{5|@1|^#entries,5|@1|^#nspace,3204|@1|11@3@3&#elements,}! -0 s6819|-1 3207 -1 -1 t3206|3206& -0 a204|& -3 f1 (3208|@7|6@5@7&#,3198|@3|6@0@19@2@0#,)! -3 f0 (3208|0@5@7&#,)! -3 f2 (3208|0@5@7&#,)! -3 f0 (3208|@7|0@5@7&#,)! -3 f5 (3208|@7|0@5@7&#,)! -3 f0 ()! -3 f3208 ()! -3 f0 (3208|0@5@7&#,3198|0@0@2&#,)! -3 f2 (3208|0@5@7&#,3198|0@0@2&#,)! -3 f0 (3208|0@5@7&#,)! -3 f989 (3208|0@5@7&#,)! -3 f0 (3208|0@5@2&#,)! -3 f1 (3208|0@5@2&#,)! -3 f0 (3208|0@5@7&#,)! -3 f3208 (3208|0@5@7&#,)! -3 S!37{3186|@1|0@5@3&#name,3136|@1|0@5@3&#signature,}! -0 s6784|& -3 U!38{3224|@1|^#renamesortname,948|@1|0@5@3&#ctype,}! -0 s6960|& -3 S_replaceNode{948|@1|0@5@3&#tok,3094|@1|0@0@3&#typename,2|@1|^#isCType,3226|@1|^#content,}! -0 s6908|-1 3230 -1 -1 t3229|3229& -0 s205|-1 15361 -1 -3 f0 (3231|0@5@2&#,)! -3 f1 (3231|0@5@2&#,)! -3 f0 (3231|0@5@7&#,)! -3 f989 (3231|0@5@7&#,)! -0 s206|-1 3237 -1 +0 a3732|& +3 f1 (3023|@7|&#,3013|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3023 ()! +3 f0 (3023|@5|$#,3013|0@0@2&#,)! +3 f3023 (3023|@5|$#,3013|0@0@2&#,)! +3 f0 (3023|$#,)! +3 f1117 (3023|$#,)! +3 f0 (3023|0@0@2&#,)! +3 f1 (3023|0@0@2&#,)! +3 f0 (3023|$#,)! +3 f3023 (3023|$#,)! +3 S!39{3013|@1|0@0@3&#declarator,944|@1|0@0@3&#body,}^3037 +0 s3741|& +1 t3035|3035& +0 s3742|-1 17065 -1 +3 f0 (3038|0@5@2&#,)! +3 f1 (3038|0@5@2&#,)! +3 f0 (3038|$#,)! +3 f1117 (3038|$#,)! +0 s3745|-1 3044 -1 +1 t3043|3043& +3 S!40{5|@1|^#nelements,5|@1|^#nspace,3044|@1|11@3@3&#elements,}^3047 +0 s3746|& +1 t3045|3045& +0 a3747|& +3 f1 (3048|@7|&#,3038|@3|6@0@19@2@0#,)! +3 f0 (3048|$#,)! +3 f5 (3048|$#,)! +3 f0 ()! +3 f3048 ()! +3 f0 (3048|@5|$#,3038|0@0@2&#,)! +3 f3048 (3048|@5|$#,3038|0@0@2&#,)! +3 f0 (3048|$#,)! +3 f1117 (3048|$#,)! +3 f0 (3048|0@0@2&#,)! +3 f1 (3048|0@0@2&#,)! +3 e!41{TEXPR_BASE,TEXPR_PTR,TEXPR_ARRAY,TEXPR_FCN}! +0 s3759|& +0 s3760|& +3 S!42{964|@1|0@5@3&#elementtype,941|@1|0@5@3&#size,}! +0 s3761|& +3 S!43{964|@1|0@5@3&#returntype,2702|@1|0@5@3&#args,}! +0 s3762|& +3 U!44{967|@1|0@5@3&#base,964|@1|0@5@3&#pointer,3063|@1|^#array,3065|@1|^#function,}! +0 s3763|& +3 Ss_typeExpr{5|@1|^#wrapped,3062|@1|^#kind,3067|@1|^#content,960|@1|^#sort,}! +3 f0 (964|0@5@2&#,)! +3 f1 (964|0@5@2&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +0 s3767|& +3 f0 (3076|0@5@2&#,)! +3 f1 (3076|0@5@2&#,)! +3 S!45{967|@1|0@5@3&#tok,941|@1|0@5@3&#term,}^3081 +0 s3768|& +1 t3079|3079& +0 s3769|& +3 S!46{967|@1|0@5@3&#varid,2|@1|^#isObj,956|@1|0@5@3&#type,960|@1|^#sort,}^3085 +0 s3770|& +1 t3083|3083& +0 s3771|-1 17325 -1 +3 f0 (3086|$#,)! +3 f3086 (3086|$#,)! +3 f0 (3086|0@5@2&#,)! +3 f1 (3086|0@5@2&#,)! +0 s3774|-1 3092 -1 +1 t3091|3091& +3 S!47{5|@1|^#nelements,5|@1|^#nspace,3092|@1|11@3@3&#elements,}^3095 +0 s3775|& +1 t3093|3093& +0 a3776|& +3 f1 (3096|@7|&#,3086|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3096 ()! +3 f0 (3096|@5|$#,3086|0@0@2&#,)! +3 f3096 (3096|@5|$#,3086|0@0@2&#,)! +3 f0 (3096|$#,)! +3 f3096 (3096|$#,)! +3 f0 (3096|$#,)! +3 f1117 (3096|$#,)! +3 f0 (3096|0@0@2&#,)! +3 f1 (3096|0@0@2&#,)! +3 S!48{967|@1|0@5@3&#quant,3096|@1|0@0@3&#vars,2|@1|^#isForall,}^3110 +0 s3785|& +1 t3108|3108& +0 s3786|-1 17338 -1 +3 f0 (3111|$#,)! +3 f3111 (3111|$#,)! +3 f0 (3111|0@5@2&#,)! +3 f1 (3111|0@5@2&#,)! +0 s3789|-1 3117 -1 +1 t3116|3116& +3 S!49{5|@1|^#nelements,5|@1|^#nspace,3117|@1|11@3@3&#elements,}^3120 +0 s3790|& +1 t3118|3118& +0 a3791|& +3 f1 (3121|@7|&#,3111|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3121 ()! +3 f0 (3121|@5|$#,3111|0@0@2&#,)! +3 f3121 (3121|@5|$#,3111|0@0@2&#,)! +3 f0 (3121|$#,)! +3 f1117 (3121|$#,)! +3 f0 (3121|0@0@2&#,)! +3 f1 (3121|0@0@2&#,)! +3 f0 (3121|$#,)! +3 f3121 (3121|$#,)! +3 e!50{SRN_TERM,SRN_TYPE,SRN_OBJ,SRN_SPECIAL}! +0 s3804|& +0 s3805|& +3 U!51{941|@1|0@0@3&#term,956|@1|0@5@3&#type,971|@1|0@5@18&#ref,}! +0 s3806|& +3 S!52{3135|@1|^#kind,3136|@1|^#content,}^3140 +0 s3807|& +1 t3138|3138& +0 s3808|-1 17153 -1 +3 f0 (3141|$#,)! +3 f3141 (3141|$#,)! +3 f0 (3141|$#,)! +3 f2 (3141|$#,)! +3 f0 (3141|$#,)! +3 f2 (3141|$#,)! +3 f0 (3141|$#,)! +3 f2 (3141|$#,)! +3 f0 (3141|$#,)! +3 f2 (3141|$#,)! +3 f0 (3141|0@5@2&#,)! +3 f1 (3141|0@5@2&#,)! +0 s3811|-1 3155 -1 +1 t3154|3154& +3 S!53{5|@1|^#nelements,5|@1|^#nspace,3155|@1|11@3@3&#elements,}^3158 +0 s3812|& +1 t3156|3156& +0 a3813|& +3 f1 (3159|@7|&#,3141|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3159 ()! +3 f0 (3159|@5|$#,3141|0@0@2&#,)! +3 f3159 (3159|@5|$#,3141|0@0@2&#,)! +3 f0 (3159|$#,)! +3 f1117 (3159|$#,)! +3 f0 (3159|0@0@2&#,)! +3 f1 (3159|0@0@2&#,)! +3 f0 (3159|$#,)! +3 f3159 (3159|$#,)! +3 S!54{967|@1|0@5@3&#tok,2|@1|^#modifiesNothing,2|@1|^#hasStoreRefList,3159|@1|11@0@3&#list,}^3173 +0 s3822|& +1 t3171|3171& +0 s3823|& +3 f0 (3174|0@5@7&#,)! +3 f1117 (3174|0@5@7&#,)! +3 S!55{967|@1|0@5@3&#varid,956|@1|0@5@3&#sortspec,941|@1|0@0@3&#term,960|@1|^#sort,}^3179 +0 s3825|& +1 t3177|3177& +0 s3826|-1 17119 -1 +3 f0 (3180|0@5@2&#,)! +3 f1 (3180|0@5@2&#,)! +0 s3828|-1 3184 -1 +1 t3183|3183& +3 S!56{5|@1|^#nelements,5|@1|^#nspace,3184|@1|11@3@3&#elements,}^3187 +0 s3829|& +1 t3185|3185& +0 a3830|& +3 f1 (3188|@7|&#,3180|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3188 ()! +3 f0 (3188|@5|$#,3180|0@0@2&#,)! +3 f3188 (3188|@5|$#,3180|0@0@2&#,)! +3 f0 (3188|$#,)! +3 f1117 (3188|$#,)! +3 f0 (3188|0@0@2&#,)! +3 f1 (3188|0@0@2&#,)! +3 e!57{ACT_SELF,ACT_ITER,ACT_ALTERNATE,ACT_SEQUENCE}! +0 s3842|& +0 s3843|& +3 U!58{950|@1|0@0@3&#self,953|@1|0@0@3&#args,}! +0 s3844|& +3 S!59{5|@1|^#wrapped,3200|@1|^#kind,3201|@1|^#content,}^3205 +0 s3845|& +1 t3203|3203& +0 s3846|-1 17303 -1 +3 f0 (3206|0@5@2&#,)! +3 f1 (3206|0@5@2&#,)! +3 f0 (3206|$#,)! +3 f1117 (3206|$#,)! +0 s3849|-1 3212 -1 +1 t3211|3211& +3 Ss_programNodeList{5|@1|^#nelements,5|@1|^#nspace,3212|@1|11@3@3&#elements,}! +3 f1 (953|@7|&#,3206|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f953 ()! +3 f0 (953|$#,3206|0@0@4&#,)! +3 f1 (953|$#,3206|0@0@4&#,)! +3 f0 (953|$#,)! +3 f1117 (953|$#,)! +3 f0 (953|0@0@2&#,)! +3 f1 (953|0@0@2&#,)! +3 e!60{LPD_PLAIN,LPD_CHECKS,LPD_REQUIRES,LPD_ENSURES,LPD_INTRACLAIM,LPD_CONSTRAINT,LPD_INITIALLY}! +0 s3864|& +0 s3865|& +3 Ss_lclPredicateNode{967|@1|0@5@3&#tok,3225|@1|^#kind,941|@1|0@0@3&#predicate,}! +3 S!61{967|@1|0@5@3&#tok,956|@1|0@5@3&#type,3048|@1|0@0@3&#decls,}^3229 +0 s3866|& +1 t3227|3227& +0 s3867|& +3 f0 (3230|$#,)! +3 f1117 (3230|$#,)! +3 e!62{TK_ABSTRACT,TK_EXPOSED,TK_UNION}! +0 s3872|& +0 s3873|& +3 S!63{1142|@1|^#intfield,960|@1|^#sort,2837|@1|0@5@3&#ctypes,}^3238 +0 s3874|& 1 t3236|3236& -3 S_replaceNodeList{5|@1|^#nelements,5|@1|^#nspace,3237|@1|11@3@3&#elements,}! -0 s6859|-1 3240 -1 -1 t3239|3239& -0 a207|& -3 f1 (3241|@7|&#,3231|@3|6@0@19@2@0#,)! -3 f0 (3241|$#,)! -3 f5 (3241|$#,)! -3 f0 (3241|$#,)! -3 f2 (3241|$#,)! -3 f0 ()! -3 f3241 ()! -3 f0 (3241|@5|$#,3231|0@0@2&#,)! -3 f3241 (3241|@5|$#,3231|0@0@2&#,)! -3 f0 (3241|$#,)! -3 f989 (3241|$#,)! -3 f0 (3241|0@0@2&#,)! -3 f1 (3241|0@0@2&#,)! -3 S_nameAndReplaceNode{3104|@1|0@0@3&#namelist,3241|@1|0@0@3&#replacelist,}! -0 s6785|-1 3257 -1 -1 t3256|3256& -0 s208|& -3 U!39{3241|@1|0@0@3&#replace,3258|@1|0@0@3&#name,}! -0 s6961|& -3 S_renamingNode{2|@1|^#is_replace,3259|@1|^#content,}! -0 s6762|-1 3263 -1 -1 t3262|3262& -0 s209|& -3 f0 (3264|0@5@7&#,)! -3 f989 (3264|0@5@7&#,)! -3 S_traitRefNode{2481|@1|0@5@3&#traitid,3264|@1|0@5@3&#rename,}! -0 s6800|-1 3269 -1 -1 t3268|3268& -0 s210|-1 15250 -1 -3 f0 (3270|0@5@2&#,)! -3 f1 (3270|0@5@2&#,)! -0 s211|-1 3274 -1 -1 t3273|3273& -3 S_traitRefNodeList{5|@1|^#nelements,5|@1|^#nspace,3274|@1|11@3@3&#elements,}! -0 s6860|-1 3277 -1 -1 t3276|3276& -0 a212|& -3 f1 (3278|@7|&#,3270|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f3278 ()! -3 f0 (3278|@5|$#,3270|0@0@2&#,)! -3 f3278 (3278|@5|$#,3270|0@0@2&#,)! -3 f0 (3278|$#,)! -3 f989 (3278|$#,)! -3 f0 (3278|0@0@2&#,)! -3 f1 (3278|0@0@2&#,)! -3 e!40{XPK_CONST,XPK_VAR,XPK_TYPE,XPK_FCN,XPK_CLAIM,XPK_ITER}! -0 s7011|& -0 s213|& -3 U!41{2925|@1|0@0@3&#constdeclaration,2934|@1|0@0@3&#vardeclaration,3050|@1|0@0@3&#type,2968|@1|0@0@3&#fcn,2962|@1|0@0@3&#claim,2999|@1|0@0@3&#iter,}! -0 s6978|& -3 S_exportNode{3290|@1|^#kind,3291|@1|^#content,}! -0 s6768|-1 3295 -1 -1 t3294|3294& -0 s214|& -3 f0 (3296|$#,)! -3 f989 (3296|$#,)! -3 e!42{PRIV_CONST,PRIV_VAR,PRIV_TYPE,PRIV_FUNCTION}! -0 s7012|& -0 s215|& -3 U!43{2925|@1|0@0@3&#constdeclaration,2934|@1|0@0@3&#vardeclaration,3050|@1|0@0@3&#type,2968|@1|0@0@3&#fcn,}! -0 s6973|& -3 S_privateNode{3301|@1|^#kind,3302|@1|^#content,}! -0 s6769|-1 3306 -1 -1 t3305|3305& -0 s216|& -3 f0 (3307|$#,)! -3 f989 (3307|$#,)! -3 e!44{INF_IMPORTS,INF_USES,INF_EXPORT,INF_PRIVATE}! -0 s7013|& -0 s217|& -3 U!45{2555|@1|0@0@3&#imports,3278|@1|0@0@3&#uses,3296|@1|0@0@3&#export,3307|@1|0@0@3&#private,}! -0 s6975|& -3 S_interfaceNode{3312|@1|^#kind,3313|@1|^#content,}! -0 s6770|-1 3317 -1 +0 s3875|& +3 S!64{3013|@1|0@0@3&#declarator,941|@1|0@5@3&#value,}^3242 +0 s3876|& +1 t3240|3240& +0 s3877|-1 17038 -1 +3 f0 (3243|$#,)! +3 f2 (3243|$#,)! +3 f0 (3243|0@5@2&#,)! +3 f1 (3243|0@5@2&#,)! +0 s3880|-1 3249 -1 +1 t3248|3248& +3 S!65{5|@1|^#nelements,5|@1|^#nspace,3249|@1|11@3@3&#elements,}^3252 +0 s3881|& +1 t3250|3250& +0 a3882|& +3 f1 (3253|@7|&#,3243|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3253 ()! +3 f0 (3253|@5|$#,3243|0@0@2&#,)! +3 f3253 (3253|@5|$#,3243|0@0@2&#,)! +3 f0 (3253|$#,)! +3 f1117 (3253|$#,)! +3 f0 (3253|0@0@2&#,)! +3 f1 (3253|0@0@2&#,)! +3 S!66{956|@1|0@5@3&#type,3253|@1|0@0@3&#decls,}^3265 +0 s3890|& +1 t3263|3263& +0 s3891|& +3 f0 (3266|0@5@7&#,)! +3 f1117 (3266|0@5@7&#,)! +3 e!67{QLF_NONE,QLF_CONST,QLF_VOLATILE}! +0 s3896|& +0 s3897|& +3 S!68{2|@1|^#isSpecial,971|@1|11@5@18&#sref,2|@1|^#isGlobal,2|@1|^#isPrivate,3271|@1|^#qualifier,956|@1|0@5@3&#type,3253|@1|0@0@3&#decls,}^3274 +0 s3898|& +1 t3272|3272& +0 s3899|-1 17314 -1 +3 f0 (3275|0@5@2&#,)! +3 f1 (3275|0@5@2&#,)! +3 f0 (3275|0@5@7&#,)! +3 f1117 (3275|0@5@7&#,)! +0 s3902|-1 3281 -1 +1 t3280|3280& +3 S!69{5|@1|^#nelements,5|@1|^#nspace,3281|@1|11@3@3&#elements,}^3284 +0 s3903|& +1 t3282|3282& +0 a3904|& +3 f1 (3285|@7|&#,3275|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3285 ()! +3 f0 (3285|$#,3275|0@0@4&#,)! +3 f1 (3285|$#,3275|0@0@4&#,)! +3 f0 (3285|$#,)! +3 f1117 (3285|$#,)! +3 f0 (3285|0@0@2&#,)! +3 f1 (3285|0@0@2&#,)! +0 s3912|& +3 f0 (3295|$#,)! +3 f1117 (3295|$#,)! +3 f0 (3295|0@0@2&#,)! +3 f1 (3295|0@0@2&#,)! +3 S!70{967|@1|0@5@3&#name,2702|@1|0@5@3&#params,3295|@1|0@5@3&#globals,3188|@1|0@5@3&#lets,947|@1|0@5@3&#require,3206|@1|0@5@3&#body,947|@1|0@5@3&#ensures,}^3302 +0 s3913|& +1 t3300|3300& +0 s3914|& +3 f0 (3303|$#,)! +3 f1117 (3303|$#,)! +3 S!71{967|@1|0@5@3&#name,956|@1|0@5@3&#typespec,3013|@1|0@0@3&#declarator,3295|@1|0@0@3&#globals,3285|@1|0@0@3&#inits,3188|@1|0@0@3&#lets,947|@1|0@5@3&#checks,947|@1|0@5@3&#require,3174|@1|0@5@3&#modify,947|@1|0@5@3&#ensures,947|@1|0@5@3&#claim,1706|@1|^#special,}^3308 +0 s3916|& +1 t3306|3306& +0 s3917|-1 17275 -1 +3 f0 (3309|0@5@2&#,)! +3 f1 (3309|0@5@2&#,)! +3 f0 (3309|0@5@7&#,)! +3 f1117 (3309|0@5@7&#,)! +0 s3920|-1 3315 -1 +1 t3314|3314& +3 S!72{5|@1|^#nelements,5|@1|^#nspace,3315|@1|11@3@3&#elements,}^3318 +0 s3921|& 1 t3316|3316& -0 s218|-1 15086 -1 -3 f0 (3318|$#,)! -3 f989 (3318|$#,)! -3 f0 (3318|0@5@2&#,)! -3 f1 (3318|0@5@2&#,)! -0 s219|-1 3324 -1 -1 t3323|3323& -3 S_interfaceNodeList{5|@1|^#nelements,5|@1|^#nspacehigh,5|@1|^#nspacelow,3324|@1|11@3@18&#elements,3324|@1|11@3@2&#elementsroot,}! -0 s6918|-1 3327 -1 -1 t3326|3326& -0 a220|& -3 f1 (3328|@7|&#,3318|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f3328 ()! -3 f0 (3328|@5|$#,3318|0@0@2&#,)! -3 f3328 (3328|@5|$#,3318|0@0@2&#,)! -3 f0 (3328|$#,3318|0@0@4&#,)! -3 f1 (3328|$#,3318|0@0@4&#,)! -3 f0 (3328|0@0@2&#,)! -3 f1 (3328|0@0@2&#,)! -3 S_termNode{5|@1|^#wrapped,3133|@1|^#kind,941|@1|^#sort,941|@1|11@0@0&#given,2617|@1|0@5@3&#possibleSorts,2|@1|^#error_reported,3208|@1|0@5@3&#possibleOps,3185|@1|0@5@3&#name,940|@1|0@0@3&#args,948|@1|11@5@3&#literal,2812|@1|11@0@3&#unchanged,3130|@1|11@0@3&#quantified,937|@1|11@5@3&#sizeofField,}! -3 f0 (934|0@5@7&#,)! -3 f2 (934|0@5@7&#,)! -3 f0 (934|$#,)! -3 f934 (934|$#,)! -3 f0 (934|0@5@7&#,)! -3 f989 (934|0@5@7&#,)! -3 f0 (934|0@5@2&#,)! -3 f1 (934|0@5@2&#,)! -0 s53|-1 3348 -1 -1 t3347|3347& -3 S_termNodeList{5|@1|^#nelements,5|@1|^#nspacehigh,5|@1|^#nspacelow,5|@1|^#current,3348|@1|11@3@18&#elements,3348|@1|11@3@2&#elementsroot,}! -3 f1 (940|@7|&#,934|@3|6@0@19@2@0#,)! -3 f0 (940|@7|$#,)! -3 f5 (940|@7|$#,)! -3 f0 (940|@7|$#,)! -3 f2 (940|@7|$#,)! -3 f0 (940|$#,)! -3 f2 (940|$#,)! -3 f0 ()! -3 f940 ()! -3 f0 (940|@5|$#,934|0@0@4&#,)! -3 f940 (940|@5|$#,934|0@0@4&#,)! -3 f0 (940|$#,934|0@0@4&#,)! -3 f1 (940|$#,934|0@0@4&#,)! -3 f0 (940|$#,934|0@0@4&#,)! -3 f1 (940|$#,934|0@0@4&#,)! -3 f0 (940|$#,)! -3 f1 (940|$#,)! -3 f0 (940|$#,)! -3 f1 (940|$#,)! -3 f0 (940|$#,)! -3 f1 (940|$#,)! -3 f0 (940|$#,5|$#,)! -3 f934 (940|$#,5|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|0@0@2&#,)! -3 f1 (940|0@0@2&#,)! -3 f0 (940|$#,)! -3 f934 (940|$#,)! -3 f0 (940|$#,)! -3 f934 (940|$#,)! -3 f0 (940|$#,)! -3 f940 (940|$#,)! -3 S_stmtNode{948|@1|0@5@3&#lhs,948|@1|0@5@3&#operator,940|@1|0@0@3&#args,}! -0 s154|& -3 f0 (3390|$#,)! -3 f989 (3390|$#,)! -0 s126|-1 3394 -1 -1 t3393|3393& -3 S_sortSetList{5|@1|^#nelements,5|@1|^#free,5|@1|^#current,3394|@1|11@3@2&#elements,}! -0 s6892|-1 3397 -1 +0 a3922|& +3 f1 (3319|@7|6@5@7&#,3309|@3|6@0@19@2@0#,)! +3 f0 (3319|0@5@7&#,)! +3 f2 (3319|0@5@7&#,)! +3 f0 (3319|0@5@7&#,)! +3 f2 (3319|0@5@7&#,)! +3 f0 (3319|@7|0@5@7&#,)! +3 f5 (3319|@7|0@5@7&#,)! +3 f0 (3319|@7|0@5@7&#,)! +3 f2 (3319|@7|0@5@7&#,)! +3 f0 ()! +3 f3319 ()! +3 f0 (3319|@5|0@5@7&#,3309|0@0@4&#,)! +3 f3319 (3319|@5|0@5@7&#,3309|0@0@4&#,)! +3 f0 (3319|0@5@7&#,)! +3 f1117 (3319|0@5@7&#,)! +3 f0 (3319|0@5@2&#,)! +3 f1 (3319|0@5@2&#,)! +3 S!73{967|@1|0@5@3&#name,2702|@1|0@5@3&#params,}^3339 +0 s3931|& +1 t3337|3337& +0 s3932|& +3 f0 (3340|0@5@7&#,)! +3 f1117 (3340|0@5@7&#,)! +3 Ss_abstBodyNode{967|@1|0@5@3&#tok,947|@1|0@5@3&#typeinv,3319|@1|0@5@3&#fcns,}! +3 f0 (944|$#,)! +3 f1117 (944|$#,)! +3 S!74{967|@1|0@5@3&#tok,2|@1|^#isMutable,2|@1|^#isRefCounted,967|@1|0@5@3&#name,960|@1|^#sort,944|@1|0@0@3&#body,}^3348 +0 s3935|& +1 t3346|3346& +0 s3936|& +3 f0 (3349|$#,)! +3 f1117 (3349|$#,)! +3 S!75{956|@1|0@5@3&#lcltypespec,3023|@1|0@0@3&#declarators,}^3354 +0 s3938|& +1 t3352|3352& +0 s3939|-1 17130 -1 +3 f0 (3355|0@5@2&#,)! +3 f1 (3355|0@5@2&#,)! +3 f0 (3355|$#,)! +3 f3355 (3355|$#,)! +0 s3942|-1 3361 -1 +1 t3360|3360& +3 S!76{5|@1|^#nelements,5|@1|^#nspace,3361|@1|11@3@3&#elements,}^3364 +0 s3943|& +1 t3362|3362& +0 a3944|& +3 f1 (3365|@7|&#,3355|@3|6@0@19@2@0#,)! +3 f0 (3365|$#,)! +3 f5 (3365|$#,)! +3 f0 ()! +3 f3365 ()! +3 f0 (3365|@5|$#,3355|0@0@2&#,)! +3 f3365 (3365|@5|$#,3355|0@0@2&#,)! +3 f0 (3365|$#,)! +3 f1117 (3365|$#,)! +3 f0 (3365|0@0@2&#,)! +3 f1 (3365|0@0@2&#,)! +3 f0 (3365|$#,)! +3 f3365 (3365|$#,)! +3 S!77{3365|@1|0@0@3&#structdecls,3013|@1|0@0@3&#declarator,}^3381 +0 s3953|& +1 t3379|3379& +0 s3954|& +3 f0 (3382|$#,)! +3 f1117 (3382|$#,)! +3 U!78{3349|@1|0@0@3&#abstract,3230|@1|0@0@3&#exposed,3382|@1|0@0@3&#taggedunion,}! +0 s3956|& +3 S!79{3235|@1|^#kind,3385|@1|^#content,}^3389 +0 s3957|& +1 t3387|3387& +0 s3958|& +3 f0 (3390|0@5@7&#,)! +3 f1117 (3390|0@5@7&#,)! +3 e!80{SU_STRUCT,SU_UNION}! +0 s3962|& +0 s3963|& +3 S!81{3395|@1|^#kind,967|@1|0@5@3&#tok,967|@1|0@5@3&#opttagid,960|@1|^#sort,3365|@1|0@0@17&#structdecls,}^3398 +0 s3964|& 1 t3396|3396& -0 a221|& -3 f1 (3398|@7|&#,2617|@3|6@5@19@2@0#,)! -3 f0 (3398|$#,)! -3 f5 (3398|$#,)! -3 f0 ()! -3 f3398 ()! -3 f0 (3398|$#,2617|0@5@18@2@0#,)! -3 f1 (3398|$#,2617|0@5@18@2@0#,)! -3 f0 (3398|$#,)! -3 f1 (3398|$#,)! -3 f0 (3398|$#,)! -3 f1 (3398|$#,)! -3 f0 (3398|$#,)! -3 f989 (3398|$#,)! -3 f0 (3398|0@0@2&#,)! -3 f1 (3398|0@0@2&#,)! -3 f0 (3398|$#,)! -3 f2617 (3398|$#,)! -3 f0 (3398|$#,)! -3 f2617 (3398|$#,)! -0 s203|-1 3419 -1 -1 t3418|3418& -3 S_lslOpList{5|@1|^#nelements,5|@1|^#nspace,3419|@1|11@3@2&#elements,}! -0 s6861|-1 3422 -1 -1 t3421|3421& -0 a222|& -3 f0 ()! -3 f3423 ()! -3 f0 (3423|$#,3198|0@0@19@2@0#,)! -3 f1 (3423|$#,3198|0@0@19@2@0#,)! -3 f0 (3423|$#,)! -3 f989 (3423|$#,)! -3 f0 (3423|0@0@2&#,)! -3 f1 (3423|0@0@2&#,)! -3 f0 (3186|0@5@2&#,3136|0@0@18&#,)! -3 f3198 (3186|0@5@2&#,3136|0@0@18&#,)! -3 f0 (3198|$#,)! -3 f989 (3198|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 (3318|0@0@2&#,3328|@5|$#,)! -3 f3328 (3318|0@0@2&#,3328|@5|$#,)! -3 f0 (2555|0@0@2&#,)! -3 f3318 (2555|0@0@2&#,)! -3 f0 (3125|0@5@2&#,)! -3 f3186 (3125|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f3186 (948|0@5@2&#,)! -3 f0 (3278|0@0@2&#,)! -3 f3318 (3278|0@0@2&#,)! -3 f0 (2925|0@0@2&#,)! -3 f3318 (2925|0@0@2&#,)! -3 f0 (2934|0@0@2&#,)! -3 f3318 (2934|0@0@2&#,)! -3 f0 (3050|0@0@2&#,)! -3 f3318 (3050|0@0@2&#,)! -3 f0 (2968|0@0@2&#,)! -3 f3318 (2968|0@0@2&#,)! -3 f0 (2962|0@0@2&#,)! -3 f3318 (2962|0@0@2&#,)! -3 f0 (2999|0@0@2&#,)! -3 f3318 (2999|0@0@2&#,)! -3 f0 (2925|0@0@2&#,)! -3 f3318 (2925|0@0@2&#,)! -3 f0 (2934|0@0@2&#,)! -3 f3318 (2934|0@0@2&#,)! -3 f0 (3050|0@0@2&#,)! -3 f3318 (3050|0@0@2&#,)! -3 f0 (2968|0@0@2&#,)! -3 f3318 (2968|0@0@2&#,)! -3 f0 (3009|0@0@2&#,)! -3 f3050 (3009|0@0@2&#,)! -3 f0 (2889|0@0@2&#,)! -3 f3050 (2889|0@0@2&#,)! -3 f0 (2481|0@5@2&#,3264|0@5@2&#,)! -3 f3270 (2481|0@5@2&#,3264|0@5@2&#,)! -3 f0 (2481|0@5@7&#,)! -3 f989 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f989 (2481|0@5@7&#,)! -3 f0 (3136|0@5@7&#,)! -3 f989 (3136|0@5@7&#,)! -3 f0 (3104|0@0@2&#,3241|0@0@2&#,)! -3 f3264 (3104|0@0@2&#,3241|0@0@2&#,)! -3 f0 (948|0@5@2&#,3094|0@0@2&#,2|$#,948|0@5@2&#,3186|0@5@2&#,3136|0@5@2&#,)! -3 f3231 (948|0@5@2&#,3094|0@0@2&#,2|$#,948|0@5@2&#,3186|0@5@2&#,3136|0@5@2&#,)! -3 f0 (948|0@5@2&#,2481|0@5@2&#,948|0@5@2&#,)! -3 f3136 (948|0@5@2&#,2481|0@5@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,3094|0@0@2&#,3186|0@0@2&#,)! -3 f3231 (948|0@5@2&#,3094|0@0@2&#,3186|0@0@2&#,)! -3 f0 (948|0@5@2&#,3120|$#,3123|$#,948|0@5@2&#,)! -3 f3125 (948|0@5@2&#,3120|$#,3123|$#,948|0@5@2&#,)! -3 f0 (2|$#,937|0@5@2&#,2706|0@0@2&#,)! -3 f3094 (2|$#,937|0@5@2&#,2706|0@0@2&#,)! -3 f0 (3125|0@0@2&#,)! -3 f3094 (3125|0@0@2&#,)! -3 f0 (937|0@5@2&#,937|0@5@2&#,)! -3 f937 (937|0@5@2&#,937|0@5@2&#,)! -3 f0 (2898|0@5@2&#,)! -3 f937 (2898|0@5@2&#,)! -3 f0 (3058|0@5@2&#,)! -3 f937 (3058|0@5@2&#,)! -3 f0 (3064|0@5@2&#,)! -3 f937 (3064|0@5@2&#,)! -3 f0 (937|0@5@2&#,1500|$#,)! -3 f937 (937|0@5@2&#,1500|$#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,2481|0@5@17&#,)! -3 f3064 (948|0@5@2&#,948|0@5@2&#,2481|0@5@17&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,)! -3 f3064 (948|0@5@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,3055|$#,948|0@5@2&#,3025|0@0@2&#,)! -3 f3058 (948|0@5@2&#,3055|$#,948|0@5@2&#,3025|0@0@2&#,)! -3 f0 (948|0@5@2&#,3055|$#,948|0@5@2&#,)! -3 f3058 (948|0@5@2&#,3055|$#,948|0@5@2&#,)! -3 f0 (937|0@5@2&#,2720|0@0@2&#,)! -3 f3015 (937|0@5@2&#,2720|0@0@2&#,)! -3 f0 (937|0@5@2&#,2912|0@0@2&#,)! -3 f2925 (937|0@5@2&#,2912|0@0@2&#,)! -3 f0 (937|0@5@2&#,2912|0@0@2&#,2|$#,2|$#,)! -3 f2934 (937|0@5@2&#,2912|0@0@2&#,2|$#,2|$#,)! -3 f0 ()! -3 f2934 ()! -3 f0 ()! -3 f2934 ()! -3 f0 (2710|0@0@2&#,934|0@5@2&#,)! -3 f2902 (2710|0@0@2&#,934|0@5@2&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,2|$#,2|$#,3003|0@0@2&#,)! -3 f3009 (948|0@5@2&#,948|0@5@2&#,2|$#,2|$#,3003|0@0@2&#,)! -3 f0 (3003|$#,)! -3 f989 (3003|$#,)! -3 f0 (948|0@5@2&#,937|0@5@2&#,2678|0@0@2&#,)! -3 f2889 (948|0@5@2&#,937|0@5@2&#,2678|0@0@2&#,)! -3 f0 (2710|0@0@2&#,3003|0@0@2&#,)! -3 f2668 (2710|0@0@2&#,3003|0@0@2&#,)! -3 f0 (937|0@5@2&#,2710|0@0@2&#,)! -3 f2968 (937|0@5@2&#,2710|0@0@2&#,)! -3 f0 (1500|$#,937|0@5@2&#,2710|0@0@2&#,2954|0@5@2&#,2944|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,2827|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,)! -3 f2968 (1500|$#,937|0@5@2&#,2710|0@0@2&#,2954|0@5@2&#,2944|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,2827|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,)! -3 f0 (948|0@5@2&#,2346|0@5@2&#,)! -3 f2999 (948|0@5@2&#,2346|0@5@2&#,)! -3 f0 (948|0@5@2&#,2346|0@5@2&#,2954|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2862|0@5@2&#,2885|0@5@2&#,)! -3 f2962 (948|0@5@2&#,2346|0@5@2&#,2954|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2862|0@5@2&#,2885|0@5@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,934|0@0@2&#,2882|$#,)! -3 f2885 (948|0@5@2&#,934|0@0@2&#,2882|$#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,)! -3 f3390 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,)! -3 f0 (2870|0@0@2&#,2853|$#,)! -3 f2862 (2870|0@0@2&#,2853|$#,)! +0 s3965|& +3 f0 (3399|0@5@7&#,)! +3 f1117 (3399|0@5@7&#,)! +3 S!82{967|@1|0@5@3&#tok,967|@1|0@5@3&#opttagid,2837|@1|0@5@17&#enums,960|@1|^#sort,}^3404 +0 s3967|& +1 t3402|3402& +0 s3968|& +3 f0 (3405|0@5@7&#,)! +3 f1117 (3405|0@5@7&#,)! +3 e!83{LTS_TYPE,LTS_STRUCTUNION,LTS_ENUM,LTS_CONJ}! +0 s3974|& +0 s3975|& +0 s3976|& +3 S!84{3411|@1|0@5@3&#a,3411|@1|0@5@3&#b,}^3414 +0 s3977|& +1 t3412|3412& +0 s3978|& +3 U!85{3239|@1|0@5@3&#type,3399|@1|0@5@3&#structorunion,3405|@1|0@5@3&#enumspec,3415|@1|0@0@3&#conj,}! +0 s3979|& +3 Ss_lclTypeSpecNode{3410|@1|^#kind,2511|@1|0@5@3&#quals,3416|@1|^#content,5|@1|^#pointers,}! +3 f0 (956|0@5@7&#,)! +3 f2 (956|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f956 (956|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f1117 (956|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f1117 (956|0@5@7&#,)! +3 S!86{2|@1|^#isObj,956|@1|0@5@3&#type,3076|@1|0@0@3&#abst,}^3429 +0 s3984|& +1 t3427|3427& +0 s3985|& +3 S!87{2|@1|^#isTypeName,3430|@1|0@5@3&#typename,938|@1|0@5@3&#opform,}^3433 +0 s3986|& +1 t3431|3431& +0 s3987|-1 17262 -1 +3 f0 (3434|0@5@2&#,)! +3 f1 (3434|0@5@2&#,)! +3 f0 (3434|0@5@7&#,)! +3 f1117 (3434|0@5@7&#,)! +0 s3990|-1 3440 -1 +1 t3439|3439& +3 S!88{5|@1|^#nelements,5|@1|^#nspace,3440|@1|11@3@3&#elements,}^3443 +0 s3991|& +1 t3441|3441& +0 a3992|& +3 f1 (3444|@7|&#,3434|@3|6@0@19@2@0#,)! +3 f0 (3444|$#,)! +3 f5 (3444|$#,)! +3 f0 (3444|$#,)! +3 f2 (3444|$#,)! +3 f0 ()! +3 f3444 ()! +3 f0 (3444|@5|$#,3434|0@0@2&#,)! +3 f3444 (3444|@5|$#,3434|0@0@2&#,)! +3 f0 (3444|$#,)! +3 f1117 (3444|$#,)! +3 f0 (3444|0@0@2&#,)! +3 f1 (3444|0@0@2&#,)! +3 e!89{OPF_IF,OPF_ANYOP,OPF_MANYOP,OPF_ANYOPM,OPF_MANYOPM,OPF_MIDDLE,OPF_MMIDDLE,OPF_MIDDLEM,OPF_MMIDDLEM,OPF_BMIDDLE,OPF_BMMIDDLE,OPF_BMIDDLEM,OPF_BMMIDDLEM,OPF_SELECT,OPF_MAP,OPF_MSELECT,OPF_MMAP}! +0 s4017|& +0 s4018|& +3 U!90{5|@1|^#middle,967|@1|0@5@3&#anyop,967|@1|0@5@3&#id,}! +0 s4019|& +0 s4020|& +3 Ss_opFormNode{967|@1|0@5@3&#tok,3460|@1|^#kind,3463|@1|^#content,6|@1|^#key,967|@1|0@5@3&#close,}! +3 f0 (938|0@5@7&#,)! +3 f1117 (938|0@5@7&#,)! +3 S!91{3121|@1|0@0@3&#quantifiers,967|@1|0@5@3&#open,941|@1|0@0@3&#body,967|@1|0@5@3&#close,}^3469 +0 s4022|& +1 t3467|3467& +0 s4023|& +3 e!92{TRM_LITERAL,TRM_CONST,TRM_VAR,TRM_ZEROARY,TRM_APPLICATION,TRM_QUANTIFIER,TRM_UNCHANGEDALL,TRM_UNCHANGEDOTHERS,TRM_SIZEOF}! +0 s4033|& +0 s4034|& +3 S!93{967|@1|0@5@3&#tok,2837|@1|0@5@3&#domain,967|@1|0@5@3&#range,6|@1|^#key,}^3476 +0 s4035|& +1 t3474|3474& +0 s4036|-1 16972 -1 +3 f0 (3477|0@5@7&#,)! +3 f1117 (3477|0@5@7&#,)! +3 f0 (3477|0@5@2&#,)! +3 f1 (3477|0@5@2&#,)! +3 f0 (3477|$#,)! +3 f3477 (3477|$#,)! +3 f0 (3477|0@0@17&#,)! +3 f1 (3477|0@0@17&#,)! +0 s4041|-1 3487 -1 +1 t3486|3486& +3 S!94{5|@1|^#entries,5|@1|^#nspace,3487|@1|11@3@3&#elements,}^3490 +0 s4042|& +1 t3488|3488& +0 a4043|& +3 f1 (3491|@7|6@5@7&#,3477|@3|6@0@19@2@0#,)! +3 f0 (3491|0@5@7&#,)! +3 f2 (3491|0@5@7&#,)! +3 f0 (3491|0@5@7&#,)! +3 f2 (3491|0@5@7&#,)! +3 f0 (3491|@7|0@5@7&#,)! +3 f2 (3491|@7|0@5@7&#,)! +3 f0 (3491|@7|0@5@7&#,)! +3 f5 (3491|@7|0@5@7&#,)! +3 f0 ()! +3 f3491 ()! +3 f0 (3477|0@0@17&#,)! +3 f3491 (3477|0@0@17&#,)! +3 f0 (3491|0@5@7&#,3477|0@0@17&#,)! +3 f2 (3491|0@5@7&#,3477|0@0@17&#,)! +3 f0 (3491|0@5@7&#,)! +3 f1117 (3491|0@5@7&#,)! +3 f0 (3491|0@5@7&#,)! +3 f1117 (3491|0@5@7&#,)! +3 f0 (3491|0@5@2&#,)! +3 f1 (3491|0@5@2&#,)! +3 f0 (3491|0@5@7&#,)! +3 f1117 (3491|0@5@7&#,)! +3 S!95{967|@1|0@5@3&#tok,2916|@1|0@0@3&#domain,960|@1|^#range,6|@1|^#key,}^3517 +0 s4055|& +1 t3515|3515& +0 s4056|& +3 f0 (3518|$#,)! +3 f1117 (3518|$#,)! +3 f0 (3518|0@0@2&#,)! +3 f1 (3518|0@0@2&#,)! +3 U!96{967|@1|0@5@3&#opid,938|@1|0@5@3&#opform,}! +0 s4059|& +3 S!97{2|@1|^#isOpId,3523|@1|^#content,}^3527 +0 s4060|& +1 t3525|3525& +0 s4061|& +3 f0 (3528|0@5@2&#,)! +3 f1 (3528|0@5@2&#,)! +3 f0 (3528|0@5@7&#,)! +3 f3528 (3528|0@5@7&#,)! +3 f0 (3528|0@5@7&#,)! +3 f1117 (3528|0@5@7&#,)! +3 f0 (3528|$#,)! +3 f3528 (3528|$#,)! +3 S!98{3528|@1|0@5@2&#name,3477|@1|0@0@18&#signature,}^3539 +0 s4066|& +1 t3537|3537& +0 s4067|-1 16999 -1 +0 s4068|-1 3546 -1 +3 f0 (3540|0@0@2&#,)! +3 f1 (3540|0@0@2&#,)! +3 f0 (3540|$#,)! +3 f3540 (3540|$#,)! +1 t3541|3541& +3 S!99{5|@1|^#entries,5|@1|^#nspace,3546|@1|11@3@3&#elements,}^3549 +0 s4071|& +1 t3547|3547& +0 a4072|& +3 f1 (3550|@7|6@5@7&#,3540|@3|6@0@19@2@0#,)! +3 f0 (3550|0@5@7&#,)! +3 f2 (3550|0@5@7&#,)! +3 f0 (3550|@7|0@5@7&#,)! +3 f5 (3550|@7|0@5@7&#,)! +3 f0 ()! +3 f3550 ()! +3 f0 (3550|0@5@7&#,3540|0@0@2&#,)! +3 f2 (3550|0@5@7&#,3540|0@0@2&#,)! +3 f0 (3550|0@5@7&#,)! +3 f1117 (3550|0@5@7&#,)! +3 f0 (3550|0@5@2&#,)! +3 f1 (3550|0@5@2&#,)! +3 f0 (3550|0@5@7&#,)! +3 f3550 (3550|0@5@7&#,)! +3 S!100{3528|@1|0@5@2&#name,3477|@1|0@5@2&#signature,}! +0 s4082|& +3 U!101{3566|@1|^#renamesortname,967|@1|0@5@3&#ctype,}! +0 s4083|& +3 S!102{967|@1|0@5@3&#tok,3434|@1|0@0@3&#typename,2|@1|^#isCType,3568|@1|^#content,}^3572 +0 s4084|& +1 t3570|3570& +0 s4085|-1 17351 -1 +3 f0 (3573|0@5@2&#,)! +3 f1 (3573|0@5@2&#,)! +3 f0 (3573|0@5@7&#,)! +3 f1117 (3573|0@5@7&#,)! +0 s4088|-1 3579 -1 +1 t3578|3578& +3 S!103{5|@1|^#nelements,5|@1|^#nspace,3579|@1|11@3@3&#elements,}^3582 +0 s4089|& +1 t3580|3580& +0 a4090|& +3 f1 (3583|@7|&#,3573|@3|6@0@19@2@0#,)! +3 f0 (3583|$#,)! +3 f5 (3583|$#,)! +3 f0 (3583|$#,)! +3 f2 (3583|$#,)! +3 f0 ()! +3 f3583 ()! +3 f0 (3583|@5|$#,3573|0@0@2&#,)! +3 f3583 (3583|@5|$#,3573|0@0@2&#,)! +3 f0 (3583|$#,)! +3 f1117 (3583|$#,)! +3 f0 (3583|0@0@2&#,)! +3 f1 (3583|0@0@2&#,)! +3 S!104{3444|@1|0@0@3&#namelist,3583|@1|0@0@3&#replacelist,}^3599 +0 s4098|& +1 t3597|3597& +0 s4099|& +3 U!105{3583|@1|0@0@3&#replace,3600|@1|0@0@3&#name,}! +0 s4100|& +3 S!106{2|@1|^#is_replace,3601|@1|^#content,}^3605 +0 s4101|& +1 t3603|3603& +0 s4102|& +3 f0 (3606|0@5@7&#,)! +3 f1117 (3606|0@5@7&#,)! +3 S!107{2837|@1|0@5@3&#traitid,3606|@1|0@5@3&#rename,}^3611 +0 s4104|& +1 t3609|3609& +0 s4105|-1 17240 -1 +3 f0 (3612|0@5@2&#,)! +3 f1 (3612|0@5@2&#,)! +0 s4107|-1 3616 -1 +1 t3615|3615& +3 S!108{5|@1|^#nelements,5|@1|^#nspace,3616|@1|11@3@3&#elements,}^3619 +0 s4108|& +1 t3617|3617& +0 a4109|& +3 f1 (3620|@7|&#,3612|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3620 ()! +3 f0 (3620|@5|$#,3612|0@0@2&#,)! +3 f3620 (3620|@5|$#,3612|0@0@2&#,)! +3 f0 (3620|$#,)! +3 f1117 (3620|$#,)! +3 f0 (3620|0@0@2&#,)! +3 f1 (3620|0@0@2&#,)! +3 e!109{XPK_CONST,XPK_VAR,XPK_TYPE,XPK_FCN,XPK_CLAIM,XPK_ITER}! +0 s4123|& +0 s4124|& +3 U!110{3266|@1|0@0@3&#constdeclaration,3275|@1|0@0@3&#vardeclaration,3390|@1|0@0@3&#type,3309|@1|0@0@3&#fcn,3303|@1|0@0@3&#claim,3340|@1|0@0@3&#iter,}! +0 s4125|& +3 S!111{3632|@1|^#kind,3633|@1|^#content,}^3637 +0 s4126|& +1 t3635|3635& +0 s4127|& +3 f0 (3638|$#,)! +3 f1117 (3638|$#,)! +3 e!112{PRIV_CONST,PRIV_VAR,PRIV_TYPE,PRIV_FUNCTION}! +0 s4133|& +0 s4134|& +3 U!113{3266|@1|0@0@3&#constdeclaration,3275|@1|0@0@3&#vardeclaration,3390|@1|0@0@3&#type,3309|@1|0@0@3&#fcn,}! +0 s4135|& +3 S!114{3643|@1|^#kind,3644|@1|^#content,}^3648 +0 s4136|& +1 t3646|3646& +0 s4137|& +3 f0 (3649|$#,)! +3 f1117 (3649|$#,)! +3 e!115{INF_IMPORTS,INF_USES,INF_EXPORT,INF_PRIVATE}! +0 s4143|& +0 s4144|& +3 U!116{2900|@1|0@0@3&#imports,3620|@1|0@0@3&#uses,3638|@1|0@0@3&#export,3649|@1|0@0@3&#private,}! +0 s4145|& +3 S!117{3654|@1|^#kind,3655|@1|^#content,}^3659 +0 s4146|& +1 t3657|3657& +0 s4147|-1 17076 -1 +3 f0 (3660|$#,)! +3 f1117 (3660|$#,)! +3 f0 (3660|0@5@2&#,)! +3 f1 (3660|0@5@2&#,)! +0 s4150|-1 3666 -1 +1 t3665|3665& +3 S!118{5|@1|^#nelements,5|@1|^#nspacehigh,5|@1|^#nspacelow,3666|@1|11@3@18&#elements,3666|@1|11@3@2&#elementsroot,}^3669 +0 s4151|& +1 t3667|3667& +0 a4152|& +3 f1 (3670|@7|&#,3660|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f3670 ()! +3 f0 (3670|@5|$#,3660|0@0@2&#,)! +3 f3670 (3670|@5|$#,3660|0@0@2&#,)! +3 f0 (3670|$#,3660|0@0@4&#,)! +3 f1 (3670|$#,3660|0@0@4&#,)! +3 f0 (3670|0@0@2&#,)! +3 f1 (3670|0@0@2&#,)! +3 Ss_termNode{5|@1|^#wrapped,3473|@1|^#kind,960|@1|^#sort,960|@1|11@0@0&#given,2963|@1|0@5@3&#possibleSorts,2|@1|^#error_reported,3550|@1|0@5@3&#possibleOps,3528|@1|0@5@3&#name,959|@1|0@0@3&#args,967|@1|11@5@3&#literal,3159|@1|11@0@3&#unchanged,3470|@1|11@0@3&#quantified,956|@1|11@5@3&#sizeofField,}! +3 f0 (941|0@5@7&#,)! +3 f2 (941|0@5@7&#,)! +3 f0 (941|$#,)! +3 f941 (941|$#,)! +3 f0 (941|0@5@7&#,)! +3 f1117 (941|0@5@7&#,)! +3 f0 (941|0@5@2&#,)! +3 f1 (941|0@5@2&#,)! +0 s4165|-1 3690 -1 +1 t3689|3689& +3 Ss_termNodeList{5|@1|^#nelements,5|@1|^#nspacehigh,5|@1|^#nspacelow,5|@1|^#current,3690|@1|11@3@18&#elements,3690|@1|11@3@2&#elementsroot,}! +3 f1 (959|@7|&#,941|@3|6@0@19@2@0#,)! +3 f0 (959|@7|$#,)! +3 f5 (959|@7|$#,)! +3 f0 (959|@7|$#,)! +3 f2 (959|@7|$#,)! +3 f0 (959|$#,)! +3 f2 (959|$#,)! +3 f0 ()! +3 f959 ()! +3 f0 (959|@5|$#,941|0@0@4&#,)! +3 f959 (959|@5|$#,941|0@0@4&#,)! +3 f0 (959|$#,941|0@0@4&#,)! +3 f1 (959|$#,941|0@0@4&#,)! +3 f0 (959|$#,941|0@0@4&#,)! +3 f1 (959|$#,941|0@0@4&#,)! +3 f0 (959|$#,)! +3 f1 (959|$#,)! +3 f0 (959|$#,)! +3 f1 (959|$#,)! +3 f0 (959|$#,)! +3 f1 (959|$#,)! +3 f0 (959|$#,5|$#,)! +3 f941 (959|$#,5|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|0@0@2&#,)! +3 f1 (959|0@0@2&#,)! +3 f0 (959|$#,)! +3 f941 (959|$#,)! +3 f0 (959|$#,)! +3 f941 (959|$#,)! +3 f0 (959|$#,)! +3 f959 (959|$#,)! +3 Ss_stmtNode{967|@1|0@5@3&#lhs,967|@1|0@5@3&#operator,959|@1|0@0@3&#args,}! +3 f0 (950|$#,)! +3 f1117 (950|$#,)! +0 s4188|-1 3735 -1 +1 t3734|3734& +3 S!119{5|@1|^#nelements,5|@1|^#free,5|@1|^#current,3735|@1|11@3@2&#elements,}^3738 +0 s4189|& +1 t3736|3736& +0 a4190|& +3 f1 (3739|@7|&#,2963|@3|6@5@19@2@0#,)! +3 f0 (3739|$#,)! +3 f5 (3739|$#,)! +3 f0 ()! +3 f3739 ()! +3 f0 (3739|$#,2963|0@5@18@2@0#,)! +3 f1 (3739|$#,2963|0@5@18@2@0#,)! +3 f0 (3739|$#,)! +3 f1 (3739|$#,)! +3 f0 (3739|$#,)! +3 f1 (3739|$#,)! +3 f0 (3739|$#,)! +3 f1117 (3739|$#,)! +3 f0 (3739|0@0@2&#,)! +3 f1 (3739|0@0@2&#,)! +3 f0 (3739|$#,)! +3 f2963 (3739|$#,)! +3 f0 (3739|$#,)! +3 f2963 (3739|$#,)! +0 s4202|-1 3760 -1 +1 t3759|3759& +3 S!120{5|@1|^#nelements,5|@1|^#nspace,3760|@1|11@3@2&#elements,}^3763 +0 s4203|& +1 t3761|3761& +0 a4204|& +3 f0 ()! +3 f3764 ()! +3 f0 (3764|$#,3540|0@0@19@2@0#,)! +3 f1 (3764|$#,3540|0@0@19@2@0#,)! +3 f0 (3764|$#,)! +3 f1117 (3764|$#,)! +3 f0 (3764|0@0@2&#,)! +3 f1 (3764|0@0@2&#,)! +3 f0 (3528|0@5@2&#,3477|0@0@18&#,)! +3 f3540 (3528|0@5@2&#,3477|0@0@18&#,)! +3 f0 (3540|$#,)! +3 f1117 (3540|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 (3660|0@0@2&#,3670|@5|$#,)! +3 f3670 (3660|0@0@2&#,3670|@5|$#,)! +3 f0 (2900|0@0@2&#,)! +3 f3660 (2900|0@0@2&#,)! +3 f0 (938|0@5@2&#,)! +3 f3528 (938|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f3528 (967|0@5@2&#,)! +3 f0 (3620|0@0@2&#,)! +3 f3660 (3620|0@0@2&#,)! +3 f0 (3266|0@0@2&#,)! +3 f3660 (3266|0@0@2&#,)! +3 f0 (3275|0@0@2&#,)! +3 f3660 (3275|0@0@2&#,)! +3 f0 (3390|0@0@2&#,)! +3 f3660 (3390|0@0@2&#,)! +3 f0 (3309|0@0@2&#,)! +3 f3660 (3309|0@0@2&#,)! +3 f0 (3303|0@0@2&#,)! +3 f3660 (3303|0@0@2&#,)! +3 f0 (3340|0@0@2&#,)! +3 f3660 (3340|0@0@2&#,)! +3 f0 (3266|0@0@2&#,)! +3 f3660 (3266|0@0@2&#,)! +3 f0 (3275|0@0@2&#,)! +3 f3660 (3275|0@0@2&#,)! 3 f0 (3390|0@0@2&#,)! -3 f2862 (3390|0@0@2&#,)! -3 f0 (934|0@0@2&#,)! -3 f2794 (934|0@0@2&#,)! -3 f0 (937|0@5@2&#,2|$#,)! -3 f2794 (937|0@5@2&#,2|$#,)! -3 f0 (948|0@5@2&#,2|$#,)! -3 f2827 (948|0@5@2&#,2|$#,)! -3 f0 ()! -3 f2794 ()! -3 f0 ()! -3 f2794 ()! -3 f0 (948|0@5@2&#,2812|0@0@2&#,)! -3 f2827 (948|0@5@2&#,2812|0@0@2&#,)! -3 f0 (948|0@5@2&#,937|0@5@2&#,934|0@0@2&#,)! -3 f2833 (948|0@5@2&#,937|0@5@2&#,934|0@0@2&#,)! -3 f0 (948|0@5@2&#,2978|0@5@2&#,)! -3 f3003 (948|0@5@2&#,2978|0@5@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f3003 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2481|0@5@2&#,)! -3 f3003 (948|0@5@2&#,2481|0@5@2&#,)! -3 f0 (2328|@5|$#,)! -3 f2328 (2328|@5|$#,)! -3 f0 (948|0@5@2&#,934|0@5@2&#,)! -3 f2735 (948|0@5@2&#,934|0@5@2&#,)! -3 f0 (2749|0@0@2&#,948|0@5@2&#,)! -3 f2764 (2749|0@0@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,2|$#,937|0@5@2&#,)! -3 f2739 (948|0@5@2&#,2|$#,937|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f945 (948|0@5@2&#,)! -3 f0 (945|0@0@2&#,)! -3 f2710 (945|0@0@2&#,)! -3 f0 (945|0@5@2&#,2346|0@5@2&#,)! -3 f945 (945|0@5@2&#,2346|0@5@2&#,)! -3 f0 (948|0@5@2&#,945|@5|0@5@2&#,)! -3 f945 (948|0@5@2&#,945|@5|0@5@2&#,)! -3 f0 (945|@5|0@5@2&#,2735|0@0@2&#,)! -3 f945 (945|@5|0@5@2&#,2735|0@0@2&#,)! -3 f0 (937|0@5@2&#,945|0@0@2&#,)! -3 f2328 (937|0@5@2&#,945|0@0@2&#,)! -3 f0 (948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f934 (948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f0 (2774|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,)! -3 f934 (2774|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,)! -3 f0 (934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f934 (934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f0 (934|@5|0@0@2&#,2481|0@5@2&#,)! -3 f934 (934|@5|0@0@2&#,2481|0@5@2&#,)! -3 f0 (934|@5|0@0@2&#,948|0@5@2&#,)! -3 f934 (934|@5|0@0@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,934|0@0@2&#,)! -3 f934 (948|0@5@2&#,934|0@0@2&#,)! -3 f0 (934|@5|$#,940|$#,)! -3 f934 (934|@5|$#,940|$#,)! -3 f0 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f0 (934|0@5@2&#,934|@5|0@0@2&#,934|0@5@2&#,)! -3 f934 (934|0@5@2&#,934|@5|0@0@2&#,934|0@5@2&#,)! -3 f0 (934|0@5@2&#,934|@5|$#,934|0@5@2&#,)! -3 f934 (934|0@5@2&#,934|@5|$#,934|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f934 (948|0@5@2&#,)! -3 f0 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f934 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f0 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f934 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f0 (948|0@5@2&#,941|$#,)! -3 f934 (948|0@5@2&#,941|$#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,2812|0@0@2&#,)! -3 f934 (948|0@5@2&#,2812|0@0@2&#,)! -3 f0 (948|0@5@2&#,937|0@5@2&#,)! -3 f934 (948|0@5@2&#,937|0@5@2&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f0 (3136|$#,)! -3 f941 (3136|$#,)! -3 f0 (3136|$#,)! -3 f2570 (3136|$#,)! -3 f0 (3186|0@5@7&#,3186|0@5@7&#,)! -3 f2 (3186|0@5@7&#,3186|0@5@7&#,)! -3 f0 (2898|0@5@2&#,948|0@5@2&#,)! -3 f2898 (2898|0@5@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2898 (948|0@5@2&#,)! -3 f0 (3136|$#,3136|$#,)! -3 f2 (3136|$#,3136|$#,)! -3 f0 (937|0@5@7&#,)! -3 f941 (937|0@5@7&#,)! -3 f0 (941|$#,945|0@5@7&#,)! -3 f941 (941|$#,945|0@5@7&#,)! -3 f0 (2535|$#,948|0@5@2&#,)! -3 f942 (2535|$#,948|0@5@2&#,)! -3 f0 (937|0@5@7&#,2710|$#,2954|$#,)! -3 f1 (937|0@5@7&#,2710|$#,2954|$#,)! -3 f0 (2346|0@5@7&#,2954|$#,)! -3 f1 (2346|0@5@7&#,2954|$#,)! -3 f0 (3186|0@5@7&#,)! -3 f948 (3186|0@5@7&#,)! -3 f0 (934|0@5@7&#,)! -3 f948 (934|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f948 (937|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f3123 (948|0@5@7&#,)! +3 f3660 (3390|0@0@2&#,)! +3 f0 (3309|0@0@2&#,)! +3 f3660 (3309|0@0@2&#,)! +3 f0 (3349|0@0@2&#,)! +3 f3390 (3349|0@0@2&#,)! +3 f0 (3230|0@0@2&#,)! +3 f3390 (3230|0@0@2&#,)! +3 f0 (2837|0@5@2&#,3606|0@5@2&#,)! +3 f3612 (2837|0@5@2&#,3606|0@5@2&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1117 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1117 (2837|0@5@7&#,)! +3 f0 (3477|0@5@7&#,)! +3 f1117 (3477|0@5@7&#,)! +3 f0 (3444|0@0@2&#,3583|0@0@2&#,)! +3 f3606 (3444|0@0@2&#,3583|0@0@2&#,)! +3 f0 (967|0@5@2&#,3434|0@0@2&#,2|$#,967|0@5@2&#,3528|0@5@2&#,3477|0@5@2&#,)! +3 f3573 (967|0@5@2&#,3434|0@0@2&#,2|$#,967|0@5@2&#,3528|0@5@2&#,3477|0@5@2&#,)! +3 f0 (967|0@5@2&#,2837|0@5@2&#,967|0@5@2&#,)! +3 f3477 (967|0@5@2&#,2837|0@5@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,3434|0@0@2&#,3528|0@0@2&#,)! +3 f3573 (967|0@5@2&#,3434|0@0@2&#,3528|0@0@2&#,)! +3 f0 (967|0@5@2&#,3460|$#,3463|$#,967|0@5@2&#,)! +3 f938 (967|0@5@2&#,3460|$#,3463|$#,967|0@5@2&#,)! +3 f0 (2|$#,956|0@5@2&#,3076|0@0@2&#,)! +3 f3434 (2|$#,956|0@5@2&#,3076|0@0@2&#,)! +3 f0 (938|0@0@2&#,)! +3 f3434 (938|0@0@2&#,)! +3 f0 (956|0@5@2&#,956|0@5@2&#,)! +3 f956 (956|0@5@2&#,956|0@5@2&#,)! +3 f0 (3239|0@5@2&#,)! +3 f956 (3239|0@5@2&#,)! +3 f0 (3399|0@5@2&#,)! +3 f956 (3399|0@5@2&#,)! +3 f0 (3405|0@5@2&#,)! +3 f956 (3405|0@5@2&#,)! +3 f0 (956|0@5@2&#,1706|$#,)! +3 f956 (956|0@5@2&#,1706|$#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,2837|0@5@17&#,)! +3 f3405 (967|0@5@2&#,967|0@5@2&#,2837|0@5@17&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,)! +3 f3405 (967|0@5@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,3395|$#,967|0@5@2&#,3365|0@0@2&#,)! +3 f3399 (967|0@5@2&#,3395|$#,967|0@5@2&#,3365|0@0@2&#,)! +3 f0 (967|0@5@2&#,3395|$#,967|0@5@2&#,)! +3 f3399 (967|0@5@2&#,3395|$#,967|0@5@2&#,)! +3 f0 (956|0@5@2&#,3023|0@0@2&#,)! +3 f3355 (956|0@5@2&#,3023|0@0@2&#,)! +3 f0 (956|0@5@2&#,3253|0@0@2&#,)! +3 f3266 (956|0@5@2&#,3253|0@0@2&#,)! +3 f0 (956|0@5@2&#,3253|0@0@2&#,2|$#,2|$#,)! +3 f3275 (956|0@5@2&#,3253|0@0@2&#,2|$#,2|$#,)! +3 f0 ()! +3 f3275 ()! +3 f0 ()! +3 f3275 ()! +3 f0 (3013|0@0@2&#,941|0@5@2&#,)! +3 f3243 (3013|0@0@2&#,941|0@5@2&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,2|$#,2|$#,944|0@0@2&#,)! +3 f3349 (967|0@5@2&#,967|0@5@2&#,2|$#,2|$#,944|0@0@2&#,)! +3 f0 (944|$#,)! +3 f1117 (944|$#,)! +3 f0 (967|0@5@2&#,956|0@5@2&#,3048|0@0@2&#,)! +3 f3230 (967|0@5@2&#,956|0@5@2&#,3048|0@0@2&#,)! +3 f0 (3013|0@0@2&#,944|0@0@2&#,)! +3 f3038 (3013|0@0@2&#,944|0@0@2&#,)! +3 f0 (956|0@5@2&#,3013|0@0@2&#,)! +3 f3309 (956|0@5@2&#,3013|0@0@2&#,)! +3 f0 (1706|$#,956|0@5@2&#,3013|0@0@2&#,3295|0@5@2&#,3285|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,947|0@5@2&#,3174|0@5@2&#,947|0@5@2&#,947|0@5@2&#,)! +3 f3309 (1706|$#,956|0@5@2&#,3013|0@0@2&#,3295|0@5@2&#,3285|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,947|0@5@2&#,3174|0@5@2&#,947|0@5@2&#,947|0@5@2&#,)! +3 f0 (967|0@5@2&#,2702|0@5@2&#,)! +3 f3340 (967|0@5@2&#,2702|0@5@2&#,)! +3 f0 (967|0@5@2&#,2702|0@5@2&#,3295|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,3206|0@5@2&#,947|0@5@2&#,)! +3 f3303 (967|0@5@2&#,2702|0@5@2&#,3295|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,3206|0@5@2&#,947|0@5@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,941|0@0@2&#,3225|$#,)! +3 f947 (967|0@5@2&#,941|0@0@2&#,3225|$#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,)! +3 f950 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,)! +3 f0 (953|0@0@2&#,3200|$#,)! +3 f3206 (953|0@0@2&#,3200|$#,)! +3 f0 (950|0@0@2&#,)! +3 f3206 (950|0@0@2&#,)! +3 f0 (941|0@0@2&#,)! +3 f3141 (941|0@0@2&#,)! +3 f0 (956|0@5@2&#,2|$#,)! +3 f3141 (956|0@5@2&#,2|$#,)! +3 f0 (967|0@5@2&#,2|$#,)! +3 f3174 (967|0@5@2&#,2|$#,)! +3 f0 ()! +3 f3141 ()! +3 f0 ()! +3 f3141 ()! +3 f0 (967|0@5@2&#,3159|0@0@2&#,)! +3 f3174 (967|0@5@2&#,3159|0@0@2&#,)! +3 f0 (967|0@5@2&#,956|0@5@2&#,941|0@0@2&#,)! +3 f3180 (967|0@5@2&#,956|0@5@2&#,941|0@0@2&#,)! +3 f0 (967|0@5@2&#,3319|0@5@2&#,)! +3 f944 (967|0@5@2&#,3319|0@5@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f944 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,2837|0@5@2&#,)! +3 f944 (967|0@5@2&#,2837|0@5@2&#,)! +3 f0 (2684|@5|$#,)! +3 f2684 (2684|@5|$#,)! +3 f0 (967|0@5@2&#,941|0@5@2&#,)! +3 f3082 (967|0@5@2&#,941|0@5@2&#,)! +3 f0 (3096|0@0@2&#,967|0@5@2&#,)! +3 f3111 (3096|0@0@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,2|$#,956|0@5@2&#,)! +3 f3086 (967|0@5@2&#,2|$#,956|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f964 (967|0@5@2&#,)! +3 f0 (964|0@0@2&#,)! +3 f3013 (964|0@0@2&#,)! +3 f0 (964|0@5@2&#,2702|0@5@2&#,)! +3 f964 (964|0@5@2&#,2702|0@5@2&#,)! +3 f0 (967|0@5@2&#,964|@5|0@5@2&#,)! +3 f964 (967|0@5@2&#,964|@5|0@5@2&#,)! +3 f0 (964|@5|0@5@2&#,3082|0@0@2&#,)! +3 f964 (964|@5|0@5@2&#,3082|0@0@2&#,)! +3 f0 (956|0@5@2&#,964|0@0@2&#,)! +3 f2684 (956|0@5@2&#,964|0@0@2&#,)! +3 f0 (967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f941 (967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f0 (3121|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,)! +3 f941 (3121|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,)! +3 f0 (941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f941 (941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f0 (941|@5|0@0@2&#,2837|0@5@2&#,)! +3 f941 (941|@5|0@0@2&#,2837|0@5@2&#,)! +3 f0 (941|@5|0@0@2&#,967|0@5@2&#,)! +3 f941 (941|@5|0@0@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,941|0@0@2&#,)! +3 f941 (967|0@5@2&#,941|0@0@2&#,)! +3 f0 (941|@5|$#,959|$#,)! +3 f941 (941|@5|$#,959|$#,)! +3 f0 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f0 (941|0@5@2&#,941|@5|0@0@2&#,941|0@5@2&#,)! +3 f941 (941|0@5@2&#,941|@5|0@0@2&#,941|0@5@2&#,)! +3 f0 (941|0@5@2&#,941|@5|$#,941|0@5@2&#,)! +3 f941 (941|0@5@2&#,941|@5|$#,941|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f941 (967|0@5@2&#,)! +3 f0 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f941 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f0 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f941 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f0 (967|0@5@2&#,960|$#,)! +3 f941 (967|0@5@2&#,960|$#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,3159|0@0@2&#,)! +3 f941 (967|0@5@2&#,3159|0@0@2&#,)! +3 f0 (967|0@5@2&#,956|0@5@2&#,)! +3 f941 (967|0@5@2&#,956|0@5@2&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f0 (3477|$#,)! +3 f960 (3477|$#,)! +3 f0 (3477|$#,)! +3 f2916 (3477|$#,)! +3 f0 (3528|0@5@7&#,3528|0@5@7&#,)! +3 f2 (3528|0@5@7&#,3528|0@5@7&#,)! +3 f0 (3239|0@5@2&#,967|0@5@2&#,)! +3 f3239 (3239|0@5@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f3239 (967|0@5@2&#,)! +3 f0 (3477|$#,3477|$#,)! +3 f2 (3477|$#,3477|$#,)! +3 f0 (956|0@5@7&#,)! +3 f960 (956|0@5@7&#,)! +3 f0 (960|$#,964|0@5@7&#,)! +3 f960 (960|$#,964|0@5@7&#,)! +3 f0 (2879|$#,967|0@5@2&#,)! +3 f961 (2879|$#,967|0@5@2&#,)! +3 f0 (956|0@5@7&#,3013|$#,3295|$#,)! +3 f1 (956|0@5@7&#,3013|$#,3295|$#,)! +3 f0 (2702|0@5@7&#,3295|$#,)! +3 f1 (2702|0@5@7&#,3295|$#,)! +3 f0 (3528|0@5@7&#,)! +3 f967 (3528|0@5@7&#,)! +3 f0 (941|0@5@7&#,)! +3 f967 (941|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f967 (956|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f3463 (967|0@5@7&#,)! 3 f0 (5|$#,)! -3 f3123 (5|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f2328 ()! -3 f0 (940|@5|$#,948|0@5@2&#,934|0@0@2&#,)! -3 f940 (940|@5|$#,948|0@5@2&#,934|0@0@2&#,)! -3 f0 (2710|$#,)! -3 f989 (2710|$#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f1 (937|0@5@7&#,)! -3 f0 (2710|$#,)! -3 f1 (2710|$#,)! -3 f0 (2710|$#,)! -3 f2710 (2710|$#,)! -3 f0 (3198|$#,3198|$#,)! -3 f2 (3198|$#,3198|$#,)! -3 f0 (942|$#,)! -3 f1 (942|$#,)! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -0 s17|& -3 S_fctInfo{948|@1|0@5@3&#id,2|@1|^#export,3177|@1|0@0@2&#signature,2651|@1|0@5@2&#globals,}! -0 s6886|-1 3699 -1 -1 t3698|3698& -0 s223|-1 17154 -1 -3 S_typeInfo{948|@1|0@5@3&#id,941|@1|^#basedOn,2|@1|^#abstract,2|@1|^#modifiable,2|@1|^#export,}! -0 s6913|-1 3703 -1 -1 t3702|3702& -0 s225|& -3 e!46{VRK_CONST,VRK_ENUM,VRK_VAR,VRK_PRIVATE,VRK_GLOBAL,VRK_LET,VRK_PARAM,VRK_QUANT}! -0 s7014|& -0 s226|& -3 S_varInfo{948|@1|0@5@3&#id,941|@1|^#sort,3707|@1|^#kind,2|@1|^#export,}! -0 s6887|-1 3710 -1 -1 t3709|3709& -0 s227|& -3 S_opInfo{3186|@1|0@0@2&#name,3150|@1|0@5@2&#signatures,}! -0 s6782|-1 3714 -1 -1 t3713|3713& -0 s228|& -3 U!47{2481|@1|0@5@18&#enums,3025|@1|0@5@3&#decls,}! -0 s6958|& -3 S_tagInfo{948|@1|0@5@3&#id,2535|@1|^#kind,2|@1|^#imported,941|@1|^#sort,3716|@1|11@0@0&#content,}! -0 s6914|-1 3720 -1 -1 t3719|3719& -0 s229|& -3 e!48{IK_SORT,IK_OP,IK_TAG}! -0 s7015|& -0 s230|& -3 U!49{3721|@1|0@0@3&#tag,941|@1|^#sort,3715|@1|0@0@3&#op,}! -0 s6970|& -3 S!50{3724|@1|^#kind,3725|@1|^#content,}! -0 s6771|& -0 s377|-1 3737 -1 -3 e!51{SPE_GLOBAL,SPE_FCN,SPE_QUANT,SPE_CLAIM,SPE_ABSTRACT,SPE_INVALID}! -0 s7016|& -0 s231|& -3 S_scopeInfo{3732|@1|^#kind,}! -0 s6741|-1 3735 -1 -1 t3734|3734& -0 s232|& -1 t3729|3729& -0 s6751|-1 3739 -1 -1 t3738|3738& -3 S_htEntry{3737|@1|0@0@2&#data,3739|@1|0@0@2&#next,}! -0 s233|-1 17127 -1 -0 s234|-1 3743 -1 -1 t3742|3742 17179 -1 -0 s235|-1 3745 -1 -1 t3744|3744& -3 S!52{6|@1|^#count,6|@1|^#size,3745|@1|0@3@2&#buckets,}! -0 s6812|& -0 s382|-1 17006 -1 -0 s6828|-1 3750 -1 -1 t3749|3749& -0 s236|& -3 f0 (3704|0@5@7&#,)! -3 f2 (3704|0@5@7&#,)! -3 f0 (3711|0@5@7&#,)! -3 f2 (3711|0@5@7&#,)! -3 f0 (3721|0@5@7&#,)! -3 f2 (3721|0@5@7&#,)! -3 f0 (3715|0@5@7&#,)! -3 f2 (3715|0@5@7&#,)! -3 f0 ()! -3 f3751 ()! -3 f0 (3751|$#,3736|0@0@4&#,)! -3 f1 (3751|$#,3736|0@0@4&#,)! -3 f0 (3751|$#,)! -3 f1 (3751|$#,)! -3 f0 (3751|$#,3700|0@0@2&#,)! -3 f2 (3751|$#,3700|0@0@2&#,)! -3 f0 (3751|$#,3704|0@0@2&#,)! -3 f1 (3751|$#,3704|0@0@2&#,)! -3 f0 (3751|$#,3711|0@0@6&#,)! -3 f2 (3751|$#,3711|0@0@6&#,)! -3 f0 (3751|$#,3186|0@2@2&#,3136|0@0@17&#,)! -3 f1 (3751|$#,3186|0@2@2&#,3136|0@0@17&#,)! -3 f0 (3751|$#,3721|0@0@2&#,)! -3 f2 (3751|$#,3721|0@0@2&#,)! -3 f0 (3751|$#,3721|0@0@2&#,)! -3 f2 (3751|$#,3721|0@0@2&#,)! -3 f0 (3751|$#,942|$#,)! -3 f2 (3751|$#,942|$#,)! -3 f0 (3751|$#,942|$#,)! -3 f3704 (3751|$#,942|$#,)! -3 f0 (3751|$#,942|$#,)! -3 f3711 (3751|$#,942|$#,)! -3 f0 (3751|$#,942|$#,)! -3 f3711 (3751|$#,942|$#,)! -3 f0 (3751|$#,3186|0@2@7&#,)! -3 f3715 (3751|$#,3186|0@2@7&#,)! -3 f0 (3751|$#,942|$#,)! -3 f3721 (3751|$#,942|$#,)! -3 f0 (3751|$#,2|$#,)! -3 f1 (3751|$#,2|$#,)! -3 f0 (3751|$#,210|$#,2|$#,)! -3 f1 (3751|$#,210|$#,2|$#,)! -3 f0 (2124|$#,948|0@5@7&#,2200|$#,)! -3 f1 (2124|$#,948|0@5@7&#,2200|$#,)! -3 f0 (3751|$#,)! -3 f1 (3751|$#,)! -3 f0 (3751|$#,942|$#,)! -3 f942 (3751|$#,942|$#,)! -3 f0 (2535|$#,)! -3 f989 (2535|$#,)! -3 f0 (2200|$#,942|$#,)! -3 f942 (2200|$#,942|$#,)! -3 f0 (3711|0@0@2&#,)! -3 f1 (3711|0@0@2&#,)! -3 f0 (3751|$#,3186|0@5@6&#,3398|$#,941|$#,)! -3 f3208 (3751|$#,3186|0@5@6&#,3398|$#,941|$#,)! -3 f0 (3751|$#,3186|$#,)! -3 f3150 (3751|$#,3186|$#,)! -3 f0 (3751|$#,3186|$#,5|$#,)! -3 f2 (3751|$#,3186|$#,5|$#,)! -3 f0 (3751|0@0@2&#,)! -3 f1 (3751|0@0@2&#,)! -0 s70|-1 3815 -1 -1 t3814|3814& -3 S_exprNodeList{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,3815|@1|11@3@3&#elements,}! -0 s6895|-1 3818 -1 -1 t3817|3817& -0 a237|& -3 f1 (3819|@7|&#,966|@3|6@5@19@2@0#,)! -3 f0 (3819|$#,)! -3 f5 (3819|$#,)! -3 f0 (3819|$#,)! -3 f2 (3819|$#,)! -3 f0 ()! -3 f3819 ()! -3 f0 (3819|$#,5|$#,)! -3 f966 (3819|$#,5|$#,)! -3 f0 (3819|@5|$#,966|0@5@2&#,)! -3 f3819 (3819|@5|$#,966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f3819 (966|0@5@2&#,)! -3 f0 (3819|$#,966|0@5@2&#,)! -3 f1 (3819|$#,966|0@5@2&#,)! -3 f0 (3819|$#,)! -3 f1 (3819|$#,)! -3 f0 (3819|$#,)! -3 f1 (3819|$#,)! -3 f0 (3819|$#,)! -3 f989 (3819|$#,)! -3 f0 (3819|0@0@2&#,)! -3 f1 (3819|0@0@2&#,)! -3 f0 (3819|0@0@2&#,)! -3 f1 (3819|0@0@2&#,)! -3 f0 (3819|$#,)! -3 f966 (3819|$#,)! -3 f0 (3819|$#,)! -3 f966 (3819|$#,)! -3 f0 (3819|$#,5|$#,)! -3 f966 (3819|$#,5|$#,)! -0 a8|& -3 f0 (3851|@7|$#,)! -3 f2 (3851|@7|$#,)! -3 f0 (3851|@7|$#,)! -3 f2 (3851|@7|$#,)! -3 f0 (3851|@7|$#,)! -3 f2 (3851|@7|$#,)! -3 f0 (3851|@7|$#,)! -3 f2 (3851|@7|$#,)! -3 f0 (3851|@7|$#,)! -3 f2 (3851|@7|$#,)! -3 f0 (3851|$#,3851|$#,)! -3 f2 (3851|$#,3851|$#,)! -3 f0 (3851|$#,3851|$#,)! -3 f2 (3851|$#,3851|$#,)! -3 f0 (3851|$#,3851|$#,)! -3 f2 (3851|$#,3851|$#,)! -3 f0 (3851|$#,)! -3 f989 (3851|$#,)! +3 f3463 (5|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f2684 ()! +3 f0 (959|@5|$#,967|0@5@2&#,941|0@0@2&#,)! +3 f959 (959|@5|$#,967|0@5@2&#,941|0@0@2&#,)! +3 f0 (3013|$#,)! +3 f1117 (3013|$#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f1 (956|0@5@7&#,)! +3 f0 (3013|$#,)! +3 f1 (3013|$#,)! +3 f0 (3013|$#,)! +3 f3013 (3013|$#,)! +3 f0 (3540|$#,3540|$#,)! +3 f2 (3540|$#,3540|$#,)! +3 f0 (961|$#,)! +3 f1 (961|$#,)! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +0 s4344|& +3 S!121{967|@1|0@5@3&#id,2|@1|^#export,3518|@1|0@0@2&#signature,2998|@1|0@5@2&#globals,}^4040 +0 s4345|& +1 t4038|4038& +0 s4346|-1 19143 -1 +3 S!122{967|@1|0@5@3&#id,960|@1|^#basedOn,2|@1|^#abstract,2|@1|^#modifiable,2|@1|^#export,}^4044 +0 s4347|& +1 t4042|4042& +0 s4348|& +3 e!123{VRK_CONST,VRK_ENUM,VRK_VAR,VRK_PRIVATE,VRK_GLOBAL,VRK_LET,VRK_PARAM,VRK_QUANT}! +0 s4357|& +0 s4358|& +3 S!124{967|@1|0@5@3&#id,960|@1|^#sort,4048|@1|^#kind,2|@1|^#export,}^4051 +0 s4359|& +1 t4049|4049& +0 s4360|& +3 S!125{3528|@1|0@0@2&#name,3491|@1|0@5@2&#signatures,}^4055 +0 s4361|& +1 t4053|4053& +0 s4362|& +3 U!126{2837|@1|0@5@18&#enums,3365|@1|0@5@3&#decls,}! +0 s4363|& +3 S!127{967|@1|0@5@3&#id,2879|@1|^#kind,2|@1|^#imported,960|@1|^#sort,4057|@1|11@0@0&#content,}^4061 +0 s4364|& +1 t4059|4059& +0 s4365|& +3 e!128{IK_SORT,IK_OP,IK_TAG}! +0 s4369|& +0 s4370|& +3 U!129{4062|@1|0@0@3&#tag,960|@1|^#sort,4056|@1|0@0@3&#op,}! +0 s4371|& +3 S!130{4065|@1|^#kind,4066|@1|^#content,}! +0 s4372|& +0 s4373|-1 4078 -1 +3 e!131{SPE_GLOBAL,SPE_FCN,SPE_QUANT,SPE_CLAIM,SPE_ABSTRACT,SPE_INVALID}! +0 s4380|& +0 s4381|& +3 S!132{4073|@1|^#kind,}^4076 +0 s4382|& +1 t4074|4074& +0 s4383|& +1 t4070|4070& +0 s4384|-1 4080 -1 +1 t4079|4079& +3 Ss_htEntry{4078|@1|0@0@2&#data,4080|@1|0@0@2&#next,}! +0 s4385|-1 19116 -1 +0 s4386|-1 4084 -1 +1 t4083|4083 19168 -1 +0 s4387|-1 4086 -1 +1 t4085|4085& +3 S!133{6|@1|^#count,6|@1|^#size,4086|@1|0@3@2&#buckets,}! +0 s4388|& +0 s4389|-1 18995 -1 +0 s4390|-1 4091 -1 +1 t4090|4090& +0 s4391|& +3 f0 (4045|0@5@7&#,)! +3 f2 (4045|0@5@7&#,)! +3 f0 (4052|0@5@7&#,)! +3 f2 (4052|0@5@7&#,)! +3 f0 (4062|0@5@7&#,)! +3 f2 (4062|0@5@7&#,)! +3 f0 (4056|0@5@7&#,)! +3 f2 (4056|0@5@7&#,)! +3 f0 ()! +3 f4092 ()! +3 f0 (4092|$#,4077|0@0@4&#,)! +3 f1 (4092|$#,4077|0@0@4&#,)! +3 f0 (4092|$#,)! +3 f1 (4092|$#,)! +3 f0 (4092|$#,4041|0@0@2&#,)! +3 f2 (4092|$#,4041|0@0@2&#,)! +3 f0 (4092|$#,4045|0@0@2&#,)! +3 f1 (4092|$#,4045|0@0@2&#,)! +3 f0 (4092|$#,4052|0@0@6&#,)! +3 f2 (4092|$#,4052|0@0@6&#,)! +3 f0 (4092|$#,3528|0@2@2&#,3477|0@0@17&#,)! +3 f1 (4092|$#,3528|0@2@2&#,3477|0@0@17&#,)! +3 f0 (4092|$#,4062|0@0@2&#,)! +3 f2 (4092|$#,4062|0@0@2&#,)! +3 f0 (4092|$#,4062|0@0@2&#,)! +3 f2 (4092|$#,4062|0@0@2&#,)! +3 f0 (4092|$#,961|$#,)! +3 f2 (4092|$#,961|$#,)! +3 f0 (4092|$#,961|$#,)! +3 f4045 (4092|$#,961|$#,)! +3 f0 (4092|$#,961|$#,)! +3 f4052 (4092|$#,961|$#,)! +3 f0 (4092|$#,961|$#,)! +3 f4052 (4092|$#,961|$#,)! +3 f0 (4092|$#,3528|0@2@7&#,)! +3 f4056 (4092|$#,3528|0@2@7&#,)! +3 f0 (4092|$#,961|$#,)! +3 f4062 (4092|$#,961|$#,)! +3 f0 (4092|$#,2|$#,)! +3 f1 (4092|$#,2|$#,)! +3 f0 (4092|$#,211|$#,2|$#,)! +3 f1 (4092|$#,211|$#,2|$#,)! +3 f0 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 f1 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 f0 (4092|$#,)! +3 f1 (4092|$#,)! +3 f0 (4092|$#,961|$#,)! +3 f961 (4092|$#,961|$#,)! +3 f0 (2879|$#,)! +3 f1117 (2879|$#,)! +3 f0 (2555|$#,961|$#,)! +3 f961 (2555|$#,961|$#,)! +3 f0 (4052|0@0@2&#,)! +3 f1 (4052|0@0@2&#,)! +3 f0 (4092|$#,3528|0@5@6&#,3739|$#,960|$#,)! +3 f3550 (4092|$#,3528|0@5@6&#,3739|$#,960|$#,)! +3 f0 (4092|$#,3528|$#,)! +3 f3491 (4092|$#,3528|$#,)! +3 f0 (4092|$#,3528|$#,5|$#,)! +3 f2 (4092|$#,3528|$#,5|$#,)! +3 f0 (4092|0@0@2&#,)! +3 f1 (4092|0@0@2&#,)! +0 s4419|-1 4156 -1 +1 t4155|4155& +3 S!134{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,4156|@1|11@3@3&#elements,}^4159 +0 s4420|& +1 t4157|4157& +0 a4421|& +3 f1 (4160|@7|&#,988|@3|6@5@19@2@0#,)! +3 f0 (4160|$#,)! +3 f5 (4160|$#,)! +3 f0 (4160|$#,)! +3 f2 (4160|$#,)! +3 f0 ()! +3 f4160 ()! +3 f0 (4160|$#,5|$#,)! +3 f988 (4160|$#,5|$#,)! +3 f0 (4160|@5|$#,988|0@5@2&#,)! +3 f4160 (4160|@5|$#,988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f4160 (988|0@5@2&#,)! +3 f0 (4160|$#,988|0@5@2&#,)! +3 f1 (4160|$#,988|0@5@2&#,)! +3 f0 (4160|$#,)! +3 f1 (4160|$#,)! +3 f0 (4160|$#,)! +3 f1 (4160|$#,)! +3 f0 (4160|$#,)! +3 f1117 (4160|$#,)! +3 f0 (4160|0@0@2&#,)! +3 f1 (4160|0@0@2&#,)! +3 f0 (4160|0@0@2&#,)! +3 f1 (4160|0@0@2&#,)! +3 f0 (4160|$#,)! +3 f988 (4160|$#,)! +3 f0 (4160|$#,)! +3 f988 (4160|$#,)! +3 f0 (4160|$#,5|$#,)! +3 f988 (4160|$#,5|$#,)! +0 a4438|& +3 f0 (4192|@7|$#,)! +3 f2 (4192|@7|$#,)! +3 f0 (4192|@7|$#,)! +3 f2 (4192|@7|$#,)! +3 f0 (4192|@7|$#,)! +3 f2 (4192|@7|$#,)! +3 f0 (4192|@7|$#,)! +3 f2 (4192|@7|$#,)! +3 f0 (4192|@7|$#,)! +3 f2 (4192|@7|$#,)! +3 f0 (4192|$#,4192|$#,)! +3 f2 (4192|$#,4192|$#,)! +3 f0 (4192|$#,4192|$#,)! +3 f2 (4192|$#,4192|$#,)! +3 f0 (4192|$#,4192|$#,)! +3 f2 (4192|$#,4192|$#,)! +3 f0 (4192|$#,)! +3 f1117 (4192|$#,)! 3 f0 (5|$#,)! -3 f3851 (5|$#,)! -3 f0 (3851|$#,)! -3 f2 (3851|$#,)! -0 s6876|-1 3875 -1 -1 t3874|3874& -0 s238|& -3 S_hentry{989|@1|0@5@18&#key,5|@1|^#val,}! -0 s6764|& -0 s239|-1 3880 -1 -1 t3879|3879& -3 S_hbucket{5|@1|^#size,5|@1|^#nspace,3880|@1|0@0@2&#entries,}! -0 s6877|-1 3883 -1 -1 t3882|3882& -0 s240|-1 11884 -1 -0 s241|-1 3886 -1 -1 t3885|3885& -3 S_hashTable{5|@1|^#size,5|@1|^#nentries,3886|@1|0@0@2&#buckets,}! +3 f4192 (5|$#,)! +3 f0 (4192|$#,)! +3 f2 (4192|$#,)! +3 S!135{1117|@1|0@5@2&#key,5|@1|^#val,}^4217 +0 s4467|& +1 t4215|4215& +0 s4468|-1 13593 -1 +0 s4469|-1 4220 -1 +1 t4219|4219& +3 S!136{5|@1|^#size,5|@1|^#nspace,4220|@1|0@0@2&#entries,}^4223 +0 s4470|& +1 t4221|4221& +0 s4471|-1 13620 -1 +0 s4472|-1 4226 -1 +1 t4225|4225& +3 Ss_cstringTable{5|@1|^#size,5|@1|^#nentries,4226|@1|0@0@2&#buckets,}! +3 f0 (1006|0@5@7&#,)! +3 f2 (1006|0@5@7&#,)! +3 f0 (1006|0@5@7&#,)! +3 f2 (1006|0@5@7&#,)! 3 f0 (5|$#,)! -3 f3876 (5|$#,)! -3 f0 (3876|$#,989|0@5@7&#,5|$#,)! -3 f1 (3876|$#,989|0@5@7&#,5|$#,)! -3 f0 (3876|$#,989|0@5@7&#,)! -3 f5 (3876|$#,989|0@5@7&#,)! -3 f0 (3876|$#,)! -3 f989 (3876|$#,)! -3 f0 (3876|0@0@2&#,)! -3 f1 (3876|0@0@2&#,)! -3 f0 (3876|$#,989|0@5@7&#,)! -3 f1 (3876|$#,989|0@5@7&#,)! -3 f0 (3876|$#,989|0@5@7&#,989|0@5@18&#,)! -3 f1 (3876|$#,989|0@5@7&#,989|0@5@18&#,)! -1 t1335|1335& -3 S_filelocList{5|@1|^#nelements,5|@1|^#free,3902|@1|11@3@3&#elements,}! -0 s6839|-1 3905 -1 -1 t3904|3904& -0 a242|& -3 f0 (3906|0@5@7&#,)! -3 f2 (3906|0@5@7&#,)! -3 f0 (3906|0@5@7&#,)! -3 f2 (3906|0@5@7&#,)! -3 f1 (3906|@7|6@5@7&#,978|@3|6@5@19@2@0#,)! -3 f0 (3906|0@5@7&#,)! -3 f5 (3906|0@5@7&#,)! -3 f0 (3906|@7|0@5@7&#,)! -3 f5 (3906|@7|0@5@7&#,)! -3 f0 (3906|@7|0@5@7&#,)! -3 f2 (3906|@7|0@5@7&#,)! -3 f0 (3906|@5|0@5@7&#,3906|0@5@2&#,)! -3 f3906 (3906|@5|0@5@7&#,3906|0@5@2&#,)! -3 f0 ()! -3 f3906 ()! -3 f0 (3906|@5|0@5@7&#,978|0@5@2&#,)! -3 f3906 (3906|@5|0@5@7&#,978|0@5@2&#,)! -3 f0 (3906|@5|0@5@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f3906 (3906|@5|0@5@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f0 (3906|@5|0@5@7&#,)! -3 f3906 (3906|@5|0@5@7&#,)! -3 f0 (3906|0@5@7&#,)! -3 f989 (3906|0@5@7&#,)! -3 f0 (3906|0@5@7&#,)! -3 f989 (3906|0@5@7&#,)! -3 f0 (3906|0@5@2&#,)! -3 f1 (3906|0@5@2&#,)! -0 s84|-1 14473 -1 -3 f0 (989|0@5@2&#,)! -3 f3934 (989|0@5@2&#,)! -0 s243|-1 3938 -1 -1 t3937|3937& -3 S_enumNameList{5|@1|^#nelements,5|@1|^#nspace,3938|@1|11@3@3&#elements,}! -0 s6862|-1 3941 -1 -1 t3940|3940& -0 a244|& -3 f1 (3942|@7|&#,3934|@3|6@5@19@2@0#,)! -3 f0 (3942|$#,)! -3 f5 (3942|$#,)! -3 f0 ()! -3 f3942 ()! -3 f0 (3942|$#,989|0@5@7&#,)! -3 f2 (3942|$#,989|0@5@7&#,)! -3 f0 (3942|@5|$#,3934|0@5@2&#,)! -3 f3942 (3942|@5|$#,3934|0@5@2&#,)! -3 f0 (3942|$#,3934|0@5@4&#,)! -3 f1 (3942|$#,3934|0@5@4&#,)! -3 f0 (3942|$#,)! -3 f989 (3942|$#,)! -3 f0 (3942|0@0@2&#,)! -3 f1 (3942|0@0@2&#,)! -3 f0 (3942|$#,3942|$#,)! -3 f2 (3942|$#,3942|$#,)! -3 f0 (3934|0@5@4&#,)! -3 f3942 (3934|0@5@4&#,)! -3 f0 (3942|$#,3942|$#,)! -3 f3942 (3942|$#,3942|$#,)! -3 f0 (3942|$#,)! -3 f3942 (3942|$#,)! -3 f0 (312|$#,)! -3 f3942 (312|$#,)! -3 f0 (3942|$#,)! -3 f989 (3942|$#,)! -3 f0 (3942|$#,)! -3 f989 (3942|$#,)! -0 a245|& -3 f0 (3972|$#,)! -3 f5 (3972|$#,)! -3 f0 (3942|$#,3972|$#,)! -3 f3972 (3942|$#,3972|$#,)! -3 f0 ()! -3 f3972 ()! -3 f0 (3972|$#,989|0@5@7&#,)! -3 f2 (3972|$#,989|0@5@7&#,)! -3 f0 (3972|$#,3934|0@5@18&#,)! -3 f1 (3972|$#,3934|0@5@18&#,)! -3 f0 (3972|0@0@2&#,)! -3 f1 (3972|0@0@2&#,)! -3 f0 (3972|$#,)! -3 f989 (3972|$#,)! -3 e!53{SS_UNKNOWN,SS_UNUSEABLE,SS_UNDEFINED,SS_MUNDEFINED,SS_ALLOCATED,SS_PDEFINED,SS_DEFINED,SS_PARTIAL,SS_DEAD,SS_HOFFA,SS_FIXED,SS_RELDEF,SS_UNDEFGLOB,SS_KILLED,SS_UNDEFKILLED,SS_SPECIAL,SS_LAST}! -0 s7017|& -0 s246|& -3 e!54{SCNONE,SCEXTERN,SCSTATIC}! -0 s7018|& -0 s247|& -3 e_nstate{NS_ERROR,NS_UNKNOWN,NS_NOTNULL,NS_MNOTNULL,NS_RELNULL,NS_CONSTNULL,NS_POSNULL,NS_DEFNULL,NS_ABSNULL}! -0 s7021|& -0 s248|& -3 f0 (3995|$#,)! -3 f2 (3995|$#,)! -3 e!55{AK_UNKNOWN,AK_ERROR,AK_ONLY,AK_IMPONLY,AK_KEEP,AK_KEPT,AK_TEMP,AK_IMPTEMP,AK_SHARED,AK_UNIQUE,AK_RETURNED,AK_FRESH,AK_STACK,AK_REFCOUNTED,AK_REFS,AK_KILLREF,AK_NEWREF,AK_OWNED,AK_DEPENDENT,AK_IMPDEPENDENT,AK_STATIC,AK_LOCAL}! -0 s7019|& -0 s249|& -3 e!56{XO_UNKNOWN,XO_NORMAL,XO_EXPOSED,XO_OBSERVER}! -0 s7020|& -0 s250|& -3 f0 (3989|$#,)! -3 f2 (3989|$#,)! -3 f0 (3989|$#,)! -3 f2 (3989|$#,)! -3 f0 (4003|$#,)! -3 f2 (4003|$#,)! -3 f0 (4003|@7|$#,)! -3 f2 (4003|@7|$#,)! -3 f0 (4000|@7|$#,)! -3 f2 (4000|@7|$#,)! -3 f0 (4000|@7|$#,)! -3 f2 (4000|@7|$#,)! -3 f0 (4000|@7|$#,)! -3 f2 (4000|@7|$#,)! -3 f0 (4000|@7|$#,)! -3 f2 (4000|@7|$#,)! -3 f0 (4000|$#,4000|$#,)! -3 f2 (4000|$#,4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (3989|$#,)! -3 f989 (3989|$#,)! -3 f0 (1500|$#,)! -3 f4000 (1500|$#,)! -3 f0 (4000|$#,4000|$#,)! -3 f4000 (4000|$#,4000|$#,)! -3 f0 (4000|$#,)! -3 f989 (4000|$#,)! -3 f0 (4000|$#,)! -3 f989 (4000|$#,)! +3 f1006 (5|$#,)! +3 f0 (1006|0@5@7&#,1117|0@5@2&#,5|$#,)! +3 f1 (1006|0@5@7&#,1117|0@5@2&#,5|$#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f5 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1006|0@5@7&#,)! +3 f1117 (1006|0@5@7&#,)! +3 f0 (1006|0@5@2&#,)! +3 f1 (1006|0@5@2&#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f1 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1006|0@5@7&#,)! +3 f1117 (1006|0@5@7&#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f1 (1006|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,1117|0@5@2&#,)! +3 f1 (1006|0@5@7&#,1117|0@5@7&#,1117|0@5@2&#,)! +3 S!137{1117|@1|0@5@2&#key,20|@1|0@0@2&#val,}^4252 +0 s4484|& +1 t4250|4250& +0 s4485|-1 13970 -1 +0 s4486|-1 4255 -1 +1 t4254|4254& +3 S!138{5|@1|^#size,5|@1|^#nspace,4255|@1|0@0@2&#entries,}^4258 +0 s4487|& +1 t4256|4256& +0 s4488|-1 13997 -1 +0 s4489|-1 4261 -1 +1 t4260|4260& +3 Ss_genericTable{5|@1|^#size,5|@1|^#nentries,4261|@1|0@0@2&#buckets,}! +3 f0 (1009|0@5@7&#,)! +3 f2 (1009|0@5@7&#,)! +3 f0 (1009|0@5@7&#,)! +3 f2 (1009|0@5@7&#,)! 3 f0 (5|$#,)! -3 f4000 (5|$#,)! +3 f1009 (5|$#,)! +3 f0 (1009|0@5@7&#,)! +3 f5 (1009|0@5@7&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@2&#,20|0@0@2&#,)! +3 f1 (1009|0@5@7&#,1117|0@5@2&#,20|0@0@2&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f19 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f20 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1009|0@5@7&#,)! +3 f1117 (1009|0@5@7&#,)! +3 f0 (1009|0@5@2&#,)! +3 f1 (1009|0@5@2&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f1 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,20|0@0@2&#,)! +3 f1 (1009|0@5@7&#,1117|0@5@7&#,20|0@0@2&#,)! +3 f1 (1009|@7|6@5@7&#,1117|@3|6@5@19@2@0#,20|@3|6@0@19@2@0#,)! +1 t1430|1430& +3 S!139{5|@1|^#nelements,5|@1|^#free,4287|@1|11@3@3&#elements,}^4290 +0 s4502|& +1 t4288|4288& +0 a4503|& +3 f0 (4291|0@5@7&#,)! +3 f2 (4291|0@5@7&#,)! +3 f0 (4291|0@5@7&#,)! +3 f2 (4291|0@5@7&#,)! +3 f1 (4291|@7|6@5@7&#,1003|@3|6@5@19@2@0#,)! +3 f0 (4291|0@5@7&#,)! +3 f5 (4291|0@5@7&#,)! +3 f0 (4291|@7|0@5@7&#,)! +3 f5 (4291|@7|0@5@7&#,)! +3 f0 (4291|@7|0@5@7&#,)! +3 f2 (4291|@7|0@5@7&#,)! +3 f0 (4291|@5|0@5@7&#,4291|0@5@2&#,)! +3 f4291 (4291|@5|0@5@7&#,4291|0@5@2&#,)! +3 f0 ()! +3 f4291 ()! +3 f0 (4291|@5|0@5@7&#,1003|0@5@2&#,)! +3 f4291 (4291|@5|0@5@7&#,1003|0@5@2&#,)! +3 f0 (4291|@5|0@5@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f4291 (4291|@5|0@5@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (4291|@5|0@5@7&#,)! +3 f4291 (4291|@5|0@5@7&#,)! +3 f0 (4291|0@5@7&#,)! +3 f1117 (4291|0@5@7&#,)! +3 f0 (4291|0@5@7&#,)! +3 f1117 (4291|0@5@7&#,)! +3 f0 (4291|0@5@2&#,)! +3 f1 (4291|0@5@2&#,)! +0 s4517|-1 16409 -1 +3 f0 (1117|0@5@2&#,)! +3 f4319 (1117|0@5@2&#,)! +0 s4518|-1 4323 -1 +1 t4322|4322& +3 S!140{5|@1|^#nelements,5|@1|^#nspace,4323|@1|11@3@3&#elements,}^4326 +0 s4519|& +1 t4324|4324& +0 a4520|& +3 f1 (4327|@7|&#,4319|@3|6@5@19@2@0#,)! +3 f0 (4327|$#,)! +3 f5 (4327|$#,)! +3 f0 ()! +3 f4327 ()! +3 f0 (4327|$#,1117|0@5@7&#,)! +3 f2 (4327|$#,1117|0@5@7&#,)! +3 f0 (4327|@5|$#,4319|0@5@2&#,)! +3 f4327 (4327|@5|$#,4319|0@5@2&#,)! +3 f0 (4327|$#,4319|0@5@4&#,)! +3 f1 (4327|$#,4319|0@5@4&#,)! +3 f0 (4327|$#,)! +3 f1117 (4327|$#,)! +3 f0 (4327|0@0@2&#,)! +3 f1 (4327|0@0@2&#,)! +3 f0 (4327|$#,4327|$#,)! +3 f2 (4327|$#,4327|$#,)! +3 f0 (4319|0@5@4&#,)! +3 f4327 (4319|0@5@4&#,)! +3 f0 (4327|$#,4327|$#,)! +3 f4327 (4327|$#,4327|$#,)! +3 f0 (4327|$#,)! +3 f4327 (4327|$#,)! +3 f0 (313|$#,)! +3 f4327 (313|$#,)! +3 f0 (4327|$#,)! +3 f1117 (4327|$#,)! +3 f0 (4327|$#,)! +3 f1117 (4327|$#,)! +0 a4537|& +3 f0 (4357|$#,)! +3 f5 (4357|$#,)! +3 f0 (4327|$#,4357|$#,)! +3 f4357 (4327|$#,4357|$#,)! +3 f0 ()! +3 f4357 ()! +3 f0 (4357|$#,1117|0@5@7&#,)! +3 f2 (4357|$#,1117|0@5@7&#,)! +3 f0 (4357|$#,4319|0@5@18&#,)! +3 f1 (4357|$#,4319|0@5@18&#,)! +3 f0 (4357|0@0@2&#,)! +3 f1 (4357|0@0@2&#,)! +3 f0 (4357|$#,)! +3 f1117 (4357|$#,)! +3 e!141{SS_UNKNOWN,SS_UNUSEABLE,SS_UNDEFINED,SS_MUNDEFINED,SS_ALLOCATED,SS_PDEFINED,SS_DEFINED,SS_PARTIAL,SS_DEAD,SS_HOFFA,SS_FIXED,SS_RELDEF,SS_UNDEFGLOB,SS_KILLED,SS_UNDEFKILLED,SS_SPECIAL,SS_LAST}! +0 s4556|& +0 s4557|& +3 e!142{SCNONE,SCEXTERN,SCSTATIC}! +0 s4561|& +0 s4562|& +3 e!143{NS_ERROR,NS_UNKNOWN,NS_NOTNULL,NS_MNOTNULL,NS_RELNULL,NS_CONSTNULL,NS_POSNULL,NS_DEFNULL,NS_ABSNULL}! +0 s4572|& +0 s4573|& +3 f0 (4380|$#,)! +3 f2 (4380|$#,)! +3 f0 (4380|@7|$#,)! +3 f2 (4380|@7|$#,)! +3 e!144{AK_UNKNOWN,AK_ERROR,AK_ONLY,AK_IMPONLY,AK_KEEP,AK_KEPT,AK_TEMP,AK_IMPTEMP,AK_SHARED,AK_UNIQUE,AK_RETURNED,AK_FRESH,AK_STACK,AK_REFCOUNTED,AK_REFS,AK_KILLREF,AK_NEWREF,AK_OWNED,AK_DEPENDENT,AK_IMPDEPENDENT,AK_STATIC,AK_LOCAL}! +0 s4596|& +0 s4597|& +3 e!145{XO_UNKNOWN,XO_NORMAL,XO_EXPOSED,XO_OBSERVER}! +0 s4602|& +0 s4603|& +3 f0 (4374|$#,)! +3 f2 (4374|$#,)! +3 f0 (4374|$#,)! +3 f2 (4374|$#,)! +3 f0 (4390|$#,)! +3 f2 (4390|$#,)! +3 f0 (4390|@7|$#,)! +3 f2 (4390|@7|$#,)! +3 f0 (4387|@7|$#,)! +3 f2 (4387|@7|$#,)! +3 f0 (4387|@7|$#,)! +3 f2 (4387|@7|$#,)! +3 f0 (4387|@7|$#,)! +3 f2 (4387|@7|$#,)! +3 f0 (4387|@7|$#,)! +3 f2 (4387|@7|$#,)! +3 f0 (4387|@7|$#,)! +3 f2 (4387|@7|$#,)! +3 f0 (4387|$#,4387|$#,)! +3 f2 (4387|$#,4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4374|$#,)! +3 f1117 (4374|$#,)! +3 f0 (1706|$#,)! +3 f4387 (1706|$#,)! +3 f0 (4387|$#,4387|$#,)! +3 f4387 (4387|$#,4387|$#,)! +3 f0 (4387|$#,)! +3 f1117 (4387|$#,)! +3 f0 (4387|$#,)! +3 f1117 (4387|$#,)! 3 f0 (5|$#,)! -3 f3995 (5|$#,)! -3 f0 (3995|$#,)! -3 f989 (3995|$#,)! -3 f0 (3995|$#,3995|$#,)! -3 f5 (3995|$#,3995|$#,)! -3 f0 (3995|$#,)! -3 f2 (3995|$#,)! -3 f0 (3995|$#,)! -3 f2 (3995|$#,)! +3 f4387 (5|$#,)! 3 f0 (5|$#,)! -3 f3989 (5|$#,)! +3 f4380 (5|$#,)! +3 f0 (4380|$#,)! +3 f1117 (4380|$#,)! +3 f0 (4380|$#,4380|$#,)! +3 f5 (4380|$#,4380|$#,)! +3 f0 (4380|$#,)! +3 f2 (4380|$#,)! +3 f0 (4380|$#,)! +3 f2 (4380|$#,)! 3 f0 (5|$#,)! -3 f4003 (5|$#,)! -3 f0 (1500|$#,)! -3 f4003 (1500|$#,)! -3 f0 (4003|$#,)! -3 f989 (4003|$#,)! -3 f0 (4003|$#,)! -3 f989 (4003|$#,)! -3 f0 (4003|$#,)! -3 f989 (4003|$#,)! -3 f0 (1500|$#,)! -3 f3989 (1500|$#,)! -3 f0 (4000|$#,4000|$#,)! -3 f2 (4000|$#,4000|$#,)! -3 f0 (4000|$#,)! -3 f4000 (4000|$#,)! -3 e_exitkind{XK_ERROR,XK_UNKNOWN,XK_NEVERESCAPE,XK_GOTO,XK_MAYGOTO,XK_MAYEXIT,XK_MUSTEXIT,XK_TRUEEXIT,XK_FALSEEXIT,XK_MUSTRETURN,XK_MAYRETURN,XK_MAYRETURNEXIT,XK_MUSTRETURNEXIT}! -0 s7022|& -0 s251|& -3 f0 (1500|$#,)! -3 f4096 (1500|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! -3 f0 (4096|$#,4096|$#,)! -3 f2 (4096|$#,4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! +3 f4374 (5|$#,)! 3 f0 (5|$#,)! -3 f4096 (5|$#,)! -3 f0 (4096|$#,)! -3 f989 (4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! -3 f0 (4096|@7|$#,)! -3 f2 (4096|@7|$#,)! -3 f0 (4096|@7|$#,)! -3 f2 (4096|@7|$#,)! -3 f0 (4096|@7|$#,)! -3 f2 (4096|@7|$#,)! -3 f0 (4096|@7|$#,)! -3 f2 (4096|@7|$#,)! -3 f0 (4096|$#,)! -3 f4096 (4096|$#,)! -3 f0 (4096|$#,4096|$#,)! -3 f4096 (4096|$#,4096|$#,)! -1 t952|952& -3 S_sRefSet{5|@1|^#entries,5|@1|^#nspace,4127|@1|11@3@3&#elements,}! -3 f1 (972|@7|6@5@7&#,952|@3|6@5@18@2@0#,)! -3 f1 (972|@7|6@5@7&#,952|@3|6@5@18@2@0#,)! -3 f1 (972|@7|6@5@7&#,952|@3|6@5@18@2@0#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 f0 (972|@7|0@5@7&#,)! -3 f2 (972|@7|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f2 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f1 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f952 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@6@2@0#,)! -3 f972 (972|0@5@6@2@0#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f5 (972|0@5@7&#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@2&#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@2&#,)! -3 f0 ()! -3 f972 ()! -3 f0 (952|0@5@18@2@0#,)! -3 f972 (952|0@5@18@2@0#,)! -3 f0 (972|@5|0@5@7&#,952|0@5@18@2@0#,)! -3 f972 (972|@5|0@5@7&#,952|0@5@18@2@0#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@2&#,)! -3 f1 (972|0@5@2&#,)! -3 f0 (972|0@5@7&#,)! -3 f1 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f0 (972|0@5@7&#,5|$#,)! -3 f1 (972|0@5@7&#,5|$#,)! -3 f0 (972|0@5@7&#,)! -3 f1 (972|0@5@7&#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@7&#,5|$#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@7&#,5|$#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f972 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (972|0@5@7&#,5|$#,)! -3 f972 (972|0@5@7&#,5|$#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,989|0@5@19@3@0#,)! -3 f972 (972|0@5@7&#,989|0@5@19@3@0#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f972 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f5 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (312|$#,)! -3 f972 (312|$#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,)! -3 f952 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f952 (972|0@5@7&#,)! -3 f0 (972|0@5@19@2@0#,5|$#,)! -3 f972 (972|0@5@19@2@0#,5|$#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@7&#,952|0@5@18&#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 e!57{KINVALID,KDATATYPE,KCONST,KENUMCONST,KVAR,KFCN,KITER,KENDITER,KSTRUCTTAG,KUNIONTAG,KENUMTAG,KELIPSMARKER}! -0 s7023|& -0 a252|& -3 f0 (4232|$#,4232|$#,)! -3 f2 (4232|$#,4232|$#,)! +3 f4390 (5|$#,)! +3 f0 (1706|$#,)! +3 f4390 (1706|$#,)! +3 f0 (4390|$#,)! +3 f1117 (4390|$#,)! +3 f0 (4390|$#,)! +3 f1117 (4390|$#,)! +3 f0 (4390|$#,)! +3 f1117 (4390|$#,)! +3 f0 (1706|$#,)! +3 f4374 (1706|$#,)! +3 f0 (4387|$#,4387|$#,)! +3 f2 (4387|$#,4387|$#,)! +3 f0 (4387|$#,)! +3 f4387 (4387|$#,)! +3 e!146{XK_ERROR,XK_UNKNOWN,XK_NEVERESCAPE,XK_GOTO,XK_MAYGOTO,XK_MAYEXIT,XK_MUSTEXIT,XK_TRUEEXIT,XK_FALSEEXIT,XK_MUSTRETURN,XK_MAYRETURN,XK_MAYRETURNEXIT,XK_MUSTRETURNEXIT}! +0 s4638|& +0 s4639|& +3 f0 (1706|$#,)! +3 f4485 (1706|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! +3 f0 (4485|$#,4485|$#,)! +3 f2 (4485|$#,4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! 3 f0 (5|$#,)! -3 f4232 (5|$#,)! -3 f0 (4232|$#,)! -3 f5 (4232|$#,)! -3 f0 (4232|$#,)! -3 f2 (4232|$#,)! -3 f0 (4232|$#,)! -3 f2 (4232|$#,)! -3 f0 (4232|$#,)! -3 f2 (4232|$#,)! -3 f0 (4232|$#,)! -3 f2 (4232|$#,)! -3 f0 (4232|$#,)! -3 f2 (4232|$#,)! -3 f0 (4232|$#,)! -3 f989 (4232|$#,)! -3 f0 (4232|$#,)! -3 f989 (4232|$#,)! -3 f0 (4232|$#,)! -3 f989 (4232|$#,)! -0 s9|-1 4259 -1 -0 s253|& -3 f0 (4255|$#,4255|$#,)! -3 f2 (4255|$#,4255|$#,)! -1 t4255|4255& -3 S_usymIdSet{5|@1|^#entries,5|@1|^#nspace,4259|@1|11@3@3&#elements,}! -0 s6821|-1 4262 -1 -1 t4261|4261& -0 a254|-1 14745 -1 -3 f0 ()! -3 f4263 ()! -3 f0 (4263|0@5@7&#,4255|$#,)! -3 f2 (4263|0@5@7&#,4255|$#,)! -3 f0 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f4263 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f0 (4263|0@5@2&#,)! -3 f1 (4263|0@5@2&#,)! -3 f0 (4263|0@5@7&#,)! -3 f989 (4263|0@5@7&#,)! -3 f0 (4263|0@5@7&#,)! -3 f989 (4263|0@5@7&#,)! -3 f0 (312|$#,)! -3 f4263 (312|$#,)! -3 f0 (4255|$#,)! -3 f4263 (4255|$#,)! -3 f0 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f5 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f0 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f4263 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f0 (4263|0@5@7&#,4255|$#,)! -3 f4263 (4263|0@5@7&#,4255|$#,)! -3 f0 (4263|0@5@6&#,4255|$#,)! -3 f4263 (4263|0@5@6&#,4255|$#,)! -3 f0 (4263|0@5@7&#,)! -3 f2 (4263|0@5@7&#,)! -3 f0 (4263|0@5@7&#,)! -3 f2 (4263|0@5@7&#,)! -3 f1 (4263|@7|6@5@7&#,4255|@3|&#,)! -3 f0 (4263|@7|0@5@7&#,)! -3 f5 (4263|@7|0@5@7&#,)! -0 s6896|-1 4296 -1 -1 t4295|4295& -0 a256|& -1 t957|957& -3 S_uentryList{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,4298|@1|11@3@3&#elements,}! -3 f1 (4297|@7|6@5@7&#,955|@3|6@5@19@2@0#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,)! -3 f0 ()! -3 f4297 ()! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 ()! -3 f4297 ()! -3 f0 (4297|@5|0@5@7&#,955|0@5@4&#,)! -3 f4297 (4297|@5|0@5@7&#,955|0@5@4&#,)! -3 f0 (955|0@5@4&#,)! -3 f4297 (955|0@5@4&#,)! -3 f0 (4297|0@5@7&#,5|$#,)! -3 f955 (4297|0@5@7&#,5|$#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@2&#,)! -3 f1 (4297|0@5@2&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f4297 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (312|$#,)! -3 f4297 (312|$#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f955 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,989|0@5@7&#,)! -3 f5 (4297|0@5@7&#,989|0@5@7&#,)! -3 f0 (4297|0@5@7&#,989|0@5@7&#,)! -3 f955 (4297|0@5@7&#,989|0@5@7&#,)! -3 f0 (4297|0@5@2&#,4297|0@5@2&#,)! -3 f4297 (4297|0@5@2&#,4297|0@5@2&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (312|$#,978|0@5@7&#,)! -3 f4297 (312|$#,978|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,2|$#,2|$#,)! -3 f2 (4297|0@5@7&#,4297|0@5@7&#,2|$#,2|$#,)! -0 a74|& -3 f1 (4379|@7|6@5@7&#,952|@3|6@5@18@2@0#,)! -3 f0 (4379|@7|0@5@7&#,)! -3 f5 (4379|@7|0@5@7&#,)! -3 f0 (4379|@7|0@5@7&#,)! -3 f2 (4379|@7|0@5@7&#,)! -3 f0 ()! -3 f4379 ()! -3 f0 (4379|@5|0@5@7&#,952|0@5@18&#,)! -3 f4379 (4379|@5|0@5@7&#,952|0@5@18&#,)! -3 f0 (4379|0@5@7&#,952|0@5@18&#,)! -3 f2 (4379|0@5@7&#,952|0@5@18&#,)! -3 f0 (4379|0@5@7&#,952|0@5@18&#,)! -3 f952 (4379|0@5@7&#,952|0@5@18&#,)! -3 f0 (4379|0@5@2&#,)! -3 f1 (4379|0@5@2&#,)! -3 f0 (4379|0@5@7&#,)! -3 f989 (4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,)! -3 f989 (4379|0@5@7&#,)! -3 f0 (312|$#,)! -3 f4379 (312|$#,)! -3 f0 (4379|@5|0@5@7&#,4379|0@5@19@2@0#,)! -3 f4379 (4379|@5|0@5@7&#,4379|0@5@19@2@0#,)! -3 f0 (4379|0@5@7&#,)! -3 f4379 (4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,)! -3 f2 (4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,4379|0@5@7&#,)! -3 f5 (4379|0@5@7&#,4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,)! -3 f1 (4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,)! -3 f2 (4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,)! -3 f2 (4379|0@5@7&#,)! -1 t991|991& -3 S_ctypeList{5|@1|^#nelements,5|@1|^#nspace,4415|@1|11@3@3&#elements,}! -0 s6863|-1 4418 -1 -1 t4417|4417& -0 a257|& -3 f0 (4419|@7|0@5@7&#,)! -3 f5 (4419|@7|0@5@7&#,)! -3 f0 ()! -3 f4419 ()! -3 f0 (4419|0@5@7&#,991|$#,)! -3 f1 (4419|0@5@7&#,991|$#,)! -3 f0 (4419|0@5@7&#,)! -3 f989 (4419|0@5@7&#,)! -3 f0 (4419|0@5@2&#,)! -3 f1 (4419|0@5@2&#,)! -3 f0 (4419|0@5@7&#,)! -3 f2 (4419|0@5@7&#,)! -3 f0 (4419|0@5@7&#,)! -3 f2 (4419|0@5@7&#,)! -0 s75|-1 4437 -1 -0 s63|-1 4436 -1 -1 t4435|4435& -1 t4434|4434& -3 S_aliasTable{5|@1|^#nelements,5|@1|^#nspace,4436|@1|11@0@2&#keys,4437|@1|11@0@2&#values,}! -3 f0 (975|0@5@7&#,)! -3 f2 (975|0@5@7&#,)! -3 f0 (975|@7|0@5@7&#,)! -3 f2 (975|@7|0@5@7&#,)! -3 f0 (975|0@5@7&#,)! -3 f2 (975|0@5@7&#,)! -3 f0 (975|@7|0@5@7&#,)! -3 f5 (975|@7|0@5@7&#,)! -3 f1 (975|@7|6@5@7&#,952|@3|6@5@18@2@0#,972|@3|6@5@19@2@0#,)! -3 f0 ()! -3 f975 ()! -3 f0 (975|0@5@7&#,952|0@5@18&#,)! -3 f1 (975|0@5@7&#,952|0@5@18&#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,)! -3 f0 (975|0@5@7&#,)! -3 f975 (975|0@5@7&#,)! -3 f0 (975|0@5@7&#,)! -3 f989 (975|0@5@7&#,)! -3 f0 (975|0@5@2&#,)! -3 f1 (975|0@5@2&#,)! -3 f0 (975|@5|0@5@7&#,952|0@5@18@2@0#,952|0@5@18&#,)! -3 f975 (975|@5|0@5@7&#,952|0@5@18@2@0#,952|0@5@18&#,)! -3 f0 (975|@5|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f975 (975|@5|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f0 (975|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f975 (975|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f0 (975|0@5@7&#,)! -3 f1 (975|0@5@7&#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,)! -3 f0 (975|0@5@7&#,)! -3 f1 (975|0@5@7&#,)! -3 f0 (975|@5|0@5@7&#,975|0@5@2&#,5|$#,)! -3 f975 (975|@5|0@5@7&#,975|0@5@2&#,5|$#,)! -3 e!58{US_GLOBAL,US_NORMAL,US_TBRANCH,US_FBRANCH,US_CBRANCH,US_SWITCH}! -0 s7024|& -0 s259|& -3 S_refentry{5|@1|^#level,5|@1|^#index,}! -0 s6776|-1 4479 -1 -1 t4478|4478& -0 s260|-1 12250 -1 -0 s261|-1 4482 -1 -1 t4481|4481& -0 s262|& -3 S_usymtab{4476|@1|^#kind,5|@1|^#nentries,5|@1|^#nspace,5|@1|^#lexlevel,2|@1|^#mustBreak,4096|@1|^#exitCode,4298|@1|11@0@2&#entries,3876|@1|0@5@2&#htable,4483|@1|0@5@2&#reftable,969|@1|0@5@2&#guards,975|@1|0@5@3&#aliases,963|@1|0@5@17&#env,}! +3 f4485 (5|$#,)! +3 f0 (4485|$#,)! +3 f1117 (4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! +3 f0 (4485|@7|$#,)! +3 f2 (4485|@7|$#,)! +3 f0 (4485|@7|$#,)! +3 f2 (4485|@7|$#,)! +3 f0 (4485|@7|$#,)! +3 f2 (4485|@7|$#,)! +3 f0 (4485|@7|$#,)! +3 f2 (4485|@7|$#,)! +3 f0 (4485|$#,)! +3 f4485 (4485|$#,)! +3 f0 (4485|$#,4485|$#,)! +3 f4485 (4485|$#,4485|$#,)! +0 s4648|-1 4517 -1 +1 t4516|4516& +3 Ss_sRefSet{5|@1|^#entries,5|@1|^#nspace,4517|@1|11@3@3&#elements,}! +3 f1 (994|@7|6@5@7&#,971|@3|6@5@19@2@0#,)! +3 f1 (994|@7|6@5@7&#,971|@3|6@5@19@2@0#,)! +3 f1 (994|@7|6@5@7&#,971|@3|6@5@19@2@0#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|@7|0@5@7&#,)! +3 f2 (994|@7|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f2 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f971 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@6@2@0#,)! +3 f994 (994|0@5@6@2@0#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f5 (994|0@5@7&#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@2&#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@2&#,)! +3 f0 ()! +3 f994 ()! +3 f0 (971|0@5@19@2@0#,)! +3 f994 (971|0@5@19@2@0#,)! +3 f0 (994|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f994 (994|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@2&#,)! +3 f1 (994|0@5@2&#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f0 (994|0@5@7&#,5|$#,)! +3 f1 (994|0@5@7&#,5|$#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@7&#,5|$#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@7&#,5|$#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f994 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|0@5@7&#,5|$#,)! +3 f994 (994|0@5@7&#,5|$#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,1117|0@5@19@3@0#,)! +3 f994 (994|0@5@7&#,1117|0@5@19@3@0#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f994 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f5 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (313|$#,)! +3 f994 (313|$#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f971 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f971 (994|0@5@7&#,)! +3 f0 (994|0@5@19@2@0#,5|$#,)! +3 f994 (994|0@5@19@2@0#,5|$#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@7&#,971|0@5@7&#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 e!147{KINVALID,KDATATYPE,KCONST,KENUMCONST,KVAR,KFCN,KITER,KENDITER,KSTRUCTTAG,KUNIONTAG,KENUMTAG,KELIPSMARKER}! +0 s4717|& +0 a4718|& +3 f0 (4626|$#,4626|$#,)! +3 f2 (4626|$#,4626|$#,)! +3 f0 (5|$#,)! +3 f4626 (5|$#,)! +3 f0 (4626|$#,)! +3 f5 (4626|$#,)! +3 f0 (4626|$#,)! +3 f2 (4626|$#,)! +3 f0 (4626|$#,)! +3 f2 (4626|$#,)! +3 f0 (4626|$#,)! +3 f2 (4626|$#,)! +3 f0 (4626|$#,)! +3 f2 (4626|$#,)! +3 f0 (4626|$#,)! +3 f2 (4626|$#,)! +3 f0 (4626|$#,)! +3 f1117 (4626|$#,)! +3 f0 (4626|$#,)! +3 f1117 (4626|$#,)! +3 f0 (4626|$#,)! +3 f1117 (4626|$#,)! +0 s4727|-1 4653 -1 +0 s4728|& +3 f0 (4649|$#,4649|$#,)! +3 f2 (4649|$#,4649|$#,)! +1 t4649|4649& +3 S!148{5|@1|^#entries,5|@1|^#nspace,4653|@1|11@3@3&#elements,}^4656 +0 s4731|& +1 t4654|4654& +0 a4732|-1 16729 -1 +3 f0 ()! +3 f4657 ()! +3 f0 (4657|0@5@7&#,4649|$#,)! +3 f2 (4657|0@5@7&#,4649|$#,)! +3 f0 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f4657 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f0 (4657|0@5@2&#,)! +3 f1 (4657|0@5@2&#,)! +3 f0 (4657|0@5@7&#,)! +3 f1117 (4657|0@5@7&#,)! +3 f0 (4657|0@5@7&#,)! +3 f1117 (4657|0@5@7&#,)! +3 f0 (313|$#,)! +3 f4657 (313|$#,)! +3 f0 (4649|$#,)! +3 f4657 (4649|$#,)! +3 f0 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f5 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f0 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f4657 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f0 (4657|0@5@7&#,4649|$#,)! +3 f4657 (4657|0@5@7&#,4649|$#,)! +3 f0 (4657|0@5@6&#,4649|$#,)! +3 f4657 (4657|0@5@6&#,4649|$#,)! +3 f0 (4657|0@5@7&#,)! +3 f2 (4657|0@5@7&#,)! +3 f0 (4657|0@5@7&#,)! +3 f2 (4657|0@5@7&#,)! +3 f1 (4657|@7|6@5@7&#,4649|@3|&#,)! +3 f0 (4657|@7|0@5@7&#,)! +3 f5 (4657|@7|0@5@7&#,)! +0 s4749|-1 4690 -1 +1 t4689|4689& +3 Ss_sRefList{5|@1|^#nelements,5|@1|^#nspace,4690|@1|11@3@3&#elements,}! +3 f1 (997|@7|6@5@7&#,971|@3|6@5@19@2@0#,)! +3 f0 (997|0@5@7&#,)! +3 f5 (997|0@5@7&#,)! +3 f0 (997|0@5@7&#,)! +3 f2 (997|0@5@7&#,)! +3 f0 (997|0@5@7&#,)! +3 f2 (997|0@5@7&#,)! +3 f0 (997|0@5@7&#,)! +3 f2 (997|0@5@7&#,)! +3 f0 ()! +3 f997 ()! +3 f0 (971|0@5@18&#,)! +3 f997 (971|0@5@18&#,)! +3 f0 (997|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f997 (997|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (997|0@5@7&#,)! +3 f1117 (997|0@5@7&#,)! +3 f0 (997|0@5@2&#,)! +3 f1 (997|0@5@2&#,)! +3 f0 (997|0@5@7&#,)! +3 f997 (997|0@5@7&#,)! +1 t976|976& +3 S!149{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,4713|@1|11@3@3&#elements,}^4716 +0 s4761|& +1 t4714|4714& +0 a4762|& +3 f1 (4717|@7|6@5@7&#,974|@3|6@5@19@2@0#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,)! +3 f0 ()! +3 f4717 ()! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 ()! +3 f4717 ()! +3 f0 (4717|@5|0@5@7&#,974|0@5@4&#,)! +3 f4717 (4717|@5|0@5@7&#,974|0@5@4&#,)! +3 f0 (974|0@5@4&#,)! +3 f4717 (974|0@5@4&#,)! +3 f0 (4717|0@5@7&#,5|$#,)! +3 f974 (4717|0@5@7&#,5|$#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1 (4717|0@5@2&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f4717 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (313|$#,)! +3 f4717 (313|$#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f974 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f5 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f974 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4717|0@5@2&#,4717|0@5@2&#,)! +3 f4717 (4717|0@5@2&#,4717|0@5@2&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (313|$#,1003|0@5@7&#,)! +3 f4717 (313|$#,1003|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,2|$#,2|$#,)! +3 f2 (4717|0@5@7&#,4717|0@5@7&#,2|$#,2|$#,)! +3 f1 (1106|@7|6@5@7&#,971|@3|6@5@19@2@0#,)! +3 f0 (1106|@7|0@5@7&#,)! +3 f5 (1106|@7|0@5@7&#,)! +3 f0 (1106|@7|0@5@7&#,)! +3 f2 (1106|@7|0@5@7&#,)! +3 f0 ()! +3 f1106 ()! +3 f0 (971|0@5@19@2@0#,)! +3 f1106 (971|0@5@19@2@0#,)! +3 f0 (1106|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f1106 (1106|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (1106|0@5@7&#,971|0@5@7&#,)! +3 f2 (1106|0@5@7&#,971|0@5@7&#,)! +3 f0 (1106|0@5@7&#,971|0@5@7&#,)! +3 f971 (1106|0@5@7&#,971|0@5@7&#,)! +3 f0 (1106|0@5@2&#,)! +3 f1 (1106|0@5@2&#,)! +3 f0 (1106|0@5@7&#,)! +3 f1117 (1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,)! +3 f1117 (1106|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1106 (313|$#,)! +3 f0 (1106|0@5@7&#,)! +3 f1 (1106|0@5@7&#,)! +3 f0 (1106|@5|0@5@7&#,1106|0@5@19@2@0#,)! +3 f1106 (1106|@5|0@5@7&#,1106|0@5@19@2@0#,)! +3 f0 (1106|0@5@7&#,)! +3 f1106 (1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,)! +3 f2 (1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f5 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,)! +3 f1 (1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,)! +3 f2 (1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,)! +3 f2 (1106|0@5@7&#,)! +1 t1119|1119& +3 S!150{5|@1|^#nelements,5|@1|^#nspace,4838|@1|11@3@3&#elements,}^4841 +0 s4821|& +1 t4839|4839& +0 a4822|& +3 f0 (4842|@7|0@5@7&#,)! +3 f5 (4842|@7|0@5@7&#,)! +3 f0 ()! +3 f4842 ()! +3 f0 (4842|0@5@7&#,1119|$#,)! +3 f1 (4842|0@5@7&#,1119|$#,)! +3 f0 (4842|@5|0@5@2&#,4842|0@5@7&#,)! +3 f4842 (4842|@5|0@5@2&#,4842|0@5@7&#,)! +3 f0 (4842|0@5@2&#,1119|$#,)! +3 f4842 (4842|0@5@2&#,1119|$#,)! +3 f0 (4842|0@5@7&#,)! +3 f1117 (4842|0@5@7&#,)! +3 f0 (4842|0@5@2&#,)! +3 f1 (4842|0@5@2&#,)! +3 f0 (4842|0@5@7&#,)! +3 f2 (4842|0@5@7&#,)! +3 f0 (4842|0@5@7&#,)! +3 f2 (4842|0@5@7&#,)! +3 f1 (4842|@7|6@5@7&#,1119|@3|&#,)! +0 s4833|-1 4865 -1 +0 s4834|-1 4864 -1 +1 t4863|4863& +1 t4862|4862& +3 Ss_aliasTable{5|@1|^#nelements,5|@1|^#nspace,4864|@1|11@0@2&#keys,4865|@1|11@0@2&#values,}! +3 f0 (1000|0@5@7&#,)! +3 f2 (1000|0@5@7&#,)! +3 f0 (1000|@7|0@5@7&#,)! +3 f2 (1000|@7|0@5@7&#,)! +3 f0 (1000|0@5@7&#,)! +3 f2 (1000|0@5@7&#,)! +3 f0 (1000|@7|0@5@7&#,)! +3 f5 (1000|@7|0@5@7&#,)! +3 f1 (1000|@7|6@5@7&#,971|@3|6@5@19@2@0#,994|@3|6@5@19@2@0#,)! +3 f0 ()! +3 f1000 ()! +3 f0 (1000|0@5@7&#,971|0@5@7&#,)! +3 f1 (1000|0@5@7&#,971|0@5@7&#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,)! +3 f0 (1000|0@5@7&#,)! +3 f1000 (1000|0@5@7&#,)! +3 f0 (1000|0@5@7&#,)! +3 f1117 (1000|0@5@7&#,)! +3 f0 (1000|0@5@2&#,)! +3 f1 (1000|0@5@2&#,)! +3 f0 (1000|@5|0@5@7&#,971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f1000 (1000|@5|0@5@7&#,971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 (1000|@5|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f1000 (1000|@5|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f1000 (1000|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,)! +3 f1 (1000|0@5@7&#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,)! +3 f0 (1000|0@5@7&#,)! +3 f1 (1000|0@5@7&#,)! +3 f0 (1000|@5|0@5@7&#,1000|0@5@2&#,5|$#,)! +3 f1000 (1000|@5|0@5@7&#,1000|0@5@2&#,5|$#,)! +3 f0 (211|$#,23|@5|$#,5|$#,)! +3 f19 (211|$#,23|@5|$#,5|$#,)! +3 f23 (211|$#,23|@5|$#,5|$#,)! +3 f0 (313|$#,)! +3 f5 (313|$#,)! +3 f0 (313|$#,)! +3 f4 (313|$#,)! +3 f0 (313|$#,)! +3 f17 (313|$#,)! +3 f0 (313|$#,4|$#,23|$#,5|$#,)! +3 f1 (313|$#,4|$#,23|$#,5|$#,)! +3 f0 (313|$#,4|$#,)! +3 f2 (313|$#,4|$#,)! +3 f0 (313|$#,4|$#,)! +3 f1 (313|$#,4|$#,)! +3 f0 (313|$#,)! +3 f19 (313|$#,)! +3 f23 (313|$#,)! +3 f0 (313|$#,)! +3 f1117 (313|$#,)! +3 f0 (313|$#,4|$#,)! +3 f1117 (313|$#,4|$#,)! +3 f0 (313|$#,23|$#,)! +3 f1117 (313|$#,23|$#,)! +3 f0 (5|$#,211|$#,)! +3 f1 (5|$#,211|$#,)! +3 e!151{US_GLOBAL,US_NORMAL,US_TBRANCH,US_FBRANCH,US_CBRANCH,US_SWITCH}! +0 s4869|& +0 s4870|& +3 S!152{5|@1|^#level,5|@1|^#index,}^4933 +0 s4871|& +1 t4931|4931& +0 s4872|-1 14097 -1 +0 s4873|-1 4936 -1 +1 t4935|4935& +0 s4874|& +3 Ss_usymtab{4930|@1|^#kind,5|@1|^#nentries,5|@1|^#nspace,5|@1|^#lexlevel,2|@1|^#mustBreak,4485|@1|^#exitCode,4713|@1|11@0@2&#entries,1006|@1|0@5@2&#htable,4937|@1|0@5@2&#reftable,991|@1|0@5@2&#guards,1000|@1|0@5@3&#aliases,985|@1|0@5@17&#env,}! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -4505,2800 +4959,2972 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (5|$#,4255|$#,)! -3 f955 (5|$#,4255|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (5|$#,4649|$#,)! +3 f974 (5|$#,4649|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 (5|$#,)! -3 f955 (5|$#,)! +3 f974 (5|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f991 (989|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (955|0@5@2&#,2|$#,)! -3 f4255 (955|0@5@2&#,2|$#,)! -3 f0 (955|0@5@2&#,)! -3 f991 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (4255|$#,)! -3 f955 (4255|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f4255 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f4255 (989|0@5@7&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f4255 (955|0@5@2&#,)! -3 f0 (989|0@5@7&#,)! -3 f991 (989|0@5@7&#,)! -3 f0 (4255|$#,4255|$#,)! -3 f2 (4255|$#,4255|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1119 (1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (974|0@5@2&#,2|$#,)! +3 f4649 (974|0@5@2&#,2|$#,)! +3 f0 (974|0@5@2&#,)! +3 f1119 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (4649|$#,)! +3 f974 (4649|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f4649 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f4649 (1117|0@5@7&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f4649 (974|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1119 (1117|0@5@7&#,)! +3 f0 (4649|$#,4649|$#,)! +3 f2 (4649|$#,4649|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 (5|$#,)! -3 f4255 (5|$#,)! -3 f0 (4255|$#,)! -3 f2 (4255|$#,)! -3 f0 (4255|$#,)! -3 f2 (4255|$#,)! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! -3 f0 (4256|$#,4256|$#,)! -3 f2 (4256|$#,4256|$#,)! +3 f4649 (5|$#,)! +3 f0 (4649|$#,)! +3 f2 (4649|$#,)! +3 f0 (4649|$#,)! +3 f2 (4649|$#,)! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! +3 f0 (4650|$#,4650|$#,)! +3 f2 (4650|$#,4650|$#,)! 3 f0 (5|$#,)! -3 f4256 (5|$#,)! -3 f1 (963|@7|6@5@7&#,955|@3|6@5@19@2@0#,)! +3 f4650 (5|$#,)! +3 f1 (985|@7|6@5@7&#,974|@3|6@5@19@2@0#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1 (1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (991|0@5@7&#,)! +3 f1 (991|0@5@7&#,)! +3 f0 (4485|$#,)! +3 f1 (4485|$#,)! +3 f0 ()! +3 f1 ()! 3 f0 ()! -3 f1 ()! +3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (4649|$#,)! +3 f4649 (4649|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (4717|0@5@7&#,)! +3 f1119 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1119 (4717|0@5@7&#,)! +3 f0 (4327|$#,)! +3 f1119 (4327|$#,)! +3 f0 (4650|$#,)! +3 f974 (4650|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (991|0@5@2&#,)! +3 f1 (991|0@5@2&#,)! +3 f0 (991|0@5@2&#,)! +3 f1 (991|0@5@2&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,2|$#,2062|$#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,2|$#,2062|$#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f1 (978|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (969|0@5@7&#,)! -3 f1 (969|0@5@7&#,)! -3 f0 (4096|$#,)! -3 f1 (4096|$#,)! +3 f1 ()! 3 f0 ()! 3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! +3 f0 (4650|$#,)! +3 f1117 (4650|$#,)! +3 f0 (4650|$#,)! +3 f974 (4650|$#,)! +3 f0 (974|0@5@2&#,2|$#,)! +3 f4650 (974|0@5@2&#,2|$#,)! +3 f0 (974|0@5@2&#,)! +3 f1119 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f5 (974|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f2 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (988|0@5@7&#,2|$#,)! +3 f1 (988|0@5@7&#,2|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f994 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f994 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f1 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f1 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f994 (971|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (985|0@5@7&#,)! +3 f2 (985|0@5@7&#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 ()! +3 f971 ()! 3 f0 ()! -3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (4255|$#,)! -3 f4255 (4255|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (4297|0@5@7&#,)! -3 f991 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f991 (4297|0@5@7&#,)! -3 f0 (3942|$#,)! -3 f991 (3942|$#,)! -3 f0 (4255|$#,)! -3 f955 (4255|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (969|0@5@2&#,)! -3 f1 (969|0@5@2&#,)! -3 f0 (969|0@5@2&#,)! -3 f1 (969|0@5@2&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,2|$#,1826|$#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,2|$#,1826|$#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (4255|$#,)! -3 f2 (4255|$#,)! -3 f0 (4255|$#,)! -3 f989 (4255|$#,)! -3 f0 (4255|$#,)! -3 f955 (4255|$#,)! -3 f0 (955|0@5@2&#,2|$#,)! -3 f4255 (955|0@5@2&#,2|$#,)! -3 f0 (955|0@5@2&#,)! -3 f991 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f5 (955|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f2 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 ()! -3 f989 ()! -3 f0 (966|0@5@7&#,2|$#,)! -3 f1 (966|0@5@7&#,2|$#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 ()! -3 f989 ()! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (963|0@5@7&#,)! -3 f2 (963|0@5@7&#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! -3 e!59{CT_UNKNOWN,CT_PRIM,CT_USER,CT_ABST,CT_ENUM,CT_PTR,CT_ARRAY,CT_FIXEDARRAY,CT_FCN,CT_STRUCT,CT_UNION,CT_ENUMLIST,CT_BOOL,CT_CONJ,CT_EXPFCN}! -0 s7025|& -0 s263|& -3 e!60{CTK_UNKNOWN,CTK_INVALID,CTK_DNE,CTK_PLAIN,CTK_PTR,CTK_ARRAY,CTK_COMPLEX}! -0 s7026|& -0 s264|& -3 f0 (4727|$#,)! -3 f5 (4727|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,2|$#,2|$#,2|$#,2|$#,)! -3 f2 (991|$#,991|$#,2|$#,2|$#,2|$#,2|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (4415|$#,)! -3 f2 (4415|$#,)! -3 f0 (4415|$#,)! -3 f2 (4415|$#,)! -3 f0 (4415|$#,)! -3 f2 (4415|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! +3 f5 ()! +3 e!153{CT_UNKNOWN,CT_PRIM,CT_USER,CT_ABST,CT_ENUM,CT_PTR,CT_ARRAY,CT_FIXEDARRAY,CT_FCN,CT_STRUCT,CT_UNION,CT_ENUMLIST,CT_BOOL,CT_CONJ,CT_EXPFCN}! +0 s5009|& +0 s5010|& +3 e!154{CTK_UNKNOWN,CTK_INVALID,CTK_DNE,CTK_PLAIN,CTK_PTR,CTK_ARRAY,CTK_COMPLEX}! +0 s5027|& +0 s5028|& +3 f0 (5187|$#,)! +3 f5 (5187|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,2|$#,2|$#,2|$#,2|$#,)! +3 f2 (1119|$#,1119|$#,2|$#,2|$#,2|$#,2|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (4838|$#,)! +3 f2 (4838|$#,)! +3 f0 (4838|$#,)! +3 f2 (4838|$#,)! +3 f0 (4838|$#,)! +3 f2 (4838|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! 3 f0 (5|$#,)! -3 f4727 (5|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (312|$#,)! -3 f991 (312|$#,)! -3 f0 (5|$#,991|$#,)! -3 f991 (5|$#,991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (4256|$#,)! -3 f991 (4256|$#,)! -3 f0 (989|0@5@4&#,3942|0@0@4&#,)! -3 f991 (989|0@5@4&#,3942|0@0@4&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,4297|0@5@2&#,)! -3 f991 (989|0@5@2&#,4297|0@5@2&#,)! -3 f0 (989|0@5@2&#,4297|0@5@2&#,)! -3 f991 (989|0@5@2&#,4297|0@5@2&#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (4256|$#,)! -3 f991 (4256|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,9|$#,)! -3 f991 (991|$#,9|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,4297|0@5@18&#,)! -3 f991 (991|$#,4297|0@5@18&#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f4297 (991|$#,)! -3 f0 (991|$#,)! -3 f4297 (991|$#,)! -3 f0 (991|$#,)! -3 f3942 (991|$#,)! -3 f0 (991|$#,)! -3 f4297 (991|$#,)! -3 f0 (991|$#,)! -3 f3851 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f5 (991|$#,991|$#,)! +3 f5187 (5|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (313|$#,)! +3 f1119 (313|$#,)! +3 f0 (5|$#,1119|$#,)! +3 f1119 (5|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (4650|$#,)! +3 f1119 (4650|$#,)! +3 f0 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f1119 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f0 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (4650|$#,)! +3 f1119 (4650|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,9|$#,)! +3 f1119 (1119|$#,9|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f4717 (1119|$#,)! +3 f0 (1119|$#,)! +3 f4717 (1119|$#,)! +3 f0 (1119|$#,)! +3 f4327 (1119|$#,)! +3 f0 (1119|$#,)! +3 f4717 (1119|$#,)! +3 f0 (1119|$#,)! +3 f4192 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f5 (1119|$#,1119|$#,)! 3 f0 ()! 3 f5 ()! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f4256 (991|$#,)! -3 f0 (1500|$#,)! -3 f991 (1500|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|@7|$#,)! -3 f2 (991|@7|$#,)! -3 f0 (991|$#,989|0@5@2&#,)! -3 f989 (991|$#,989|0@5@2&#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f989 ()! -3 f0 ()! -3 f1 ()! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f9 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 S_qtype{991|@1|^#type,2156|@1|0@5@3&#quals,}! -0 s6802|-1 4996 -1 -1 t4995|4995& -0 a265|& -3 f0 (4997|0@5@7&#,)! -3 f2 (4997|0@5@7&#,)! -3 f0 (4997|0@5@7&#,)! -3 f2 (4997|0@5@7&#,)! -3 f0 (4997|@7|0@5@7&#,)! -3 f991 (4997|@7|0@5@7&#,)! -3 f0 (4997|@7|0@5@7&#,)! -3 f2156 (4997|@7|0@5@7&#,)! -3 f0 (4997|@7|0@5@7&#,991|$#,)! -3 f1 (4997|@7|0@5@7&#,991|$#,)! -3 f0 (4997|@5|0@5@7&#,2156|0@5@7&#,)! -3 f4997 (4997|@5|0@5@7&#,2156|0@5@7&#,)! -3 f0 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f4997 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f0 (4997|0@5@7&#,)! -3 f4997 (4997|0@5@7&#,)! -3 f0 (991|$#,)! -3 f4997 (991|$#,)! -3 f0 ()! -3 f4997 ()! -3 f0 (4997|@5|0@5@7&#,1500|$#,)! -3 f4997 (4997|@5|0@5@7&#,1500|$#,)! -3 f0 (4997|@5|0@5@7&#,991|$#,)! -3 f4997 (4997|@5|0@5@7&#,991|$#,)! -3 f0 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f4997 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f0 (4997|@5|0@5@7&#,)! -3 f4997 (4997|@5|0@5@7&#,)! -3 f0 (5|$#,4997|@5|0@5@7&#,)! -3 f1 (5|$#,4997|@5|0@5@7&#,)! -3 f0 (4997|0@5@7&#,)! -3 f989 (4997|0@5@7&#,)! -3 f0 (4997|@5|0@5@7&#,991|$#,)! -3 f4997 (4997|@5|0@5@7&#,991|$#,)! -3 f0 (4997|@5|0@5@7&#,4997|0@5@7&#,)! -3 f4997 (4997|@5|0@5@7&#,4997|0@5@7&#,)! -3 f0 (4997|0@5@2&#,)! -3 f1 (4997|0@5@2&#,)! -3 S_idDecl{989|@1|0@5@3&#id,4997|@1|0@5@3&#typ,}! -3 f0 (960|0@5@7&#,)! -3 f2 (960|0@5@7&#,)! -3 f0 (960|0@5@2&#,)! -3 f1 (960|0@5@2&#,)! -3 f0 (989|0@5@2&#,4997|0@5@2&#,)! -3 f960 (989|0@5@2&#,4997|0@5@2&#,)! -3 f0 (960|0@5@7&#,)! -3 f989 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f4997 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,4997|0@5@2&#,)! -3 f1 (960|0@5@7&#,4997|0@5@2&#,)! -3 f0 (960|@5|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,)! -3 f0 (960|@5|0@5@7&#,991|$#,)! -3 f960 (960|@5|0@5@7&#,991|$#,)! -3 f0 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f0 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f991 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f2156 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f989 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f989 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,1500|$#,)! -3 f1 (960|0@5@7&#,1500|$#,)! -3 e!61{MVLONG,MVCHAR,MVDOUBLE,MVSTRING}! -0 s7027|& -0 s266|& -3 U_mval{9|@1|^#ival,4|@1|^#cval,17|@1|^#fval,989|@1|0@5@2&#sval,}! -0 s6976|& -3 S_multiVal{5069|@1|^#kind,5071|@1|^#value,}! -0 s6772|-1 5074 -1 -1 t5073|5073& -0 s267|& -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f989 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f17 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f4 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f9 (5075|0@5@7&#,)! -3 f0 (989|0@5@2&#,)! -3 f5075 (989|0@5@2&#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f4650 (1119|$#,)! +3 f0 (1706|$#,)! +3 f1119 (1706|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|@7|$#,)! +3 f2 (1119|@7|$#,)! +3 f0 (1119|$#,1117|0@5@2&#,)! +3 f1117 (1119|$#,1117|0@5@2&#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1117 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f9 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 S!155{1119|@1|^#type,2511|@1|0@5@3&#quals,}^5460 +0 s5176|& +1 t5458|5458& +0 a5177|& +3 f0 (5461|0@5@7&#,)! +3 f2 (5461|0@5@7&#,)! +3 f0 (5461|0@5@7&#,)! +3 f2 (5461|0@5@7&#,)! +3 f0 (5461|@7|0@5@7&#,)! +3 f1119 (5461|@7|0@5@7&#,)! +3 f0 (5461|@7|0@5@7&#,)! +3 f2511 (5461|@7|0@5@7&#,)! +3 f0 (5461|@7|0@5@7&#,1119|$#,)! +3 f1 (5461|@7|0@5@7&#,1119|$#,)! +3 f0 (5461|@5|0@5@7&#,2511|0@5@7&#,)! +3 f5461 (5461|@5|0@5@7&#,2511|0@5@7&#,)! +3 f0 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f5461 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f0 (5461|0@5@7&#,)! +3 f5461 (5461|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f5461 (1119|$#,)! +3 f0 ()! +3 f5461 ()! +3 f0 (5461|@5|0@5@7&#,1706|$#,)! +3 f5461 (5461|@5|0@5@7&#,1706|$#,)! +3 f0 (5461|@5|0@5@7&#,1119|$#,)! +3 f5461 (5461|@5|0@5@7&#,1119|$#,)! +3 f0 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f5461 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f0 (5461|@5|0@5@7&#,)! +3 f5461 (5461|@5|0@5@7&#,)! +3 f0 (5|$#,5461|@5|0@5@7&#,)! +3 f1 (5|$#,5461|@5|0@5@7&#,)! +3 f0 (5461|0@5@7&#,)! +3 f1117 (5461|0@5@7&#,)! +3 f0 (5461|@5|0@5@7&#,1119|$#,)! +3 f5461 (5461|@5|0@5@7&#,1119|$#,)! +3 f0 (5461|@5|0@5@7&#,5461|0@5@7&#,)! +3 f5461 (5461|@5|0@5@7&#,5461|0@5@7&#,)! +3 f0 (5461|0@5@2&#,)! +3 f1 (5461|0@5@2&#,)! +3 Ss_idDecl{1117|@1|0@5@3&#id,5461|@1|0@5@3&#typ,1030|@1|0@5@3&#clauses,}! +3 f0 (982|0@5@7&#,)! +3 f2 (982|0@5@7&#,)! +3 f0 (982|0@5@2&#,)! +3 f1 (982|0@5@2&#,)! +3 f0 (1117|0@5@2&#,5461|0@5@2&#,)! +3 f982 (1117|0@5@2&#,5461|0@5@2&#,)! +3 f0 (1117|0@5@2&#,5461|0@5@2&#,1030|0@5@2&#,)! +3 f982 (1117|0@5@2&#,5461|0@5@2&#,1030|0@5@2&#,)! +3 f0 (982|0@5@7&#,)! +3 f1117 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1117 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f5461 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,5461|0@5@2&#,)! +3 f1 (982|0@5@7&#,5461|0@5@2&#,)! +3 f0 (982|@5|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,)! +3 f0 (982|@5|0@5@7&#,1119|$#,)! +3 f982 (982|@5|0@5@7&#,1119|$#,)! +3 f0 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f0 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f0 (982|0@5@7&#,1030|0@5@2&#,)! +3 f1 (982|0@5@7&#,1030|0@5@2&#,)! +3 f0 (982|0@5@7&#,)! +3 f1119 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f2511 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1030 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1117 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1117 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,1706|$#,)! +3 f1 (982|0@5@7&#,1706|$#,)! +3 e!156{MVLONG,MVCHAR,MVDOUBLE,MVSTRING}! +0 s5215|& +0 s5216|& +3 U!157{9|@1|^#ival,4|@1|^#cval,17|@1|^#fval,1117|@1|0@5@2&#sval,}! +0 s5217|& +3 S!158{5541|@1|^#kind,5542|@1|^#value,}^5546 +0 s5218|& +1 t5544|5544& +0 s5219|& +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f1117 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f17 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f4 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f9 (5547|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f5547 (1117|0@5@2&#,)! 3 f0 (17|$#,)! -3 f5075 (17|$#,)! +3 f5547 (17|$#,)! 3 f0 (4|$#,)! -3 f5075 (4|$#,)! +3 f5547 (4|$#,)! 3 f0 (9|$#,)! -3 f5075 (9|$#,)! -3 f0 ()! -3 f5075 ()! -3 f0 (5075|0@5@7&#,)! -3 f5075 (5075|0@5@7&#,)! -3 f0 (5075|0@5@2&#,)! -3 f1 (5075|0@5@2&#,)! -3 f0 (5075|0@5@7&#,)! -3 f5075 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (312|$#,)! -3 f5075 (312|$#,)! -3 f0 (5075|0@5@7&#,)! -3 f989 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f989 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,5075|0@5@7&#,)! -3 f5 (5075|0@5@7&#,5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,5075|0@5@7&#,)! -3 e!62{SP_USES,SP_DEFINES,SP_ALLOCATES,SP_RELEASES,SP_SETS,SP_ISNULL,SP_ISNOTNULL,SP_ISONLY,SP_ISSHARED,SP_ISDEPENDENT,SP_ISOWNED,SP_ISOBSERVER,SP_ISEXPOSED}! -0 s7028|& -0 s268|& -3 e!63{TK_BEFORE,TK_AFTER,TK_BOTH}! -0 s7029|& -0 s269|& -3 S!64{5129|@1|^#state,5126|@1|^#kind,972|@1|0@5@3&#refs,}^5132 -0 s6879|& -1 t5130|5130& -0 a270|-1 9608 -1 -0 s271|-1 5149 -1 -3 f0 (5133|$#,)! -3 f989 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1001 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1001 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1001 (5133|$#,)! -3 f0 (5133|$#,)! -3 f2 (5133|$#,)! -3 f0 (5133|$#,)! -3 f2 (5133|$#,)! -3 f0 (5133|$#,)! -3 f972 (5133|$#,)! -1 t5134|5134& -3 S!65{5|@1|^#nelements,5|@1|^#nspace,5149|@1|11@3@3&#elements,}^5152 -0 s6864|& -1 t5150|5150& -0 a272|& -3 f1 (5153|@7|6@5@7&#,5133|@3|6@0@19@2@0#,)! -3 f1 (5153|@7|6@5@7&#,5133|@3|6@0@19@2@0#,)! -3 f1 (5153|@7|6@5@7&#,5133|@3|6@0@19@2@0#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (5133|$#,)! -3 f1910 (5133|$#,)! -3 f0 (5133|$#,952|0@5@18&#,)! -3 f989 (5133|$#,952|0@5@18&#,)! -3 f0 (5133|$#,)! -3 f1910 (5133|$#,)! -3 f0 (5133|$#,952|0@5@18&#,)! -3 f989 (5133|$#,952|0@5@18&#,)! -3 f0 (5133|$#,)! -3 f996 (5133|$#,)! -3 f0 (5133|$#,)! -3 f996 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1006 (5133|$#,)! -3 f0 (5129|$#,5126|$#,972|0@5@2&#,)! -3 f5133 (5129|$#,5126|$#,972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (5153|0@5@7&#,)! -3 f2 (5153|0@5@7&#,)! -3 f0 (5153|0@5@7&#,)! -3 f2 (5153|0@5@7&#,)! -3 f0 (5153|@7|0@5@7&#,)! -3 f5 (5153|@7|0@5@7&#,)! -3 f0 (5133|$#,)! -3 f989 (5133|$#,)! -3 f0 (5153|@5|0@5@7&#,5133|0@0@2&#,)! -3 f5153 (5153|@5|0@5@7&#,5133|0@0@2&#,)! -3 f0 (5153|0@5@7&#,)! -3 f989 (5153|0@5@7&#,)! -3 f0 (5153|0@5@2&#,)! -3 f1 (5153|0@5@2&#,)! -3 f0 (5153|0@5@7&#,)! -3 f5153 (5153|0@5@7&#,)! -3 f0 (5153|0@5@7&#,)! -3 f989 (5153|0@5@7&#,)! -3 f0 (312|$#,)! -3 f5153 (312|$#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 S_ucinfo{5075|@1|0@5@2&#val,956|@1|^#access,}! -0 s6804|-1 5209 -1 -1 t5208|5208& -0 s273|& -3 e!66{VKSPEC,VKNORMAL,VKPARAM,VKYIELDPARAM,VKREFYIELDPARAM,VKRETPARAM,VKREFPARAM,VKSEFPARAM,VKREFSEFPARAM,VKSEFRETPARAM,VKREFSEFRETPARAM,VKEXPMACRO}! -0 s7030|& -0 s274|& -3 e!67{CH_UNKNOWN,CH_UNCHECKED,CH_CHECKED,CH_CHECKMOD,CH_CHECKEDSTRICT}! -0 s7031|& -0 s275|& -3 e_bbufstate{BB_POSSIBLYNULLTERMINATED,BB_NULLTERMINATED,BB_NOTNULLTERMINATED}! -0 s7032|& -0 s276|& -3 S_bbufinfo{5219|@1|^#bufstate,5|@1|^#size,5|@1|^#len,}! -0 s6811|-1 5222 -1 -1 t5221|5221& -0 s277|& -3 S_uvinfo{5213|@1|^#kind,5216|@1|^#checked,3989|@1|^#defstate,3995|@1|^#nullstate,5223|@1|0@0@3&#bufinfo,}! -0 s6916|-1 5226 -1 -1 t5225|5225& -0 s278|& -3 S_udinfo{1299|@1|^#abs,1299|@1|^#mut,991|@1|^#type,}! -0 s6807|-1 5230 -1 -1 t5229|5229& -0 s279|& -3 e!68{SPC_NONE,SPC_PRINTFLIKE,SPC_SCANFLIKE,SPC_MESSAGELIKE,SPC_LAST}! -0 s7033|& -0 s280|& -3 S_ufinfo{1500|@1|^#nullPred,5234|@1|^#specialCode,4096|@1|^#exitCode,956|@1|^#access,4379|@1|0@5@17&#globs,972|@1|0@5@17&#mods,5153|@1|0@5@3&#specclauses,4297|@1|0@5@18&#defparams,2|@1|^#hasGlobs,2|@1|^#hasMods,984|@1|0@0@3&#preconditions,984|@1|0@0@3&#postconditions,}! -0 s6946|-1 5237 -1 -1 t5236|5236& -0 s281|& -3 S_uiinfo{956|@1|^#access,4379|@1|0@5@17&#globs,972|@1|0@5@17&#mods,}! -0 s6808|-1 5241 -1 -1 t5240|5240& -0 s282|& -3 S_ueinfo{956|@1|^#access,}! -0 s6739|-1 5245 -1 -1 t5244|5244& -0 s283|& -3 U_uinfo{5210|@1|0@0@3&#uconst,5227|@1|0@0@3&#var,5231|@1|0@0@3&#datatype,5238|@1|0@0@3&#fcn,5242|@1|0@0@3&#iter,5246|@1|0@0@3&#enditer,}! -0 s6979|-1 5249 -1 -1 t5248|5248& -0 s284|& -3 S_uentry{4232|@1|^#ukind,989|@1|0@5@3&#uname,991|@1|^#utype,978|@1|0@5@3&#whereSpecified,978|@1|0@5@3&#whereDefined,978|@1|0@5@3&#whereDeclared,952|@1|0@5@18@2@0#sref,3906|@1|0@5@3&#uses,2|@1|^#used,2|@1|^#lset,2|@1|^#isPrivate,2|@1|^#hasNameError,3992|@1|^#storageclass,5250|@1|0@3@3&#info,}! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f5 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f1 (955|@7|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f2 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,4256|$#,)! -3 f1 (955|0@5@7&#,4256|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,3989|$#,)! -3 f1 (955|0@5@7&#,3989|$#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f1 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|0@5@7&#,5075|0@5@2&#,)! -3 f1 (955|0@5@7&#,5075|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f2 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f989 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4232 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f5 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@6&#,)! -3 f952 (955|0@5@6&#,)! -3 f0 (955|0@5@7&#,)! -3 f972 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f956 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,978|0@5@6&#,)! -3 f955 (989|0@5@7&#,978|0@5@6&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,5|$#,966|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,5|$#,966|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f5153 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,989|0@5@2&#,)! -3 f1 (955|0@5@7&#,989|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (991|$#,)! -3 f955 (991|$#,)! -3 f0 (989|0@5@7&#,991|$#,956|$#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,956|$#,978|0@5@4&#,)! -3 f0 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@4&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,956|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,956|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,966|0@5@7&#,)! -3 f955 (989|0@5@7&#,991|$#,966|0@5@7&#,)! -3 f0 (989|0@5@6&#,991|$#,978|0@5@4&#,)! -3 f955 (989|0@5@6&#,991|$#,978|0@5@4&#,)! -3 f0 (989|0@5@6&#,991|$#,978|0@5@4&#,2|$#,5075|0@5@2&#,)! -3 f955 (989|0@5@6&#,991|$#,978|0@5@4&#,2|$#,5075|0@5@2&#,)! -3 f0 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@2&#,)! -3 f955 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@2&#,)! -3 f0 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@4&#,2|$#,)! -3 f955 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@4&#,2|$#,)! -3 f0 ()! -3 f955 ()! -3 f0 (955|0@5@6&#,)! -3 f1 (955|0@5@6&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (989|0@5@7&#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,4256|$#,978|0@5@6&#,)! -3 f955 (989|0@5@7&#,4256|$#,978|0@5@6&#,)! -3 f0 (989|0@5@7&#,991|$#,4256|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,4256|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (960|0@5@7&#,5|$#,)! -3 f955 (960|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@4&#,2|$#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@4&#,2|$#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,952|0@5@18&#,)! -3 f955 (989|0@5@7&#,991|$#,952|0@5@18&#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (1299|$#,)! -3 f955 (1299|$#,)! -3 f0 (955|0@5@7&#,955|0@5@2&#,)! -3 f1 (955|0@5@7&#,955|0@5@2&#,)! -3 f0 (955|0@5@7&#,955|0@5@2&#,)! -3 f1 (955|0@5@7&#,955|0@5@2&#,)! -3 f0 (989|0@5@2&#,955|0@5@7&#,)! -3 f955 (989|0@5@2&#,955|0@5@7&#,)! -3 f0 (4232|$#,978|0@5@7&#,312|$#,)! -3 f955 (4232|$#,978|0@5@7&#,312|$#,)! -3 f0 (955|0@5@7&#,)! -3 f4297 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,4297|0@5@2&#,)! -3 f1 (955|0@5@7&#,4297|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f4379 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1500 (955|0@5@7&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@7&#,4255|$#,)! -3 f1 (955|0@5@7&#,4255|$#,)! -3 f0 (955|15@5@1&#,978|0@5@7&#,)! -3 f1 (955|15@5@1&#,978|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@2&#,)! -3 f1 (955|0@5@7&#,978|0@5@2&#,)! -3 f0 (955|0@5@7&#,978|0@5@2&#,)! -3 f1 (955|0@5@7&#,978|0@5@2&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,989|0@5@2&#,)! -3 f1 (955|0@5@7&#,989|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,952|0@5@18@2@0#,)! -3 f1 (955|0@5@7&#,952|0@5@18@2@0#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,972|0@5@17&#,)! -3 f1 (955|0@5@7&#,972|0@5@17&#,)! -3 f0 (955|0@5@7&#,5153|0@5@2&#,)! -3 f1 (955|0@5@7&#,5153|0@5@2&#,)! -3 f0 (955|0@5@7&#,991|$#,)! -3 f1 (955|0@5@7&#,991|$#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,989|0@5@2&#,)! -3 f1 (955|0@5@7&#,989|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f955 (955|0@5@7&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,978|0@5@7&#,2|$#,2|$#,2|$#,1826|$#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,978|0@5@7&#,2|$#,2|$#,2|$#,1826|$#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4096 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,2156|0@5@7&#,)! -3 f1 (955|0@5@7&#,2156|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4000 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4003 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f5075 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,4379|0@5@17&#,)! -3 f1 (955|0@5@7&#,4379|0@5@17&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -1 t955|955& -3 f0 (5630|$#,5630|$#,)! -3 f5 (5630|$#,5630|$#,)! -3 f0 (5630|$#,5630|$#,)! -3 f5 (5630|$#,5630|$#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f2 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,3819|$#,)! -3 f952 (955|0@5@7&#,3819|$#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f3989 (955|0@5@7&#,)! -3 f0 (955|0@5@17&#,)! -3 f1 (955|0@5@17&#,)! -3 f0 (955|0@5@7&#,)! -3 f952 (955|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@17&#,)! -3 f1 (955|0@5@17&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f3906 (955|@7|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,978|0@5@4&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|@7|0@5@7&#,)! -3 f2 (955|@7|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f984 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f984 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,984|0@0@2&#,)! -3 f1 (955|0@5@7&#,984|0@0@2&#,)! -3 f0 (955|0@5@7&#,984|0@0@2&#,)! -3 f1 (955|0@5@7&#,984|0@0@2&#,)! -3 e!69{SR_NOTHING,SR_INTERNAL,SR_SPECSTATE,SR_SYSTEM}! -0 s7034|& -0 s285|& -3 e!70{SK_PARAM,SK_ARRAYFETCH,SK_FIELD,SK_PTR,SK_ADR,SK_CONST,SK_CVAR,SK_UNCONSTRAINED,SK_OBJECT,SK_CONJ,SK_EXTERNAL,SK_DERIVED,SK_NEW,SK_TYPE,SK_RESULT,SK_SPECIAL,SK_UNKNOWN}! -0 s7035|& -0 s286|& -3 S_cref{5|@1|^#lexlevel,4255|@1|^#index,}! -0 s6777|-1 5721 -1 -1 t5720|5720& -0 s287|& -3 S_ainfo{952|@1|0@2@18@2@0#arr,2|@1|^#indknown,5|@1|^#ind,}! -0 s6809|-1 5725 -1 -1 t5724|5724& -0 s288|& -3 S_fldinfo{952|@1|0@2@18@2@0#rec,989|@1|0@5@18@3@0#field,}! -0 s6791|-1 5729 -1 -1 t5728|5728& -0 s289|& -3 S_cjinfo{952|@1|0@2@18@2@0#a,952|@1|0@2@18@2@0#b,}! -0 s6743|-1 5733 -1 -1 t5732|5732& -0 s290|& -3 U_sinfo{5722|@1|0@0@2&#cvar,5|@1|^#paramno,5726|@1|0@0@2&#arrayfetch,5730|@1|0@0@2&#field,991|@1|^#object,989|@1|0@5@18@3@0#fname,952|@1|0@2@18@2@0#ref,5734|@1|0@0@2&#conj,5715|@1|^#spec,}! -0 s6982|-1 5737 -1 -1 t5736|5736& -0 s291|& -3 S_alinfo{978|@1|0@5@2&#loc,952|@1|0@5@18@3@0#ref,955|@1|0@5@18@3@0#ue,}! -0 s6834|-1 5741 -1 -1 t5740|5740& -0 s292|& -3 S_sRef{2|@1|^#safe,2|@1|^#modified,5718|@1|^#kind,991|@1|^#type,3989|@1|^#defstate,3995|@1|^#nullstate,5221|@1|^#bufinfo,4000|@1|^#aliaskind,4000|@1|^#oaliaskind,4003|@1|^#expkind,4003|@1|^#oexpkind,5742|@1|0@5@2&#expinfo,5742|@1|0@5@2&#aliasinfo,5742|@1|0@5@2&#definfo,5742|@1|0@5@2&#nullinfo,5738|@1|0@3@2&#info,972|@1|0@5@2&#deriv,}! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f3995 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f1 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f4000 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f4000 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! +3 f5547 (9|$#,)! +3 f0 ()! +3 f5547 ()! +3 f0 (5547|0@5@7&#,)! +3 f5547 (5547|0@5@7&#,)! +3 f0 (5547|0@5@2&#,)! +3 f1 (5547|0@5@2&#,)! +3 f0 (5547|0@5@7&#,)! +3 f5547 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (313|$#,)! +3 f5547 (313|$#,)! +3 f0 (5547|0@5@7&#,)! +3 f1117 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f1117 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,5547|0@5@7&#,)! +3 f5 (5547|0@5@7&#,5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,5547|0@5@7&#,)! +3 e!159{SP_USES,SP_DEFINES,SP_ALLOCATES,SP_RELEASES,SP_SETS,SP_QUAL,SP_GLOBAL}! +0 s5248|& +0 s5249|& +3 e!160{TK_BEFORE,TK_AFTER,TK_BOTH}! +0 s5253|& +0 s5254|& +3 Ss_stateClause{5601|@1|^#state,5598|@1|^#kind,1706|@1|^#squal,994|@1|0@5@3&#refs,1003|@1|0@5@3&#loc,}! +0 s5255|-1 5682 -1 +3 f0 (1042|$#,)! +3 f1117 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1129 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1134 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1134 (1042|$#,)! +3 f0 (1042|$#,)! +3 f5 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1129 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1129 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,1042|$#,)! +3 f2 (1042|$#,1042|$#,)! +3 f0 (1042|$#,)! +3 f994 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1597 (1042|$#,)! +3 f0 (1042|$#,971|0@5@7&#,)! +3 f1117 (1042|$#,971|0@5@7&#,)! +3 f0 (1042|$#,)! +3 f1597 (1042|$#,)! +3 f0 (1042|$#,971|0@5@7&#,)! +3 f1117 (1042|$#,971|0@5@7&#,)! +3 f0 (1042|$#,)! +3 f1124 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1124 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1139 (1042|$#,)! +3 f0 (2013|$#,1706|$#,994|0@5@2&#,)! +3 f1042 (2013|$#,1706|$#,994|0@5@2&#,)! +3 f0 (2013|$#,994|0@5@2&#,)! +3 f1042 (2013|$#,994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (1042|$#,)! +3 f1003 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|0@0@2&#,)! +3 f1 (1042|0@0@2&#,)! +3 f0 (1042|$#,)! +3 f1117 (1042|$#,)! +3 f0 (313|$#,)! +3 f1042 (313|$#,)! +3 f0 (1042|$#,)! +3 f1042 (1042|$#,)! +3 f0 (1042|$#,1042|$#,)! +3 f2 (1042|$#,1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1706 (1042|$#,)! +1 t5603|5603& +3 Ss_stateClauseList{5|@1|^#nelements,5|@1|^#nspace,5682|@1|11@3@3&#elements,}! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1045|0@5@7&#,)! +3 f2 (1045|0@5@7&#,)! +3 f0 (1045|0@5@7&#,)! +3 f2 (1045|0@5@7&#,)! +3 f0 (1045|@7|0@5@7&#,)! +3 f5 (1045|@7|0@5@7&#,)! +3 f0 (1042|$#,)! +3 f1117 (1042|$#,)! +3 f0 (1045|@5|0@5@7&#,1042|0@0@2&#,)! +3 f1045 (1045|@5|0@5@7&#,1042|0@0@2&#,)! +3 f0 (1045|0@5@7&#,)! +3 f1117 (1045|0@5@7&#,)! +3 f0 (1045|0@5@2&#,)! +3 f1 (1045|0@5@2&#,)! +3 f0 (1045|0@5@7&#,)! +3 f1045 (1045|0@5@7&#,)! +3 f0 (1045|0@5@7&#,)! +3 f1117 (1045|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1045 (313|$#,)! +3 f0 (1045|0@5@7&#,1045|0@5@7&#,)! +3 f5 (1045|0@5@7&#,1045|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (1045|@7|6@5@7&#,1042|@3|6@0@19@2@0#,)! +3 f1 (1045|@7|6@5@7&#,1042|@3|6@0@19@2@0#,)! +3 f1 (1045|@7|6@5@7&#,1042|@3|6@0@19@2@0#,)! +3 S!161{5547|@1|0@5@2&#val,975|@1|^#access,}^5715 +0 s5311|& +1 t5713|5713& +0 s5312|& +3 e!162{VKSPEC,VKNORMAL,VKPARAM,VKYIELDPARAM,VKREFYIELDPARAM,VKRETPARAM,VKREFPARAM,VKSEFPARAM,VKREFSEFPARAM,VKSEFRETPARAM,VKREFSEFRETPARAM,VKEXPMACRO}! +0 s5325|& +0 s5326|& +3 e!163{CH_UNKNOWN,CH_UNCHECKED,CH_CHECKED,CH_CHECKMOD,CH_CHECKEDSTRICT}! +0 s5334|& +0 s5335|& +3 e!164{BB_POSSIBLYNULLTERMINATED,BB_NULLTERMINATED,BB_NOTNULLTERMINATED}! +0 s5339|& +0 s5340|& +3 Ss_bbufinfo{5725|@1|^#bufstate,5|@1|^#size,5|@1|^#len,}! +0 s5341|-1 5728 -1 +1 t5727|5727& +0 s5342|& +3 S!165{5719|@1|^#kind,5722|@1|^#checked,4374|@1|^#defstate,4380|@1|^#nullstate,5729|@1|0@0@3&#bufinfo,}^5732 +0 s5343|& +1 t5730|5730& +0 s5344|& +3 S!166{1394|@1|^#abs,1394|@1|^#mut,1119|@1|^#type,}^5736 +0 s5345|& +1 t5734|5734& +0 s5346|& +3 e!167{SPC_NONE,SPC_PRINTFLIKE,SPC_SCANFLIKE,SPC_MESSAGELIKE,SPC_LAST}! +0 s5352|& +0 s5353|& +3 S!168{1706|@1|^#nullPred,5740|@1|^#specialCode,4485|@1|^#exitCode,975|@1|^#access,1106|@1|0@5@17&#globs,994|@1|0@5@17&#mods,1045|@1|0@5@3&#specclauses,4717|@1|0@5@18&#defparams,2|@1|^#hasGlobs,2|@1|^#hasMods,1112|@1|0@0@3&#preconditions,1112|@1|0@0@3&#postconditions,}^5743 +0 s5354|& +1 t5741|5741& +0 s5355|& +3 S!169{975|@1|^#access,1106|@1|0@5@17&#globs,994|@1|0@5@17&#mods,}^5747 +0 s5356|& +1 t5745|5745& +0 s5357|& +3 S!170{975|@1|^#access,}^5751 +0 s5358|& +1 t5749|5749& +0 s5359|& +3 U!171{5716|@1|0@0@3&#uconst,5733|@1|0@0@3&#var,5737|@1|0@0@3&#datatype,5744|@1|0@0@3&#fcn,5748|@1|0@0@3&#iter,5752|@1|0@0@3&#enditer,}^5755 +0 s5360|& +1 t5753|5753& +0 s5361|& +3 Ss_uentry{4626|@1|^#ukind,1117|@1|0@5@3&#uname,1119|@1|^#utype,1003|@1|0@5@3&#whereSpecified,1003|@1|0@5@3&#whereDefined,1003|@1|0@5@3&#whereDeclared,971|@1|0@5@18@2@0#sref,1039|@1|0@5@3&#warn,4291|@1|0@5@3&#uses,2|@1|^#used,2|@1|^#lset,2|@1|^#isPrivate,2|@1|^#hasNameError,4377|@1|^#storageclass,5756|@1|0@3@3&#info,}! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f5 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f1 (974|@7|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f2 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,4650|$#,)! +3 f1 (974|0@5@7&#,4650|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,4374|$#,)! +3 f1 (974|0@5@7&#,4374|$#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f1 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|0@5@7&#,5547|0@5@2&#,)! +3 f1 (974|0@5@7&#,5547|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f2 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f1117 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4626 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f5 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@6&#,)! +3 f971 (974|0@5@6&#,)! +3 f0 (974|0@5@7&#,)! +3 f994 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f975 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1003|0@5@6&#,)! +3 f974 (1117|0@5@7&#,1003|0@5@6&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,5|$#,988|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,5|$#,988|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1045 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1117|0@5@2&#,)! +3 f1 (974|0@5@7&#,1117|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f974 (1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,975|$#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,975|$#,1003|0@5@4&#,)! +3 f0 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,975|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,975|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,988|0@5@7&#,)! +3 f974 (1117|0@5@7&#,1119|$#,988|0@5@7&#,)! +3 f0 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,)! +3 f974 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,)! +3 f0 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,2|$#,5547|0@5@2&#,)! +3 f974 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,2|$#,5547|0@5@2&#,)! +3 f0 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@4&#,2|$#,)! +3 f974 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@4&#,2|$#,)! +3 f0 ()! +3 f974 ()! +3 f0 (974|0@5@6&#,)! +3 f1 (974|0@5@6&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,4650|$#,1003|0@5@6&#,)! +3 f974 (1117|0@5@7&#,4650|$#,1003|0@5@6&#,)! +3 f0 (1117|0@5@7&#,1119|$#,4650|$#,1106|0@5@2&#,994|0@5@2&#,1039|0@5@2&#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,4650|$#,1106|0@5@2&#,994|0@5@2&#,1039|0@5@2&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (982|0@5@7&#,5|$#,)! +3 f974 (982|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,2|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,2|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,971|0@5@19@2@0#,)! +3 f974 (1117|0@5@7&#,1119|$#,971|0@5@19@2@0#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (1394|$#,)! +3 f974 (1394|$#,)! +3 f0 (974|0@5@7&#,974|0@5@2&#,)! +3 f1 (974|0@5@7&#,974|0@5@2&#,)! +3 f0 (974|0@5@7&#,974|0@5@2&#,)! +3 f1 (974|0@5@7&#,974|0@5@2&#,)! +3 f0 (1117|0@5@2&#,974|0@5@7&#,)! +3 f974 (1117|0@5@2&#,974|0@5@7&#,)! +3 f0 (4626|$#,1003|0@5@7&#,313|$#,)! +3 f974 (4626|$#,1003|0@5@7&#,313|$#,)! +3 f0 (974|0@5@7&#,)! +3 f4717 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,4717|0@5@2&#,)! +3 f1 (974|0@5@7&#,4717|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1106 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1706 (974|0@5@7&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@7&#,4649|$#,)! +3 f1 (974|0@5@7&#,4649|$#,)! +3 f0 (974|15@5@1&#,1003|0@5@7&#,)! +3 f1 (974|15@5@1&#,1003|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@2&#,)! +3 f1 (974|0@5@7&#,1003|0@5@2&#,)! +3 f0 (974|0@5@7&#,1003|0@5@2&#,)! +3 f1 (974|0@5@7&#,1003|0@5@2&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,1117|0@5@2&#,)! +3 f1 (974|0@5@7&#,1117|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (974|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,994|0@5@17&#,)! +3 f1 (974|0@5@7&#,994|0@5@17&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1039|0@5@2&#,)! +3 f1 (974|0@5@7&#,1039|0@5@2&#,)! +3 f0 (974|0@5@7&#,1045|0@5@2&#,)! +3 f1 (974|0@5@7&#,1045|0@5@2&#,)! +3 f0 (974|0@5@7&#,1119|$#,)! +3 f1 (974|0@5@7&#,1119|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1117|0@5@2&#,)! +3 f1 (974|0@5@7&#,1117|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f974 (974|0@5@7&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2|$#,2|$#,2062|$#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2|$#,2|$#,2062|$#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4485 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,2511|0@5@7&#,)! +3 f1 (974|0@5@7&#,2511|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4387 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4390 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f5547 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1106|0@5@17&#,)! +3 f1 (974|0@5@7&#,1106|0@5@17&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +1 t974|974& +3 f0 (6146|$#,6146|$#,)! +3 f5 (6146|$#,6146|$#,)! +3 f0 (6146|$#,6146|$#,)! +3 f5 (6146|$#,6146|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f2 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,4160|$#,)! +3 f971 (974|0@5@7&#,4160|$#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4374 (974|0@5@7&#,)! +3 f0 (974|0@5@17&#,)! +3 f1 (974|0@5@17&#,)! +3 f0 (974|0@5@7&#,)! +3 f971 (974|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@17&#,)! +3 f1 (974|0@5@17&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f4291 (974|@7|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 (974|@7|0@5@7&#,)! +3 f2 (974|@7|0@5@7&#,)! +3 f0 ()! +3 f974 ()! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1003|0@5@4&#,)! +3 f0 (974|0@5@7&#,)! +3 f1112 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1112 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1112|0@0@2&#,)! +3 f1 (974|0@5@7&#,1112|0@0@2&#,)! +3 f0 (974|0@5@7&#,1112|0@0@2&#,)! +3 f1 (974|0@5@7&#,1112|0@0@2&#,)! +3 S!172{1003|@1|0@5@2&#loc,971|@1|0@5@18@3@0#ref,974|@1|0@5@18@3@0#ue,}^6235 +0 s5578|& +1 t6233|6233& +0 s5579|& +3 f0 (6236|0@5@7&#,)! +3 f2 (6236|0@5@7&#,)! +3 f0 (6236|0@5@2&#,)! +3 f1 (6236|0@5@2&#,)! +3 f0 (6236|0@5@2&#,6236|0@5@7&#,)! +3 f6236 (6236|0@5@2&#,6236|0@5@7&#,)! +3 f0 (6236|0@5@2&#,1003|0@5@7&#,)! +3 f6236 (6236|0@5@2&#,1003|0@5@7&#,)! +3 f0 (6236|0@5@2&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f6236 (6236|0@5@2&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (6236|0@5@7&#,)! +3 f6236 (6236|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f6236 (1003|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f6236 (971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (6236|0@5@7&#,)! +3 f1003 (6236|0@5@7&#,)! +3 f0 (6236|0@5@7&#,)! +3 f1117 (6236|0@5@7&#,)! +3 Ss_stateValue{5|@1|^#value,6236|@1|0@5@2&#info,}! +3 f0 (5|$#,6236|0@5@2&#,)! +3 f1018 (5|$#,6236|0@5@2&#,)! +3 f0 (1018|0@5@7&#,)! +3 f2 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f2 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f5 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f1 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f1003 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f2 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f6236 (1018|0@5@7&#,)! +3 f0 (1018|@7|0@5@7&#,5|$#,6236|0@5@2&#,)! +3 f1 (1018|@7|0@5@7&#,5|$#,6236|0@5@2&#,)! +3 f0 (1018|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f1 (1018|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f1 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f1018 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f1117 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f1117 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f2 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f2 (1018|0@5@7&#,)! +3 f0 (1019|0@5@7&#,)! +3 f2 (1019|0@5@7&#,)! +3 f0 (1019|0@5@7&#,)! +3 f2 (1019|0@5@7&#,)! +3 f0 (5|$#,)! +3 f1019 (5|$#,)! +3 f0 (1019|0@5@7&#,1117|0@5@2&#,1018|0@5@2&#,)! +3 f1 (1019|0@5@7&#,1117|0@5@2&#,1018|0@5@2&#,)! +3 f0 (1019|0@5@7&#,1117|0@5@7&#,)! +3 f1018 (1019|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1019|0@5@7&#,)! +3 f1117 (1019|0@5@7&#,)! +3 f0 (1019|0@5@2&#,)! +3 f1 (1019|0@5@2&#,)! +3 f0 (1019|0@5@7&#,)! +3 f1117 (1019|0@5@7&#,)! +3 f0 (1019|0@5@7&#,1117|0@5@7&#,1018|0@5@17&#,)! +3 f1 (1019|0@5@7&#,1117|0@5@7&#,1018|0@5@17&#,)! +3 f0 (1019|0@5@7&#,)! +3 f1019 (1019|0@5@7&#,)! +3 f1 (1019|@7|6@5@7&#,1117|@3|6@5@19@2@0#,1018|@3|6@5@19@2@0#,)! +3 f0 (1019|0@5@7&#,)! +3 f5 (1019|0@5@7&#,)! +3 e!173{SR_NOTHING,SR_INTERNAL,SR_SPECSTATE,SR_SYSTEM,SR_GLOBALMARKER}! +0 s5616|& +0 s5617|& +3 e!174{SK_PARAM,SK_ARRAYFETCH,SK_FIELD,SK_PTR,SK_ADR,SK_CONST,SK_CVAR,SK_UNCONSTRAINED,SK_OBJECT,SK_CONJ,SK_EXTERNAL,SK_DERIVED,SK_NEW,SK_TYPE,SK_RESULT,SK_SPECIAL,SK_UNKNOWN}! +0 s5635|& +0 s5636|& +3 S!175{5|@1|^#lexlevel,4649|@1|^#index,}^6321 +0 s5637|& +1 t6319|6319& +0 s5638|& +3 S!176{971|@1|0@2@18@2@0#arr,2|@1|^#indknown,5|@1|^#ind,}^6325 +0 s5639|& +1 t6323|6323& +0 s5640|& +3 S!177{971|@1|0@2@18@2@0#rec,1117|@1|0@5@18@3@0#field,}^6329 +0 s5641|& +1 t6327|6327& +0 s5642|& +3 S!178{971|@1|0@2@18@2@0#a,971|@1|0@2@18@2@0#b,}^6333 +0 s5643|& +1 t6331|6331& +0 s5644|& +3 U!179{6322|@1|0@0@2&#cvar,5|@1|^#paramno,6326|@1|0@0@2&#arrayfetch,6330|@1|0@0@2&#field,1119|@1|^#object,1117|@1|0@5@18@3@0#fname,971|@1|0@2@18@2@0#ref,6334|@1|0@0@2&#conj,6315|@1|^#spec,}^6337 +0 s5645|& +1 t6335|6335& +0 s5646|& +3 Ss_sRef{2|@1|^#safe,2|@1|^#modified,2|@1|^#immut,6318|@1|^#kind,1119|@1|^#type,4374|@1|^#defstate,4380|@1|^#nullstate,5727|@1|^#bufinfo,4387|@1|^#aliaskind,4387|@1|^#oaliaskind,4390|@1|^#expkind,4390|@1|^#oexpkind,6236|@1|0@5@2&#expinfo,6236|@1|0@5@2&#aliasinfo,6236|@1|0@5@2&#definfo,6236|@1|0@5@2&#nullinfo,6338|@1|0@3@2&#info,994|@1|0@5@2&#deriv,1019|@1|0@5@2&#state,}! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4380|$#,)! +3 f1 (971|0@5@7&#,4380|$#,)! +3 f0 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f4380 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f1 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f4387 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f4387 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@18&#,)! +3 f971 (971|0@5@7&#,1117|0@5@18&#,)! +3 f0 (971|0@5@7&#,1117|0@5@18&#,)! +3 f971 (971|0@5@7&#,1117|0@5@18&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@6&#,)! +3 f994 (971|0@5@6&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 ?! -3 f5844 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^5847 -1 t5846|5846& -3 f0 (5847|$#,952|0@5@18&#,)! -3 f2 (5847|$#,952|0@5@18&#,)! +3 f6446 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^6449 +1 t6448|6448& +3 f0 (6449|$#,971|0@5@7&#,)! +3 f2 (6449|$#,971|0@5@7&#,)! 3 ?! -3 f5850 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^5853 -1 t5852|5852& -3 f0 (5853|$#,952|0@5@18&#,)! -3 f2 (5853|$#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,4297|0@5@7&#,)! -3 f991 (952|0@5@18&#,4297|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f991 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,991|$#,)! -3 f1 (952|0@5@18&#,991|$#,)! -3 f0 (952|0@5@18&#,991|$#,)! -3 f1 (952|0@5@18&#,991|$#,)! -3 f0 (952|0@5@18&#,3995|$#,)! -3 f1 (952|0@5@18&#,3995|$#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f5 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|@5|0@5@18&#,)! -3 f952 (952|@5|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,4000|$#,)! -3 f1 (952|0@5@18&#,4000|$#,)! -3 f0 (952|@5|0@5@18&#,952|@5|0@5@18&#,)! -3 f952 (952|@5|0@5@18&#,952|@5|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,5|$#,)! -3 f952 (952|0@5@18@2@0#,5|$#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (989|0@5@19@2@0#,)! -3 f952 (989|0@5@19@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f952 (952|0@5@18&#,5|$#,)! -3 f0 (952|@5|0@5@18@2@0#,952|0@5@18@2@0#,)! -3 f952 (952|@5|0@5@18@2@0#,952|0@5@18@2@0#,)! -3 f0 (5|$#,4255|$#,991|$#,)! -3 f952 (5|$#,4255|$#,991|$#,)! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (4255|$#,991|$#,)! -3 f952 (4255|$#,991|$#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 (5|$#,991|$#,)! -3 f952 (5|$#,991|$#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 (952|@5|0@5@18&#,991|$#,955|0@5@7&#,)! -3 f952 (952|@5|0@5@18&#,991|$#,955|0@5@7&#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f1 (952|0@5@18&#,5|$#,)! -3 f0 (991|$#,952|0@5@18&#,989|0@5@19@2@0#,)! -3 f952 (991|$#,952|0@5@18&#,989|0@5@19@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f4255 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f955 (952|0@5@18&#,)! -3 f0 (952|@5|0@5@18&#,3819|$#,)! -3 f952 (952|@5|0@5@18&#,3819|$#,)! -3 f0 (952|0@5@18@3@0#,3819|0@0@6@3@0#,)! -3 f987 (952|0@5@18@3@0#,3819|0@0@6@3@0#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f955 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (312|$#,)! -3 f952 (312|$#,)! -3 f0 (312|$#,)! -3 f952 (312|$#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1299 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1299 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,991|$#,)! -3 f1 (952|0@5@18&#,991|$#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (952|0@5@18&#,)! -3 f4003 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f4003 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,4003|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4003|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,955|0@5@7&#,)! -3 f1 (952|0@5@18&#,955|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! +3 f6452 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^6455 +1 t6454|6454& +3 f0 (6455|$#,971|0@5@7&#,)! +3 f2 (6455|$#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4717|0@5@7&#,)! +3 f1119 (971|0@5@7&#,4717|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1119 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1119|$#,)! +3 f1 (971|0@5@7&#,1119|$#,)! +3 f0 (971|0@5@7&#,1119|$#,)! +3 f1 (971|0@5@7&#,1119|$#,)! +3 f0 (971|0@5@7&#,4380|$#,)! +3 f1 (971|0@5@7&#,4380|$#,)! +3 f0 (971|0@5@6&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f1 (971|0@5@6&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f5 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|@5|0@5@7&#,)! +3 f971 (971|@5|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4387|$#,)! +3 f1 (971|0@5@7&#,4387|$#,)! +3 f0 (971|@5|0@5@7&#,971|@5|0@5@7&#,)! +3 f971 (971|@5|0@5@7&#,971|@5|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f2 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,5|$#,)! +3 f971 (971|0@5@19@2@0#,5|$#,)! +3 f0 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f971 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (1117|0@5@19@2@0#,)! +3 f971 (1117|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,5|$#,)! +3 f971 (971|0@5@19@2@0#,5|$#,)! +3 f0 (971|@5|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f971 (971|@5|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 (5|$#,4649|$#,1119|$#,)! +3 f971 (5|$#,4649|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 (971|0@5@7&#,1117|0@5@18&#,)! +3 f971 (971|0@5@7&#,1117|0@5@18&#,)! +3 f0 (4649|$#,1119|$#,)! +3 f971 (4649|$#,1119|$#,)! +3 f0 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f971 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 (5|$#,1119|$#,)! +3 f971 (5|$#,1119|$#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 (971|@5|0@5@7&#,1119|$#,974|0@5@7&#,)! +3 f971 (971|@5|0@5@7&#,1119|$#,974|0@5@7&#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1 (971|0@5@7&#,5|$#,)! +3 f0 (1119|$#,971|0@5@7&#,1117|0@5@19@2@0#,)! +3 f971 (1119|$#,971|0@5@7&#,1117|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f4649 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f974 (971|0@5@7&#,)! +3 f0 (971|@5|0@5@7&#,4160|$#,)! +3 f971 (971|@5|0@5@7&#,4160|$#,)! +3 f0 (971|0@5@19@3@0#,4160|0@0@6@3@0#,)! +3 f1115 (971|0@5@19@3@0#,4160|0@0@6@3@0#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f974 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (313|$#,)! +3 f971 (313|$#,)! +3 f0 (313|$#,)! +3 f971 (313|$#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1394 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1394 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,)! +3 f1 (971|0@5@7&#,1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1119|$#,)! +3 f1 (971|0@5@7&#,1119|$#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (971|0@5@7&#,)! +3 f4390 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f4390 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4390|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4390|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@6&#,)! +3 f971 (971|0@5@6&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@18&#,971|0@5@18&#,)! +3 f1 (971|0@5@18&#,971|0@5@18&#,)! +3 f0 (971|0@5@7&#,974|0@5@7&#,)! +3 f1 (971|0@5@7&#,974|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! 3 f0 ()! 3 f2 ()! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,3995|$#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,3995|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f3989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,4380|$#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,4380|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f4374 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1012|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1012|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1019 (971|0@5@7&#,)! 3 ?! -3 f6274 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)^6277 -1 t6276|6276& +3 f6894 (971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)^6897 +1 t6896|6896& 3 ?! -3 f6278 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^6281 -1 t6280|6280& -3 f0 (6277|$#,6281|0@5@7&#,952|0@5@18&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (6277|$#,6281|0@5@7&#,952|0@5@18&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (996|$#,952|0@5@18&#,)! -3 f2 (996|$#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@2&#,)! -3 f1 (952|0@5@2&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,5221|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,5221|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f5221 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f1 (952|0@5@18&#,5|$#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f1 (952|0@5@18&#,5|$#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f9 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 S_guardSet{972|@1|0@5@2&#tguard,972|@1|0@5@2&#fguard,}! -3 f0 (969|0@5@7&#,)! -3 f2 (969|0@5@7&#,)! -3 f0 (969|0@5@7&#,)! -3 f2 (969|0@5@7&#,)! -3 f0 ()! -3 f969 ()! -3 f0 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f969 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f969 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f969 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f0 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f969 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f0 (969|0@5@7&#,952|0@5@18&#,)! -3 f1 (969|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|0@5@7&#,)! -3 f989 (969|0@5@7&#,)! -3 f0 (969|0@5@2&#,)! -3 f1 (969|0@5@2&#,)! -3 f0 (969|0@5@7&#,)! -3 f972 (969|0@5@7&#,)! -3 f0 (969|0@5@7&#,)! -3 f972 (969|0@5@7&#,)! -3 f0 (969|0@5@2&#,969|0@5@7&#,)! -3 f969 (969|0@5@2&#,969|0@5@7&#,)! -3 f0 (969|0@5@6&#,)! -3 f969 (969|0@5@6&#,)! -3 f0 (969|0@5@6&#,)! -3 f969 (969|0@5@6&#,)! -3 f0 (969|0@5@7&#,952|0@5@18&#,)! -3 f2 (969|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|0@5@7&#,952|0@5@18&#,)! -3 f2 (969|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|0@5@2&#,969|0@5@7&#,5|$#,)! -3 f969 (969|0@5@2&#,969|0@5@7&#,5|$#,)! -3 f0 (969|@5|0@5@9&#,969|0@5@2&#,5|$#,)! -3 f969 (969|@5|0@5@9&#,969|0@5@2&#,5|$#,)! -3 f0 (969|0@5@7&#,)! -3 f1 (969|0@5@7&#,)! -3 U!71{966|@1|0@5@18@2@0#expr,952|@1|0@5@18@2@0#sref,5|@1|^#intlit,}! -0 s6966|& -0 s386|& -3 f0 (6383|4@0@7&#,6383|$#,)! -3 f1 (6383|4@0@7&#,6383|$#,)! -3 e!72{ERRORBADCONSTRAINTTERMTYPE,EXPRNODE,SREF,INTLITERAL}! -0 s7036|& -0 s293|& -3 S_constraintTerm{978|@1|0@5@2&#loc,6383|@1|^#value,6388|@1|^#kind,}! -0 s6835|-1 6391 -1 -1 t6390|6390& -0 a294|& -3 f0 (6392|$#,)! -3 f6388 (6392|$#,)! -3 f0 (6392|$#,)! -3 f952 (6392|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|0@0@2&#,)! -3 f1 (6392|0@0@2&#,)! -3 f0 (6392|@5|$#,)! -3 f6392 (6392|@5|$#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f6392 (966|0@5@19@2@0#,)! -3 f0 (6392|$#,)! -3 f6392 (6392|$#,)! -3 f0 (6392|$#,6392|$#,)! -3 f2 (6392|$#,6392|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f5 (6392|$#,)! -3 f0 (6392|$#,)! -3 f978 (6392|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f989 (6392|$#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f6392 (952|0@5@18@2@0#,)! -3 f0 (6392|$#,6392|$#,)! -3 f2 (6392|$#,6392|$#,)! -3 f0 (6392|@5|$#,978|0@5@7&#,)! -3 f6392 (6392|@5|$#,978|0@5@7&#,)! +3 f6898 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^6901 +1 t6900|6900& +3 f0 (6897|$#,6901|0@5@7&#,971|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (6897|$#,6901|0@5@7&#,971|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 (1124|$#,971|0@5@7&#,)! +3 f2 (1124|$#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@2&#,)! +3 f1 (971|0@5@2&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,5727|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,5727|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5727 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1 (971|0@5@7&#,5|$#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1 (971|0@5@7&#,5|$#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f9 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,)! +3 f1018 (971|0@5@7&#,1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (971|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (971|0@5@6&#,)! +3 f1 (971|0@5@6&#,)! +3 Ss_guardSet{994|@1|0@5@2&#tguard,994|@1|0@5@2&#fguard,}! +3 f0 (991|0@5@7&#,)! +3 f2 (991|0@5@7&#,)! +3 f0 (991|0@5@7&#,)! +3 f2 (991|0@5@7&#,)! +3 f0 ()! +3 f991 ()! +3 f0 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f991 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f991 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f991 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f0 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f991 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f0 (991|0@5@7&#,971|0@5@7&#,)! +3 f1 (991|0@5@7&#,971|0@5@7&#,)! +3 f0 (991|0@5@7&#,)! +3 f1117 (991|0@5@7&#,)! +3 f0 (991|0@5@2&#,)! +3 f1 (991|0@5@2&#,)! +3 f0 (991|0@5@7&#,)! +3 f994 (991|0@5@7&#,)! +3 f0 (991|0@5@7&#,)! +3 f994 (991|0@5@7&#,)! +3 f0 (991|0@5@2&#,991|0@5@7&#,)! +3 f991 (991|0@5@2&#,991|0@5@7&#,)! +3 f0 (991|0@5@6&#,)! +3 f991 (991|0@5@6&#,)! +3 f0 (991|0@5@6&#,)! +3 f991 (991|0@5@6&#,)! +3 f0 (991|0@5@7&#,971|0@5@7&#,)! +3 f2 (991|0@5@7&#,971|0@5@7&#,)! +3 f0 (991|0@5@7&#,971|0@5@7&#,)! +3 f2 (991|0@5@7&#,971|0@5@7&#,)! +3 f0 (991|0@5@2&#,991|0@5@7&#,5|$#,)! +3 f991 (991|0@5@2&#,991|0@5@7&#,5|$#,)! +3 f0 (991|@5|0@5@9&#,991|0@5@2&#,5|$#,)! +3 f991 (991|@5|0@5@9&#,991|0@5@2&#,5|$#,)! +3 f0 (991|0@5@7&#,)! +3 f1 (991|0@5@7&#,)! +3 U!180{988|@1|0@5@18@2@0#expr,971|@1|0@5@2&#sref,5|@1|^#intlit,}! +0 s5941|& +0 s5942|& +3 f0 (7013|4@0@7&#,7013|$#,)! +3 f1 (7013|4@0@7&#,7013|$#,)! +3 e!181{ERRORBADCONSTRAINTTERMTYPE,EXPRNODE,SREF,INTLITERAL}! +0 s5947|& +0 s5948|& +3 S_constraintTerm{1003|@1|0@5@2&#loc,7013|@1|^#value,7018|@1|^#kind,}! +0 s5949|-1 7021 -1 +1 t7020|7020& +0 a5950|& +3 f0 (7022|$#,)! +3 f7018 (7022|$#,)! +3 f0 (7022|$#,)! +3 f971 (7022|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|0@0@2&#,)! +3 f1 (7022|0@0@2&#,)! +3 f0 (7022|@5|$#,)! +3 f7022 (7022|@5|$#,)! +3 f0 (988|0@5@18&#,)! +3 f7022 (988|0@5@18&#,)! +3 f0 (7022|$#,)! +3 f7022 (7022|$#,)! +3 f0 (7022|$#,7022|$#,)! +3 f2 (7022|$#,7022|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f5 (7022|$#,)! +3 f0 (7022|$#,)! +3 f1003 (7022|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f1117 (7022|$#,)! +3 f0 (971|0@5@6@3@0#,)! +3 f7022 (971|0@5@6@3@0#,)! +3 f0 (7022|$#,7022|$#,)! +3 f2 (7022|$#,7022|$#,)! +3 f0 (7022|@5|$#,1003|0@5@7&#,)! +3 f7022 (7022|@5|$#,1003|0@5@7&#,)! 3 f0 (5|$#,)! -3 f6392 (5|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f989 (6392|$#,)! -3 f0 (6392|@5|$#,3819|$#,)! -3 f6392 (6392|@5|$#,3819|$#,)! -3 f0 (6392|0@0@19@3@0#,210|$#,)! -3 f1 (6392|0@0@19@3@0#,210|$#,)! -3 f0 (210|$#,)! -3 f6392 (210|$#,)! -3 e!73{BINARYOP_UNDEFINED,PLUS,MINUS}! -0 s7038|& -0 s295|& -3 e!74{UNARYOP_UNDEFINED,MAXSET,MINSET,MAXREAD,MINREAD}! -0 s7039|& -0 s296|& -3 SconstraintExprBinaryOp_{987|@1|0@5@3&#expr1,6443|@1|^#binaryOp,987|@1|0@5@3&#expr2,}! -0 s6824|& -0 s297|& -3 SconstraintExprUnaryOp_{987|@1|0@5@3&#expr,6446|@1|^#unaryOp,}! -0 s6756|& -0 s298|& -3 U_constraintExprData{6449|@1|^#binaryOp,6452|@1|^#unaryOp,6392|@1|0@0@3&#term,}! -0 s6965|-1 6455 -1 -1 t6454|6454& -0 s299|& -3 f0 (6456|11@0@6@3@0#,)! -3 f2 (6456|11@0@6@3@0#,)! -3 f0 (6456|$#,)! -3 f2 (6456|$#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f2 (6456|0@0@19@3@0#,)! -3 f0 (6456|0@0@2&#,)! -3 f1 (6456|0@0@2&#,)! -3 f0 (6456|0@0@2&#,)! -3 f1 (6456|0@0@2&#,)! -3 f0 (6456|0@0@2&#,)! -3 f1 (6456|0@0@2&#,)! -3 f0 (6456|@5|11@0@7&#,6392|0@0@2&#,)! -3 f6456 (6456|@5|11@0@7&#,6392|0@0@2&#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6392 (6456|0@0@19@3@0#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f6446 (6456|11@0@19@3@0#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f987 (6456|11@0@19@3@0#,)! -3 f0 (6456|@5|11@0@7&#,6446|$#,)! -3 f6456 (6456|@5|11@0@7&#,6446|$#,)! -3 f0 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f6456 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f0 (6456|11@0@7&#,)! -3 f6443 (6456|11@0@7&#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f987 (6456|11@0@19@3@0#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f987 (6456|11@0@19@3@0#,)! -3 f0 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f6456 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f0 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f6456 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f0 (6456|@5|11@0@7&#,6443|$#,)! -3 f6456 (6456|@5|11@0@7&#,6443|$#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6456 (6456|0@0@19@3@0#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6456 (6456|0@0@19@3@0#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6456 (6456|0@0@19@3@0#,)! -3 e!75{binaryexpr,unaryExpr,term}! -0 s7037|& -0 s300|& -3 S_constraintExpr{6501|@1|^#kind,6456|@1|0@0@3&#data,}! -3 f0 (987|0@5@7&#,)! -3 f2 (987|0@5@7&#,)! -3 f0 (987|0@5@7&#,)! -3 f2 (987|0@5@7&#,)! -3 f0 (987|0@5@7&#,)! -3 f2 (987|0@5@7&#,)! -3 f0 (987|0@5@2&#,)! -3 f1 (987|0@5@2&#,)! -3 f0 (987|0@5@7&#,)! -3 f5 (987|0@5@7&#,)! -3 f0 (987|@5|0@5@7&#,978|0@5@7&#,)! -3 f987 (987|@5|0@5@7&#,978|0@5@7&#,)! -3 f0 (987|0@5@7&#,)! -3 f987 (987|0@5@7&#,)! -3 f0 (987|0@5@6@3@0#,)! -3 f989 (987|0@5@6@3@0#,)! -3 f0 (987|0@5@7&#,)! -3 f989 (987|0@5@7&#,)! -3 f0 (987|0@5@7&#,987|0@5@7&#,)! -3 f2 (987|0@5@7&#,987|0@5@7&#,)! -3 f0 (987|0@5@7&#,987|0@5@7&#,)! -3 f2 (987|0@5@7&#,987|0@5@7&#,)! -3 f0 (987|0@5@2&#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f987 (987|0@5@2&#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (987|0@5@7&#,)! -3 f2 (987|0@5@7&#,)! -3 f0 (987|0@5@7&#,987|0@5@7&#,)! -3 f5 (987|0@5@7&#,987|0@5@7&#,)! +3 f7022 (5|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f1117 (7022|$#,)! +3 f0 (7022|@5|$#,4160|$#,)! +3 f7022 (7022|@5|$#,4160|$#,)! +3 f0 (7022|0@0@19@3@0#,211|$#,)! +3 f1 (7022|0@0@19@3@0#,211|$#,)! +3 f0 (211|$#,)! +3 f7022 (211|$#,)! +3 e!182{BINARYOP_UNDEFINED,PLUS,MINUS}! +0 s5976|& +0 s5977|& +3 e!183{UNARYOP_UNDEFINED,MAXSET,MINSET,MAXREAD,MINREAD}! +0 s5983|& +0 s5984|& +3 SconstraintExprBinaryOp_{1115|@1|0@5@3&#expr1,7073|@1|^#binaryOp,1115|@1|0@5@3&#expr2,}! +0 s5985|& +0 s5986|& +3 SconstraintExprUnaryOp_{1115|@1|0@5@3&#expr,7076|@1|^#unaryOp,}! +0 s5987|& +0 s5988|& +3 UconstraintExprData{7079|@1|^#binaryOp,7082|@1|^#unaryOp,7022|@1|0@0@3&#term,}! +0 s5989|-1 7085 -1 +1 t7084|7084& +0 s5990|& +3 f0 (7086|11@0@6@3@0#,)! +3 f2 (7086|11@0@6@3@0#,)! +3 f0 (7086|$#,)! +3 f2 (7086|$#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f2 (7086|0@0@19@3@0#,)! +3 f0 (7086|0@0@2&#,)! +3 f1 (7086|0@0@2&#,)! +3 f0 (7086|0@0@2&#,)! +3 f1 (7086|0@0@2&#,)! +3 f0 (7086|0@0@2&#,)! +3 f1 (7086|0@0@2&#,)! +3 f0 (7086|@5|7@0@7&#,7022|0@0@2&#,)! +3 f7086 (7086|@5|7@0@7&#,7022|0@0@2&#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7022 (7086|0@0@19@3@0#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f7076 (7086|11@0@19@3@0#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f1115 (7086|11@0@19@3@0#,)! +3 f0 (7086|@5|7@0@7&#,7076|$#,)! +3 f7086 (7086|@5|7@0@7&#,7076|$#,)! +3 f0 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f7086 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f0 (7086|7@0@7&#,)! +3 f7073 (7086|7@0@7&#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f1115 (7086|11@0@19@3@0#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f1115 (7086|11@0@19@3@0#,)! +3 f0 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f7086 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f0 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f7086 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f0 (7086|@5|7@0@7&#,7073|$#,)! +3 f7086 (7086|@5|7@0@7&#,7073|$#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7086 (7086|0@0@19@3@0#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7086 (7086|0@0@19@3@0#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7086 (7086|0@0@19@3@0#,)! +3 e!184{binaryexpr,unaryExpr,term}! +0 s6013|& +0 s6014|& +3 Ss_constraintExpr{7131|@1|^#kind,7086|@1|0@0@3&#data,}! +3 f0 (1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1 (1115|0@5@2&#,)! +3 f0 (1115|0@5@7&#,)! +3 f5 (1115|0@5@7&#,)! +3 f0 (1115|@5|0@5@7&#,1003|0@5@7&#,)! +3 f1115 (1115|@5|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1115|0@5@7&#,)! +3 f1115 (1115|0@5@7&#,)! +3 f0 (1115|0@5@6@3@0#,)! +3 f1117 (1115|0@5@6@3@0#,)! +3 f0 (1115|0@5@7&#,)! +3 f1117 (1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f0 (1115|0@5@2&#,1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f0 (1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f5 (1115|0@5@7&#,1115|0@5@7&#,)! 3 f0 (5|$#,)! -3 f987 (5|$#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@7&#,987|0@5@2&#,)! -3 f987 (987|0@5@7&#,987|0@5@2&#,)! -3 f0 (987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f2 (987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (987|0@5@7&#,)! -3 f978 (987|0@5@7&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f987 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f987 (952|0@5@18@2@0#,)! -3 f0 (987|@5|0@5@7&#,3819|$#,)! -3 f987 (987|@5|0@5@7&#,3819|$#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f987 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f0 (987|0@5@7&#,)! -3 f2 (987|0@5@7&#,)! -3 f0 (987|0@5@2&#,987|0@5@2&#,)! -3 f987 (987|0@5@2&#,987|0@5@2&#,)! -3 f0 (987|0@5@2&#,987|0@5@2&#,)! -3 f987 (987|0@5@2&#,987|0@5@2&#,)! -3 f0 (1779|$#,987|0@5@2&#,)! -3 f987 (1779|$#,987|0@5@2&#,)! -3 f0 (987|0@5@2&#,1779|$#,987|0@5@2&#,)! -3 f987 (987|0@5@2&#,1779|$#,987|0@5@2&#,)! -3 f0 (987|0@5@19@3@0#,)! -3 f2 (987|0@5@19@3@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f987 (952|0@5@18@2@0#,)! -3 f0 (987|@5|0@5@2&#,3819|$#,)! -3 f987 (987|@5|0@5@2&#,3819|$#,)! -3 f0 (987|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! -3 f987 (987|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! -3 f0 (987|0@5@19@3@0#,)! -3 f2 (987|0@5@19@3@0#,)! -3 f0 (987|0@5@19@3@0#,210|$#,)! -3 f1 (987|0@5@19@3@0#,210|$#,)! -3 f0 (210|$#,)! -3 f987 (210|$#,)! -3 e!76{LT,LTE,GT,GTE,EQ,NONNEGATIVE,POSITIVE}! -0 s7040|& -0 s301|& -3 S_constraint{981|@1|0@0@3&#orig,981|@1|0@0@3&#or,2|@1|^#fcnPre,987|@1|0@5@3&#lexpr,6587|@1|^#ar,987|@1|0@5@3&#expr,2|@1|^#post,966|@1|0@5@5&#generatingExpr,}! -3 f0 (981|$#,)! -3 f2 (981|$#,)! -3 f0 (981|$#,)! -3 f2 (981|$#,)! -3 f0 (981|$#,)! -3 f2 (981|$#,)! -3 f0 (981|0@0@2&#,)! -3 f1 (981|0@0@2&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,5|$#,)! -3 f981 (966|0@5@7&#,5|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (981|$#,981|0@0@19@3@0#,)! -3 f1 (981|$#,981|0@0@19@3@0#,)! -3 f0 (981|0@0@19@3@0#,)! -3 f981 (981|0@0@19@3@0#,)! -3 f0 (978|0@5@19@3@0#,978|0@5@19@3@0#,978|0@5@19@3@0#,)! -3 f2 (978|0@5@19@3@0#,978|0@5@19@3@0#,978|0@5@19@3@0#,)! -3 f0 (6587|$#,)! -3 f989 (6587|$#,)! -3 f0 (981|$#,)! -3 f978 (981|$#,)! -3 f0 (981|$#,)! -3 f989 (981|$#,)! -3 f0 (966|0@5@7&#,5|$#,)! -3 f981 (966|0@5@7&#,5|$#,)! -3 f0 (966|@5|0@5@7&#,966|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,978|0@5@7&#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|@5|0@0@2&#,3819|$#,)! -3 f981 (981|@5|0@0@2&#,3819|$#,)! -3 f0 (981|$#,)! -3 f989 (981|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f981 (952|0@5@18&#,5|$#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f981 (952|0@5@18&#,5|$#,)! -3 f0 (981|0@0@19@3@0#,978|0@5@19@3@0#,)! -3 f1 (981|0@0@19@3@0#,978|0@5@19@3@0#,)! -3 f0 (981|$#,3819|$#,)! -3 f981 (981|$#,3819|$#,)! -3 f0 (952|0@5@18&#,9|$#,)! -3 f981 (952|0@5@18&#,9|$#,)! -3 f0 (981|$#,966|0@5@7&#,)! -3 f981 (981|$#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,978|0@5@7&#,)! -3 f0 (981|$#,987|0@5@7&#,)! -3 f2 (981|$#,987|0@5@7&#,)! -3 f0 (987|0@5@7&#,1779|$#,987|0@5@7&#,)! -3 f981 (987|0@5@7&#,1779|$#,987|0@5@7&#,)! -3 f0 (981|@5|$#,966|0@5@7&#,)! -3 f981 (981|@5|$#,966|0@5@7&#,)! -3 f0 (981|$#,)! -3 f2 (981|$#,)! -3 f0 (966|0@5@7&#,2|$#,2|$#,978|0@5@19@3@0#,)! -3 f1 (966|0@5@7&#,2|$#,2|$#,978|0@5@19@3@0#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|$#,981|$#,)! -3 f2 (981|$#,981|$#,)! -3 f0 (981|$#,)! -3 f989 (981|$#,)! -3 f0 (981|$#,978|0@5@7&#,)! -3 f1 (981|$#,978|0@5@7&#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|@5|$#,966|0@5@7&#,)! -3 f981 (981|@5|$#,966|0@5@7&#,)! +3 f1115 (5|$#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@7&#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@7&#,1115|0@5@2&#,)! +3 f0 (1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f2 (1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f0 (1115|0@5@7&#,)! +3 f1003 (1115|0@5@7&#,)! +3 f0 (971|0@5@6&#,)! +3 f1115 (971|0@5@6&#,)! +3 f0 (971|0@5@6@3@0#,)! +3 f1115 (971|0@5@6@3@0#,)! +3 f0 (971|0@5@6&#,)! +3 f1115 (971|0@5@6&#,)! +3 f0 (1115|@5|0@5@7&#,4160|$#,)! +3 f1115 (1115|@5|0@5@7&#,4160|$#,)! +3 f0 (988|0@5@18&#,)! +3 f1115 (988|0@5@18&#,)! +3 f0 (1115|0@5@2&#,988|0@5@19@3@0#,)! +3 f1115 (1115|0@5@2&#,988|0@5@19@3@0#,)! +3 f0 (1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,)! +3 f0 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f0 (2013|$#,1115|0@5@2&#,)! +3 f1115 (2013|$#,1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,2013|$#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,2013|$#,1115|0@5@2&#,)! +3 f0 (1115|0@5@6@3@0#,)! +3 f2 (1115|0@5@6@3@0#,)! +3 f0 (1115|@5|0@5@2&#,4160|$#,)! +3 f1115 (1115|@5|0@5@2&#,4160|$#,)! +3 f0 (1115|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! +3 f1115 (1115|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! +3 f0 (1115|0@5@6@3@0#,)! +3 f2 (1115|0@5@6@3@0#,)! +3 f0 (1115|0@5@6@3@0#,211|$#,)! +3 f1 (1115|0@5@6@3@0#,211|$#,)! +3 f0 (211|$#,)! +3 f1115 (211|$#,)! +3 e!185{LT,LTE,GT,GTE,EQ,NONNEGATIVE,POSITIVE}! +0 s6061|& +0 s6062|& +3 Ss_constraint{1109|@1|0@0@3&#orig,1109|@1|0@0@3&#or,2|@1|^#fcnPre,1115|@1|0@5@3&#lexpr,7217|@1|^#ar,1115|@1|0@5@3&#expr,2|@1|^#post,988|@1|0@5@18@3@0#generatingExpr,}! +3 f0 (1109|$#,)! +3 f2 (1109|$#,)! +3 f0 (1109|$#,)! +3 f2 (1109|$#,)! +3 f0 (1109|$#,)! +3 f2 (1109|$#,)! +3 f0 (1109|0@0@2&#,)! +3 f1 (1109|0@0@2&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|0@5@18&#,5|$#,)! +3 f1109 (988|0@5@18&#,5|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (1109|$#,1109|0@0@19@3@0#,)! +3 f1 (1109|$#,1109|0@0@19@3@0#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f1109 (1109|0@0@6@3@0#,)! +3 f0 (1003|0@5@19@3@0#,1003|0@5@19@3@0#,1003|0@5@19@3@0#,)! +3 f2 (1003|0@5@19@3@0#,1003|0@5@19@3@0#,1003|0@5@19@3@0#,)! +3 f0 (7217|$#,)! +3 f1117 (7217|$#,)! +3 f0 (1109|$#,)! +3 f1003 (1109|$#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f1117 (1109|0@0@6@3@0#,)! +3 f0 (988|0@5@18&#,5|$#,)! +3 f1109 (988|0@5@18&#,5|$#,)! +3 f0 (988|@5|0@5@7&#,988|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|@5|0@0@2&#,4160|$#,)! +3 f1109 (1109|@5|0@0@2&#,4160|$#,)! +3 f0 (1109|$#,)! +3 f1117 (1109|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1109 (971|0@5@7&#,5|$#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1109 (971|0@5@7&#,5|$#,)! +3 f0 (1109|0@0@6@3@0#,1003|0@5@6@3@0#,)! +3 f1 (1109|0@0@6@3@0#,1003|0@5@6@3@0#,)! +3 f0 (1109|$#,4160|0@0@6@3@0#,)! +3 f1109 (1109|$#,4160|0@0@6@3@0#,)! +3 f0 (971|0@5@7&#,9|$#,)! +3 f1109 (971|0@5@7&#,9|$#,)! +3 f0 (1109|$#,988|0@5@18@3@0#,)! +3 f1109 (1109|$#,988|0@5@18@3@0#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (1109|$#,1115|0@5@7&#,)! +3 f2 (1109|$#,1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,2013|$#,1115|0@5@7&#,)! +3 f1109 (1115|0@5@7&#,2013|$#,1115|0@5@7&#,)! +3 f0 (1109|@5|$#,988|0@5@18&#,)! +3 f1109 (1109|@5|$#,988|0@5@18&#,)! +3 f0 (1109|$#,)! +3 f2 (1109|$#,)! +3 f0 (988|0@5@18&#,2|$#,2|$#,1003|0@5@6@3@0#,)! +3 f1 (988|0@5@18&#,2|$#,2|$#,1003|0@5@6@3@0#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|$#,1109|$#,)! +3 f2 (1109|$#,1109|$#,)! +3 f0 (1109|$#,)! +3 f1117 (1109|$#,)! +3 f0 (1109|$#,1003|0@5@7&#,)! +3 f1 (1109|$#,1003|0@5@7&#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|@5|$#,988|0@5@18&#,)! +3 f1109 (1109|@5|$#,988|0@5@18&#,)! 3 C1.2/1|! -3 f0 (966|0@5@6&#,)! -3 f2 (966|0@5@6&#,)! -3 f6681 (966|0@5@6&#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|0@0@6@3@0#,)! -3 f2 (981|0@0@6@3@0#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (210|$#,)! -3 f981 (210|$#,)! -3 f0 (981|0@0@19@3@0#,210|$#,)! -3 f1 (981|0@0@19@3@0#,210|$#,)! -3 f0 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (981|0@0@19@3@0#,984|$#,)! -3 f981 (981|0@0@19@3@0#,984|$#,)! -3 f0 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f2 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (984|$#,984|0@0@19@3@0#,)! -3 f984 (984|$#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (981|0@0@19@3@0#,)! -3 f2 (981|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,3819|$#,)! -3 f984 (966|0@5@7&#,3819|$#,)! -3 f0 (966|4@5@7&#,3819|$#,978|0@5@7&#,)! -3 f1 (966|4@5@7&#,3819|$#,978|0@5@7&#,)! -3 f0 (981|@5|$#,984|$#,)! -3 f981 (981|@5|$#,984|$#,)! -0 s81|-1 6736 -1 -1 t6735|6735& -3 S_constraintList{5|@1|^#nelements,5|@1|^#nspace,6736|@1|11@3@3&#elements,}! -3 f0 (984|$#,)! -3 f2 (984|$#,)! -3 f0 (984|$#,)! -3 f2 (984|$#,)! -3 f0 (984|$#,)! -3 f2 (984|$#,)! -3 f0 (984|0@0@2&#,984|0@0@2&#,)! -3 f984 (984|0@0@2&#,984|0@0@2&#,)! -3 f0 (984|@5|$#,966|0@5@7&#,)! -3 f984 (984|@5|$#,966|0@5@7&#,)! -3 f1 (984|@7|&#,981|@3|6@0@19@2@0#,)! -3 f0 ()! -3 f984 ()! -3 f0 (984|@5|$#,981|0@0@2&#,)! -3 f984 (984|@5|$#,981|0@0@2&#,)! -3 f0 (984|@5|$#,984|0@0@19@3@0#,)! -3 f984 (984|@5|$#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,)! -3 f1 (984|0@0@2&#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f989 (984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f989 (984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f989 (984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (984|@5|$#,)! -3 f984 (984|@5|$#,)! -3 f0 (984|0@0@19@3@0#,3819|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,3819|0@0@19@3@0#,)! -3 f0 (984|@5|$#,)! -3 f984 (984|@5|$#,)! -3 f0 (984|0@0@2&#,3819|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,3819|0@0@19@3@0#,)! -3 f0 (966|0@5@7&#,3819|$#,966|0@5@7&#,)! -3 f984 (966|0@5@7&#,3819|$#,966|0@5@7&#,)! -3 f0 (984|0@0@2&#,966|0@5@19@3@0#,)! -3 f984 (984|0@0@2&#,966|0@5@19@3@0#,)! -3 f0 (984|@5|$#,966|0@5@7&#,)! -3 f984 (984|@5|$#,966|0@5@7&#,)! -3 f0 (972|0@5@19@3@0#,)! -3 f984 (972|0@5@19@3@0#,)! -3 f0 (984|$#,978|0@5@7&#,)! -3 f1 (984|$#,978|0@5@7&#,)! -3 f0 (984|$#,978|0@5@7&#,)! -3 f1 (984|$#,978|0@5@7&#,)! -3 f0 (984|0@0@19@3@0#,210|$#,)! -3 f1 (984|0@0@19@3@0#,210|$#,)! -3 f0 (210|$#,)! -3 f984 (210|$#,)! -3 e!77{XPR_PARENS,XPR_ASSIGN,XPR_CALL,XPR_EMPTY,XPR_VAR,XPR_OP,XPR_POSTOP,XPR_PREOP,XPR_SIZEOFT,XPR_SIZEOF,XPR_ALIGNOFT,XPR_ALIGNOF,XPR_OFFSETOF,XPR_CAST,XPR_FETCH,XPR_VAARG,XPR_ITER,XPR_FOR,XPR_FORPRED,XPR_GOTO,XPR_CONTINUE,XPR_BREAK,XPR_RETURN,XPR_NULLRETURN,XPR_COMMA,XPR_COND,XPR_IF,XPR_IFELSE,XPR_DOWHILE,XPR_WHILE,XPR_STMT,XPR_STMTLIST,XPR_SWITCH,XPR_INIT,XPR_FACCESS,XPR_ARROW,XPR_CONST,XPR_STRINGLITERAL,XPR_NUMLIT,XPR_BODY,XPR_NODE,XPR_ITERCALL,XPR_TOK,XPR_WHILEPRED,XPR_CASE,XPR_FTCASE,XPR_DEFAULT,XPR_FTDEFAULT,XPR_BLOCK,XPR_INITBLOCK,XPR_LABEL}! -0 s7041|& -0 s302|& -3 S_exprOffsetof{4997|@1|0@5@2&#q,1882|@1|0@5@2&#field,}! -0 s6788|-1 6796 -1 -1 t6795|6795& -0 s303|& -3 S_exprPair{966|@1|0@5@2&#a,966|@1|0@5@2&#b,}! -0 s6744|-1 6800 -1 -1 t6799|6799& -0 s304|& -3 S_exprTriple{966|@1|0@5@2&#pred,966|@1|0@5@2&#tbranch,966|@1|0@5@2&#fbranch,}! -0 s6872|-1 6804 -1 -1 t6803|6803& -0 s305|& -3 S_exprIter{955|@1|0@5@18@3@0#sname,3819|@1|0@0@2&#args,966|@1|0@5@2&#body,955|@1|0@5@18@3@0#ename,}! -0 s6902|-1 6808 -1 -1 t6807|6807& -0 s306|& -3 S_exprCall{966|@1|0@5@2&#fcn,3819|@1|0@0@2&#args,}! -0 s6758|-1 6812 -1 -1 t6811|6811& -0 s307|& -3 S_exprIterCall{955|@1|0@5@18@2@0#iter,3819|@1|0@0@2&#args,}! -0 s6763|-1 6816 -1 -1 t6815|6815& -0 s308|& -3 S_exprOp{966|@1|0@5@2&#a,966|@1|0@5@2&#b,1779|@1|^#op,}! -0 s6805|-1 6820 -1 -1 t6819|6819& -0 s309|& -3 S_exprField{966|@1|0@5@2&#rec,989|@1|0@5@2&#field,}! -0 s6792|-1 6824 -1 -1 t6823|6823& -0 s310|& -3 S_exprUop{966|@1|0@5@2&#a,1779|@1|^#op,}! -0 s6745|-1 6828 -1 -1 t6827|6827& -0 s311|& -3 S_exprCast{966|@1|0@5@2&#exp,1779|@1|^#tok,4997|@1|0@5@3&#q,}! -0 s6823|-1 6832 -1 -1 t6831|6831& -0 s312|& -3 S_exprInit{966|@1|0@5@2&#exp,960|@1|0@5@3&#id,}! -0 s6755|-1 6836 -1 -1 t6835|6835& -0 s313|& -1 t1779|1779& -3 U_exprData{989|@1|0@5@3&#literal,989|@1|0@5@3&#id,6838|@1|0@0@3&#tok,4997|@1|0@5@3&#qt,6801|@1|0@0@3&#pair,6821|@1|0@0@3&#op,6829|@1|0@0@3&#uop,6837|@1|0@0@3&#init,6809|@1|0@0@3&#iter,6813|@1|0@0@3&#call,6817|@1|0@0@3&#itercall,6833|@1|0@0@3&#cast,966|@1|0@5@3&#single,6825|@1|0@0@3&#field,6805|@1|0@0@3&#triple,6797|@1|0@0@3&#offset,}! -0 s6983|-1 6841 -1 -1 t6840|6840& -0 s314|& -3 S_exprNode{2|@1|^#isJumpPoint,2|@1|^#canBreak,2|@1|^#mustBreak,991|@1|^#typ,4096|@1|^#exitCode,5075|@1|0@5@3&#val,952|@1|0@5@18@2@0#sref,972|@1|0@5@3&#uses,972|@1|0@5@3&#sets,972|@1|0@5@3&#msets,969|@1|0@5@3&#guards,6793|@1|^#kind,978|@1|0@5@3&#loc,6842|@1|0@3@3&#edata,989|@1|0@5@3&#etext,984|@1|0@2@3&#requiresConstraints,984|@1|0@2@3&#ensuresConstraints,984|@1|0@2@3&#trueEnsuresConstraints,984|@1|0@2@3&#falseEnsuresConstraints,}! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|@7|0@5@7&#,)! -3 f969 (966|@7|0@5@7&#,)! -3 f0 (966|@7|0@5@7&#,)! -3 f991 (966|@7|0@5@7&#,)! -3 f0 (966|@7|0@5@7&#,)! -3 f2 (966|@7|0@5@7&#,)! -3 f0 (966|@7|0@5@7&#,)! -3 f2 (966|@7|0@5@7&#,)! -3 f0 (966|@7|0@5@7&#,)! -3 f2 (966|@7|0@5@7&#,)! -3 f0 (966|@7|0@5@7&#,)! -3 f2 (966|@7|0@5@7&#,)! -3 f0 (966|@7|0@5@7&#,)! -3 f2 (966|@7|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f5075 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f9 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f969 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f952 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f955 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f978 (966|0@5@7&#,)! -3 f0 (4|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f966 (4|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f0 ()! -3 f966 ()! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f966 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 ()! -3 f966 ()! -3 f0 (1779|$#,3819|0@0@2&#,)! -3 f966 (1779|$#,3819|0@0@2&#,)! -3 f0 (966|0@5@2&#,3819|0@0@2&#,)! -3 f966 (966|0@5@2&#,3819|0@0@2&#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (989|0@5@7&#,)! -3 f966 (989|0@5@7&#,)! -3 f0 (966|0@5@2&#,989|0@5@2&#,)! -3 f966 (966|0@5@2&#,989|0@5@2&#,)! -3 f0 (966|0@5@2&#,989|0@5@2&#,)! -3 f966 (966|0@5@2&#,989|0@5@2&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (1779|0@0@2&#,966|0@5@2&#,)! -3 f966 (1779|0@0@2&#,966|0@5@2&#,)! -3 f0 (4997|0@5@2&#,1882|0@5@2&#,)! -3 f966 (4997|0@5@2&#,1882|0@5@2&#,)! -3 f0 (4997|0@5@2&#,)! -3 f966 (4997|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (4997|0@5@2&#,)! -3 f966 (4997|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@4&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@4&#,1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f966 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f0 (989|0@5@2&#,978|0@5@2&#,)! -3 f966 (989|0@5@2&#,978|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f966 (989|0@5@2&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@2&#,2|$#,)! -3 f966 (966|0@5@2&#,2|$#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (1779|0@0@2&#,)! -3 f966 (1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,)! -3 f966 (966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f966 (989|0@5@2&#,)! -3 f0 (1779|0@0@2&#,5|$#,)! -3 f966 (1779|0@0@2&#,5|$#,)! -3 f0 (1779|0@0@2&#,5|$#,)! -3 f966 (1779|0@0@2&#,5|$#,)! -3 f0 (1779|0@0@2&#,)! -3 f966 (1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (960|0@5@2&#,966|0@5@2&#,)! -3 f966 (960|0@5@2&#,966|0@5@2&#,)! -3 f0 (991|$#,966|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,)! -3 f0 (1779|0@0@2&#,2|$#,)! -3 f966 (1779|0@0@2&#,2|$#,)! -3 f0 (955|0@5@19@3@0#,3819|0@0@2&#,966|0@5@2&#,955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,3819|0@0@2&#,966|0@5@2&#,955|0@5@19@3@0#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (989|0@5@2&#,)! -3 f966 (989|0@5@2&#,)! -3 f0 (955|0@5@19@3@0#,3819|0@0@2&#,)! -3 f966 (955|0@5@19@3@0#,3819|0@0@2&#,)! -3 f0 (991|$#,989|0@5@6&#,978|0@5@2&#,9|$#,)! -3 f966 (991|$#,989|0@5@6&#,978|0@5@2&#,9|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (966|0@5@4&#,966|0@5@4&#,)! -3 f966 (966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f0 (17|$#,991|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f966 (17|$#,991|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f966 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f0 (991|$#,966|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|@5|0@5@7&#,978|0@5@6&#,)! -3 f966 (966|@5|0@5@7&#,978|0@5@6&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f978 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f978 (966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (991|$#,)! -3 f966 (991|$#,)! -3 f0 (989|0@5@2&#,)! -3 f6842 (989|0@5@2&#,)! -3 f0 (955|0@5@6&#,)! -3 f6842 (955|0@5@6&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,)! -3 f0 (6842|0@5@2&#,6793|$#,)! -3 f1 (6842|0@5@2&#,6793|$#,)! -3 f0 (6842|0@5@2&#,6793|$#,)! -3 f1 (6842|0@5@2&#,6793|$#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f960 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f955 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f3819 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f955 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f3819 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f955 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f3819 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f989 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f4997 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f989 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f989 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f4997 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f4997 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1882 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,1779|0@0@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,1779|0@0@4&#,)! -3 f0 (966|0@5@4&#,1779|0@0@4&#,)! -3 f6842 (966|0@5@4&#,1779|0@0@4&#,)! -3 f0 (966|0@5@2&#,)! -3 f6842 (966|0@5@2&#,)! -3 f0 (1779|0@0@2&#,)! -3 f6842 (1779|0@0@2&#,)! -3 f0 (955|0@5@19@2@0#,3819|0@0@4&#,966|0@5@4&#,955|0@5@19@2@0#,)! -3 f6842 (955|0@5@19@2@0#,3819|0@0@4&#,966|0@5@4&#,955|0@5@19@2@0#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@4&#,3819|0@0@4&#,)! -3 f6842 (966|0@5@4&#,3819|0@0@4&#,)! -3 f0 (955|0@5@18&#,3819|0@0@4&#,)! -3 f6842 (955|0@5@18&#,3819|0@0@4&#,)! -3 f0 (966|0@5@4&#,989|0@5@4&#,)! -3 f6842 (966|0@5@4&#,989|0@5@4&#,)! -3 f0 (4997|0@5@2&#,1882|0@5@4&#,)! -3 f6842 (4997|0@5@2&#,1882|0@5@4&#,)! -3 f0 (4997|0@5@2&#,)! -3 f6842 (4997|0@5@2&#,)! -3 f0 (1779|0@0@4&#,966|0@5@4&#,4997|0@5@2&#,)! -3 f6842 (1779|0@0@4&#,966|0@5@4&#,4997|0@5@2&#,)! -3 f0 (960|0@5@4&#,966|0@5@4&#,)! -3 f6842 (960|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 ()! -3 f956 ()! -3 f0 (956|$#,4256|$#,)! -3 f2 (956|$#,4256|$#,)! -3 f0 (956|@7|$#,)! -3 f2 (956|@7|$#,)! -3 f0 (4256|$#,)! -3 f956 (4256|$#,)! -3 f0 (4256|$#,)! -3 f956 (4256|$#,)! -3 f0 (956|$#,4256|$#,)! -3 f956 (956|$#,4256|$#,)! -3 f0 (956|$#,4256|$#,)! -3 f956 (956|$#,4256|$#,)! -3 f0 (956|$#,)! -3 f989 (956|$#,)! -3 f0 (956|$#,956|$#,)! -3 f956 (956|$#,956|$#,)! -3 f0 (956|$#,956|$#,)! -3 f5 (956|$#,956|$#,)! -3 f0 (956|$#,)! -3 f989 (956|$#,)! -3 f0 (312|$#,)! -3 f956 (312|$#,)! -3 f0 (956|$#,956|$#,)! -3 f956 (956|$#,956|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -0 s67|-1 7187 -1 -1 t7186|7186& -3 S_idDeclList{5|@1|^#nelements,5|@1|^#nspace,7187|@1|11@3@3&#elements,}! -0 s6866|-1 7190 -1 -1 t7189|7189& -0 a315|& -3 f1 (7191|@7|&#,960|@3|6@5@19@2@0#,)! -3 f0 (960|0@5@2&#,)! -3 f7191 (960|0@5@2&#,)! -3 f0 (7191|@5|$#,960|0@5@2&#,)! -3 f7191 (7191|@5|$#,960|0@5@2&#,)! -3 f0 (7191|$#,)! -3 f989 (7191|$#,)! -3 f0 (7191|0@0@2&#,)! -3 f1 (7191|0@0@2&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (1500|$#,)! -3 f1 (1500|$#,)! +3 f0 (988|0@5@18&#,)! +3 f2 (988|0@5@18&#,)! +3 f7311 (988|0@5@18&#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f2 (1109|0@0@6@3@0#,)! +3 f0 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f0 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f0 (211|$#,)! +3 f1109 (211|$#,)! +3 f0 (1109|0@0@19@3@0#,211|$#,)! +3 f1 (1109|0@0@19@3@0#,211|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +3 f1 (988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +3 f0 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f1109 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f2 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1112|0@0@6&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6&#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f2 (1109|0@0@6@3@0#,)! +3 f0 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +0 s6131|-1 7362 -1 +1 t7361|7361& +3 Ss_constraintList{5|@1|^#nelements,5|@1|^#nspace,7362|@1|11@3@3&#elements,}! +3 f0 (1112|$#,)! +3 f2 (1112|$#,)! +3 f0 (1112|$#,)! +3 f2 (1112|$#,)! +3 f0 (1112|$#,)! +3 f2 (1112|$#,)! +3 f0 (1112|@5|$#,1112|0@0@2&#,)! +3 f1112 (1112|@5|$#,1112|0@0@2&#,)! +3 f0 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f1112 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f1 (1112|@7|&#,1109|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f1112 ()! +3 f0 (1112|@5|$#,1109|0@0@2&#,)! +3 f1112 (1112|@5|$#,1109|0@0@2&#,)! +3 f0 (1112|@5|0@0@2&#,1112|0@0@19@3@0#,)! +3 f1112 (1112|@5|0@0@2&#,1112|0@0@19@3@0#,)! +3 f0 (1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@2&#,)! +3 f1 (1112|0@0@2&#,)! +3 f0 (1112|0@0@19@3@0#,)! +3 f1117 (1112|0@0@19@3@0#,)! +3 f0 (1112|0@0@6@3@0#,)! +3 f1117 (1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@19@3@0#,)! +3 f1117 (1112|0@0@19@3@0#,)! +3 f0 (1112|0@0@19@3@0#,1112|0@0@19@3@0#,)! +3 f1112 (1112|0@0@19@3@0#,1112|0@0@19@3@0#,)! +3 f0 (1112|@5|$#,)! +3 f1112 (1112|@5|$#,)! +3 f0 (1112|$#,4160|0@0@6@3@0#,)! +3 f1112 (1112|$#,4160|0@0@6@3@0#,)! +3 f0 (1112|@5|$#,)! +3 f1112 (1112|@5|$#,)! +3 f0 (1112|0@0@2&#,4160|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,4160|0@0@6@3@0#,)! +3 f0 (988|0@5@18@3@0#,4160|$#,988|0@5@18@3@0#,)! +3 f1112 (988|0@5@18@3@0#,4160|$#,988|0@5@18@3@0#,)! +3 f0 (1112|0@0@2&#,988|0@5@18@3@0#,)! +3 f1112 (1112|0@0@2&#,988|0@5@18@3@0#,)! +3 f0 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f1112 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f0 (994|0@5@19@3@0#,)! +3 f1112 (994|0@5@19@3@0#,)! +3 f0 (1112|$#,1003|0@5@7&#,)! +3 f1 (1112|$#,1003|0@5@7&#,)! +3 f0 (1112|$#,1003|0@5@19@3@0#,)! +3 f1 (1112|$#,1003|0@5@19@3@0#,)! +3 f0 (1112|0@0@19@3@0#,211|$#,)! +3 f1 (1112|0@0@19@3@0#,211|$#,)! +3 f0 (211|$#,)! +3 f1112 (211|$#,)! +3 e!186{XPR_PARENS,XPR_ASSIGN,XPR_CALL,XPR_EMPTY,XPR_VAR,XPR_OP,XPR_POSTOP,XPR_PREOP,XPR_SIZEOFT,XPR_SIZEOF,XPR_ALIGNOFT,XPR_ALIGNOF,XPR_OFFSETOF,XPR_CAST,XPR_FETCH,XPR_VAARG,XPR_ITER,XPR_FOR,XPR_FORPRED,XPR_GOTO,XPR_CONTINUE,XPR_BREAK,XPR_RETURN,XPR_NULLRETURN,XPR_COMMA,XPR_COND,XPR_IF,XPR_IFELSE,XPR_DOWHILE,XPR_WHILE,XPR_STMT,XPR_STMTLIST,XPR_SWITCH,XPR_INIT,XPR_FACCESS,XPR_ARROW,XPR_CONST,XPR_STRINGLITERAL,XPR_NUMLIT,XPR_BODY,XPR_NODE,XPR_ITERCALL,XPR_TOK,XPR_WHILEPRED,XPR_CASE,XPR_FTCASE,XPR_DEFAULT,XPR_FTDEFAULT,XPR_BLOCK,XPR_INITBLOCK,XPR_LABEL}! +0 s6210|& +0 s6211|& +3 S!187{5461|@1|0@5@2&#q,2243|@1|0@5@2&#field,}^7422 +0 s6212|& +1 t7420|7420& +0 s6213|& +3 S!188{988|@1|0@5@2&#a,988|@1|0@5@2&#b,}^7426 +0 s6214|& +1 t7424|7424& +0 s6215|& +3 S!189{988|@1|0@5@2&#pred,988|@1|0@5@2&#tbranch,988|@1|0@5@2&#fbranch,}^7430 +0 s6216|& +1 t7428|7428& +0 s6217|& +3 S!190{974|@1|0@5@18@3@0#sname,4160|@1|0@0@2&#args,988|@1|0@5@2&#body,974|@1|0@5@18@3@0#ename,}^7434 +0 s6218|& +1 t7432|7432& +0 s6219|& +3 S!191{988|@1|0@5@2&#fcn,4160|@1|0@0@2&#args,}^7438 +0 s6220|& +1 t7436|7436& +0 s6221|& +3 S!192{974|@1|0@5@18@2@0#iter,4160|@1|0@0@2&#args,}^7442 +0 s6222|& +1 t7440|7440& +0 s6223|& +3 S!193{988|@1|0@5@2&#a,988|@1|0@5@2&#b,2013|@1|^#op,}^7446 +0 s6224|& +1 t7444|7444& +0 s6225|& +3 S!194{988|@1|0@5@2&#rec,1117|@1|0@5@2&#field,}^7450 +0 s6226|& +1 t7448|7448& +0 s6227|& +3 S!195{988|@1|0@5@2&#a,2013|@1|^#op,}^7454 +0 s6228|& +1 t7452|7452& +0 s6229|& +3 S!196{988|@1|0@5@2&#exp,2013|@1|^#tok,5461|@1|0@5@3&#q,}^7458 +0 s6230|& +1 t7456|7456& +0 s6231|& +3 S!197{988|@1|0@5@2&#exp,982|@1|0@5@3&#id,}^7462 +0 s6232|& +1 t7460|7460& +0 s6233|& +1 t2013|2013& +3 U!198{1117|@1|0@5@3&#literal,1117|@1|0@5@3&#id,7464|@1|0@0@3&#tok,5461|@1|0@5@3&#qt,7427|@1|0@0@3&#pair,7447|@1|0@0@3&#op,7455|@1|0@0@3&#uop,7463|@1|0@0@3&#init,7435|@1|0@0@3&#iter,7439|@1|0@0@3&#call,7443|@1|0@0@3&#itercall,7459|@1|0@0@3&#cast,988|@1|0@5@3&#single,7451|@1|0@0@3&#field,7431|@1|0@0@3&#triple,7423|@1|0@0@3&#offset,}^7467 +0 s6234|& +1 t7465|7465& +0 s6235|& +3 Ss_exprNode{2|@1|^#isJumpPoint,2|@1|^#canBreak,2|@1|^#mustBreak,1119|@1|^#typ,4485|@1|^#exitCode,5547|@1|0@5@3&#val,971|@1|0@5@18@2@0#sref,994|@1|0@5@3&#uses,994|@1|0@5@3&#sets,994|@1|0@5@3&#msets,991|@1|0@5@3&#guards,7419|@1|^#kind,1003|@1|0@5@3&#loc,7468|@1|0@3@3&#edata,1117|@1|0@5@3&#etext,1112|@1|0@2@3&#requiresConstraints,1112|@1|0@2@3&#ensuresConstraints,1112|@1|0@2@3&#trueEnsuresConstraints,1112|@1|0@2@3&#falseEnsuresConstraints,}! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|@7|0@5@7&#,)! +3 f991 (988|@7|0@5@7&#,)! +3 f0 (988|@7|0@5@7&#,)! +3 f1119 (988|@7|0@5@7&#,)! +3 f0 (988|@7|0@5@7&#,)! +3 f2 (988|@7|0@5@7&#,)! +3 f0 (988|@7|0@5@7&#,)! +3 f2 (988|@7|0@5@7&#,)! +3 f0 (988|@7|0@5@7&#,)! +3 f2 (988|@7|0@5@7&#,)! +3 f0 (988|@7|0@5@7&#,)! +3 f2 (988|@7|0@5@7&#,)! +3 f0 (988|@7|0@5@7&#,)! +3 f2 (988|@7|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f5547 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f9 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1117 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f991 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f971 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f974 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1003 (988|0@5@7&#,)! +3 f0 (4|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f988 (4|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f0 ()! +3 f988 ()! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f988 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 ()! +3 f988 ()! +3 f0 (2013|$#,4160|0@0@2&#,)! +3 f988 (2013|$#,4160|0@0@2&#,)! +3 f0 (988|0@5@2&#,4160|0@0@2&#,)! +3 f988 (988|0@5@2&#,4160|0@0@2&#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (1117|0@5@7&#,)! +3 f988 (1117|0@5@7&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (2013|0@0@2&#,988|0@5@2&#,)! +3 f988 (2013|0@0@2&#,988|0@5@2&#,)! +3 f0 (5461|0@5@2&#,2243|0@5@2&#,)! +3 f988 (5461|0@5@2&#,2243|0@5@2&#,)! +3 f0 (5461|0@5@2&#,)! +3 f988 (5461|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (5461|0@5@2&#,)! +3 f988 (5461|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@4&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@4&#,2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f988 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f988 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f988 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f988 (1117|0@5@2&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@2&#,2|$#,)! +3 f988 (988|0@5@2&#,2|$#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (2013|0@0@2&#,)! +3 f988 (2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,)! +3 f988 (988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f988 (1117|0@5@2&#,)! +3 f0 (2013|0@0@2&#,5|$#,)! +3 f988 (2013|0@0@2&#,5|$#,)! +3 f0 (2013|0@0@2&#,5|$#,)! +3 f988 (2013|0@0@2&#,5|$#,)! +3 f0 (2013|0@0@2&#,)! +3 f988 (2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|0@5@6&#,)! +3 f1117 (988|0@5@6&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (982|0@5@2&#,988|0@5@2&#,)! +3 f988 (982|0@5@2&#,988|0@5@2&#,)! +3 f0 (982|0@5@2&#,)! +3 f988 (982|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (1119|$#,988|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,)! +3 f0 (2013|0@0@2&#,2|$#,)! +3 f988 (2013|0@0@2&#,2|$#,)! +3 f0 (974|0@5@19@3@0#,4160|0@0@2&#,988|0@5@2&#,974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,4160|0@0@2&#,988|0@5@2&#,974|0@5@19@3@0#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f988 (1117|0@5@2&#,)! +3 f0 (974|0@5@19@3@0#,4160|0@0@2&#,)! +3 f988 (974|0@5@19@3@0#,4160|0@0@2&#,)! +3 f0 (1119|$#,1117|0@5@6&#,1003|0@5@2&#,9|$#,)! +3 f988 (1119|$#,1117|0@5@6&#,1003|0@5@2&#,9|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (988|0@5@4&#,988|0@5@4&#,)! +3 f988 (988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f0 (17|$#,1119|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f988 (17|$#,1119|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f988 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f0 (1119|$#,988|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|@5|0@5@7&#,1003|0@5@6&#,)! +3 f988 (988|@5|0@5@7&#,1003|0@5@6&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1003 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f1003 (988|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f988 (1119|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f7468 (1117|0@5@2&#,)! +3 f0 (974|0@5@6&#,)! +3 f7468 (974|0@5@6&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,)! +3 f0 (7468|0@5@2&#,7419|$#,)! +3 f1 (7468|0@5@2&#,7419|$#,)! +3 f0 (7468|0@5@2&#,7419|$#,)! +3 f1 (7468|0@5@2&#,7419|$#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f982 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f974 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f4160 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f974 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f4160 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f974 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f4160 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f1117 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f5461 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f1117 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f1117 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f5461 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f5461 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2243 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,2013|0@0@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,2013|0@0@4&#,)! +3 f0 (988|0@5@4&#,2013|0@0@4&#,)! +3 f7468 (988|0@5@4&#,2013|0@0@4&#,)! +3 f0 (988|0@5@2&#,)! +3 f7468 (988|0@5@2&#,)! +3 f0 (2013|0@0@2&#,)! +3 f7468 (2013|0@0@2&#,)! +3 f0 (974|0@5@19@2@0#,4160|0@0@4&#,988|0@5@4&#,974|0@5@19@2@0#,)! +3 f7468 (974|0@5@19@2@0#,4160|0@0@4&#,988|0@5@4&#,974|0@5@19@2@0#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@4&#,4160|0@0@4&#,)! +3 f7468 (988|0@5@4&#,4160|0@0@4&#,)! +3 f0 (974|0@5@18&#,4160|0@0@4&#,)! +3 f7468 (974|0@5@18&#,4160|0@0@4&#,)! +3 f0 (988|0@5@4&#,1117|0@5@4&#,)! +3 f7468 (988|0@5@4&#,1117|0@5@4&#,)! +3 f0 (5461|0@5@2&#,2243|0@5@4&#,)! +3 f7468 (5461|0@5@2&#,2243|0@5@4&#,)! +3 f0 (5461|0@5@2&#,)! +3 f7468 (5461|0@5@2&#,)! +3 f0 (2013|0@0@4&#,988|0@5@4&#,5461|0@5@2&#,)! +3 f7468 (2013|0@0@4&#,988|0@5@4&#,5461|0@5@2&#,)! +3 f0 (982|0@5@4&#,988|0@5@4&#,)! +3 f7468 (982|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 ()! +3 f975 ()! +3 f0 (975|$#,4650|$#,)! +3 f2 (975|$#,4650|$#,)! +3 f0 (975|@7|$#,)! +3 f2 (975|@7|$#,)! +3 f0 (4650|$#,)! +3 f975 (4650|$#,)! +3 f0 (4650|$#,)! +3 f975 (4650|$#,)! +3 f0 (975|$#,4650|$#,)! +3 f975 (975|$#,4650|$#,)! +3 f0 (975|$#,4650|$#,)! +3 f975 (975|$#,4650|$#,)! +3 f0 (975|$#,)! +3 f1117 (975|$#,)! +3 f0 (975|$#,975|$#,)! +3 f975 (975|$#,975|$#,)! +3 f0 (975|$#,975|$#,)! +3 f5 (975|$#,975|$#,)! +3 f0 (975|$#,)! +3 f1117 (975|$#,)! +3 f0 (313|$#,)! +3 f975 (313|$#,)! +3 f0 (975|$#,975|$#,)! +3 f975 (975|$#,975|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +0 s6404|-1 7819 -1 +1 t7818|7818& +3 S!199{5|@1|^#nelements,5|@1|^#nspace,7819|@1|11@3@3&#elements,}^7822 +0 s6405|& +1 t7820|7820& +0 a6406|& +3 f1 (7823|@7|&#,982|@3|6@5@19@2@0#,)! +3 f0 (982|0@5@2&#,)! +3 f7823 (982|0@5@2&#,)! +3 f0 (7823|@5|$#,982|0@5@2&#,)! +3 f7823 (7823|@5|$#,982|0@5@2&#,)! +3 f0 (7823|$#,)! +3 f1117 (7823|$#,)! +3 f0 (7823|0@0@2&#,)! +3 f1 (7823|0@0@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1706|$#,)! +3 f1 (1706|$#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f2 ()! -3 f0 (989|0@5@2&#,3942|0@0@2&#,)! -3 f991 (989|0@5@2&#,3942|0@0@2&#,)! -3 f0 (989|0@5@6&#,4297|0@5@2&#,)! -3 f991 (989|0@5@6&#,4297|0@5@2&#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (989|0@5@6&#,4297|0@5@2&#,)! -3 f991 (989|0@5@6&#,4297|0@5@2&#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (1779|$#,972|0@5@2&#,1779|$#,)! -3 f1 (1779|$#,972|0@5@2&#,1779|$#,)! -3 f0 (1779|$#,5126|$#,972|0@5@2&#,1779|$#,)! -3 f1 (1779|$#,5126|$#,972|0@5@2&#,1779|$#,)! -3 f0 (3942|0@0@2&#,)! -3 f991 (3942|0@0@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (4297|@5|0@5@18&#,)! -3 f4297 (4297|@5|0@5@18&#,)! -3 f0 (4297|@5|0@5@18&#,)! -3 f4297 (4297|@5|0@5@18&#,)! -3 f0 (7191|0@0@2&#,4997|0@5@7&#,)! -3 f4297 (7191|0@0@2&#,4997|0@5@7&#,)! -3 f0 (4997|0@5@7&#,)! -3 f4297 (4997|0@5@7&#,)! +3 f0 (1117|0@5@2&#,4327|0@0@2&#,)! +3 f1119 (1117|0@5@2&#,4327|0@0@2&#,)! +3 f0 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (4327|0@0@2&#,)! +3 f1119 (4327|0@0@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (4717|@5|0@5@18&#,)! +3 f4717 (4717|@5|0@5@18&#,)! +3 f0 (4717|@5|0@5@18&#,)! +3 f4717 (4717|@5|0@5@18&#,)! +3 f0 (7823|0@0@2&#,5461|0@5@7&#,)! +3 f4717 (7823|0@0@2&#,5461|0@5@7&#,)! +3 f0 (5461|0@5@7&#,)! +3 f4717 (5461|0@5@7&#,)! 3 f0 ()! -3 f955 ()! -3 f0 (960|0@5@7&#,)! -3 f1 (960|0@5@7&#,)! -3 f0 (960|0@5@2&#,)! -3 f1 (960|0@5@2&#,)! +3 f974 ()! +3 f0 (982|0@5@7&#,)! +3 f1 (982|0@5@7&#,)! +3 f0 (982|0@5@2&#,)! +3 f1 (982|0@5@2&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (4297|0@5@18&#,)! -3 f1 (4297|0@5@18&#,)! +3 f0 (4717|0@5@18&#,)! +3 f1 (4717|0@5@18&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f952 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f952 (989|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f971 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f971 (1117|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (4997|0@5@2&#,)! -3 f1 (4997|0@5@2&#,)! -3 f0 (4997|0@5@2&#,)! -3 f1 (4997|0@5@2&#,)! -3 f0 (3992|$#,)! -3 f1 (3992|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (5461|0@5@2&#,)! +3 f1 (5461|0@5@2&#,)! +3 f0 (5461|0@5@2&#,)! +3 f1 (5461|0@5@2&#,)! +3 f0 (4377|$#,)! +3 f1 (4377|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f952 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,989|0@5@2&#,)! -3 f952 (952|0@5@18&#,989|0@5@2&#,)! -3 f0 (952|0@5@18&#,989|0@5@2&#,)! -3 f952 (952|0@5@18&#,989|0@5@2&#,)! -3 f0 (989|0@5@7&#,)! -3 f952 (989|0@5@7&#,)! -3 f0 (952|0@5@18&#,2156|0@5@7&#,)! -3 f1 (952|0@5@18&#,2156|0@5@7&#,)! -3 f0 (972|0@5@2&#,)! -3 f1 (972|0@5@2&#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@7&#,)! +3 f971 (971|0@5@19@2@0#,971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,1117|0@5@2&#,)! +3 f971 (971|0@5@7&#,1117|0@5@2&#,)! +3 f0 (971|0@5@7&#,1117|0@5@2&#,)! +3 f971 (971|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f971 (1117|0@5@7&#,)! +3 f0 (971|0@5@6&#,2511|0@5@2&#,)! +3 f971 (971|0@5@6&#,2511|0@5@2&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -7317,267 +7943,415 @@ 3 f5 ()! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@7&#,4297|0@5@17&#,)! -3 f1 (989|0@5@7&#,4297|0@5@17&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f952 (955|0@5@7&#,)! -3 f0 (4997|0@5@7&#,960|0@5@7&#,)! -3 f1 (4997|0@5@7&#,960|0@5@7&#,)! -3 f0 (4997|0@5@7&#,960|0@5@7&#,966|0@5@7&#,)! -3 f1 (4997|0@5@7&#,960|0@5@7&#,966|0@5@7&#,)! -3 f0 (960|0@5@2&#,)! -3 f1 (960|0@5@2&#,)! -3 f0 ()! -3 f984 ()! -3 f0 ()! -3 f984 ()! -3 f0 (984|$#,)! -3 f1 (984|$#,)! -3 f0 (984|$#,)! -3 f1 (984|$#,)! -3 f0 (955|0@5@7&#,)! -3 f952 (955|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f984 ()! -0 s76|-1 7342 -1 -1 t7341|7341& -3 S_sRefSetList{5|@1|^#nelements,5|@1|^#nspace,7342|@1|11@3@3&#elements,}! -0 s6867|-1 7345 -1 -1 t7344|7344& -0 a316|& -3 f1 (7346|@7|6@5@7&#,972|@3|6@5@19@2@0#,)! -3 f0 (7346|0@5@7&#,)! -3 f2 (7346|0@5@7&#,)! -3 f0 (7346|0@5@7&#,)! -3 f2 (7346|0@5@7&#,)! -3 f0 (7346|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f7346 (7346|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f0 (7346|0@5@2&#,)! -3 f1 (7346|0@5@2&#,)! -3 f0 (7346|0@5@7&#,)! -3 f1 (7346|0@5@7&#,)! -3 e!78{FMK_LOCALSET,FMK_IGNOREON,FMK_IGNORECOUNT,FMK_IGNOREOFF,FMK_SUPPRESS}! -0 s7042|& -0 s317|& -3 U!79{1299|@1|^#set,5|@1|^#nerrors,}! -0 s6963|& -3 S_flagMarker{7360|@1|^#kind,1910|@1|^#code,7361|@1|11@0@0&#info,978|@1|0@5@3&#loc,}! -0 s6890|-1 7365 -1 -1 t7364|7364& -0 s318|-1 14669 -1 -3 f0 (7366|$#,)! -3 f2 (7366|$#,)! -3 f0 (7366|$#,)! -3 f2 (7366|$#,)! -3 f0 (7366|$#,)! -3 f2 (7366|$#,)! -3 f0 (7366|$#,)! -3 f2 (7366|$#,)! -3 f0 (7366|$#,)! -3 f2 (7366|$#,)! -3 f0 (1910|$#,1299|$#,978|0@5@7&#,)! -3 f7366 (1910|$#,1299|$#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f7366 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f7366 (978|0@5@7&#,)! -3 f0 (5|$#,978|0@5@7&#,)! -3 f7366 (5|$#,978|0@5@7&#,)! -3 f0 (1910|$#,978|0@5@7&#,)! -3 f7366 (1910|$#,978|0@5@7&#,)! -3 f0 (7366|0@0@2&#,)! -3 f1 (7366|0@0@2&#,)! -3 f0 (7366|$#,978|0@5@7&#,)! -3 f2 (7366|$#,978|0@5@7&#,)! -3 f0 (7366|$#,)! -3 f989 (7366|$#,)! -3 f0 (7366|$#,978|0@5@7&#,)! -3 f2 (7366|$#,978|0@5@7&#,)! -3 f0 (7366|$#,)! -3 f1299 (7366|$#,)! -3 f0 (7366|$#,)! -3 f1910 (7366|$#,)! -3 f0 (7366|$#,)! -3 f5 (7366|$#,)! -3 f0 (7366|$#,)! -3 f978 (7366|$#,)! -0 s319|-1 7404 -1 -1 t7403|7403& -3 S_flagMarkerList{5|@1|^#nelements,5|@1|^#nspace,7404|@1|11@3@3&#elements,}! -0 s6868|-1 7407 -1 -1 t7406|7406& -0 a320|& -3 f0 ()! -3 f7408 ()! -3 f0 (7408|$#,)! -3 f989 (7408|$#,)! -3 f0 (7408|0@0@2&#,)! -3 f1 (7408|0@0@2&#,)! -3 f0 (7408|$#,7366|0@0@2&#,)! -3 f1 (7408|$#,7366|0@0@2&#,)! -3 f0 (7408|$#,1910|$#,978|0@5@7&#,)! -3 f1299 (7408|$#,1910|$#,978|0@5@7&#,)! -3 f0 (7408|$#,)! -3 f1 (7408|$#,)! -3 f0 (7408|$#,978|0@5@7&#,)! -3 f2 (7408|$#,978|0@5@7&#,)! -3 S_mce{978|@1|0@5@3&#fl,989|@1|0@5@3&#def,2|@1|^#defined,2|@1|^#scomment,}! -0 s6885|-1 7425 -1 -1 t7424|7424& -0 s321|-1 9479 -1 -0 s322|-1 7428 -1 -1 t7427|7427& -3 S_mcelist{5|@1|^#nspace,5|@1|^#entries,7428|@1|11@0@2&#contents,}! -0 s6871|-1 7431 -1 -1 t7430|7430& -0 s323|& -3 f0 (7432|$#,)! -3 f1 (7432|$#,)! -3 f0 (7432|$#,989|0@5@7&#,)! -3 f978 (7432|$#,989|0@5@7&#,)! -3 f0 (7432|$#,)! -3 f989 (7432|$#,)! -3 f0 ()! -3 f7432 ()! -3 f0 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f1 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f0 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f1 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f0 (7432|0@0@2&#,)! -3 f1 (7432|0@0@2&#,)! -3 f0 ()! -3 f1 ()! -3 e!80{FILE_NORMAL,FILE_LSLTEMP,FILE_NODELETE,FILE_HEADER,FILE_MACROS}! -0 s7043|& -0 s324|& -3 S_ftentry{2|@1|^#ftemp,2|@1|^#fsystem,2|@1|^#fspecial,989|@1|0@5@3&#fname,989|@1|0@5@3&#basename,7451|@1|^#ftype,1322|@1|^#fder,}! -0 s6929|-1 7454 -1 -1 t7453|7453& -0 s325|-1 11792 -1 -0 s326|-1 7457 -1 -1 t7456|7456& -3 S_fileTable{5|@1|^#nentries,5|@1|^#nspace,3876|@1|0@0@3&#htable,7457|@1|11@0@2&#elements,}! -0 s6899|-1 7460 -1 -1 t7459|7459& -0 a327|& -3 f0 (7461|0@5@7&#,)! -3 f2 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f2 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f989 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f989 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,)! -3 f0 ()! -3 f7461 ()! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f1322 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,989|0@5@2&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@2&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f989 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,)! -3 f0 (1322|$#,)! -3 f2 (1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,1322|$#,)! -3 f0 (7461|0@5@7&#,)! -3 f1 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f1 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f989 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f2 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@2&#,)! -3 f1 (7461|0@5@2&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,)! -3 f0 (1322|$#,)! -3 f989 (1322|$#,)! -3 f0 (1322|$#,)! -3 f989 (1322|$#,)! -3 f0 (1322|$#,)! -3 f989 (1322|$#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (1322|@7|$#,1322|@7|$#,)! -3 f2 (1322|@7|$#,1322|@7|$#,)! -3 S_msgentry{978|@1|0@5@3&#loc,989|@1|0@5@3&#msg,}! -0 s6778|-1 7528 -1 -1 t7527|7527& -0 s328|-1 12038 -1 -0 s329|-1 7531 -1 -1 t7530|7530& -3 S_messageLog{5|@1|^#nelements,5|@1|^#nspace,7531|@1|11@0@2&#elements,}! -0 s6869|-1 7534 -1 -1 t7533|7533& -0 a330|& -3 f0 (7535|0@5@7&#,)! -3 f2 (7535|0@5@7&#,)! -3 f0 ()! -3 f7535 ()! -3 f0 (7535|0@5@7&#,978|0@5@7&#,989|0@5@7&#,)! -3 f2 (7535|0@5@7&#,978|0@5@7&#,989|0@5@7&#,)! -3 f0 (7535|0@5@7&#,)! -3 f989 (7535|0@5@7&#,)! -3 f0 (7535|0@5@2&#,)! -3 f1 (7535|0@5@2&#,)! -1 t1826|1826& -3 S_clauseStack{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,7546|@1|11@0@3&#elements,}! -0 s6897|-1 7549 -1 -1 t7548|7548& -0 a331|& -3 f1 (7550|@7|&#,1826|@3|&#,)! -3 f0 (7550|$#,)! -3 f5 (7550|$#,)! -3 f0 (7550|$#,)! -3 f2 (7550|$#,)! -3 f0 ()! -3 f7550 ()! -3 f0 (7550|$#,1826|$#,)! -3 f1 (7550|$#,1826|$#,)! -3 f0 (7550|$#,)! -3 f1 (7550|$#,)! -3 f0 (7550|$#,)! -3 f1826 (7550|$#,)! -3 f0 (7550|$#,)! -3 f989 (7550|$#,)! -3 f0 (7550|0@0@2&#,)! -3 f1 (7550|0@0@2&#,)! -3 f0 (7550|$#,)! -3 f1 (7550|$#,)! -3 f0 (7550|$#,1826|$#,)! -3 f1 (7550|$#,1826|$#,)! -3 f0 (7550|$#,1826|$#,)! -3 f1 (7550|$#,1826|$#,)! -3 f0 (7550|$#,)! -3 f5 (7550|$#,)! +3 f0 (1117|0@5@7&#,4717|0@5@17&#,)! +3 f1 (1117|0@5@7&#,4717|0@5@17&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f971 (974|0@5@7&#,)! +3 f0 (5461|0@5@7&#,982|0@5@7&#,)! +3 f1 (5461|0@5@7&#,982|0@5@7&#,)! +3 f0 (5461|0@5@7&#,982|0@5@7&#,988|0@5@7&#,)! +3 f1 (5461|0@5@7&#,982|0@5@7&#,988|0@5@7&#,)! +3 f0 (982|0@5@2&#,)! +3 f1 (982|0@5@2&#,)! +3 f0 ()! +3 f1112 ()! +3 f0 ()! +3 f1112 ()! +3 f0 (1112|$#,)! +3 f1 (1112|$#,)! +3 f0 (1112|$#,)! +3 f1 (1112|$#,)! +3 f0 (974|0@5@7&#,)! +3 f971 (974|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1112 ()! +3 f0 (988|0@5@2&#,)! +3 f971 (988|0@5@2&#,)! +3 f0 ()! +3 f1 ()! +0 s6483|-1 7972 -1 +1 t7971|7971& +3 S!200{5|@1|^#nelements,5|@1|^#nspace,7972|@1|11@3@3&#elements,}^7975 +0 s6484|& +1 t7973|7973& +0 a6485|& +3 f1 (7976|@7|6@5@7&#,994|@3|6@5@19@2@0#,)! +3 f0 (7976|0@5@7&#,)! +3 f2 (7976|0@5@7&#,)! +3 f0 (7976|0@5@7&#,)! +3 f2 (7976|0@5@7&#,)! +3 f0 (7976|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f7976 (7976|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f0 (7976|0@5@2&#,)! +3 f1 (7976|0@5@2&#,)! +3 f0 (7976|0@5@7&#,)! +3 f1 (7976|0@5@7&#,)! +3 e!201{FMK_LOCALSET,FMK_IGNOREON,FMK_IGNORECOUNT,FMK_IGNOREOFF,FMK_SUPPRESS}! +0 s6498|& +0 s6499|& +3 U!202{1394|@1|^#set,5|@1|^#nerrors,}! +0 s6500|& +3 S!203{7990|@1|^#kind,1597|@1|^#code,7991|@1|11@0@0&#info,1003|@1|0@5@3&#loc,}^7995 +0 s6501|& +1 t7993|7993& +0 s6502|-1 16625 -1 +3 f0 (7996|$#,)! +3 f2 (7996|$#,)! +3 f0 (7996|$#,)! +3 f2 (7996|$#,)! +3 f0 (7996|$#,)! +3 f2 (7996|$#,)! +3 f0 (7996|$#,)! +3 f2 (7996|$#,)! +3 f0 (7996|$#,)! +3 f2 (7996|$#,)! +3 f0 (1597|$#,1394|$#,1003|0@5@7&#,)! +3 f7996 (1597|$#,1394|$#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f7996 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f7996 (1003|0@5@7&#,)! +3 f0 (5|$#,1003|0@5@7&#,)! +3 f7996 (5|$#,1003|0@5@7&#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f7996 (1597|$#,1003|0@5@7&#,)! +3 f0 (7996|0@0@2&#,)! +3 f1 (7996|0@0@2&#,)! +3 f0 (7996|$#,1003|0@5@7&#,)! +3 f2 (7996|$#,1003|0@5@7&#,)! +3 f0 (7996|$#,)! +3 f1117 (7996|$#,)! +3 f0 (7996|$#,1003|0@5@7&#,)! +3 f2 (7996|$#,1003|0@5@7&#,)! +3 f0 (7996|$#,)! +3 f1394 (7996|$#,)! +3 f0 (7996|$#,)! +3 f1597 (7996|$#,)! +3 f0 (7996|$#,)! +3 f5 (7996|$#,)! +3 f0 (7996|$#,)! +3 f1003 (7996|$#,)! +0 s6515|-1 8034 -1 +1 t8033|8033& +3 S!204{5|@1|^#nelements,5|@1|^#nspace,8034|@1|11@3@3&#elements,}^8037 +0 s6516|& +1 t8035|8035& +0 a6517|& +3 f0 ()! +3 f8038 ()! +3 f0 (8038|$#,)! +3 f1117 (8038|$#,)! +3 f0 (8038|0@0@2&#,)! +3 f1 (8038|0@0@2&#,)! +3 f0 (8038|$#,7996|0@0@2&#,)! +3 f1 (8038|$#,7996|0@0@2&#,)! +3 f0 (8038|$#,1597|$#,1003|0@5@7&#,)! +3 f1394 (8038|$#,1597|$#,1003|0@5@7&#,)! +3 f0 (8038|$#,)! +3 f1 (8038|$#,)! +3 f0 (8038|$#,1003|0@5@7&#,)! +3 f2 (8038|$#,1003|0@5@7&#,)! +3 S!205{1003|@1|0@5@3&#fl,1117|@1|0@5@3&#def,2|@1|^#defined,2|@1|^#scomment,}^8055 +0 s6526|& +1 t8053|8053& +0 s6527|-1 11680 -1 +0 s6528|-1 8058 -1 +1 t8057|8057& +3 S!206{5|@1|^#nspace,5|@1|^#entries,8058|@1|11@0@2&#contents,}^8061 +0 s6529|& +1 t8059|8059& +0 s6530|& +3 f0 (8062|$#,)! +3 f1 (8062|$#,)! +3 f0 (8062|$#,1117|0@5@7&#,)! +3 f1003 (8062|$#,1117|0@5@7&#,)! +3 f0 (8062|$#,)! +3 f1117 (8062|$#,)! +3 f0 ()! +3 f8062 ()! +3 f0 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f1 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f0 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f1 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f0 (8062|0@0@2&#,)! +3 f1 (8062|0@0@2&#,)! +3 f0 ()! +3 f1 ()! +3 e!207{FILE_NORMAL,FILE_LSLTEMP,FILE_NODELETE,FILE_HEADER,FILE_XH,FILE_MACROS,FILE_METASTATE}! +0 s6547|& +0 s6548|& +3 S!208{2|@1|^#ftemp,2|@1|^#fsystem,2|@1|^#fspecial,1117|@1|0@5@3&#fname,1117|@1|0@5@3&#basename,8081|@1|^#ftype,1417|@1|^#fder,}^8084 +0 s6549|& +1 t8082|8082& +0 s6550|-1 13514 -1 +0 s6551|-1 8087 -1 +1 t8086|8086& +3 S!209{5|@1|^#nentries,5|@1|^#nspace,1006|@1|0@5@3&#htable,8087|@1|11@0@2&#elements,}^8090 +0 s6552|& +1 t8088|8088& +0 a6553|& +3 f0 (8091|0@5@7&#,)! +3 f2 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f2 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1117 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1117 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,)! +3 f0 ()! +3 f8091 ()! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1417 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1117|0@5@2&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@2&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,1117|0@5@7&#,)! +3 f1 (8091|0@5@7&#,1417|$#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1117 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (1417|$#,)! +3 f2 (1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,1417|$#,)! +3 f0 (8091|0@5@7&#,)! +3 f1 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f1 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f1117 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f2 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@2&#,)! +3 f1 (8091|0@5@2&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (1417|$#,)! +3 f1117 (1417|$#,)! +3 f0 (1417|$#,)! +3 f1117 (1417|$#,)! +3 f0 (1417|$#,)! +3 f1117 (1417|$#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1417|@7|$#,1417|@7|$#,)! +3 f2 (1417|@7|$#,1417|@7|$#,)! +3 S!210{1003|@1|0@5@3&#loc,1117|@1|0@5@3&#msg,}^8166 +0 s6584|& +1 t8164|8164& +0 s6585|-1 13819 -1 +0 s6586|-1 8169 -1 +1 t8168|8168& +3 S!211{5|@1|^#nelements,5|@1|^#nspace,8169|@1|11@0@2&#elements,}^8172 +0 s6587|& +1 t8170|8170& +0 a6588|& +3 f0 (8173|0@5@7&#,)! +3 f2 (8173|0@5@7&#,)! +3 f0 ()! +3 f8173 ()! +3 f0 (8173|0@5@7&#,1003|0@5@7&#,1117|0@5@7&#,)! +3 f2 (8173|0@5@7&#,1003|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8173|0@5@7&#,)! +3 f1117 (8173|0@5@7&#,)! +3 f0 (8173|0@5@2&#,)! +3 f1 (8173|0@5@2&#,)! +1 t2062|2062& +3 S!212{5|@1|^#nelements,5|@1|^#nspace,5|@1|^#current,8184|@1|11@0@3&#elements,}^8187 +0 s6595|& +1 t8185|8185& +0 a6596|& +3 f1 (8188|@7|&#,2062|@3|&#,)! +3 f0 (8188|$#,)! +3 f5 (8188|$#,)! +3 f0 (8188|$#,)! +3 f2 (8188|$#,)! +3 f0 ()! +3 f8188 ()! +3 f0 (8188|$#,2062|$#,)! +3 f1 (8188|$#,2062|$#,)! +3 f0 (8188|$#,)! +3 f1 (8188|$#,)! +3 f0 (8188|$#,)! +3 f2062 (8188|$#,)! +3 f0 (8188|$#,)! +3 f1117 (8188|$#,)! +3 f0 (8188|0@0@2&#,)! +3 f1 (8188|0@0@2&#,)! +3 f0 (8188|$#,)! +3 f1 (8188|$#,)! +3 f0 (8188|$#,2062|$#,)! +3 f1 (8188|$#,2062|$#,)! +3 f0 (8188|$#,2062|$#,)! +3 f1 (8188|$#,2062|$#,)! +3 f0 (8188|$#,)! +3 f5 (8188|$#,)! +3 S!213{5|@1|^#value,1117|@1|0@5@3&#msg,}^8216 +0 s6610|& +1 t8214|8214& +0 s6611|-1 8218 -1 +1 t8217|8217& +3 S!214{5|@1|^#size,8218|@1|0@0@2&#entries,}^8221 +0 s6612|& +1 t8219|8219& +0 s6613|-1 8223 -1 +1 t8222|8222& +3 S!215{5|@1|^#size,8223|@1|0@0@2&#rows,}^8226 +0 s6614|& +1 t8224|8224& +0 a6615|& +3 f0 (5|$#,)! +3 f8227 (5|$#,)! +3 f0 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (8227|$#,5|$#,5|$#,1287|4@0@19@3@0#,)! +3 f5 (8227|$#,5|$#,5|$#,1287|4@0@19@3@0#,)! +3 f0 (8227|$#,5|$#,1287|4@0@19@3@0#,)! +3 f5 (8227|$#,5|$#,1287|4@0@19@3@0#,)! +3 f0 (8227|0@0@2&#,)! +3 f1 (8227|0@0@2&#,)! +3 f0 (8227|$#,)! +3 f5 (8227|$#,)! +3 f0 (8227|$#,)! +3 f1117 (8227|$#,)! +3 Ss_metaStateInfo{1117|@1|0@5@2&#name,1003|@1|0@5@3&#loc,2243|@1|0@5@3&#valueNames,8227|@1|0@0@3&#sctable,8227|@1|0@0@3&#mergetable,5|@1|^#default_ref,5|@1|^#default_parameter,1057|@1|0@5@3&#context,}! +3 f0 (1024|0@5@7&#,)! +3 f2 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f2 (1024|0@5@7&#,)! +3 f0 (1117|0@5@2&#,2243|0@5@2&#,1057|0@5@2&#,8227|0@0@2&#,8227|0@0@2&#,1003|0@5@2&#,)! +3 f1024 (1117|0@5@2&#,2243|0@5@2&#,1057|0@5@2&#,8227|0@0@2&#,8227|0@0@2&#,1003|0@5@2&#,)! +3 f0 (1024|0@5@7&#,5|$#,)! +3 f1 (1024|0@5@7&#,5|$#,)! +3 f0 (1024|0@5@7&#,5|$#,)! +3 f1 (1024|0@5@7&#,5|$#,)! +3 f0 (1024|0@5@7&#,971|0@5@7&#,)! +3 f5 (1024|0@5@7&#,971|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f5 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f5 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f5 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f1057 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f1117 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f1003 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f8227 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f8227 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f1117 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,5|$#,)! +3 f1117 (1024|0@5@7&#,5|$#,)! +3 f0 (1024|0@5@2&#,)! +3 f1 (1024|0@5@2&#,)! +3 f0 (1020|0@5@7&#,)! +3 f2 (1020|0@5@7&#,)! +3 f0 (1020|0@5@7&#,)! +3 f2 (1020|0@5@7&#,)! +3 f0 ()! +3 f1020 ()! +3 f0 (1020|0@5@7&#,1117|0@5@2&#,1024|0@5@2&#,)! +3 f1 (1020|0@5@7&#,1117|0@5@2&#,1024|0@5@2&#,)! +3 f0 (1020|0@5@7&#,1117|0@5@7&#,)! +3 f1024 (1020|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1020|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1020|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1020|0@5@7&#,)! +3 f1117 (1020|0@5@7&#,)! +3 f0 (1020|0@5@2&#,)! +3 f1 (1020|0@5@2&#,)! +3 f1 (1020|@7|6@5@7&#,1117|@3|6@5@19@2@0#,1024|@3|6@5@19@2@0#,)! +3 f0 (1020|0@5@7&#,)! +3 f1117 (1020|0@5@7&#,)! +3 f0 (1020|0@5@7&#,)! +3 f5 (1020|0@5@7&#,)! +3 Ss_annotationInfo{1117|@1|0@5@3&#name,1024|@1|0@5@18@3@0#state,1003|@1|0@5@3&#loc,5|@1|^#value,1057|@1|0@5@3&#context,}! +3 f0 (1012|0@5@7&#,)! +3 f2 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f2 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,1012|0@5@7&#,)! +3 f2 (1012|0@5@7&#,1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,974|0@5@7&#,)! +3 f2 (1012|0@5@7&#,974|0@5@7&#,)! +3 f0 (1012|0@5@7&#,971|0@5@7&#,)! +3 f2 (1012|0@5@7&#,971|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1024 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f5 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1117 (1012|0@5@7&#,)! +3 f0 (1117|0@5@2&#,1024|0@5@18@2@0#,1057|0@5@2&#,5|$#,1003|0@5@2&#,)! +3 f1012 (1117|0@5@2&#,1024|0@5@18@2@0#,1057|0@5@2&#,5|$#,1003|0@5@2&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1117 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1003 (1012|0@5@7&#,)! +3 f0 (1012|0@5@2&#,)! +3 f1 (1012|0@5@2&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1117 (1012|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1012 (313|$#,)! +3 f0 (1021|0@5@7&#,)! +3 f2 (1021|0@5@7&#,)! +3 f0 (1021|0@5@7&#,)! +3 f2 (1021|0@5@7&#,)! +3 f0 ()! +3 f1021 ()! +3 f0 (1021|0@5@7&#,1012|0@5@2&#,)! +3 f1 (1021|0@5@7&#,1012|0@5@2&#,)! +3 f0 (1021|0@5@7&#,1117|0@5@7&#,)! +3 f1012 (1021|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1021|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1021|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1021|0@5@7&#,)! +3 f1117 (1021|0@5@7&#,)! +3 f0 (1021|0@5@7&#,)! +3 f1117 (1021|0@5@7&#,)! +3 f0 (1021|0@5@2&#,)! +3 f1 (1021|0@5@2&#,)! +3 f1 (1021|@7|6@5@7&#,1117|@3|6@5@19@2@0#,1012|@3|6@5@19@2@0#,)! +3 f0 (1021|0@5@7&#,)! +3 f5 (1021|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -7589,24 +8363,23 @@ 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 ()! -3 f19 ()! -3 f23 ()! +3 f1117 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f1910 ()! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! +3 f1597 ()! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -7620,6 +8393,8 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! +3 f2 ()! +3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f5 ()! @@ -7628,39 +8403,39 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! +3 f1117 ()! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! 3 f0 ()! 3 f2 ()! -3 f0 (972|0@5@18&#,)! -3 f1 (972|0@5@18&#,)! +3 f0 (994|0@5@18&#,)! +3 f1 (994|0@5@18&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -7681,24 +8456,30 @@ 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! +3 f0 ()! +3 f1 ()! 3 f0 ()! 3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f7461 ()! +3 f8091 ()! +3 f0 ()! +3 f8173 ()! 3 f0 ()! -3 f7535 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -7728,93 +8509,97 @@ 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f956 ()! -3 f0 (4256|$#,)! -3 f1 (4256|$#,)! -3 f0 (4256|$#,)! -3 f1 (4256|$#,)! +3 f975 ()! +3 f0 (4650|$#,)! +3 f1 (4650|$#,)! +3 f0 (4650|$#,)! +3 f1 (4650|$#,)! 3 f0 ()! -3 f4297 ()! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! +3 f4717 ()! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@18@2@0#,)! -3 f1 (955|0@5@18@2@0#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f1 (955|0@5@19@3@0#,)! -3 f0 (955|0@5@19@2@0#,)! -3 f1 (955|0@5@19@2@0#,)! +3 f0 (974|0@5@18@2@0#,)! +3 f1 (974|0@5@18@2@0#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f1 (974|0@5@19@3@0#,)! +3 f0 (974|0@5@19@2@0#,)! +3 f1 (974|0@5@19@2@0#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! 3 f0 ()! -3 f4379 ()! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! +3 f1106 ()! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! 3 f0 ()! -3 f989 ()! -3 f0 (978|0@5@7&#,)! -3 f1 (978|0@5@7&#,)! -3 f0 (1910|$#,2|$#,)! -3 f1 (1910|$#,2|$#,)! +3 f1117 ()! +3 f0 (1003|0@5@7&#,)! +3 f1 (1003|0@5@7&#,)! +3 f0 (1597|$#,2|$#,)! +3 f1 (1597|$#,2|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f2 (1597|$#,1003|0@5@7&#,)! +3 f0 ()! +3 f5 ()! 3 f0 ()! 3 f5 ()! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,5|$#,)! -3 f1 (1910|$#,5|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (1910|$#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,2|$#,)! -3 f1 (1910|$#,2|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,5|$#,)! +3 f1 (1597|$#,5|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (1597|$#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,2|$#,)! +3 f1 (1597|$#,2|$#,)! 3 f0 ()! 3 f5 ()! 3 f0 ()! -3 f972 ()! +3 f994 ()! 3 f0 ()! -3 f955 ()! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! +3 f974 ()! +3 f0 (971|0@5@19@2@0#,)! +3 f1 (971|0@5@19@2@0#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@18@3@0#,)! -3 f1 (955|0@5@18@3@0#,)! +3 f0 (974|0@5@18@3@0#,)! +3 f1 (974|0@5@18@3@0#,)! 3 f0 ()! 3 f4 ()! 3 f0 (4|$#,)! @@ -7828,15 +8613,15 @@ 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f978 ()! -3 f0 (1322|$#,)! -3 f1 (1322|$#,)! -3 f0 (1322|$#,5|$#,)! -3 f1 (1322|$#,5|$#,)! -3 f0 (1910|$#,1299|$#,)! -3 f1 (1910|$#,1299|$#,)! +3 f1003 ()! +3 f0 (1417|$#,)! +3 f1 (1417|$#,)! +3 f0 (1417|$#,5|$#,)! +3 f1 (1417|$#,5|$#,)! +3 f0 (1597|$#,1394|$#,)! +3 f1 (1597|$#,1394|$#,)! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -7850,31 +8635,31 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! 3 f0 (5|$#,)! 3 f1 (5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -7882,11 +8667,11 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f991 ()! -3 f0 (955|0@5@19@3@0#,)! -3 f1 (955|0@5@19@3@0#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f1 (955|0@5@19@3@0#,)! +3 f1119 ()! +3 f0 (974|0@5@19@3@0#,)! +3 f1 (974|0@5@19@3@0#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f1 (974|0@5@19@3@0#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -7909,50 +8694,50 @@ 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f4379 ()! +3 f1106 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (1910|$#,978|0@5@7&#,)! -3 f2 (1910|$#,978|0@5@7&#,)! -3 f0 (1910|$#,978|0@5@7&#,)! -3 f2 (1910|$#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,2|$#,)! -3 f1 (966|0@5@7&#,2|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f2 (1597|$#,1003|0@5@7&#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f2 (1597|$#,1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,2|$#,)! +3 f1 (988|0@5@7&#,2|$#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -7960,11 +8745,11 @@ 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f2 ()! -3 f0 (952|0@5@18@3@0#,952|0@5@18@3@0#,)! -3 f1 (952|0@5@18@3@0#,952|0@5@18@3@0#,)! +3 f0 (971|0@5@19@3@0#,971|0@5@19@3@0#,)! +3 f1 (971|0@5@19@3@0#,971|0@5@19@3@0#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -7974,9 +8759,9 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f1826 ()! +3 f2062 ()! 3 f0 ()! -3 f1826 ()! +3 f2062 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -7992,9 +8777,9 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f989 ()! -3 f0 (4379|0@5@18&#,)! -3 f1 (4379|0@5@18&#,)! +3 f1117 ()! +3 f0 (1106|0@5@18&#,)! +3 f1 (1106|0@5@18&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -8004,296 +8789,1672 @@ 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f991 ()! -0 s6952|& -0 s332|-1 8035 -1 -0 s6955|-1 8222 -1 -0 s333|-1 8064 -1 -0 s6934|-1 8158 -1 -0 s334|-1 8170 -1 -3 ecpp_token{CPP_EOF,CPP_OTHER,CPP_COMMENT,CPP_HSPACE,CPP_VSPACE,CPP_NAME,CPP_NUMBER,CPP_CHAR,CPP_STRING,CPP_DIRECTIVE,CPP_LPAREN,CPP_RPAREN,CPP_LBRACE,CPP_RBRACE,CPP_COMMA,CPP_SEMICOLON,CPP_3DOTS,CPP_POP}! -0 s7044|& -0 s6954|& -0 s336|-1 8029 -1 -3 f0 (989|0@5@18&#,989|0@5@18&#,)! -3 f5 (989|0@5@18&#,989|0@5@18&#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 ()! -3 f1 ()! +3 f2 ()! +3 f0 (974|0@5@19@2@0#,)! +3 f1 (974|0@5@19@2@0#,)! 3 f0 ()! 3 f1 ()! -0 s335|-1 8056 -1 -3 ?! -1 t8012|8012& -3 f8028 (8029|$#,)! -3 f8010 (8029|$#,)^8032 -1 t8031|8031& -0 s337|& -3 ?! -1 t8004|8004& -3 f8034 (8035|$#,8029|$#,)! -3 f1 (8035|$#,8029|$#,)^8038 -1 t8037|8037& -0 s338|& -0 s6810|-1 8041 -1 -1 t8040|8040 8630 -1 -3 Sparse_marker{8035|@1|0@0@18&#buf,8041|@1|0@5@18&#next,5|@1|^#position,}! -0 s6919|-1 8044 -1 -1 t8043|8043& -3 Sarglist{8044|@1|0@5@3&#next,23|@1|0@0@18&#name,5|@1|^#length,5|@1|^#argno,5|@1|^#rest_args,}! -3 f0 (8029|$#,)! -3 f8010 (8029|$#,)! -3 C1.5/1|! -3 f0 (8029|$#,)! -3 f5 (8029|$#,)! -3 f8048 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -0 s6926|-1 8055 -1 -1 t8054|8054& -1 t8027|8027 8570 -1 -0 s6927|-1 8058 -1 -1 t8057|8057& -3 ScppBuffer{23|@1|0@5@2&#buf,23|@1|0@5@18@2@0#cur,23|@1|0@5@18@2@0#rlimit,23|@1|0@5@18@2@0#alimit,23|@1|0@5@18@2@0#prev,989|@1|0@5@18&#fname,989|@1|0@5@18@2@0#nominal_fname,8055|@1|0@5@18&#dir,9|@1|^#line_base,5|@1|^#lineno,5|@1|^#colno,8033|@1|0@0@3&#underflow,8039|@1|0@0@3&#cleanup,8056|@1|0@0@18&#hnode,8041|@1|0@5@18&#marks,8058|@1|0@5@18@2@0#if_stack,4|@1|^#system_header_p,4|@1|^#seen_eof,2|@1|^#has_escapes,}! -0 s6738|& -0 s6836|-1 8093 -1 -2 F0/0|0& -2 F8004/0|8004& -1 t8006|8006& -3 ScppReader{8033|@1|0@0@3&#get_token,8035|@1|0@5@18&#buffer,8063|@1|^#buffer_stack,5|@1|^#errors,8064|@1|0@0@3&#opts,23|@1|0@3@3&#token_buffer,63|@1|^#token_buffer_size,23|@1|0@0@18@2@0#limit,5|@1|^#multiline_string_line,5|@1|^#system_include_depth,8055|@1|0@5@17&#all_include_files,5|@1|^#max_include_len,8058|@1|0@5@3&#if_stack,4|@1|^#pcp_inside_if,4|@1|^#input_stack_listing_current,2|@1|^#no_macro_expand,2|@1|^#show_column,4|@1|^#parsing_include_directive,4|@1|^#output_escapes,4|@1|^#only_seen_white,5|@1|^#lineno,442|@1|0@5@18@3@0#timebuf,}! -3 f0 (8029|$#,)! -3 f2 (8029|$#,)! -3 f0 (8035|$#,)! -3 f5 (8035|$#,)! -3 f0 (8029|@7|$#,)! -3 f63 (8029|@7|$#,)! -3 f0 (8029|$#,)! -3 f19 (8029|$#,)! -3 f23 (8029|$#,)! -3 f0 (8029|@7|$#,63|@7|$#,)! -3 f1 (8029|@7|$#,63|@7|$#,)! -3 f0 (8029|@7|$#,23|0@0@9&#,63|@7|$#,)! -3 f1 (8029|@7|$#,23|0@0@9&#,63|@7|$#,)! -3 f0 (8029|@7|15@0@1&#,63|$#,)! -3 f1 (8029|@7|15@0@1&#,63|$#,)! -3 f0 (8029|15@0@1&#,)! -3 f19 (8029|15@0@1&#,)! -3 f8064 (8029|15@0@1&#,)! -3 f0 (8029|15@0@1&#,)! -3 f19 (8029|15@0@1&#,)! -3 f8035 (8029|15@0@1&#,)! -3 f0 (8035|$#,)! -3 f19 (8035|$#,)! -3 f8035 (8035|$#,)! -3 f0 (8029|15@0@1&#,)! -3 f19 (8029|15@0@1&#,)! -3 f8035 (8029|15@0@1&#,)! -1 t8061|8061& -3 e!81{DUMP_NONE,DUMP_NAMES,DUMP_DEFINITIONS}! -0 s7046|& -3 ScppOptions{989|@1|0@5@18&#in_fname,989|@1|0@5@18&#out_fname,8093|@1|0@0@3&#map_list,2|@1|^#verbose,2|@1|^#cplusplus,2|@1|^#cplusplus_comments,5|@1|^#lang_asm,2|@1|^#for_lint,2|@1|^#chill,2|@1|^#put_out_comments,2|@1|^#no_trigraphs,2|@1|^#print_include_names,2|@1|^#pedantic_errors,2|@1|^#inhibit_warnings,2|@1|^#warn_comments,2|@1|^#warn_stringify,2|@1|^#warnings_are_errors,2|@1|^#no_output,2|@1|^#no_line_commands,4|@1|^#output_conditionals,4|@1|^#ignore_srcdir,2|@1|^#dollars_in_ident,2|@1|^#traditional,2|@1|^#c89,2|@1|^#pedantic,2|@1|^#done_initializing,8055|@1|0@0@17&#include,8055|@1|0@0@18&#first_bracket_include,8055|@1|0@0@18&#first_system_include,8055|@1|0@0@18@2@0#last_include,8055|@1|0@0@3&#after_include,8055|@1|0@0@18@2@0#last_after_include,8055|@1|0@0@3&#before_system,8055|@1|0@0@18@2@0#last_before_system,23|@1|0@0@3&#include_prefix,4|@1|^#inhibit_predefs,4|@1|^#no_standard_includes,4|@1|^#no_standard_cplusplus_includes,8095|@1|^#dump_macros,5|@1|^#debug_output,}! -3 f0 (8029|15@0@1&#,)! -3 f2 (8029|15@0@1&#,)! -3 f0 (8029|$#,)! -3 f2 (8029|$#,)! -3 enode_type{T_NONE,T_DEFINE,T_INCLUDE,T_INCLUDE_NEXT,T_IFDEF,T_IFNDEF,T_IF,T_ELSE,T_PRAGMA,T_ELIF,T_UNDEF,T_LINE,T_ERROR,T_WARNING,T_ENDIF,T_IDENT,T_SPECLINE,T_DATE,T_FILE,T_BASE_FILE,T_INCLUDE_LEVEL,T_VERSION,T_SIZE_TYPE,T_PTRDIFF_TYPE,T_WCHAR_TYPE,T_USER_LABEL_PREFIX_TYPE,T_REGISTER_PREFIX_TYPE,T_TIME,T_CONST,T_MACRO,T_DISABLED,T_SPEC_DEFINED,T_PCSTRING,T_UNUSED}! -0 s7047|& -0 s6813|& -0 s341|& -0 s6940|-1 8106 -1 -1 t8105|8105& -3 Smacrodef{8106|@1|0@5@3&#defn,23|@1|0@3@18&#symnam,5|@1|^#symlen,}! -0 s342|-1 8155 -1 -0 s6933|-1 8110 -1 -1 t8109|8109 8728 -1 -3 Sreflist{8110|@1|0@5@18&#next,2|@1|^#stringify,2|@1|^#raw_before,2|@1|^#raw_after,2|@1|^#rest_args,5|@1|^#nchars,5|@1|^#argno,}! -3 U!82{23|@1|0@5@3&#argnames,}! -0 s6957|& -3 Sdefinition{5|@1|^#nargs,63|@1|^#length,2|@1|^#predefined,23|@1|0@0@18&#expansion,9|@1|^#line,989|@1|0@5@18@2@0#file,2|@1|^#noExpand,2|@1|^#rest_args,8110|@1|0@5@3&#pattern,8112|@1|^#args,}! -3 Sif_stack{8058|@1|0@5@3&#next,989|@1|0@5@18@3@0#fname,5|@1|^#lineno,5|@1|^#if_succeeded,23|@1|0@5@18&#control_macro,8102|@1|^#type,}! -0 s340|-1 8591 -1 -3 f0 (8035|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! -3 f1 (8035|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! -3 f0 (8029|$#,)! -3 f19 (8029|$#,)! -3 f8035 (8029|$#,)! -3 f0 (8029|$#,63|$#,)! -3 f1 (8029|$#,63|$#,)! -3 f0 (8029|$#,312|$#,)! -3 f5 (8029|$#,312|$#,)! -3 f0 (8029|$#,)! -3 f19 (8029|$#,)! -3 f8035 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -0 s6837|-1 8132 -1 -1 t8131|8131& -3 Sfile_name_list{8055|@1|0@5@17&#next,989|@1|0@5@18&#fname,23|@1|0@5@18&#control_macro,2|@1|^#c_system_include_path,8132|@1|11@3@18@2@0#name_map,2|@1|^#got_name_map,}! -3 f0 (8029|15@0@1&#,8055|0@0@4&#,)! -3 f1 (8029|15@0@1&#,8055|0@0@4&#,)! -3 f0 (8029|$#,23|$#,)! -3 f1 (8029|$#,23|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|4@0@7&#,)! -3 f1 (8029|4@0@7&#,)! -3 f0 (8064|4@0@7&#,)! -3 f1 (8064|4@0@7&#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f5 (8029|$#,989|0@5@7&#,)! -3 f0 (4|$#,)! -3 f2 (4|$#,)! -3 f0 (8029|$#,23|$#,989|0@5@7&#,)! -3 f5 (8029|$#,23|$#,989|0@5@7&#,)! -0 s6920|-1 8703 -1 -3 f0 (8029|$#,23|$#,5|$#,)! -3 f8152 (8029|$#,23|$#,5|$#,)! -1 t8108|8108& -3 Uhashval{5|@1|^#ival,23|@1|0@0@17&#cpval,8155|@1|0@0@17&#defn,}! -0 s6968|& -1 t8007|8007 8159 -1 -1 t8158|8158& -3 Shashnode{8158|@1|0@5@2&#next,8158|@1|0@5@18&#prev,8159|@1|0@0@18&#bucket_hdr,8102|@1|^#type,5|@1|^#length,989|@1|0@5@3&#name,8157|@1|^#value,}! -3 f0 (8056|0@0@19@2@0#,)! -3 f1 (8056|0@0@19@2@0#,)! -3 f0 (23|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f19 (23|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f8056 (23|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! 3 f0 ()! -3 f1 ()! -3 f0 (23|$#,5|$#,5|$#,)! -3 f19 (23|$#,5|$#,5|$#,)! -1 t8008|8008& -3 f8170 (23|$#,5|$#,5|$#,)! -3 f0 (23|$#,5|$#,5|$#,)! -3 f19 (23|$#,5|$#,5|$#,)! -3 f8170 (23|$#,5|$#,5|$#,)! +3 f1119 ()! +3 f0 (1117|0@5@7&#,)! +3 f1012 (1117|0@5@7&#,)! 3 f0 ()! -3 f1 ()! +3 f1020 ()! +3 f0 (1117|0@5@7&#,)! +3 f1024 (1117|0@5@7&#,)! +3 f0 (1012|0@5@2&#,)! +3 f1 (1012|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1024|0@5@2&#,)! +3 f1 (1117|0@5@2&#,1024|0@5@2&#,)! +3 f0 (971|0@5@7&#,)! +3 f1019 (971|0@5@7&#,)! 3 f0 ()! -3 f1 ()! -3 f0 (23|$#,5|$#,5|$#,)! -3 f5 (23|$#,5|$#,5|$#,)! -3 f0 (23|$#,5|$#,8106|0@0@2&#,5|$#,)! -3 f19 (23|$#,5|$#,8106|0@0@2&#,5|$#,)! -3 f8056 (23|$#,5|$#,8106|0@0@2&#,5|$#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f1 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,989|0@5@19@3@0#,)! -3 f1 (8029|$#,989|0@5@19@3@0#,)! -3 f0 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f1 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@19@3@0#,)! -3 f1 (8029|$#,989|0@5@19@3@0#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@19@3@0#,)! -3 f1 (8029|$#,989|0@5@19@3@0#,)! -3 f0 (8029|$#,9|$#,9|$#,989|0@5@2&#,)! -3 f1 (8029|$#,9|$#,9|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f1 (8029|$#,989|0@5@7&#,)! -3 f0 (5|$#,853|$#,)! -3 f5 (5|$#,853|$#,)! -3 f0 (5|$#,)! -3 f1 (5|$#,)! +3 f1019 ()! 3 f0 ()! -3 f1 ()! +3 f5 ()! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1119|$#,1119|@7|$#,)! +3 f2 (1119|$#,1119|@7|$#,)! +3 f0 (994|0@5@7&#,974|0@5@7&#,)! +3 f1 (994|0@5@7&#,974|0@5@7&#,)! +3 f0 (971|0@5@7&#,4160|$#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (971|0@5@7&#,4160|$#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,988|0@5@2&#,)! +3 f1 (974|0@5@7&#,988|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1 (1003|0@5@7&#,)! +3 f0 (1117|0@5@7&#,988|0@5@7&#,)! +3 f1 (1117|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f1 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f0 (23|$#,)! +3 f1 (23|$#,)! +3 U!216{2013|@1|^#tok,5|@1|^#count,1706|@1|^#typequal,2511|@1|0@5@3&#tquallist,1119|@1|^#ctyp,971|@1|0@5@3&#sr,1030|@1|0@5@2&#funcclauselist,1027|@1|0@5@2&#funcclause,1678|@1|0@5@2&#flagspec,1033|@1|0@0@2&#globsclause,1036|@1|0@0@2&#modsclause,1039|@1|0@5@2&#warnclause,1042|@1|0@0@2&#stateclause,997|@1|0@5@2&#srlist,1106|@1|0@5@2&#globset,5461|@1|0@5@2&#qtyp,1117|@1|0@5@2&#cname,1012|@1|0@5@18@3@0#annotation,982|@1|0@5@2&#ntyp,7823|@1|0@0@2&#ntyplist,4717|@1|0@5@2&#flist,4717|@1|0@5@17&#entrylist,974|@1|0@5@18@3@0#entry,974|@1|0@5@2&#oentry,988|@1|0@5@2&#expr,4327|@1|0@0@2&#enumnamelist,4160|@1|0@0@2&#alist,994|@1|0@5@2&#srset,2243|@1|0@5@2&#cstringlist,1109|@1|0@0@3&#con,1112|@1|0@0@3&#conL,1115|@1|0@5@3&#conE,}! +0 s6958|& +0 s6959|-1 8860 -1 +3 f0 (5|^#,5|^#,5|^#,)! +3 f1 (5|^#,5|^#,5|^#,)! +3 f1 (23|^#,23|^#,6|^#,)! 3 f0 ()! 3 f5 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! +1 t8854|8854& +2 F0/200|0& +2 F7/200|7& +2 F0/200|0& +2 F8854/200|8854& +3 f0 (23|$#,)! +3 f1 (23|$#,)! +3 f0 (982|0@5@7&#,)! +3 f1 (982|0@5@7&#,)! 3 f0 ()! 3 f5 ()! 3 f0 ()! 3 f5 ()! +0 s6963|-1 8874 -1 +1 t8873|8873& +0 s6964|& +0 s6965|& +3 Syy_buffer_state{211|@1|0@0@3&#yy_input_file,23|@1|0@0@3&#yy_ch_buf,23|@1|0@0@3&#yy_buf_pos,8876|@1|^#yy_buf_size,5|@1|^#yy_n_chars,5|@1|^#yy_is_our_buffer,5|@1|^#yy_is_interactive,5|@1|^#yy_at_bol,5|@1|^#yy_fill_buffer,5|@1|^#yy_buffer_status,}! 3 f0 ()! 3 f1 ()! -1 t8005|8005& 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@18&#,989|0@5@18&#,)! -3 f5 (989|0@5@18&#,989|0@5@18&#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! 3 f0 ()! -3 f2 ()! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (8029|$#,)! -3 f9 (8029|$#,)! -3 e!83{OSD_FILEFOUND,OSD_FILENOTFOUND,OSD_PATHTOOLONG}! -0 s7045|& -0 s343|& -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (23|$#,23|$#,312|4@0@7&#,)! -3 f8247 (23|$#,23|$#,312|4@0@7&#,)! -3 f0 (23|$#,23|$#,312|4@0@7&#,)! -3 f8247 (23|$#,23|$#,312|4@0@7&#,)! +3 f8875 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f8875 ()! +3 f0 ()! +3 f8875 ()! +3 f0 ()! +3 f8875 ()! +3 f0 ()! +3 f19 ()! +3 f20 ()! +3 f0 ()! +3 f19 ()! +3 f20 ()! +3 f0 ()! +3 f1 ()! +0 s6976|& +0 s6977|& +3 f0 ()! +3 f8907 ()! +3 f0 ()! +3 f8907 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f1 ()! +2 F0/531|0& +2 F7/531|7& +2 F0/256|0& +2 F5/256|5& +2 F0/79|0& +2 F5/79|5& +2 F0/538|0& +2 F7/538|7& +2 F0/538|0& +2 F7/538|7& +2 F0/760|0& +2 F7/760|7& +2 F0/760|0& +2 F7/760|7& +3 U!217{2013|@1|^#tok,5|@1|^#count,1706|@1|^#typequal,2511|@1|0@5@3&#tquallist,1119|@1|^#ctyp,971|@1|0@5@3&#sr,1030|@1|0@5@2&#funcclauselist,1027|@1|0@5@2&#funcclause,1678|@1|0@5@2&#flagspec,1033|@1|0@0@2&#globsclause,1036|@1|0@0@2&#modsclause,1039|@1|0@5@2&#warnclause,1042|@1|0@0@2&#stateclause,997|@1|0@5@2&#srlist,1106|@1|0@5@2&#globset,5461|@1|0@5@2&#qtyp,1117|@1|0@5@2&#cname,1012|@1|0@5@18@3@0#annotation,982|@1|0@5@2&#ntyp,7823|@1|0@0@2&#ntyplist,4717|@1|0@5@2&#flist,4717|@1|0@5@17&#entrylist,974|@1|0@5@18@3@0#entry,974|@1|0@5@2&#oentry,988|@1|0@5@2&#expr,4327|@1|0@0@2&#enumnamelist,4160|@1|0@0@2&#alist,994|@1|0@5@2&#srset,2243|@1|0@5@2&#cstringlist,1109|@1|0@0@3&#con,1112|@1|0@0@3&#conL,1115|@1|0@5@3&#conE,}! +0 s6978|& +0 a6979|& +3 f0 (8932|0@5@7&#,)! +3 f2 (8932|0@5@7&#,)! +3 f1 (8932|@7|6@5@7&#,1417|@3|&#,)! +3 f0 ()! +3 f8932 ()! +3 f0 (8932|@7|0@5@7&#,)! +3 f2 (8932|@7|0@5@7&#,)! +3 f0 (8932|0@5@2&#,8932|0@5@6&#,)! +3 f8932 (8932|0@5@2&#,8932|0@5@6&#,)! +3 f0 (8932|0@5@7&#,1417|$#,)! +3 f1 (8932|0@5@7&#,1417|$#,)! +3 f0 (8932|@7|0@5@7&#,)! +3 f5 (8932|@7|0@5@7&#,)! +3 f0 (8932|0@5@2&#,)! +3 f1 (8932|0@5@2&#,)! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f4 ()! +3 f0 ()! +3 f17 ()! +3 f0 ()! +3 f988 ()! +3 f0 ()! +3 f9 ()! +3 f0 ()! +3 f9 ()! +3 f0 ()! +3 f9 ()! +3 f0 (1117|0@5@2&#,)! +3 f5 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f2 (1117|0@5@2&#,)! +3 f0 (5|$#,)! +3 f5 (5|$#,)! 3 f0 (23|$#,)! 3 f2 (23|$#,)! -3 f0 (23|$#,23|@5|$#,)! -3 f19 (23|$#,23|@5|$#,)! -3 f23 (23|$#,23|@5|$#,)! -3 f0 (23|$#,312|4@0@7&#,)! -3 f8247 (23|$#,312|4@0@7&#,)! 3 f0 ()! -3 f19 ()! -3 f23 ()! +3 f5 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f2 ()! 3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! +3 f1117 (23|$#,)! +3 f0 (1119|$#,9|$#,)! +3 f5 (1119|$#,9|$#,)! +3 f0 (1119|$#,17|$#,)! +3 f5 (1119|$#,17|$#,)! +3 f0 (4|$#,)! +3 f5 (4|$#,)! +3 f0 (5|$#,)! +3 f1 (5|$#,)! +3 f0 (63|$#,)! +3 f1 (63|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (5|$#,)! +3 f1 (5|$#,)! +3 f0 (63|$#,)! +3 f1 (63|$#,)! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f8907 ()! +3 f0 (5|^#,)! +3 f8907 (5|^#,)! +3 f8907 (8907|^#,)! +3 f0 (5|^#,5|^#,)! +3 f1 (5|^#,5|^#,)! +3 f1 (5|^#,23|^#,)! +3 f0 ()! +3 f5 ()! +3 f0 (5|^#,)! +3 f1 (5|^#,)! +3 f1 (211|^#,)! +3 f0 (5|^#,)! +3 f1 (5|^#,)! +3 f1 (8875|^#,)! +3 f0 ()! +3 f1 ()! +3 f0 (5|^#,5|^#,)! +3 f8875 (5|^#,5|^#,)! +3 f8875 (211|^#,5|^#,)! +3 f0 (5|^#,)! +3 f1 (5|^#,)! +3 f1 (8875|^#,)! +3 f0 ()! +3 f5 ()! +3 f0 (5|^#,5|^#,)! +3 f1 (5|^#,5|^#,)! +3 f1 (8875|^#,211|^#,)! +3 f0 (5|^#,)! +3 f1 (5|^#,)! +3 f1 (8875|^#,)! +3 f0 (5|^#,5|^#,)! +3 f8875 (5|^#,5|^#,)! +3 f8875 (23|^#,8876|^#,)! +3 f0 (5|^#,)! +3 f8875 (5|^#,)! +3 f8875 (23|^#,)! +3 f0 (5|^#,5|^#,)! +3 f8875 (5|^#,5|^#,)! +3 f8875 (23|^#,5|^#,)! +3 f0 (5|^#,)! +3 f1 (5|^#,)! +3 f1 (42|^#,)! +3 f0 (5|^#,)! +3 f19 (5|$#,)! +3 f20 (5|$#,)! +3 f20 (8876|^#,)! +3 f0 (5|^#,5|^#,)! +3 f19 (5|$#,5|$#,)! +3 f20 (5|$#,5|$#,)! +3 f20 (20|^#,8876|^#,)! +3 f0 (5|^#,)! +3 f1 (5|^#,)! +3 f1 (20|^#,)! +3 Sskeyword{23|@1|0@5@18@3@0#name,5|@1|^#token,}! +0 s6987|-1 -1 9067 +2 y9066|9066& +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! +3 f0 ()! +3 f5 ()! +3 f0 (4|$#,)! +3 f1 (4|$#,)! +3 f0 (1119|$#,17|$#,)! +3 f5 (1119|$#,17|$#,)! +3 f0 (1119|$#,9|$#,)! +3 f5 (1119|$#,9|$#,)! +3 f0 (4|$#,)! +3 f5 (4|$#,)! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f4 ()! +3 f0 ()! +3 f4 ()! +3 f0 ()! +3 f4 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f2 ()! 3 f0 (23|$#,)! -3 f5 (23|$#,)! +3 f2 (23|$#,)! +3 f0 ()! +3 f5 ()! 3 f0 (23|$#,)! -3 f5 (23|$#,)! +3 f1117 (23|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1117|0@5@2&#,)! +3 f5 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f2 (1117|0@5@2&#,)! +3 f0 ()! +3 f988 ()! +3 f0 ()! +3 f4 ()! +3 f0 ()! +3 f17 ()! +3 f0 ()! +3 f9 ()! +3 f0 ()! +3 f9 ()! +3 f0 ()! +3 f9 ()! +3 f0 (5|$#,)! +3 f5 (5|$#,)! +3 U!218{979|@1|0@0@3&#tok,1048|@1|0@0@3&#mtdecl,1051|@1|0@5@3&#mtpiece,1054|@1|0@5@3&#mtpieces,1057|@1|0@5@3&#mtcontext,1060|@1|0@0@3&#mtvalues,1063|@1|0@0@3&#mtdefaults,1066|@1|0@5@3&#mtdeflist,1072|@1|0@0@3&#mtannotations,1075|@1|0@5@3&#mtannotlist,1078|@1|0@0@3&#mtannotdecl,1081|@1|0@0@3&#mtmerge,1084|@1|0@0@3&#mtmergeitem,1087|@1|0@5@3&#mtmergeclauselist,1090|@1|0@0@3&#mtmergeclause,1093|@1|0@5@3&#mttransferclauselist,1096|@1|0@0@3&#mttransferclause,1105|@1|0@0@3&#mttransferaction,1099|@1|0@5@3&#mtlosereferencelist,1102|@1|0@0@3&#mtlosereference,2243|@1|0@5@2&#cstringlist,1119|@1|^#ctyp,5461|@1|0@5@2&#qtyp,5|@1|^#count,}! +0 s6992|& +3 Ss_mttok{5|@1|^#tok,1117|@1|0@5@3&#text,1003|@1|0@5@3&#loc,}! +3 f0 (5|$#,1117|0@5@2&#,1003|0@5@2&#,)! +3 f979 (5|$#,1117|0@5@2&#,1003|0@5@2&#,)! +3 f0 (979|$#,)! +3 f1117 (979|$#,)! +3 f0 (979|0@0@2&#,)! +3 f1 (979|0@0@2&#,)! +3 f0 (979|$#,)! +3 f5 (979|$#,)! +3 f0 (979|$#,)! +3 f1003 (979|$#,)! +3 f0 (979|$#,)! +3 f1003 (979|$#,)! +3 f0 (979|$#,)! +3 f1117 (979|$#,)! +3 f0 (979|$#,)! +3 f1117 (979|$#,)! +3 f0 (979|$#,)! +3 f2 (979|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1048|0@0@2&#,)! +3 f1 (1048|0@0@2&#,)! +3 f0 (1048|0@0@2&#,)! +3 f1 (1048|0@0@2&#,)! +3 Ss_mtDeclarationNode{1003|@1|0@5@3&#loc,1117|@1|0@5@3&#name,1054|@1|0@5@3&#pieces,}! +3 f0 (979|0@0@2&#,1054|0@5@2&#,)! +3 f1048 (979|0@0@2&#,1054|0@5@2&#,)! +3 f0 (1048|$#,)! +3 f1117 (1048|$#,)! +3 f0 (1048|$#,)! +3 f1003 (1048|$#,)! +3 f0 (1048|$#,)! +3 f1117 (1048|$#,)! +3 f0 (1048|$#,2|$#,)! +3 f1 (1048|$#,2|$#,)! +3 f0 (1048|0@0@2&#,)! +3 f1 (1048|0@0@2&#,)! +3 e!219{MTP_DEAD,MTP_CONTEXT,MTP_VALUES,MTP_DEFAULTS,MTP_DEFAULTVALUE,MTP_ANNOTATIONS,MTP_MERGE,MTP_TRANSFERS,MTP_PRECONDITIONS,MTP_POSTCONDITIONS,MTP_LOSERS}! +0 s7018|& +0 s7019|& +3 Ss_mtDeclarationPiece{9170|@1|^#kind,20|@1|0@3@3&#node,}! +3 f0 (1051|0@5@7&#,)! +3 f2 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f2 (1051|0@5@7&#,)! +3 f0 (1057|0@5@2&#,)! +3 f1051 (1057|0@5@2&#,)! +3 f0 (1060|0@0@2&#,)! +3 f1051 (1060|0@0@2&#,)! +3 f0 (1063|0@0@2&#,)! +3 f1051 (1063|0@0@2&#,)! +3 f0 (979|0@0@2&#,)! +3 f1051 (979|0@0@2&#,)! +3 f0 (1072|0@0@2&#,)! +3 f1051 (1072|0@0@2&#,)! +3 f0 (1081|0@0@2&#,)! +3 f1051 (1081|0@0@2&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1051 (1093|0@5@2&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1051 (1093|0@5@2&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1051 (1093|0@5@2&#,)! +3 f0 (1099|0@5@2&#,)! +3 f1051 (1099|0@5@2&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1057 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1057 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1060 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1063 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1072 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1081 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1093 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1093 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1093 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1117 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1099 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,9170|$#,)! +3 f2 (1051|0@5@7&#,9170|$#,)! +3 f0 (1051|0@5@2&#,)! +3 f1 (1051|0@5@2&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1117 (1051|0@5@7&#,)! +3 Ss_mtDeclarationPieces{1051|@1|0@5@3&#thisPiece,1054|@1|0@5@3&#rest,}! +3 f0 (1054|0@5@7&#,)! +3 f2 (1054|0@5@7&#,)! +3 f0 (1054|0@5@7&#,)! +3 f2 (1054|0@5@7&#,)! +3 f0 ()! +3 f1054 ()! +3 f0 (1054|0@5@2&#,1051|0@5@2&#,)! +3 f1054 (1054|0@5@2&#,1051|0@5@2&#,)! +3 f0 (1054|0@5@7&#,9170|$#,)! +3 f1051 (1054|0@5@7&#,9170|$#,)! +3 f0 (1054|0@5@7&#,)! +3 f1117 (1054|0@5@7&#,)! +3 f0 (1054|0@5@2&#,)! +3 f1 (1054|0@5@2&#,)! +3 e!220{MTC_ANY,MTC_PARAM,MTC_REFERENCE,MTC_CLAUSE}! +0 s7055|& +0 s7056|& +3 Ss_mtContextNode{9241|@1|^#context,1119|@1|^#type,}! +3 f0 (1057|0@5@7&#,)! +3 f2 (1057|0@5@7&#,)! +3 f0 (1057|0@5@7&#,)! +3 f1117 (1057|0@5@7&#,)! +3 f0 ()! +3 f1057 ()! +3 f0 (1119|$#,)! +3 f1057 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1057 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1057 (1119|$#,)! +3 f0 (1057|0@5@2&#,)! +3 f1 (1057|0@5@2&#,)! +3 f0 (1057|0@5@7&#,)! +3 f2 (1057|0@5@7&#,)! +3 f0 (1057|0@5@7&#,)! +3 f2 (1057|0@5@7&#,)! +3 f0 (1057|0@5@7&#,)! +3 f2 (1057|0@5@7&#,)! +3 f0 (1057|0@5@7&#,974|0@5@7&#,)! +3 f2 (1057|0@5@7&#,974|0@5@7&#,)! +3 f0 (1057|0@5@7&#,971|0@5@7&#,)! +3 f2 (1057|0@5@7&#,971|0@5@7&#,)! +3 f0 (1057|0@5@7&#,971|0@5@7&#,)! +3 f2 (1057|0@5@7&#,971|0@5@7&#,)! +3 Ss_mtValuesNode{2243|@1|0@5@3&#values,}! +3 f0 (2243|0@5@2&#,)! +3 f1060 (2243|0@5@2&#,)! +3 f0 (1060|0@0@2&#,)! +3 f1 (1060|0@0@2&#,)! +3 f0 (1060|$#,)! +3 f1117 (1060|$#,)! +3 f0 (1060|$#,)! +3 f2243 (1060|$#,)! +3 Ss_mtDefaultsNode{1066|@1|0@5@3&#decls,1003|@1|0@5@3&#loc,}! +3 f0 (979|0@0@2&#,1066|0@5@2&#,)! +3 f1063 (979|0@0@2&#,1066|0@5@2&#,)! +3 f0 (1063|0@0@2&#,)! +3 f1 (1063|0@0@2&#,)! +3 f0 (1063|$#,)! +3 f1066 (1063|$#,)! +3 f0 (1063|$#,)! +3 f1117 (1063|$#,)! +3 Ss_mtDefaultsDecl{1057|@1|0@5@3&#context,1117|@1|0@5@3&#value,1003|@1|0@5@3&#loc,}! +3 f0 (1069|$#,)! +3 f1117 (1069|$#,)! +3 f0 (1057|0@5@2&#,979|0@0@2&#,)! +3 f1069 (1057|0@5@2&#,979|0@0@2&#,)! +3 f0 (1069|$#,)! +3 f1003 (1069|$#,)! +3 f0 (1069|$#,)! +3 f1057 (1069|$#,)! +3 f0 (1069|$#,)! +3 f1117 (1069|$#,)! +3 f0 (1069|0@0@2&#,)! +3 f1 (1069|0@0@2&#,)! +0 s7079|-1 9301 -1 +1 t9300|9300& +3 Ss_mtDefaultsDeclList{5|@1|^#nelements,5|@1|^#nspace,9301|@1|11@3@3&#elements,}! +3 f0 (1066|0@5@7&#,)! +3 f2 (1066|0@5@7&#,)! +3 f0 (1066|@7|0@5@7&#,)! +3 f5 (1066|@7|0@5@7&#,)! +3 f0 (1066|@7|0@5@7&#,)! +3 f2 (1066|@7|0@5@7&#,)! +3 f0 (1066|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1066|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f1066 ()! +3 f0 (1069|0@0@4&#,)! +3 f1066 (1069|0@0@4&#,)! +3 f0 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f1066 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f0 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f1066 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f0 (1066|0@5@7&#,)! +3 f1117 (1066|0@5@7&#,)! +3 f0 (1066|0@5@2&#,)! +3 f1 (1066|0@5@2&#,)! +3 f1 (1066|@7|6@5@7&#,1069|@3|6@0@19@2@0#,)! +3 Ss_mtAnnotationsNode{1075|@1|0@5@3&#annots,}! +3 f0 (1075|0@5@2&#,)! +3 f1072 (1075|0@5@2&#,)! +3 f0 (1072|$#,)! +3 f1075 (1072|$#,)! +3 f0 (1072|$#,)! +3 f1117 (1072|$#,)! +3 f0 (1072|0@0@2&#,)! +3 f1 (1072|0@0@2&#,)! +1 t1078|1078& +3 Ss_mtAnnotationList{5|@1|^#nelements,5|@1|^#nspace,9333|@1|11@3@3&#elements,}! +3 f0 (1075|0@5@7&#,)! +3 f2 (1075|0@5@7&#,)! +3 f0 (1075|@7|0@5@7&#,)! +3 f5 (1075|@7|0@5@7&#,)! +3 f0 (1075|@7|0@5@7&#,)! +3 f2 (1075|@7|0@5@7&#,)! +3 f0 (1075|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1075|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f1075 ()! +3 f0 (1078|0@0@4&#,)! +3 f1075 (1078|0@0@4&#,)! +3 f0 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f1075 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f0 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f1075 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f0 (1075|0@5@7&#,)! +3 f1117 (1075|0@5@7&#,)! +3 f0 (1075|0@5@2&#,)! +3 f1 (1075|0@5@2&#,)! +3 f1 (1075|@7|6@5@7&#,1078|@3|6@0@19@2@0#,)! +3 Ss_mtAnnotationDecl{1117|@1|0@5@3&#name,1117|@1|0@5@3&#value,1057|@1|0@5@3&#context,1003|@1|0@5@3&#loc,}! +3 f0 (1078|$#,)! +3 f1117 (1078|$#,)! +3 f0 (979|0@0@2&#,1057|0@5@2&#,979|0@0@2&#,)! +3 f1078 (979|0@0@2&#,1057|0@5@2&#,979|0@0@2&#,)! +3 f0 (1078|$#,)! +3 f1117 (1078|$#,)! +3 f0 (1078|$#,)! +3 f1117 (1078|$#,)! +3 f0 (1078|$#,)! +3 f1057 (1078|$#,)! +3 f0 (1078|$#,)! +3 f1057 (1078|$#,)! +3 f0 (1078|$#,)! +3 f1003 (1078|$#,)! +3 Ss_mtMergeNode{1087|@1|0@5@3&#mlist,}! +3 f0 (1087|0@5@2&#,)! +3 f1081 (1087|0@5@2&#,)! +3 f0 (1081|0@0@2&#,)! +3 f1 (1081|0@0@2&#,)! +3 f0 (1081|$#,)! +3 f1117 (1081|$#,)! +3 f0 (1081|$#,)! +3 f1087 (1081|$#,)! +0 s7111|-1 9381 -1 +1 t9380|9380& +3 Ss_mtTransferClauseList{5|@1|^#nelements,5|@1|^#nspace,9381|@1|11@3@3&#elements,}! +3 f0 (1093|0@5@7&#,)! +3 f2 (1093|0@5@7&#,)! +3 f0 (1093|@7|0@5@7&#,)! +3 f5 (1093|@7|0@5@7&#,)! +3 f0 (1093|@7|0@5@7&#,)! +3 f2 (1093|@7|0@5@7&#,)! +3 f0 (1093|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1093|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f1093 ()! +3 f0 (1096|0@0@4&#,)! +3 f1093 (1096|0@0@4&#,)! +3 f0 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f1093 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f0 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f1093 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f0 (1093|0@5@7&#,)! +3 f1117 (1093|0@5@7&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1 (1093|0@5@2&#,)! +3 f1 (1093|@7|6@5@7&#,1096|@3|6@0@19@2@0#,)! +3 Ss_mtTransferClause{1003|@1|0@5@3&#loc,1117|@1|0@5@3&#fromname,1117|@1|0@5@3&#toname,1105|@1|0@0@3&#action,}! +3 f0 (1096|$#,)! +3 f1117 (1096|$#,)! +3 f0 (979|0@0@2&#,979|0@0@2&#,1105|0@0@2&#,)! +3 f1096 (979|0@0@2&#,979|0@0@2&#,1105|0@0@2&#,)! +3 f0 (1096|$#,)! +3 f1117 (1096|$#,)! +3 f0 (1096|$#,)! +3 f1117 (1096|$#,)! +3 f0 (1096|$#,)! +3 f1105 (1096|$#,)! +3 f0 (1096|$#,)! +3 f1003 (1096|$#,)! +3 f0 (1096|0@0@2&#,)! +3 f1 (1096|0@0@2&#,)! +0 s7126|-1 9420 -1 +1 t9419|9419& +3 Ss_mtLoseReferenceList{5|@1|^#nelements,5|@1|^#nspace,9420|@1|11@3@3&#elements,}! +3 f0 (1099|0@5@7&#,)! +3 f2 (1099|0@5@7&#,)! +3 f0 (1099|@7|0@5@7&#,)! +3 f5 (1099|@7|0@5@7&#,)! +3 f0 (1099|@7|0@5@7&#,)! +3 f2 (1099|@7|0@5@7&#,)! +3 f0 (1099|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1099|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f1099 ()! +3 f0 (1102|0@0@4&#,)! +3 f1099 (1102|0@0@4&#,)! +3 f0 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f1099 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f0 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f1099 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f0 (1099|0@5@7&#,)! +3 f1117 (1099|0@5@7&#,)! +3 f0 (1099|0@5@2&#,)! +3 f1 (1099|0@5@2&#,)! +3 f1 (1099|@7|6@5@7&#,1102|@3|6@0@19@2@0#,)! +3 Ss_mtLoseReference{1003|@1|0@5@3&#loc,1117|@1|0@5@3&#fromname,1105|@1|0@0@3&#action,}! +3 f0 (1102|$#,)! +3 f1117 (1102|$#,)! +3 f0 (979|0@0@2&#,1105|0@0@2&#,)! +3 f1102 (979|0@0@2&#,1105|0@0@2&#,)! +3 f0 (1102|$#,)! +3 f1117 (1102|$#,)! +3 f0 (1102|$#,)! +3 f1105 (1102|$#,)! +3 f0 (1102|$#,)! +3 f1003 (1102|$#,)! +3 f0 (1102|0@0@2&#,)! +3 f1 (1102|0@0@2&#,)! +3 e!221{MTAK_VALUE,MTAK_ERROR}! +0 s7143|& +3 Ss_mtTransferAction{9457|@1|^#kind,1117|@1|0@5@3&#value,1117|@1|0@5@3&#message,1003|@1|0@5@3&#loc,}! +3 f0 (1105|0@0@2&#,)! +3 f1 (1105|0@0@2&#,)! +3 f0 (1105|$#,)! +3 f1117 (1105|$#,)! +3 f0 (979|0@0@2&#,)! +3 f1105 (979|0@0@2&#,)! +3 f0 (1105|$#,)! +3 f1117 (1105|$#,)! +3 f0 (1105|$#,)! +3 f1003 (1105|$#,)! +3 f0 (1105|$#,)! +3 f1117 (1105|$#,)! +3 f0 (1105|$#,)! +3 f2 (1105|$#,)! +3 f0 (979|0@0@2&#,)! +3 f1105 (979|0@0@2&#,)! +3 f0 (979|0@0@2&#,)! +3 f1105 (979|0@0@2&#,)! +3 e!222{MTMK_VALUE,MTMK_STAR}! +0 s7152|& +3 Ss_mtMergeItem{9478|@1|^#kind,1117|@1|0@5@3&#value,1003|@1|0@5@3&#loc,}! +3 f0 (1084|0@0@2&#,)! +3 f1 (1084|0@0@2&#,)! +3 f0 (1084|$#,)! +3 f1117 (1084|$#,)! +3 f0 (979|0@0@2&#,)! +3 f1084 (979|0@0@2&#,)! +3 f0 (979|0@0@2&#,)! +3 f1084 (979|0@0@2&#,)! +3 f0 (1084|$#,)! +3 f2 (1084|$#,)! +3 f0 (1084|$#,)! +3 f1117 (1084|$#,)! +3 f0 (1084|$#,)! +3 f1003 (1084|$#,)! +3 Ss_mtMergeClause{1084|@1|0@0@3&#item1,1084|@1|0@0@3&#item2,1105|@1|0@0@3&#action,}! +3 f0 (1090|$#,)! +3 f1117 (1090|$#,)! +3 f0 (1084|0@0@2&#,1084|0@0@2&#,1105|0@0@2&#,)! +3 f1090 (1084|0@0@2&#,1084|0@0@2&#,1105|0@0@2&#,)! +3 f0 (1090|$#,)! +3 f1084 (1090|$#,)! +3 f0 (1090|$#,)! +3 f1084 (1090|$#,)! +3 f0 (1090|$#,)! +3 f1105 (1090|$#,)! +3 f0 (1090|$#,)! +3 f1003 (1090|$#,)! +3 f0 (1090|0@0@2&#,)! +3 f1 (1090|0@0@2&#,)! +0 s7160|-1 9510 -1 +1 t9509|9509& +3 Ss_mtMergeClauseList{5|@1|^#nelements,5|@1|^#nspace,9510|@1|11@3@3&#elements,}! +3 f0 (1087|0@5@7&#,)! +3 f2 (1087|0@5@7&#,)! +3 f0 (1087|@7|0@5@7&#,)! +3 f5 (1087|@7|0@5@7&#,)! +3 f0 (1087|@7|0@5@7&#,)! +3 f2 (1087|@7|0@5@7&#,)! +3 f0 (1087|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1087|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f1087 ()! +3 f0 (1090|0@0@4&#,)! +3 f1087 (1090|0@0@4&#,)! +3 f0 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f1087 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f0 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f1087 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f0 (1087|0@5@7&#,)! +3 f1117 (1087|0@5@7&#,)! +3 f0 (1087|0@5@2&#,)! +3 f1 (1087|0@5@2&#,)! +3 f1 (1087|@7|6@5@7&#,1090|@3|6@0@19@2@0#,)! +3 f0 ()! +3 f5 ()! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! +3 f0 (8860|$#,)! +3 f5 (8860|$#,)! +3 f0 (979|$#,)! +3 f1119 (979|$#,)! +3 f0 ()! +3 f979 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! +3 f0 (8860|$#,)! +3 f5 (8860|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f979 ()! +3 C0.4/3|! +3 f0 (979|$#,)! +3 f1119 (979|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1048|0@0@2&#,)! +3 f1 (1048|0@0@2&#,)! +3 f0 (1048|0@0@2&#,)! +3 f1 (1048|0@0@2&#,)! 3 f0 (23|$#,)! -3 f989 (23|$#,)! +3 f1 (23|$#,)! +3 f0 ()! +3 f1 ()! +3 U!223{979|@1|0@0@3&#tok,1048|@1|0@0@3&#mtdecl,1051|@1|0@5@3&#mtpiece,1054|@1|0@5@3&#mtpieces,1057|@1|0@5@3&#mtcontext,1060|@1|0@0@3&#mtvalues,1063|@1|0@0@3&#mtdefaults,1066|@1|0@5@3&#mtdeflist,1072|@1|0@0@3&#mtannotations,1075|@1|0@5@3&#mtannotlist,1078|@1|0@0@3&#mtannotdecl,1081|@1|0@0@3&#mtmerge,1084|@1|0@0@3&#mtmergeitem,1087|@1|0@5@3&#mtmergeclauselist,1090|@1|0@0@3&#mtmergeclause,1093|@1|0@5@3&#mttransferclauselist,1096|@1|0@0@3&#mttransferclause,1105|@1|0@0@3&#mttransferaction,1099|@1|0@5@3&#mtlosereferencelist,1102|@1|0@0@3&#mtlosereference,2243|@1|0@5@2&#cstringlist,1119|@1|^#ctyp,5461|@1|0@5@2&#qtyp,5|@1|^#count,}! +0 s7177|& +3 f0 (5|^#,5|^#,5|^#,)! +3 f1 (5|^#,5|^#,5|^#,)! +3 f1 (23|^#,23|^#,6|^#,)! +3 f0 ()! +3 f5 ()! +2 F0/200|0& +2 F7/200|7& +2 F0/200|0& +2 F8854/200|8854& 3 f0 (23|$#,)! -3 f2 (23|$#,)! +3 f1 (23|$#,)! +3 f0 (211|$#,5|$#,8854|$#,)! +3 f1 (211|$#,5|$#,8854|$#,)! +0 s7179|-1 9582 -1 +1 t9581|9581& +3 S!224{5|@1|^#nelements,5|@1|^#nspace,9582|@1|11@3@3&#elements,}^9585 +0 s7180|& +1 t9583|9583& +0 a7181|& +3 f1 (9586|@7|&#,988|@3|6@5@19@2@0#,)! +3 f0 ()! +3 f9586 ()! +3 f0 (988|0@5@18@2@0#,)! +3 f9586 (988|0@5@18@2@0#,)! +3 f0 (9586|$#,988|0@5@18@2@0#,)! +3 f1 (9586|$#,988|0@5@18@2@0#,)! +3 f0 (9586|$#,)! +3 f1117 (9586|$#,)! +3 f0 (9586|0@0@2&#,)! +3 f1 (9586|0@0@2&#,)! +3 f0 (9586|@5|$#,9586|0@0@2&#,)! +3 f9586 (9586|@5|$#,9586|0@0@2&#,)! +3 f0 (7022|$#,7022|$#,)! +3 f2 (7022|$#,7022|$#,)! +3 f0 (7022|0@0@2&#,)! +3 f1 (7022|0@0@2&#,)! +3 f0 ()! +3 f7022 ()! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f1117 (7022|$#,)! +3 f0 (7022|@5|$#,)! +3 f7022 (7022|@5|$#,)! +3 f0 (7022|$#,)! +3 f1003 (7022|$#,)! +3 f0 (7022|$#,)! +3 f7018 (7022|$#,)! +3 f0 (7022|$#,)! +3 f971 (7022|$#,)! +3 f0 (988|0@5@18&#,)! +3 f7022 (988|0@5@18&#,)! +3 f0 (971|0@5@6@3@0#,)! +3 f7022 (971|0@5@6@3@0#,)! +3 f0 (7022|$#,)! +3 f7022 (7022|$#,)! +3 f0 (7022|@5|$#,1003|0@5@7&#,)! +3 f7022 (7022|@5|$#,1003|0@5@7&#,)! +3 f0 (7022|$#,)! +3 f1117 (7022|$#,)! +3 f0 (7022|@5|$#,4160|$#,)! +3 f7022 (7022|@5|$#,4160|$#,)! +3 f0 (7022|$#,)! +3 f1117 (7022|$#,)! +3 f0 (5|$#,)! +3 f7022 (5|$#,)! +3 f0 (7022|$#,)! +3 f2 (7022|$#,)! +3 f0 (7022|$#,)! +3 f5 (7022|$#,)! +3 f0 (7022|$#,7022|$#,)! +3 f2 (7022|$#,7022|$#,)! +3 f0 (7022|$#,)! +3 f971 (7022|$#,)! +3 f0 (7022|$#,7022|$#,)! +3 f2 (7022|$#,7022|$#,)! +3 f0 (7022|$#,7022|$#,)! +3 f2 (7022|$#,7022|$#,)! +3 f0 (7022|0@0@19@3@0#,211|$#,)! +3 f1 (7022|0@0@19@3@0#,211|$#,)! +3 f0 (211|$#,)! +3 f7022 (211|$#,)! +3 f0 (7086|0@0@2&#,)! +3 f1 (7086|0@0@2&#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7086 (7086|0@0@19@3@0#,)! +3 f0 (7086|0@0@2&#,)! +3 f1 (7086|0@0@2&#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7086 (7086|0@0@19@3@0#,)! +3 f0 (7086|0@0@2&#,)! +3 f1 (7086|0@0@2&#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7086 (7086|0@0@19@3@0#,)! +3 f0 (7086|@5|7@0@7&#,7022|0@0@2&#,)! +3 f7086 (7086|@5|7@0@7&#,7022|0@0@2&#,)! +3 f0 (7086|0@0@19@3@0#,)! +3 f7022 (7086|0@0@19@3@0#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f7076 (7086|11@0@19@3@0#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f1115 (7086|11@0@19@3@0#,)! +3 f0 (7086|@5|7@0@7&#,7076|$#,)! +3 f7086 (7086|@5|7@0@7&#,7076|$#,)! +3 f0 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f7086 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f0 (7086|7@0@7&#,)! +3 f7073 (7086|7@0@7&#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f1115 (7086|11@0@19@3@0#,)! +3 f0 (7086|11@0@19@3@0#,)! +3 f1115 (7086|11@0@19@3@0#,)! +3 f0 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f7086 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f0 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f7086 (7086|@5|7@0@7&#,1115|0@5@2&#,)! +3 f0 (7086|@5|7@0@7&#,7073|$#,)! +3 f7086 (7086|@5|7@0@7&#,7073|$#,)! +3 f0 (1115|0@5@2&#,5|$#,)! +3 f1115 (1115|0@5@2&#,5|$#,)! +3 f0 (1115|0@5@2&#,4160|0@0@6@3@0#,)! +3 f1115 (1115|0@5@2&#,4160|0@0@6@3@0#,)! +3 f0 (1115|0@5@2&#,988|0@5@19@2@0#,)! +3 f1115 (1115|0@5@2&#,988|0@5@19@2@0#,)! +3 f0 ()! +3 f1115 ()! +3 f0 (1115|0@5@2&#,)! +3 f1 (1115|0@5@2&#,)! +3 f0 (1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,)! +3 f0 (1115|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! +3 f1115 (1115|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 ()! +3 f1115 ()! +3 f0 (7086|0@0@19@3@0#,7131|$#,)! +3 f7086 (7086|0@0@19@3@0#,7131|$#,)! +3 f0 (1115|0@5@7&#,)! +3 f1115 (1115|0@5@7&#,)! +3 f0 (988|0@5@18&#,)! +3 f1115 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1115 (988|0@5@18&#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (7022|0@0@2&#,)! +3 f1115 (7022|0@0@2&#,)! +3 f0 (971|0@5@6&#,)! +3 f1115 (971|0@5@6&#,)! +3 f0 ()! +3 f1115 ()! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,7076|$#,)! +3 f1115 (1115|0@5@2&#,7076|$#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (971|0@5@6@3@0#,7076|$#,)! +3 f1115 (971|0@5@6@3@0#,7076|$#,)! +3 f0 (971|0@5@6@3@0#,)! +3 f1115 (971|0@5@6@3@0#,)! +3 f0 (971|0@5@6&#,)! +3 f1115 (971|0@5@6&#,)! +3 f0 (2013|$#,1115|0@5@2&#,)! +3 f1115 (2013|$#,1115|0@5@2&#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,)! +3 f0 (5|$#,)! +3 f1115 (5|$#,)! +3 f0 ()! +3 f1115 ()! +3 f0 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,2013|$#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,2013|$#,1115|0@5@2&#,)! +3 f0 (988|0@5@19@2@0#,988|0@5@19@2@0#,)! +3 f1115 (988|0@5@19@2@0#,988|0@5@19@2@0#,)! +3 f0 (1115|0@5@2&#,5|$#,)! +3 f1115 (1115|0@5@2&#,5|$#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (7076|$#,)! +3 f1117 (7076|$#,)! +3 f0 (7073|$#,)! +3 f1117 (7073|$#,)! +3 f0 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f0 (1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f2 (1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f0 (1115|0@5@2&#,1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@6@3@0#,1115|0@5@6@3@0#,)! +3 f0 (1115|@5|0@5@7&#,)! +3 f1115 (1115|@5|0@5@7&#,)! +3 f0 (1115|@5|0@5@7&#,1003|0@5@7&#,)! +3 f1115 (1115|@5|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@7&#,1115|0@5@2&#,)! +3 f1115 (1115|0@5@7&#,1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@2&#,)! +3 f1115 (1115|0@5@2&#,)! +3 f0 (1115|0@5@6@3@0#,)! +3 f1117 (1115|0@5@6@3@0#,)! +3 f0 (1115|@5|0@5@7&#,4160|$#,)! +3 f1115 (1115|@5|0@5@7&#,4160|$#,)! +3 f0 (1115|@5|0@5@2&#,4160|$#,)! +3 f1115 (1115|@5|0@5@2&#,4160|$#,)! +3 f0 (1115|0@5@2&#,988|0@5@19@3@0#,)! +3 f1115 (1115|0@5@2&#,988|0@5@19@3@0#,)! +3 f0 (1115|0@5@7&#,)! +3 f1117 (1115|0@5@7&#,)! +3 f0 (1115|0@5@6@3@0#,)! +3 f2 (1115|0@5@6@3@0#,)! +3 f0 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f5 (1115|0@5@7&#,1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,)! +3 f5 (1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,)! +3 f2 (1115|0@5@7&#,)! +3 f0 (1115|0@5@7&#,)! +3 f1003 (1115|0@5@7&#,)! +3 f0 (1115|0@5@2&#,988|0@5@19@2@0#,)! +3 f1115 (1115|0@5@2&#,988|0@5@19@2@0#,)! +3 f0 (1115|0@5@2&#,4160|0@0@6@3@0#,)! +3 f1115 (1115|0@5@2&#,4160|0@0@6@3@0#,)! +3 f0 (1115|0@5@6@3@0#,)! +3 f2 (1115|0@5@6@3@0#,)! +3 f0 (7086|0@0@19@3@0#,211|$#,)! +3 f1 (7086|0@0@19@3@0#,211|$#,)! +3 f0 (211|$#,)! +3 f1115 (211|$#,)! +3 f0 (7086|0@0@19@3@0#,211|$#,)! +3 f1 (7086|0@0@19@3@0#,211|$#,)! +3 f0 (211|$#,)! +3 f1115 (211|$#,)! +3 f0 (1115|0@5@6@3@0#,211|$#,)! +3 f1 (1115|0@5@6@3@0#,211|$#,)! +3 f0 (211|$#,)! +3 f1115 (211|$#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f1117 (1109|0@0@6@3@0#,)! +3 f0 ()! +3 f1109 ()! +3 f0 (313|$#,)! +3 f1 (313|$#,)! +3 f0 (1115|0@5@7&#,2013|$#,988|0@5@7&#,)! +3 f1109 (1115|0@5@7&#,2013|$#,988|0@5@7&#,)! +3 f0 (1109|$#,1109|$#,)! +3 f2 (1109|$#,1109|$#,)! +3 f0 (1115|0@5@7&#,2013|$#,1115|0@5@7&#,)! +3 f1109 (1115|0@5@7&#,2013|$#,1115|0@5@7&#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f1109 (1109|0@0@6@3@0#,)! +3 f0 (1109|$#,1109|0@0@19@3@0#,)! +3 f1 (1109|$#,1109|0@0@19@3@0#,)! +3 f0 ()! +3 f1109 ()! +3 f0 (1109|@5|$#,988|0@5@18&#,)! +3 f1109 (1109|@5|$#,988|0@5@18&#,)! +3 f0 (1109|@5|$#,988|0@5@18&#,)! +3 f1109 (1109|@5|$#,988|0@5@18&#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|$#,)! +3 f1003 (1109|$#,)! +3 f0 (1109|$#,)! +3 f2 (1109|$#,)! +3 f0 (1109|$#,)! +3 f2 (1109|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|0@5@18&#,5|$#,)! +3 f1109 (988|0@5@18&#,5|$#,)! +3 f0 (971|0@5@7&#,9|$#,)! +3 f1109 (971|0@5@7&#,9|$#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1109 (971|0@5@7&#,5|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|0@5@18&#,5|$#,)! +3 f1109 (988|0@5@18&#,5|$#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1109 (971|0@5@7&#,5|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (1115|0@5@2&#,1115|0@5@2&#,1003|0@5@7&#,7217|$#,)! +3 f1109 (1115|0@5@2&#,1115|0@5@2&#,1003|0@5@7&#,7217|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,7217|$#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,7217|$#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|@5|0@5@7&#,988|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f0 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18@3@0#,988|0@5@18@3@0#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,1003|0@5@7&#,)! +3 f1109 (988|0@5@18&#,1003|0@5@7&#,)! +3 f0 (1109|0@0@2&#,)! +3 f1 (1109|0@0@2&#,)! +3 f0 (7217|$#,)! +3 f1117 (7217|$#,)! +3 f0 (1109|$#,1003|0@5@7&#,)! +3 f1 (1109|$#,1003|0@5@7&#,)! +3 f0 (1109|0@0@6@3@0#,1003|0@5@6@3@0#,)! +3 f1 (1109|0@0@6@3@0#,1003|0@5@6@3@0#,)! +3 f0 (1109|$#,)! +3 f1117 (1109|$#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f1117 (1109|0@0@6@3@0#,)! +3 f0 (1109|$#,)! +3 f1117 (1109|$#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f1117 (1109|0@0@6@3@0#,)! +3 f0 (1109|$#,)! +3 f1117 (1109|$#,)! +3 f0 (1109|@5|0@0@2&#,4160|$#,)! +3 f1109 (1109|@5|0@0@2&#,4160|$#,)! +3 f0 (1109|$#,988|0@5@18@3@0#,)! +3 f1109 (1109|$#,988|0@5@18@3@0#,)! +3 f0 (1109|$#,4160|0@0@6@3@0#,)! +3 f1109 (1109|$#,4160|0@0@6@3@0#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f2 (1109|0@0@6@3@0#,)! +3 f0 (211|$#,)! +3 f1109 (211|$#,)! +3 f0 (1109|0@0@19@3@0#,211|$#,)! +3 f1 (1109|0@0@19@3@0#,211|$#,)! +3 f1 (1112|@7|&#,1109|@3|6@0@2&#,)! +1 t1109|1109& +3 f1 (1112|@7|&#,1109|@3|&#,)! +3 f0 ()! +3 f1112 ()! +3 f0 (1112|$#,)! +3 f1 (1112|$#,)! +3 f0 (1112|@5|$#,1109|0@0@2&#,)! +3 f1112 (1112|@5|$#,1109|0@0@2&#,)! +3 f0 (1112|0@0@2&#,)! +3 f1 (1112|0@0@2&#,)! +3 f0 (1112|@5|0@0@2&#,1112|0@0@19@3@0#,)! +3 f1112 (1112|@5|0@0@2&#,1112|0@0@19@3@0#,)! +3 f0 (1112|@5|$#,1112|0@0@2&#,)! +3 f1112 (1112|@5|$#,1112|0@0@2&#,)! +3 f0 (1112|0@0@19@3@0#,)! +3 f1117 (1112|0@0@19@3@0#,)! +3 f0 (1112|0@0@6@3@0#,)! +3 f1117 (1112|0@0@6@3@0#,)! +3 f0 (1112|$#,1003|0@5@7&#,)! +3 f1 (1112|$#,1003|0@5@7&#,)! +3 f0 (1112|$#,1003|0@5@19@3@0#,)! +3 f1 (1112|$#,1003|0@5@19@3@0#,)! +3 f0 (1112|0@0@19@3@0#,)! +3 f1117 (1112|0@0@19@3@0#,)! +3 f0 (1112|0@0@19@3@0#,1112|0@0@19@3@0#,)! +3 f1112 (1112|0@0@19@3@0#,1112|0@0@19@3@0#,)! +3 f0 (1112|0@0@2&#,)! +3 f1 (1112|0@0@2&#,)! +3 f0 (1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6@3@0#,)! +3 f0 (1112|@5|$#,)! +3 f1112 (1112|@5|$#,)! +3 f0 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f1112 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f0 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f1112 (1112|@5|$#,988|0@5@18@3@0#,)! +3 f0 (1112|0@0@2&#,988|0@5@18@3@0#,)! +3 f1112 (1112|0@0@2&#,988|0@5@18@3@0#,)! +3 f0 (1112|0@0@2&#,4160|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,4160|0@0@6@3@0#,)! +3 f0 (1112|$#,4160|0@0@6@3@0#,)! +3 f1112 (1112|$#,4160|0@0@6@3@0#,)! +3 f0 (1112|@5|$#,)! +3 f1112 (1112|@5|$#,)! +3 f0 (211|$#,)! +3 f1112 (211|$#,)! +3 f0 (1112|0@0@19@3@0#,211|$#,)! +3 f1 (1112|0@0@19@3@0#,211|$#,)! +3 f0 (1109|@5|$#,1112|$#,)! +3 f1109 (1109|@5|$#,1112|$#,)! +3 f0 (7217|$#,1115|0@5@19@3@0#,7217|$#,1115|0@5@19@3@0#,)! +3 f2 (7217|$#,1115|0@5@19@3@0#,7217|$#,1115|0@5@19@3@0#,)! +3 f0 (1109|@5|$#,1112|$#,)! +3 f1109 (1109|@5|$#,1112|$#,)! +3 f0 (1109|@5|$#,1115|0@5@7&#,1115|0@5@7&#,)! +3 f1109 (1109|@5|$#,1115|0@5@7&#,1115|0@5@7&#,)! +3 f0 (1109|@5|$#,1109|0@0@19@3@0#,)! +3 f1109 (1109|@5|$#,1109|0@0@19@3@0#,)! +3 f0 (1109|0@0@6&#,1112|0@0@6@3@0#,)! +3 f2 (1109|0@0@6&#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@2&#,1112|$#,)! +3 f1112 (1112|0@0@2&#,1112|$#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@6&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6&#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (1109|@5|$#,1109|0@0@19@3@0#,)! +3 f1109 (1109|@5|$#,1109|0@0@19@3@0#,)! +3 f0 (1109|0@0@6&#,1112|0@0@6@3@0#,)! +3 f2 (1109|0@0@6&#,1112|0@0@6@3@0#,)! +3 f0 (1109|0@0@2&#,1112|$#,21|$#,)! +3 f1109 (1109|0@0@2&#,1112|$#,21|$#,)! +3 f0 (1109|$#,1112|$#,21|4@0@7&#,)! +3 f1109 (1109|$#,1112|$#,21|4@0@7&#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1112|0@0@19@3@0#,1112|$#,)! +3 f1112 (1112|0@0@19@3@0#,1112|$#,)! +3 f0 (1112|0@0@2&#,1112|$#,)! +3 f1112 (1112|0@0@2&#,1112|$#,)! +3 f0 (1109|$#,1109|$#,)! +3 f2 (1109|$#,1109|$#,)! +3 f0 (1109|0@0@6&#,1109|0@0@6@3@0#,)! +3 f1 (1109|0@0@6&#,1109|0@0@6@3@0#,)! +3 f0 (1109|$#,1112|$#,)! +3 f2 (1109|$#,1112|$#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1109|$#,1109|$#,)! +3 f2 (1109|$#,1109|$#,)! +3 f0 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f2 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (7217|$#,7217|$#,)! +3 f2 (7217|$#,7217|$#,)! +3 f0 (1109|0@0@6@3@0#,)! +3 f2 (1109|0@0@6@3@0#,)! +3 f0 (7217|$#,1115|0@5@19@3@0#,7217|$#,1115|0@5@19@3@0#,)! +3 f2 (7217|$#,1115|0@5@19@3@0#,7217|$#,1115|0@5@19@3@0#,)! +3 f0 (1109|@5|$#,1115|0@5@7&#,1115|0@5@7&#,)! +3 f1109 (1109|@5|$#,1115|0@5@7&#,1115|0@5@7&#,)! +3 f0 (1109|$#,1115|0@5@7&#,)! +3 f2 (1109|$#,1115|0@5@7&#,)! +3 f0 (1109|@5|$#,1109|0@0@19@3@0#,)! +3 f1109 (1109|@5|$#,1109|0@0@19@3@0#,)! +3 f0 (1109|@5|$#,1112|$#,)! +3 f1109 (1109|@5|$#,1112|$#,)! +3 f0 (1109|@5|$#,1112|$#,)! +3 f1109 (1109|@5|$#,1112|$#,)! +3 f0 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f1109 (1109|0@0@6@3@0#,1112|0@0@6@3@0#,)! +3 f0 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f1112 (1112|0@0@2&#,1112|0@0@6@3@0#,)! +3 f0 (1112|$#,1112|$#,)! +3 f1112 (1112|$#,1112|$#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (7217|$#,)! +3 f7217 (7217|$#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1109|@5|$#,)! +3 f1109 (1109|@5|$#,)! +3 f0 (1003|0@5@19@3@0#,1003|0@5@19@3@0#,1003|0@5@19@3@0#,)! +3 f2 (1003|0@5@19@3@0#,1003|0@5@19@3@0#,1003|0@5@19@3@0#,)! +3 f0 (988|0@5@18&#,)! +3 f2 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f2 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|4@5@7&#,4160|$#,1003|0@5@7&#,)! +3 f1 (988|4@5@7&#,4160|$#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,4160|$#,)! +3 f1112 (988|0@5@18&#,4160|$#,)! +3 f0 (988|0@5@18&#,)! +3 f2 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f2 (988|0@5@18&#,)! +3 C1.2/1|! +3 f0 (988|0@5@18&#,)! +3 f2 (988|0@5@18&#,)! +3 f10095 (988|0@5@18&#,)! +3 f7311 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f2 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1 (988|0@5@18&#,)! +3 f0 (988|@5|0@5@7&#,988|0@5@18&#,988|0@5@18&#,)! +3 f988 (988|@5|0@5@7&#,988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|@5|0@5@7&#,988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +3 f988 (988|@5|0@5@7&#,988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|@5|0@5@7&#,988|0@5@18&#,988|0@5@18&#,)! +3 f988 (988|@5|0@5@7&#,988|0@5@18&#,988|0@5@18&#,)! +3 f0 (994|0@5@19@3@0#,)! +3 f1112 (994|0@5@19@3@0#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +3 f1 (988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@18&#,)! +3 f1 (988|0@5@18&#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (988|0@5@18&#,2|$#,2|$#,1003|0@5@7&#,)! +3 f1 (988|0@5@18&#,2|$#,2|$#,1003|0@5@7&#,)! +3 f0 (988|0@5@18&#,2|$#,2|$#,1003|0@5@6@3@0#,)! +3 f1 (988|0@5@18&#,2|$#,2|$#,1003|0@5@6@3@0#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (988|0@5@18&#,)! +3 f1112 (988|0@5@18&#,)! +3 f0 (988|4@5@7&#,4160|$#,1003|0@5@7&#,)! +3 f1 (988|4@5@7&#,4160|$#,1003|0@5@7&#,)! +3 f0 (988|0@5@18@3@0#,4160|$#,988|0@5@18@3@0#,)! +3 f1112 (988|0@5@18@3@0#,4160|$#,988|0@5@18@3@0#,)! +3 f0 (988|0@5@18&#,4160|$#,)! +3 f1112 (988|0@5@18&#,4160|$#,)! +3 f0 (5|$#,)! +3 f1 (5|$#,)! +3 f0 (1115|0@5@19@3@0#,)! +3 f2 (1115|0@5@19@3@0#,)! +3 f0 (1109|0@2@7&#,)! +3 f2 (1109|0@2@7&#,)! +3 f0 (1109|0@0@19@3@0#,1115|0@5@19@3@0#,)! +3 f2 (1109|0@0@19@3@0#,1115|0@5@19@3@0#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,)! +3 f2 (988|0@2@7&#,988|0@2@7&#,)! +3 f0 (1112|0@0@19@3@0#,)! +3 f1112 (1112|0@0@19@3@0#,)! +3 f0 (1112|0@0@19@3@0#,)! +3 f1112 (1112|0@0@19@3@0#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,)! +3 f1115 (988|0@2@7&#,988|0@2@7&#,)! +3 f0 (1115|0@5@2&#,1115|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f1115 (1115|0@5@2&#,1115|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f0 (1109|@5|$#,1115|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f1109 (1109|@5|$#,1115|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f0 (1112|@5|$#,1115|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f1112 (1112|@5|$#,1115|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@19@3@0#,1115|0@5@19@3@0#,)! +3 f0 (988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +3 f1 (988|0@5@18&#,988|0@5@18&#,988|0@5@18&#,)! +0 s7195|& +0 s7196|-1 10200 -1 +0 s7197|-1 10387 -1 +0 s7198|-1 10229 -1 +0 s7199|-1 10323 -1 +0 s7200|-1 10335 -1 +3 ecpp_token{CPP_EOF,CPP_OTHER,CPP_COMMENT,CPP_HSPACE,CPP_VSPACE,CPP_NAME,CPP_NUMBER,CPP_CHAR,CPP_STRING,CPP_DIRECTIVE,CPP_LPAREN,CPP_RPAREN,CPP_LBRACE,CPP_RBRACE,CPP_COMMA,CPP_SEMICOLON,CPP_3DOTS,CPP_POP}! +0 s7219|& +0 s7220|& +0 s7221|-1 10194 -1 +3 f0 (1117|0@5@18&#,1117|0@5@18&#,)! +3 f5 (1117|0@5@18&#,1117|0@5@18&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +0 s7230|-1 10221 -1 +3 ?! +1 t10177|10177& +3 f10193 (10194|$#,)! +3 f10175 (10194|$#,)^10197 +1 t10196|10196& +0 s7231|& +3 ?! +1 t10169|10169& +3 f10199 (10200|$#,10194|$#,)! +3 f1 (10200|$#,10194|$#,)^10203 +1 t10202|10202& +0 s7232|& +0 s7233|-1 10206 -1 +1 t10205|10205 10791 -1 +3 Sparse_marker{10200|@1|0@0@18&#buf,10206|@1|0@5@18&#next,5|@1|^#position,}! +0 s7234|-1 10209 -1 +1 t10208|10208& +3 Sarglist{10209|@1|0@5@3&#next,23|@1|0@0@18&#name,5|@1|^#length,5|@1|^#argno,5|@1|^#rest_args,}! +3 f0 (10194|$#,)! +3 f10175 (10194|$#,)! +3 C1.5/1|! +3 f0 (10194|$#,)! +3 f5 (10194|$#,)! +3 f10213 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +0 s7238|-1 10220 -1 +1 t10219|10219& +1 t10192|10192 10731 -1 +0 s7239|-1 10223 -1 +1 t10222|10222& +3 ScppBuffer{23|@1|0@5@2&#buf,23|@1|0@5@18@2@0#cur,23|@1|0@5@18@2@0#rlimit,23|@1|0@5@18@2@0#alimit,23|@1|0@5@18@2@0#prev,1117|@1|0@5@18&#fname,1117|@1|0@5@18@2@0#nominal_fname,10220|@1|0@5@18&#dir,9|@1|^#line_base,5|@1|^#lineno,5|@1|^#colno,10198|@1|0@0@3&#underflow,10204|@1|0@0@3&#cleanup,10221|@1|0@0@18&#hnode,10206|@1|0@5@18&#marks,10223|@1|0@5@18@2@0#if_stack,4|@1|^#system_header_p,4|@1|^#seen_eof,2|@1|^#has_escapes,}! +0 s7240|& +0 s7241|-1 10258 -1 +2 F0/0|0& +2 F10169/0|10169& +1 t10171|10171& +3 ScppReader{10198|@1|0@0@3&#get_token,10200|@1|0@5@18&#buffer,10228|@1|^#buffer_stack,5|@1|^#errors,10229|@1|0@0@3&#opts,23|@1|0@3@3&#token_buffer,63|@1|^#token_buffer_size,23|@1|0@0@18@2@0#limit,5|@1|^#multiline_string_line,5|@1|^#system_include_depth,10220|@1|0@5@17&#all_include_files,5|@1|^#max_include_len,10223|@1|0@5@3&#if_stack,4|@1|^#pcp_inside_if,4|@1|^#input_stack_listing_current,2|@1|^#no_macro_expand,2|@1|^#show_column,4|@1|^#parsing_include_directive,4|@1|^#output_escapes,4|@1|^#only_seen_white,5|@1|^#lineno,443|@1|0@5@18@3@0#timebuf,}! +3 f0 (10194|$#,)! +3 f2 (10194|$#,)! +3 f0 (10200|$#,)! +3 f5 (10200|$#,)! +3 f0 (10194|@7|$#,)! +3 f63 (10194|@7|$#,)! +3 f0 (10194|$#,)! +3 f19 (10194|$#,)! +3 f23 (10194|$#,)! +3 f0 (10194|@7|$#,63|@7|$#,)! +3 f1 (10194|@7|$#,63|@7|$#,)! +3 f0 (10194|@7|$#,23|0@0@9&#,63|@7|$#,)! +3 f1 (10194|@7|$#,23|0@0@9&#,63|@7|$#,)! +3 f0 (10194|@7|15@0@1&#,63|$#,)! +3 f1 (10194|@7|15@0@1&#,63|$#,)! +3 f0 (10194|15@0@1&#,)! +3 f19 (10194|15@0@1&#,)! +3 f10229 (10194|15@0@1&#,)! +3 f0 (10194|15@0@1&#,)! +3 f19 (10194|15@0@1&#,)! +3 f10200 (10194|15@0@1&#,)! +3 f0 (10200|$#,)! +3 f19 (10200|$#,)! +3 f10200 (10200|$#,)! +3 f0 (10194|15@0@1&#,)! +3 f19 (10194|15@0@1&#,)! +3 f10200 (10194|15@0@1&#,)! +1 t10226|10226& +3 e!225{DUMP_NONE,DUMP_NAMES,DUMP_DEFINITIONS}! +0 s7250|& +3 ScppOptions{1117|@1|0@5@18&#in_fname,1117|@1|0@5@18&#out_fname,10258|@1|0@0@3&#map_list,2|@1|^#verbose,2|@1|^#cplusplus,2|@1|^#cplusplus_comments,5|@1|^#lang_asm,2|@1|^#for_lint,2|@1|^#chill,2|@1|^#put_out_comments,2|@1|^#no_trigraphs,2|@1|^#print_include_names,2|@1|^#pedantic_errors,2|@1|^#inhibit_warnings,2|@1|^#warn_comments,2|@1|^#warn_stringify,2|@1|^#warnings_are_errors,2|@1|^#no_output,2|@1|^#no_line_commands,4|@1|^#output_conditionals,4|@1|^#ignore_srcdir,2|@1|^#dollars_in_ident,2|@1|^#traditional,2|@1|^#c89,2|@1|^#pedantic,2|@1|^#done_initializing,10220|@1|0@0@17&#include,10220|@1|0@0@18&#first_bracket_include,10220|@1|0@0@18&#first_system_include,10220|@1|0@0@18@2@0#last_include,10220|@1|0@0@3&#after_include,10220|@1|0@0@18@2@0#last_after_include,10220|@1|0@0@3&#before_system,10220|@1|0@0@18@2@0#last_before_system,23|@1|0@0@3&#include_prefix,4|@1|^#inhibit_predefs,4|@1|^#no_standard_includes,4|@1|^#no_standard_cplusplus_includes,10260|@1|^#dump_macros,5|@1|^#debug_output,}! +3 f0 (10194|15@0@1&#,)! +3 f2 (10194|15@0@1&#,)! +3 f0 (10194|$#,)! +3 f2 (10194|$#,)! +3 enode_type{T_NONE,T_DEFINE,T_INCLUDE,T_INCLUDE_NEXT,T_IFDEF,T_IFNDEF,T_IF,T_ELSE,T_PRAGMA,T_ELIF,T_UNDEF,T_LINE,T_ERROR,T_WARNING,T_ENDIF,T_IDENT,T_SPECLINE,T_DATE,T_FILE,T_BASE_FILE,T_INCLUDE_LEVEL,T_VERSION,T_SIZE_TYPE,T_PTRDIFF_TYPE,T_WCHAR_TYPE,T_USER_LABEL_PREFIX_TYPE,T_REGISTER_PREFIX_TYPE,T_TIME,T_CONST,T_MACRO,T_DISABLED,T_SPEC_DEFINED,T_PCSTRING,T_UNUSED}! +0 s7285|& +0 s7286|& +0 s7287|& +0 s7288|-1 10271 -1 +1 t10270|10270& +3 Smacrodef{10271|@1|0@5@3&#defn,23|@1|0@3@18&#symnam,5|@1|^#symlen,}! +0 s7289|-1 10320 -1 +0 s7290|-1 10275 -1 +1 t10274|10274 10889 -1 +3 Sreflist{10275|@1|0@5@18&#next,2|@1|^#stringify,2|@1|^#raw_before,2|@1|^#raw_after,2|@1|^#rest_args,5|@1|^#nchars,5|@1|^#argno,}! +3 U!226{23|@1|0@5@3&#argnames,}! +0 s7291|& +3 Sdefinition{5|@1|^#nargs,63|@1|^#length,2|@1|^#predefined,23|@1|0@0@18&#expansion,9|@1|^#line,1117|@1|0@5@18@2@0#file,2|@1|^#noExpand,2|@1|^#rest_args,10275|@1|0@5@3&#pattern,10277|@1|^#args,}! +3 Sif_stack{10223|@1|0@5@3&#next,1117|@1|0@5@18@3@0#fname,5|@1|^#lineno,5|@1|^#if_succeeded,23|@1|0@5@18&#control_macro,10267|@1|^#type,}! +0 s7292|-1 10752 -1 +3 f0 (10200|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! +3 f1 (10200|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! +3 f0 (10194|$#,)! +3 f19 (10194|$#,)! +3 f10200 (10194|$#,)! +3 f0 (10194|$#,63|$#,)! +3 f1 (10194|$#,63|$#,)! +3 f0 (10194|$#,313|$#,)! +3 f5 (10194|$#,313|$#,)! +3 f0 (10194|$#,)! +3 f19 (10194|$#,)! +3 f10200 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +0 s7301|-1 10297 -1 +1 t10296|10296& +3 Sfile_name_list{10220|@1|0@5@17&#next,1117|@1|0@5@18&#fname,23|@1|0@5@18&#control_macro,2|@1|^#c_system_include_path,10297|@1|11@3@18@2@0#name_map,2|@1|^#got_name_map,}! +3 f0 (10194|15@0@1&#,10220|0@0@4&#,)! +3 f1 (10194|15@0@1&#,10220|0@0@4&#,)! +3 f0 (10194|$#,23|$#,)! +3 f1 (10194|$#,23|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|4@0@7&#,)! +3 f1 (10194|4@0@7&#,)! +3 f0 (10229|4@0@7&#,)! +3 f1 (10229|4@0@7&#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f5 (10194|$#,1117|0@5@7&#,)! +3 f0 (4|$#,)! +3 f2 (4|$#,)! +3 f0 (10194|$#,23|$#,1117|0@5@7&#,)! +3 f5 (10194|$#,23|$#,1117|0@5@7&#,)! +0 s7312|-1 10864 -1 +3 f0 (10194|$#,23|$#,5|$#,)! +3 f10317 (10194|$#,23|$#,5|$#,)! +1 t10273|10273& +3 Uhashval{5|@1|^#ival,23|@1|0@0@17&#cpval,10320|@1|0@0@17&#defn,}! +0 s7315|& +1 t10172|10172 10324 -1 +1 t10323|10323& +3 Shashnode{10323|@1|0@5@2&#next,10323|@1|0@5@18&#prev,10324|@1|0@0@18&#bucket_hdr,10267|@1|^#type,5|@1|^#length,1117|@1|0@5@3&#name,10322|@1|^#value,}! +3 f0 (10221|0@0@19@2@0#,)! +3 f1 (10221|0@0@19@2@0#,)! +3 f0 (23|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f19 (23|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f10221 (23|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (23|$#,5|$#,5|$#,)! +3 f19 (23|$#,5|$#,5|$#,)! +1 t10173|10173& +3 f10335 (23|$#,5|$#,5|$#,)! +3 f0 (23|$#,5|$#,5|$#,)! +3 f19 (23|$#,5|$#,5|$#,)! +3 f10335 (23|$#,5|$#,5|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (23|$#,5|$#,5|$#,)! +3 f5 (23|$#,5|$#,5|$#,)! +3 f0 (23|$#,5|$#,10271|0@0@2&#,5|$#,)! +3 f19 (23|$#,5|$#,10271|0@0@2&#,5|$#,)! +3 f10221 (23|$#,5|$#,10271|0@0@2&#,5|$#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f1 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,1117|0@5@19@3@0#,)! +3 f1 (10194|$#,1117|0@5@19@3@0#,)! +3 f0 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@19@3@0#,)! +3 f1 (10194|$#,1117|0@5@19@3@0#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@19@3@0#,)! +3 f1 (10194|$#,1117|0@5@19@3@0#,)! +3 f0 (10194|$#,9|$#,9|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,9|$#,9|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f1 (10194|$#,1117|0@5@7&#,)! +3 f0 (5|$#,854|$#,)! +3 f5 (5|$#,854|$#,)! +3 f0 (5|$#,)! +3 f1 (5|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f5 ()! +3 f0 (211|^#,)! +3 f1 (211|^#,)! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f5 ()! +3 f0 ()! +3 f1 ()! +1 t10170|10170& +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@18&#,1117|0@5@18&#,)! +3 f5 (1117|0@5@18&#,1117|0@5@18&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 ()! +3 f2 ()! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (10194|$#,)! +3 f9 (10194|$#,)! +3 e!227{OSD_FILEFOUND,OSD_FILENOTFOUND,OSD_PATHTOOLONG}! +0 s7352|& +0 s7353|& +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! +3 f10412 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! +3 f10412 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|@5|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|@5|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1287|4@0@7&#,)! +3 f10412 (1117|0@5@7&#,1287|4@0@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! 3 f0 ()! 3 f5 ()! -3 f0 (8029|$#,5|$#,)! -3 f1 (8029|$#,5|$#,)! +3 f0 (10194|$#,5|$#,)! +3 f1 (10194|$#,5|$#,)! 3 f0 (23|$#,)! 3 f5 (23|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,8041|$#,)! -3 f8010 (8029|$#,8041|$#,)! -3 f0 (8029|$#,23|$#,)! -3 f2 (8029|$#,23|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,10206|$#,)! +3 f10175 (10194|$#,10206|$#,)! +3 f0 (10194|$#,23|$#,)! +3 f2 (10194|$#,23|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 2 F0/256|0& 2 F2/256|2& 2 F0/256|0& @@ -8302,2122 +10463,2197 @@ 2 F2/256|2& 2 F0/256|0& 2 F2/256|2& -3 f0 (8029|15@0@1&#,)! -3 f19 (8029|15@0@1&#,)! -3 f8035 (8029|15@0@1&#,)! -3 f0 (8029|$#,5|$#,)! -3 f5 (8029|$#,5|$#,)! -3 f0 (8035|@7|$#,)! -3 f5 (8035|@7|$#,)! -3 f0 (8029|@7|$#,23|$#,63|@7|$#,)! -3 f1 (8029|@7|$#,23|$#,63|@7|$#,)! -3 f0 (8029|$#,4|$#,)! -3 f1 (8029|$#,4|$#,)! -3 f0 (8029|@7|$#,4|$#,)! -3 f1 (8029|@7|$#,4|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|@7|$#,)! -3 f1 (8029|@7|$#,)! -3 f0 (8029|$#,63|$#,)! -3 f1 (8029|$#,63|$#,)! -3 f0 (8029|$#,)! -3 f2 (8029|$#,)! -3 f0 (8029|$#,)! -3 f19 (8029|$#,)! -3 f23 (8029|$#,)! -3 f0 (8035|$#,5|$#,)! -3 f1 (8035|$#,5|$#,)! -3 f0 (8029|$#,5|$#,)! -3 f1 (8029|$#,5|$#,)! -3 f0 (8029|$#,)! -3 f5 (8029|$#,)! -3 f0 (8029|$#,)! -3 f5 (8029|$#,)! -3 f0 (8041|4@0@7&#,8029|$#,)! -3 f1 (8041|4@0@7&#,8029|$#,)! -3 f0 (8041|$#,)! -3 f1 (8041|$#,)! -3 f0 (8041|$#,8029|$#,)! -3 f1 (8041|$#,8029|$#,)! -3 f0 (8041|$#,8029|$#,)! -3 f1 (8041|$#,8029|$#,)! -3 f0 (8035|@7|$#,)! -3 f19 (8035|@7|$#,)! -3 f23 (8035|@7|$#,)! -3 f0 (8029|$#,23|0@5@17&#,63|$#,)! -3 f19 (8029|$#,23|0@5@17&#,63|$#,)! -3 f8035 (8029|$#,23|0@5@17&#,63|$#,)! -3 f0 (8029|$#,8055|0@0@4&#,8055|0@0@18&#,)! -3 f1 (8029|$#,8055|0@0@4&#,8055|0@0@18&#,)! -3 f0 (8035|$#,8029|$#,)! -3 f1 (8035|$#,8029|$#,)! -3 f0 (8029|$#,)! -3 f8010 (8029|$#,)! -3 f0 (8035|$#,8029|$#,)! -3 f1 (8035|$#,8029|$#,)! -3 f0 (8035|$#,8029|$#,)! -3 f1 (8035|$#,8029|$#,)! -3 f0 (8029|$#,)! -3 f5 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -1 t656|656& +3 f0 (10194|15@0@1&#,)! +3 f19 (10194|15@0@1&#,)! +3 f10200 (10194|15@0@1&#,)! +3 f0 (10194|$#,5|$#,)! +3 f5 (10194|$#,5|$#,)! +3 f0 (10200|@7|$#,)! +3 f5 (10200|@7|$#,)! +3 f0 (10194|@7|$#,23|$#,63|@7|$#,)! +3 f1 (10194|@7|$#,23|$#,63|@7|$#,)! +3 f0 (10194|$#,4|$#,)! +3 f1 (10194|$#,4|$#,)! +3 f0 (10194|@7|$#,4|$#,)! +3 f1 (10194|@7|$#,4|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|@7|$#,)! +3 f1 (10194|@7|$#,)! +3 f0 (10194|$#,63|$#,)! +3 f1 (10194|$#,63|$#,)! +3 f0 (10194|$#,)! +3 f2 (10194|$#,)! +3 f0 (10194|$#,)! +3 f19 (10194|$#,)! +3 f23 (10194|$#,)! +3 f0 (10200|$#,5|$#,)! +3 f1 (10200|$#,5|$#,)! +3 f0 (10194|$#,5|$#,)! +3 f1 (10194|$#,5|$#,)! +3 f0 (10194|$#,)! +3 f5 (10194|$#,)! +3 f0 (10194|$#,)! +3 f5 (10194|$#,)! +3 f0 (10206|4@0@7&#,10194|$#,)! +3 f1 (10206|4@0@7&#,10194|$#,)! +3 f0 (10206|$#,)! +3 f1 (10206|$#,)! +3 f0 (10206|$#,10194|$#,)! +3 f1 (10206|$#,10194|$#,)! +3 f0 (10206|$#,10194|$#,)! +3 f1 (10206|$#,10194|$#,)! +3 f0 (10200|@7|$#,)! +3 f19 (10200|@7|$#,)! +3 f23 (10200|@7|$#,)! +3 f0 (10194|$#,23|0@5@17&#,63|$#,)! +3 f19 (10194|$#,23|0@5@17&#,63|$#,)! +3 f10200 (10194|$#,23|0@5@17&#,63|$#,)! +3 f0 (10194|$#,10220|0@0@4&#,10220|0@0@18&#,)! +3 f1 (10194|$#,10220|0@0@4&#,10220|0@0@18&#,)! +3 f0 (10200|$#,10194|$#,)! +3 f1 (10200|$#,10194|$#,)! +3 f0 (10194|$#,)! +3 f10175 (10194|$#,)! +3 f0 (10200|$#,10194|$#,)! +3 f1 (10200|$#,10194|$#,)! +3 f0 (10200|$#,10194|$#,)! +3 f1 (10200|$#,10194|$#,)! +3 f0 (10194|$#,)! +3 f5 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +1 t657|657& 1 t63|63& -3 f0 (5|$#,8360|4@0@7&#,8361|4@0@7&#,)! -3 f5 (5|$#,8360|4@0@7&#,8361|4@0@7&#,)! +3 f0 (5|$#,10521|4@0@7&#,10522|4@0@7&#,)! +3 f5 (5|$#,10521|4@0@7&#,10522|4@0@7&#,)! 3 f0 (5|$#,23|4@0@7&#,5|$#,)! 3 f5 (5|$#,23|4@0@7&#,5|$#,)! -3 f0 (8035|0@5@7&#,)! -3 f2 (8035|0@5@7&#,)! -3 f0 (8029|$#,23|$#,)! -3 f1 (8029|$#,23|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8222|$#,)! -3 f1 (8222|$#,)! +3 f0 (10200|0@5@7&#,)! +3 f2 (10200|0@5@7&#,)! +3 f0 (10194|$#,23|$#,)! +3 f1 (10194|$#,23|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10387|$#,)! +3 f1 (10387|$#,)! 3 C1.5/1|! -3 f0 (8029|$#,5|$#,989|0@5@7&#,2|$#,8055|0@5@18&#,)! -3 f5 (8029|$#,5|$#,989|0@5@7&#,2|$#,8055|0@5@18&#,)! -3 f8374 (8029|$#,5|$#,989|0@5@7&#,2|$#,8055|0@5@18&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f1 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,5|$#,8102|$#,23|0@5@18&#,)! -3 f1 (8029|$#,5|$#,8102|$#,23|0@5@18&#,)! -3 f0 (8029|$#,23|$#,5|$#,)! -3 f9 (8029|$#,23|$#,5|$#,)! -3 f0 (8029|$#,5|$#,)! -3 f1 (8029|$#,5|$#,)! +3 f0 (10194|$#,5|$#,1117|0@5@7&#,2|$#,10220|0@5@18&#,)! +3 f5 (10194|$#,5|$#,1117|0@5@7&#,2|$#,10220|0@5@18&#,)! +3 f10535 (10194|$#,5|$#,1117|0@5@7&#,2|$#,10220|0@5@18&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f1 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,5|$#,10267|$#,23|0@5@18&#,)! +3 f1 (10194|$#,5|$#,10267|$#,23|0@5@18&#,)! +3 f0 (10194|$#,23|$#,5|$#,)! +3 f9 (10194|$#,23|$#,5|$#,)! +3 f0 (10194|$#,5|$#,)! +3 f1 (10194|$#,5|$#,)! 3 f0 (2|$#,23|$#,5|$#,23|$#,5|$#,2|$#,)! 3 f2 (2|$#,23|$#,5|$#,23|$#,5|$#,2|$#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f2 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f2 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f19 (8029|$#,989|0@5@7&#,)! -3 f8132 (8029|$#,989|0@5@7&#,)! -3 f0 (5|$#,210|$#,)! -3 f989 (5|$#,210|$#,)! -3 f0 (8029|$#,989|0@5@17&#,8055|0@5@7&#,)! -3 f5 (8029|$#,989|0@5@17&#,8055|0@5@7&#,)! -3 f0 (8029|$#,23|0@0@17&#,63|$#,8056|0@0@18&#,)! -3 f1 (8029|$#,23|0@0@17&#,63|$#,8056|0@0@18&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f2 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f2 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f19 (10194|$#,1117|0@5@7&#,)! +3 f10297 (10194|$#,1117|0@5@7&#,)! +3 f0 (5|$#,211|$#,)! +3 f1117 (5|$#,211|$#,)! +3 f0 (10194|$#,1117|0@5@17&#,10220|0@5@7&#,)! +3 f5 (10194|$#,1117|0@5@17&#,10220|0@5@7&#,)! +3 f0 (10194|$#,23|0@0@17&#,63|$#,10221|0@0@18&#,)! +3 f1 (10194|$#,23|0@0@17&#,63|$#,10221|0@0@18&#,)! 3 efile_change_code{same_file,enter_file,leave_file}! -0 s7048|& +0 s7382|& 3 ?! -3 f8403 ()! -3 f5 ()^8406 -1 t8405|8405& -3 Sdirective{5|@1|^#length,!8406@6@5@1@0@0$$@0#func,989|@1|0@5@18@3@0#name,8102|@1|^#type,2|@1|^#command_reads_line,2|@1|^#traditional_comments,2|@1|^#pass_thru,}! -0 s6931|-1 8409 8441 -1 t8408|8408& -3 f0 (8029|$#,8409|0@5@7&#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|0@5@7&#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|0@5@7&#,23|$#,23|$#,2|$#,)! -3 f5 (8029|$#,8409|0@5@7&#,23|$#,23|$#,2|$#,)! -3 f0 (8029|$#,8409|0@5@7&#,)! -3 f5 (8029|$#,8409|0@5@7&#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 Sdefault_include{989|@1|0@5@18@3@0#fname,5|@1|^#cplusplus,5|@1|^#cxx_aware,}! -0 s6825|-1 8637 8440 -2 y8439|8439& -2 y8408|8408& -3 f0 (8055|$#,)! -3 f989 (8055|$#,)! -3 f0 (8222|$#,)! -3 f1 (8222|$#,)! +3 f10564 ()! +3 f5 ()^10567 +1 t10566|10566& +3 Sdirective{5|@1|^#length,!10567@6@5@1@0@0$$@0#func,1117|@1|0@5@18@3@0#name,10267|@1|^#type,2|@1|^#command_reads_line,2|@1|^#traditional_comments,2|@1|^#pass_thru,}! +0 s7383|-1 10570 10602 +1 t10569|10569& +3 f0 (10194|$#,10570|0@5@7&#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|0@5@7&#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|0@5@7&#,23|$#,23|$#,2|$#,)! +3 f5 (10194|$#,10570|0@5@7&#,23|$#,23|$#,2|$#,)! +3 f0 (10194|$#,10570|0@5@7&#,)! +3 f5 (10194|$#,10570|0@5@7&#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 Sdefault_include{1117|@1|0@5@18@3@0#fname,5|@1|^#cplusplus,5|@1|^#cxx_aware,}! +0 s7385|-1 10798 10601 +2 y10600|10600& +2 y10569|10569& +3 f0 (10220|$#,)! +3 f1117 (10220|$#,)! +3 f0 (10387|$#,)! +3 f1 (10387|$#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -3 f0 (8029|$#,23|$#,)! -3 f1 (8029|$#,23|$#,)! -3 f0 (8029|$#,63|$#,)! -3 f1 (8029|$#,63|$#,)! -3 f0 (8029|$#,23|$#,)! -3 f1 (8029|$#,23|$#,)! -3 f0 (8029|$#,8055|0@0@4&#,8055|0@0@18&#,)! -3 f1 (8029|$#,8055|0@0@4&#,8055|0@0@18&#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|15@0@1&#,8055|0@0@4&#,)! -3 f1 (8029|15@0@1&#,8055|0@0@4&#,)! -3 f0 (8029|$#,23|$#,)! -3 f1 (8029|$#,23|$#,)! -3 f0 (8064|4@0@7&#,)! -3 f1 (8064|4@0@7&#,)! -3 f0 (8029|$#,)! -3 f8010 (8029|$#,)! -3 f0 (8035|$#,8029|$#,)! -3 f1 (8035|$#,8029|$#,)! -3 f0 (8035|$#,8029|$#,)! -3 f1 (8035|$#,8029|$#,)! -3 f0 (8035|$#,8029|$#,)! -3 f1 (8035|$#,8029|$#,)! -3 f0 (8029|$#,28|0@5@7&#,)! -3 f5 (8029|$#,28|0@5@7&#,)! +3 f0 (10194|$#,23|$#,)! +3 f1 (10194|$#,23|$#,)! +3 f0 (10194|$#,63|$#,)! +3 f1 (10194|$#,63|$#,)! +3 f0 (10194|$#,23|$#,)! +3 f1 (10194|$#,23|$#,)! +3 f0 (10194|$#,10220|0@0@4&#,10220|0@0@18&#,)! +3 f1 (10194|$#,10220|0@0@4&#,10220|0@0@18&#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|15@0@1&#,10220|0@0@4&#,)! +3 f1 (10194|15@0@1&#,10220|0@0@4&#,)! +3 f0 (10194|$#,23|$#,)! +3 f1 (10194|$#,23|$#,)! +3 f0 (10229|4@0@7&#,)! +3 f1 (10229|4@0@7&#,)! +3 f0 (10194|$#,)! +3 f10175 (10194|$#,)! +3 f0 (10200|$#,10194|$#,)! +3 f1 (10200|$#,10194|$#,)! +3 f0 (10200|$#,10194|$#,)! +3 f1 (10200|$#,10194|$#,)! +3 f0 (10200|$#,10194|$#,)! +3 f1 (10200|$#,10194|$#,)! +3 f0 (10194|$#,28|0@5@7&#,)! +3 f5 (10194|$#,28|0@5@7&#,)! 3 C1.5/1|! -3 f0 (8029|$#,)! -3 f5 (8029|$#,)! -3 f8474 (8029|$#,)! -3 f8048 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,)! -3 f5 (8029|$#,)! -3 f0 (23|$#,23|$#,8029|$#,8409|$#,)! -3 f1 (23|$#,23|$#,8029|$#,8409|$#,)! -3 f0 (8029|$#,23|$#,23|$#,5|$#,8044|0@5@7&#,)! -3 f19 (8029|$#,23|$#,23|$#,5|$#,8044|0@5@7&#,)! -3 f8155 (8029|$#,23|$#,23|$#,5|$#,8044|0@5@7&#,)! -3 f0 (23|$#,23|$#,8029|$#,2|$#,2|$#,)! -3 f8104 (23|$#,23|$#,8029|$#,2|$#,2|$#,)! -3 f0 (8029|$#,23|$#,989|0@5@7&#,)! -3 f5 (8029|$#,23|$#,989|0@5@7&#,)! -3 f0 (8155|$#,8155|$#,)! -3 f2 (8155|$#,8155|$#,)! +3 f0 (10194|$#,)! +3 f5 (10194|$#,)! +3 f10635 (10194|$#,)! +3 f10213 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,)! +3 f5 (10194|$#,)! +3 f0 (23|$#,23|$#,10194|$#,10570|$#,)! +3 f1 (23|$#,23|$#,10194|$#,10570|$#,)! +3 f0 (10194|$#,23|$#,23|$#,5|$#,10209|0@5@7&#,)! +3 f19 (10194|$#,23|$#,23|$#,5|$#,10209|0@5@7&#,)! +3 f10320 (10194|$#,23|$#,23|$#,5|$#,10209|0@5@7&#,)! +3 f0 (23|$#,23|$#,10194|$#,2|$#,2|$#,)! +3 f10269 (23|$#,23|$#,10194|$#,2|$#,2|$#,)! +3 f0 (10194|$#,23|$#,1117|0@5@7&#,)! +3 f5 (10194|$#,23|$#,1117|0@5@7&#,)! +3 f0 (10320|$#,10320|$#,)! +3 f2 (10320|$#,10320|$#,)! 3 f0 (2|$#,23|$#,5|$#,23|$#,5|$#,2|$#,)! 3 f2 (2|$#,23|$#,5|$#,23|$#,5|$#,2|$#,)! -3 f0 (8029|$#,8409|0@5@7&#,23|$#,23|$#,2|$#,)! -3 f5 (8029|$#,8409|0@5@7&#,23|$#,23|$#,2|$#,)! -3 f0 (8029|$#,8409|0@5@7&#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|0@5@7&#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|0@5@7&#,23|$#,23|$#,2|$#,)! +3 f5 (10194|$#,10570|0@5@7&#,23|$#,23|$#,2|$#,)! +3 f0 (10194|$#,10570|0@5@7&#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|0@5@7&#,23|$#,23|$#,)! 3 Sargdata{9|@1|^#raw,63|@1|^#expanded,63|@1|^#stringified,5|@1|^#raw_length,5|@1|^#expand_length,5|@1|^#stringified_length,2|@1|^#newlines,5|@1|^#use_count,}! -0 s6937|-1 8549 -1 -3 f0 (8029|$#,23|$#,63|$#,)! -3 f19 (8029|$#,23|0@5@17&#,63|$#,)! -3 f8035 (8029|$#,23|0@5@17&#,63|$#,)! -3 f0 (8029|$#,)! -3 f19 (8029|$#,)! -3 f8035 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,23|$#,63|$#,)! -3 f1 (8029|$#,23|$#,63|$#,)! +0 s7386|-1 10710 -1 +3 f0 (10194|$#,23|$#,63|$#,)! +3 f19 (10194|$#,23|0@5@17&#,63|$#,)! +3 f10200 (10194|$#,23|0@5@17&#,63|$#,)! +3 f0 (10194|$#,)! +3 f19 (10194|$#,)! +3 f10200 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,23|$#,63|$#,)! +3 f1 (10194|$#,23|$#,63|$#,)! 3 f0 (23|$#,23|$#,24|$#,24|$#,)! 3 f1 (23|$#,23|$#,24|$#,24|$#,)! -3 f0 (8035|$#,)! -3 f1 (8035|$#,)! -3 f0 (8035|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! -3 f1 (8035|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! -3 f0 (8029|$#,)! -3 f19 (8029|$#,)! -3 f8035 (8029|$#,)! +3 f0 (10200|$#,)! +3 f1 (10200|$#,)! +3 f0 (10200|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! +3 f1 (10200|0@5@7&#,24|4@0@7&#,24|4@5@7&#,)! +3 f0 (10194|$#,)! +3 f19 (10194|$#,)! +3 f10200 (10194|$#,)! 3 f0 (23|$#,23|$#,)! 3 f9 (23|$#,23|$#,)! -3 f0 (8029|$#,2|$#,8402|$#,)! -3 f1 (8029|$#,2|$#,8402|$#,)! -3 f0 (8029|$#,5|$#,)! -3 f8010 (8029|$#,5|$#,)! +3 f0 (10194|$#,2|$#,10563|$#,)! +3 f1 (10194|$#,2|$#,10563|$#,)! +3 f0 (10194|$#,5|$#,)! +3 f10175 (10194|$#,5|$#,)! 3 f0 (23|$#,5|$#,)! 3 f5 (23|$#,5|$#,)! -3 f0 (8029|@5|$#,)! -3 f19 (8029|@5|$#,)! -3 f442 (8029|@5|$#,)! -2 y1067|1067& -3 f0 (8056|$#,8029|$#,)! -3 f1 (8056|$#,8029|$#,)! -3 f0 (8029|$#,23|$#,)! -3 f1 (8029|$#,23|$#,)! -3 f0 (23|0@0@19@3@0#,991|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f1 (23|0@0@19@3@0#,991|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f0 (23|0@0@19@3@0#,991|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f1 (23|0@0@19@3@0#,991|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! +3 f0 (10194|@5|$#,)! +3 f19 (10194|@5|$#,)! +3 f443 (10194|@5|$#,)! +2 y1164|1164& +3 f0 (10221|$#,10194|$#,)! +3 f1 (10221|$#,10194|$#,)! +3 f0 (10194|$#,23|$#,)! +3 f1 (10194|$#,23|$#,)! +3 f0 (23|0@0@19@3@0#,1119|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f1 (23|0@0@19@3@0#,1119|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f0 (23|0@0@19@3@0#,1119|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f1 (23|0@0@19@3@0#,1119|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! 3 f0 (4|$#,4|$#,)! 3 f2 (4|$#,4|$#,)! -3 f0 (8029|$#,8056|0@0@18&#,)! -3 f1 (8029|$#,8056|0@0@18&#,)! -1 t8503|8503& -3 f0 (8029|$#,23|0@0@17&#,63|$#,8056|0@0@18&#,)! -3 f1 (8029|$#,23|0@0@17&#,63|$#,8056|0@0@18&#,)! -3 f0 (8029|$#,)! -3 f8010 (8029|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10221|0@0@18&#,)! +3 f1 (10194|$#,10221|0@0@18&#,)! +1 t10664|10664& +3 f0 (10194|$#,23|0@0@17&#,63|$#,10221|0@0@18&#,)! +3 f1 (10194|$#,23|0@0@17&#,63|$#,10221|0@0@18&#,)! +3 f0 (10194|$#,)! +3 f10175 (10194|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! 2 F0/1|0& -2 F8054/1|8054& -3 f0 (8029|$#,989|0@5@7&#,)! -3 f2 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f2 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,23|@5|$#,23|$#,23|$#,5|$#,)! -3 f19 (8029|$#,23|@5|$#,23|$#,23|$#,5|$#,)! -3 f23 (8029|$#,23|@5|$#,23|$#,23|$#,5|$#,)! -3 f0 (8029|$#,8409|0@5@7&#,)! -3 f5 (8029|$#,8409|0@5@7&#,)! +2 F10219/1|10219& +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f2 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f2 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,23|@5|$#,23|$#,23|$#,5|$#,)! +3 f19 (10194|$#,23|@5|$#,23|$#,23|$#,5|$#,)! +3 f23 (10194|$#,23|@5|$#,23|$#,23|$#,5|$#,)! +3 f0 (10194|$#,10570|0@5@7&#,)! +3 f5 (10194|$#,10570|0@5@7&#,)! 2 F0/0|0& 2 F19/0|19& -2 F8056/0|8056& -1 t8056|8056& -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,23|$#,5|$#,)! -3 f9 (8029|$#,23|$#,5|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,5|$#,8102|$#,23|0@5@18&#,)! -3 f1 (8029|$#,5|$#,8102|$#,23|0@5@18&#,)! -1 t8116|8116& -3 f0 (8029|$#,5|$#,)! -3 f1 (8029|$#,5|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f5 (8029|$#,8409|$#,23|$#,23|$#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f1 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,)! -3 f8010 (8029|$#,)! -3 f0 (8029|$#,5|$#,)! -3 f1 (8029|$#,5|$#,)! -3 Sfile_name_map{8132|@1|0@0@3&#map_next,989|@1|0@5@3&#map_from,989|@1|0@5@3&#map_to,}! -3 f0 (5|$#,210|$#,)! -3 f989 (5|$#,210|$#,)! -3 Sfile_name_map_list{8093|@1|0@0@3&#map_list_next,989|@1|0@5@3&#map_list_name,8132|@1|0@0@3&#map_list_map,}! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f19 (8029|$#,989|0@5@7&#,)! -3 f8132 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,989|0@5@17&#,8055|0@5@7&#,)! -3 f5 (8029|$#,989|0@5@17&#,8055|0@5@7&#,)! -3 f0 (8029|$#,5|$#,989|0@5@7&#,2|$#,8055|0@5@18&#,)! -3 f5 (8029|$#,5|$#,989|0@5@7&#,2|$#,8055|0@5@18&#,)! -3 f8374 (8029|$#,5|$#,989|0@5@7&#,2|$#,8055|0@5@18&#,)! -3 f0 (8029|4@0@7&#,)! -3 f1 (8029|4@0@7&#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (5|$#,8360|4@0@7&#,8361|4@0@7&#,)! -3 f5 (5|$#,8360|4@0@7&#,8361|4@0@7&#,)! +2 F10221/0|10221& +1 t10221|10221& +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,23|$#,5|$#,)! +3 f9 (10194|$#,23|$#,5|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,5|$#,10267|$#,23|0@5@18&#,)! +3 f1 (10194|$#,5|$#,10267|$#,23|0@5@18&#,)! +1 t10281|10281& +3 f0 (10194|$#,5|$#,)! +3 f1 (10194|$#,5|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f5 (10194|$#,10570|$#,23|$#,23|$#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f1 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,)! +3 f10175 (10194|$#,)! +3 f0 (10194|$#,5|$#,)! +3 f1 (10194|$#,5|$#,)! +3 Sfile_name_map{10297|@1|0@0@3&#map_next,1117|@1|0@5@3&#map_from,1117|@1|0@5@3&#map_to,}! +3 f0 (5|$#,211|$#,)! +3 f1117 (5|$#,211|$#,)! +3 Sfile_name_map_list{10258|@1|0@0@3&#map_list_next,1117|@1|0@5@3&#map_list_name,10297|@1|0@0@3&#map_list_map,}! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f19 (10194|$#,1117|0@5@7&#,)! +3 f10297 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,1117|0@5@17&#,10220|0@5@7&#,)! +3 f5 (10194|$#,1117|0@5@17&#,10220|0@5@7&#,)! +3 f0 (10194|$#,5|$#,1117|0@5@7&#,2|$#,10220|0@5@18&#,)! +3 f5 (10194|$#,5|$#,1117|0@5@7&#,2|$#,10220|0@5@18&#,)! +3 f10535 (10194|$#,5|$#,1117|0@5@7&#,2|$#,10220|0@5@18&#,)! +3 f0 (10194|4@0@7&#,)! +3 f1 (10194|4@0@7&#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (5|$#,10521|4@0@7&#,10522|4@0@7&#,)! +3 f5 (5|$#,10521|4@0@7&#,10522|4@0@7&#,)! 3 f0 (5|$#,23|4@0@7&#,5|$#,)! 3 f5 (5|$#,23|4@0@7&#,5|$#,)! -3 f0 (8041|4@0@7&#,8029|$#,)! -3 f1 (8041|4@0@7&#,8029|$#,)! -3 f0 (8041|$#,)! -3 f1 (8041|$#,)! -1 t8041|8041& -3 f0 (8041|$#,8029|$#,)! -3 f1 (8041|$#,8029|$#,)! -3 f0 (8041|$#,8029|$#,)! -3 f1 (8041|$#,8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -1 t8439|8439& -3 f0 (8029|$#,989|0@5@7&#,)! -3 f5 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,)! -3 f19 (8029|15@0@1&#,)! -3 f8035 (8029|15@0@1&#,)! -3 f0 (8029|$#,)! -3 f19 (8029|15@0@1&#,)! -3 f8035 (8029|15@0@1&#,)! -3 f0 (8035|$#,)! -3 f19 (8035|@7|$#,)! -3 f23 (8035|@7|$#,)! -3 f0 (8035|$#,)! -3 f5 (8035|$#,)! -3 f0 (8035|0@5@7&#,)! -3 f2 (8035|0@5@7&#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,23|$#,)! -3 f2 (8029|$#,23|$#,)! -3 f0 (8029|$#,8041|$#,)! -3 f8010 (8029|$#,8041|$#,)! +3 f0 (10206|4@0@7&#,10194|$#,)! +3 f1 (10206|4@0@7&#,10194|$#,)! +3 f0 (10206|$#,)! +3 f1 (10206|$#,)! +1 t10206|10206& +3 f0 (10206|$#,10194|$#,)! +3 f1 (10206|$#,10194|$#,)! +3 f0 (10206|$#,10194|$#,)! +3 f1 (10206|$#,10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +1 t10600|10600& +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f5 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,)! +3 f19 (10194|15@0@1&#,)! +3 f10200 (10194|15@0@1&#,)! +3 f0 (10194|$#,)! +3 f19 (10194|15@0@1&#,)! +3 f10200 (10194|15@0@1&#,)! +3 f0 (10200|$#,)! +3 f19 (10200|@7|$#,)! +3 f23 (10200|@7|$#,)! +3 f0 (10200|$#,)! +3 f5 (10200|$#,)! +3 f0 (10200|0@5@7&#,)! +3 f2 (10200|0@5@7&#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,23|$#,)! +3 f2 (10194|$#,23|$#,)! +3 f0 (10194|$#,10206|$#,)! +3 f10175 (10194|$#,10206|$#,)! 3 f0 (23|$#,)! 3 f5 (23|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (8029|$#,5|$#,)! -3 f5 (8029|$#,5|$#,)! -3 f0 (8035|$#,)! -3 f19 (8035|$#,)! -3 f8035 (8035|$#,)! -3 f0 (8035|$#,5|$#,)! -3 f1 (8035|$#,5|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (10194|$#,5|$#,)! +3 f5 (10194|$#,5|$#,)! +3 f0 (10200|$#,)! +3 f19 (10200|$#,)! +3 f10200 (10200|$#,)! +3 f0 (10200|$#,5|$#,)! +3 f1 (10200|$#,5|$#,)! 3 f0 (5|@7|$#,5|$#,5|$#,)! 3 f2 (5|@7|$#,5|$#,5|$#,)! -3 f0 (8029|$#,)! -3 f8152 (8029|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,9|$#,2|$#,63|$#,)! -3 f9 (8029|$#,9|$#,2|$#,63|$#,)! +3 f0 (10194|$#,)! +3 f10317 (10194|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,9|$#,2|$#,63|$#,)! +3 f9 (10194|$#,9|$#,2|$#,63|$#,)! 3 f0 (9|$#,2|$#,10|$#,)! 3 f9 (9|$#,2|$#,10|$#,)! 3 Soperation{7|@1|^#op,4|@1|11@0@0&#rprio,4|@1|11@0@0&#flags,2|@1|11@0@0&#unsignedp,9|@1|11@0@0&#value,}! -3 f0 (8029|$#,23|$#,5|$#,)! -3 f8152 (8029|$#,23|$#,5|$#,)! +3 f0 (10194|$#,23|$#,5|$#,)! +3 f10317 (10194|$#,23|$#,5|$#,)! 3 Stoken{23|@1|0@5@18@3@0#operator,5|@1|^#token,}! -0 s6786|-1 8688 8685 -2 y8684|8684& -3 f0 (8029|$#,)! -3 f8152 (8029|$#,)! -1 t8684|8684& +0 s7423|-1 10849 10846 +2 y10845|10845& +3 f0 (10194|$#,)! +3 f10317 (10194|$#,)! +1 t10845|10845& 2 F0/0|0& 2 F4/0|4& -3 f0 (8029|$#,312|$#,)! -3 f5 (8029|$#,312|$#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,9|$#,2|$#,63|$#,)! -3 f9 (8029|$#,9|$#,2|$#,63|$#,)! +3 f0 (10194|$#,313|$#,)! +3 f5 (10194|$#,313|$#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,9|$#,2|$#,63|$#,)! +3 f9 (10194|$#,9|$#,2|$#,63|$#,)! 3 f0 (9|$#,2|$#,10|$#,)! 3 f9 (9|$#,2|$#,10|$#,)! -3 f0 (8029|$#,)! -3 f9 (8029|$#,)! +3 f0 (10194|$#,)! +3 f9 (10194|$#,)! 2 F0/0|0& -2 F8152/0|8152& -1 t8152|8152& -0 s339|-1 8720 -1 +2 F10317/0|10317& +1 t10317|10317& +0 s7440|-1 10881 -1 2 F0/0|0& -2 F8704/0|8704& +2 F10865/0|10865& 2 F0/0|0& -2 F8704/0|8704& -3 f0 (8056|0@5@2&#,)! -3 f1 (8056|0@5@2&#,)! +2 F10865/0|10865& +3 f0 (10221|0@5@2&#,)! +3 f1 (10221|0@5@2&#,)! 3 f0 (6|$#,4|$#,)! 3 f6 (6|$#,4|$#,)! 3 f0 (6|$#,)! 3 f6 (6|$#,)! -3 f0 (8056|0@5@7&#,8570|0@0@18&#,8056|15@5@18&#,)! -3 f19 (8056|0@5@7&#,8570|0@0@18&#,8056|15@5@18&#,)! -3 f8056 (8056|0@5@7&#,8570|0@0@18&#,8056|15@5@18&#,)! +3 f0 (10221|0@5@7&#,10731|0@0@18&#,10221|15@5@18&#,)! +3 f19 (10221|0@5@7&#,10731|0@0@18&#,10221|15@5@18&#,)! +3 f10221 (10221|0@5@7&#,10731|0@0@18&#,10221|15@5@18&#,)! 3 f0 ()! 3 f1 ()! -1 t8704|8704& +1 t10865|10865& 3 f0 ()! 3 f1 ()! -3 f0 (8056|0@5@2&#,)! -3 f1 (8056|0@5@2&#,)! -3 f0 (8056|$#,8570|$#,8056|0@0@18&#,)! -3 f19 (8056|0@5@7&#,8570|0@0@18&#,8056|15@5@18&#,)! -3 f8056 (8056|0@5@7&#,8570|0@0@18&#,8056|15@5@18&#,)! -1 t8110|8110& +3 f0 (10221|0@5@2&#,)! +3 f1 (10221|0@5@2&#,)! +3 f0 (10221|$#,10731|$#,10221|0@0@18&#,)! +3 f19 (10221|0@5@7&#,10731|0@0@18&#,10221|15@5@18&#,)! +3 f10221 (10221|0@5@7&#,10731|0@0@18&#,10221|15@5@18&#,)! +1 t10275|10275& 3 f0 (23|$#,5|$#,5|$#,)! 3 f5 (23|$#,5|$#,5|$#,)! 3 f0 (23|$#,5|$#,5|$#,)! 3 f19 (23|$#,5|$#,5|$#,)! -3 f8056 (23|$#,5|$#,5|$#,)! +3 f10221 (23|$#,5|$#,5|$#,)! 3 f0 (23|$#,5|$#,5|$#,)! 3 f19 (23|$#,5|$#,5|$#,)! -3 f8056 (23|$#,5|$#,5|$#,)! -3 f0 (8056|0@0@19@2@0#,)! -3 f1 (8056|0@0@19@2@0#,)! -3 f0 (23|$#,5|$#,8102|$#,5|$#,23|$#,5|$#,)! -3 f19 (23|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f8056 (23|$#,5|$#,8102|$#,5|$#,23|0@5@2&#,5|$#,)! -3 f0 (23|$#,5|$#,8106|$#,5|$#,)! -3 f19 (23|$#,5|$#,8106|0@0@2&#,5|$#,)! -3 f8056 (23|$#,5|$#,8106|0@0@2&#,5|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f1 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (989|0@5@7&#,9|$#,9|$#,)! -3 f1 (989|0@5@7&#,9|$#,9|$#,)! -3 f0 (8029|$#,5|$#,989|0@5@2&#,)! -3 f1 (8029|$#,5|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f1 (8029|$#,989|0@5@7&#,)! -3 f0 (8029|$#,)! -3 f1 (8029|$#,)! -3 f0 (8029|$#,989|0@5@19@3@0#,)! -3 f1 (8029|$#,989|0@5@19@3@0#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@19@3@0#,)! -3 f1 (8029|$#,989|0@5@19@3@0#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@19@3@0#,)! -3 f1 (8029|$#,989|0@5@19@3@0#,)! -3 f0 (8029|$#,989|0@5@2&#,)! -3 f1 (8029|$#,989|0@5@2&#,)! -3 f0 (8029|$#,9|$#,9|$#,989|0@5@2&#,)! -3 f1 (8029|$#,9|$#,9|$#,989|0@5@2&#,)! -3 f0 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f1 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f0 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f1 (8029|$#,5|$#,5|$#,989|0@5@2&#,)! -3 f0 (8029|$#,989|0@5@7&#,)! -3 f1 (8029|$#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! +3 f10221 (23|$#,5|$#,5|$#,)! +3 f0 (10221|0@0@19@2@0#,)! +3 f1 (10221|0@0@19@2@0#,)! +3 f0 (23|$#,5|$#,10267|$#,5|$#,23|$#,5|$#,)! +3 f19 (23|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f10221 (23|$#,5|$#,10267|$#,5|$#,23|0@5@2&#,5|$#,)! +3 f0 (23|$#,5|$#,10271|$#,5|$#,)! +3 f19 (23|$#,5|$#,10271|0@0@2&#,5|$#,)! +3 f10221 (23|$#,5|$#,10271|0@0@2&#,5|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (1117|0@5@7&#,9|$#,9|$#,)! +3 f1 (1117|0@5@7&#,9|$#,9|$#,)! +3 f0 (10194|$#,5|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,5|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f1 (10194|$#,1117|0@5@7&#,)! +3 f0 (10194|$#,)! +3 f1 (10194|$#,)! +3 f0 (10194|$#,1117|0@5@19@3@0#,)! +3 f1 (10194|$#,1117|0@5@19@3@0#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@19@3@0#,)! +3 f1 (10194|$#,1117|0@5@19@3@0#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@19@3@0#,)! +3 f1 (10194|$#,1117|0@5@19@3@0#,)! +3 f0 (10194|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,9|$#,9|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,9|$#,9|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (10194|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (10194|$#,1117|0@5@7&#,)! +3 f1 (10194|$#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! 3 f0 (6|$#,)! 3 f1 (6|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 ()! -3 f989 ()! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,978|0@5@7&#,)! -3 f2 (989|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,978|0@5@7&#,)! -3 f2 (989|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@2@7&#,972|0@5@7&#,)! -3 f1 (955|0@2@7&#,972|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,2|$#,)! -3 f989 (955|0@5@7&#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@2@2&#,)! -3 f1 (955|0@2@2&#,)! -3 f0 (955|15@5@1&#,978|0@5@4&#,)! -3 f1 (955|15@5@1&#,978|0@5@4&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (5216|$#,)! -3 f989 (5216|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,991|$#,955|0@2@7&#,955|0@2@7&#,991|$#,5|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,991|$#,955|0@2@7&#,955|0@2@7&#,991|$#,5|$#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@4&#,952|0@5@18@2@0#,2|$#,5213|$#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@4&#,952|0@5@18@2@0#,2|$#,5213|$#,)! -3 f0 ()! -3 f955 ()! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|4@5@9&#,955|0@5@7&#,)! -3 f1 (955|4@5@9&#,955|0@5@7&#,)! -3 f0 (955|0@2@7&#,3995|$#,)! -3 f1 (955|0@2@7&#,3995|$#,)! -3 f0 (955|0@2@7&#,4000|$#,)! -3 f1 (955|0@2@7&#,4000|$#,)! -3 f0 (5250|$#,4232|$#,)! -3 f5250 (5250|$#,4232|$#,)! -3 f0 (5250|0@0@2&#,4232|$#,)! -3 f1 (5250|0@0@2&#,4232|$#,)! -3 f0 (5227|0@0@2&#,)! -3 f1 (5227|0@0@2&#,)! -3 f0 (5234|$#,)! -3 f989 (5234|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@2@7&#,994|0@5@7&#,)! +3 f1 (974|0@2@7&#,994|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,2|$#,)! +3 f1117 (974|0@5@7&#,2|$#,)! +3 f0 (974|0@5@7&#,994|0@5@17&#,)! +3 f1 (974|0@5@7&#,994|0@5@17&#,)! +3 f0 (974|0@5@7&#,1042|0@0@2&#,)! +3 f1 (974|0@5@7&#,1042|0@0@2&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@2@2&#,)! +3 f1 (974|0@2@2&#,)! +3 f0 (974|15@5@1&#,1003|0@5@4&#,)! +3 f1 (974|15@5@1&#,1003|0@5@4&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (5722|$#,)! +3 f1117 (5722|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,1119|$#,974|0@2@7&#,974|0@2@7&#,1119|$#,5|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,1119|$#,974|0@2@7&#,974|0@2@7&#,1119|$#,5|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,971|0@5@19@2@0#,2|$#,5719|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,971|0@5@19@2@0#,2|$#,5719|$#,)! +3 f0 ()! +3 f974 ()! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|4@5@9&#,974|0@5@7&#,)! +3 f1 (974|4@5@9&#,974|0@5@7&#,)! +3 f0 (974|0@2@7&#,4380|$#,)! +3 f1 (974|0@2@7&#,4380|$#,)! +3 f0 (974|0@2@7&#,4387|$#,)! +3 f1 (974|0@2@7&#,4387|$#,)! +3 f0 (5756|$#,4626|$#,)! +3 f5756 (5756|$#,4626|$#,)! +3 f0 (5756|0@0@2&#,4626|$#,)! +3 f1 (5756|0@0@2&#,4626|$#,)! +3 f0 (5733|0@0@2&#,)! +3 f1 (5733|0@0@2&#,)! +3 f0 (5740|$#,)! +3 f1117 (5740|$#,)! 3 f0 (5|$#,)! -3 f5234 (5|$#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f989 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f984 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f984 (955|0@5@7&#,)! -3 f0 ()! -3 f978 ()! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,966|0@5@7&#,)! -3 f955 (989|0@5@7&#,991|$#,966|0@5@7&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@4&#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (991|$#,)! -3 f955 (991|$#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@2@7&#,2|$#,)! -3 f1 (955|0@2@7&#,2|$#,)! -3 f0 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,2|$#,2|$#,)! -3 f955 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,2|$#,2|$#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (955|0@2@7&#,)! -3 f1 (955|0@2@7&#,)! -3 f0 (989|0@5@7&#,991|$#,952|0@5@18&#,3989|$#,)! -3 f955 (989|0@5@7&#,991|$#,952|0@5@18&#,3989|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! -3 f0 (955|0@2@7&#,972|0@5@7&#,)! -3 f1 (955|0@2@7&#,972|0@5@7&#,)! -3 f0 (989|0@5@7&#,991|$#,952|0@5@18&#,)! -3 f955 (989|0@5@7&#,991|$#,952|0@5@18&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,5153|0@5@2&#,)! -3 f1 (955|0@5@7&#,5153|0@5@2&#,)! -3 f0 (955|0@5@7&#,972|0@5@17&#,)! -3 f1 (955|0@5@7&#,972|0@5@17&#,)! -3 f0 (955|0@5@7&#,984|0@0@2&#,)! -3 f1 (955|0@5@7&#,984|0@0@2&#,)! -3 f0 (955|0@5@7&#,984|0@0@2&#,)! -3 f1 (955|0@5@7&#,984|0@0@2&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (1500|$#,)! -3 f5216 (1500|$#,)! -3 f0 (955|0@2@7&#,1500|$#,)! -3 f1 (955|0@2@7&#,1500|$#,)! -3 f0 (955|0@5@7&#,2156|0@5@7&#,)! -3 f1 (955|0@5@7&#,2156|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@2@7&#,4000|$#,)! -3 f1 (955|0@2@7&#,4000|$#,)! -3 f0 (955|0@2@7&#,3995|$#,)! -3 f1 (955|0@2@7&#,3995|$#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@2@7&#,)! -3 f1 (955|0@2@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (960|0@5@7&#,5|$#,)! -3 f955 (960|0@5@7&#,5|$#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@6&#,991|$#,978|0@5@4&#,2|$#,5075|0@5@2&#,)! -3 f955 (989|0@5@6&#,991|$#,978|0@5@4&#,2|$#,5075|0@5@2&#,)! -3 f0 (989|0@5@6&#,991|$#,978|0@5@4&#,)! -3 f955 (989|0@5@6&#,991|$#,978|0@5@4&#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (955|0@5@7&#,3989|$#,)! -3 f1 (955|0@5@7&#,3989|$#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@4&#,952|0@5@18@2@0#,2|$#,5213|$#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@4&#,952|0@5@18@2@0#,2|$#,5213|$#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@4&#,2|$#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@4&#,2|$#,)! -3 f0 (955|0@5@6&#,)! -3 f1 (955|0@5@6&#,)! -3 f0 (955|0@5@7&#,4379|0@5@17&#,)! -3 f1 (955|0@5@7&#,4379|0@5@17&#,)! -3 f0 (955|0@5@7&#,4256|$#,)! -3 f1 (955|0@5@7&#,4256|$#,)! -3 f0 (989|0@5@7&#,991|$#,4256|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,4256|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f0 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,956|$#,4379|0@5@2&#,972|0@5@2&#,978|0@5@4&#,)! -3 f0 (989|0@5@7&#,978|0@5@6&#,)! -3 f955 (989|0@5@7&#,978|0@5@6&#,)! -3 f0 (989|0@5@7&#,4256|$#,978|0@5@6&#,)! -3 f955 (989|0@5@7&#,4256|$#,978|0@5@6&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,956|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,956|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,956|$#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,991|$#,956|$#,978|0@5@4&#,)! -3 f0 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@4&#,2|$#,)! -3 f955 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@4&#,2|$#,)! -3 f0 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@2&#,)! -3 f955 (989|0@5@6&#,991|$#,1299|$#,1299|$#,978|0@5@2&#,)! -3 f0 (1299|$#,)! -3 f955 (1299|$#,)! -3 f0 (989|0@5@7&#,956|$#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,956|$#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,956|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,956|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,2|$#,4232|$#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,2|$#,4232|$#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@7&#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (989|0@5@7&#,991|$#,)! -3 f955 (989|0@5@7&#,991|$#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f955 ()! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f2 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (5630|$#,5630|$#,)! -3 f5 (5630|$#,5630|$#,)! -3 f0 (5630|$#,5630|$#,)! -3 f5 (5630|$#,5630|$#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f5 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f5 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (312|$#,)! -3 f1 (312|$#,)! -3 f0 (312|$#,)! -3 f1 (312|$#,)! +3 f5740 (5|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1112 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1112 (974|0@5@7&#,)! +3 f0 ()! +3 f1003 ()! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,988|0@5@7&#,)! +3 f974 (1117|0@5@7&#,1119|$#,988|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1119|$#,)! +3 f974 (1119|$#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@2@7&#,2|$#,)! +3 f1 (974|0@2@7&#,2|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1039|0@5@2&#,1003|0@5@4&#,2|$#,2|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1039|0@5@2&#,1003|0@5@4&#,2|$#,2|$#,)! +3 f0 (974|0@5@7&#,1030|0@5@7&#,)! +3 f1 (974|0@5@7&#,1030|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (974|0@2@7&#,)! +3 f1 (974|0@2@7&#,)! +3 f0 (1117|0@5@7&#,1119|$#,971|0@5@18&#,4374|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,971|0@5@18&#,4374|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 (974|0@2@7&#,994|0@5@7&#,)! +3 f1 (974|0@2@7&#,994|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1119|$#,971|0@5@19@2@0#,)! +3 f974 (1117|0@5@7&#,1119|$#,971|0@5@19@2@0#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1042|0@0@2&#,)! +3 f1 (974|0@5@7&#,1042|0@0@2&#,)! +3 f0 (974|0@5@7&#,1045|0@5@2&#,)! +3 f1 (974|0@5@7&#,1045|0@5@2&#,)! +3 f0 ()! +3 f2 ()! +3 f0 (974|0@5@7&#,994|0@5@17&#,)! +3 f1 (974|0@5@7&#,994|0@5@17&#,)! +3 f0 (974|0@5@7&#,994|0@5@17&#,)! +3 f1 (974|0@5@7&#,994|0@5@17&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1039|0@5@2&#,)! +3 f1 (974|0@5@7&#,1039|0@5@2&#,)! +3 f0 (974|0@5@7&#,1112|0@0@2&#,)! +3 f1 (974|0@5@7&#,1112|0@0@2&#,)! +3 f0 (974|0@5@7&#,1112|0@0@2&#,)! +3 f1 (974|0@5@7&#,1112|0@0@2&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1706|$#,)! +3 f5722 (1706|$#,)! +3 f0 (974|0@2@7&#,1706|$#,)! +3 f1 (974|0@2@7&#,1706|$#,)! +3 f0 (974|0@5@7&#,2511|0@5@7&#,)! +3 f1 (974|0@5@7&#,2511|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@2@7&#,4387|$#,)! +3 f1 (974|0@2@7&#,4387|$#,)! +3 f0 (974|0@2@7&#,4380|$#,)! +3 f1 (974|0@2@7&#,4380|$#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@2@7&#,)! +3 f1 (974|0@2@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (982|0@5@7&#,5|$#,)! +3 f974 (982|0@5@7&#,5|$#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,2|$#,5547|0@5@2&#,)! +3 f974 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,2|$#,5547|0@5@2&#,)! +3 f0 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,)! +3 f974 (1117|0@5@6&#,1119|$#,1003|0@5@4&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (974|0@5@7&#,4374|$#,)! +3 f1 (974|0@5@7&#,4374|$#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,971|0@5@19@2@0#,2|$#,5719|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,971|0@5@19@2@0#,2|$#,5719|$#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,2|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@4&#,2|$#,)! +3 f0 (974|0@5@6&#,)! +3 f1 (974|0@5@6&#,)! +3 f0 (974|0@5@7&#,1106|0@5@17&#,)! +3 f1 (974|0@5@7&#,1106|0@5@17&#,)! +3 f0 (974|0@5@7&#,4650|$#,)! +3 f1 (974|0@5@7&#,4650|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,4650|$#,1106|0@5@2&#,994|0@5@2&#,1039|0@5@2&#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,4650|$#,1106|0@5@2&#,994|0@5@2&#,1039|0@5@2&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f0 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,975|$#,1106|0@5@2&#,994|0@5@2&#,1003|0@5@4&#,)! +3 f0 (1117|0@5@7&#,1003|0@5@6&#,)! +3 f974 (1117|0@5@7&#,1003|0@5@6&#,)! +3 f0 (1117|0@5@7&#,4650|$#,1003|0@5@6&#,)! +3 f974 (1117|0@5@7&#,4650|$#,1003|0@5@6&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (1117|0@5@7&#,975|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,975|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,975|$#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1119|$#,975|$#,1003|0@5@4&#,)! +3 f0 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@4&#,2|$#,)! +3 f974 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@4&#,2|$#,)! +3 f0 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@6&#,1119|$#,1394|$#,1394|$#,1003|0@5@2&#,)! +3 f0 (1394|$#,)! +3 f974 (1394|$#,)! +3 f0 (1117|0@5@7&#,975|$#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,975|$#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,975|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,975|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,2|$#,4626|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,2|$#,4626|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@7&#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (1117|0@5@7&#,1119|$#,)! +3 f974 (1117|0@5@7&#,1119|$#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f974 ()! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f2 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (6146|$#,6146|$#,)! +3 f5 (6146|$#,6146|$#,)! +3 f0 (6146|$#,6146|$#,)! +3 f5 (6146|$#,6146|$#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f5 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f5 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1 (313|$#,)! +3 f0 (313|$#,)! +3 f1 (313|$#,)! 3 f0 (5|$#,)! -3 f5213 (5|$#,)! -3 f0 (989|0@5@2&#,991|$#,956|$#,3995|$#,978|0@5@4&#,5075|0@5@2&#,)! -3 f955 (989|0@5@2&#,991|$#,956|$#,3995|$#,978|0@5@4&#,5075|0@5@2&#,)! -3 f0 (989|0@5@2&#,991|$#,5213|$#,3989|$#,3995|$#,4000|$#,4003|$#,5216|$#,978|0@5@2&#,)! -3 f955 (989|0@5@2&#,991|$#,5213|$#,3989|$#,3995|$#,4000|$#,4003|$#,5216|$#,978|0@5@2&#,)! -3 f0 (989|0@5@2&#,991|$#,1299|$#,1299|$#,991|$#,4000|$#,4003|$#,3989|$#,3995|$#,978|0@5@2&#,)! -3 f955 (989|0@5@2&#,991|$#,1299|$#,1299|$#,991|$#,4000|$#,4003|$#,3989|$#,3995|$#,978|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f5153 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (989|0@5@2&#,991|$#,956|$#,2|$#,4379|0@5@2&#,2|$#,972|0@5@2&#,4000|$#,4003|$#,3989|$#,3995|$#,4096|$#,5234|$#,1500|$#,5153|0@5@2&#,978|0@5@2&#,)! -3 f955 (989|0@5@2&#,991|$#,956|$#,2|$#,4379|0@5@2&#,2|$#,972|0@5@2&#,4000|$#,4003|$#,3989|$#,3995|$#,4096|$#,5234|$#,1500|$#,5153|0@5@2&#,978|0@5@2&#,)! -3 f0 (989|0@5@2&#,4232|$#,991|$#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@2&#,4232|$#,991|$#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@2&#,956|$#,991|$#,978|0@5@2&#,)! -3 f955 (989|0@5@2&#,956|$#,991|$#,978|0@5@2&#,)! -3 f0 (989|0@5@2&#,956|$#,978|0@5@2&#,)! -3 f955 (989|0@5@2&#,956|$#,978|0@5@2&#,)! -3 f0 (955|0@5@17&#,)! -3 f1 (955|0@5@17&#,)! -3 f0 (4232|$#,978|0@5@7&#,312|$#,)! -3 f955 (4232|$#,978|0@5@7&#,312|$#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,2|$#,)! -3 f989 (955|0@5@7&#,2|$#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f956 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f3989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4096 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1500 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4000 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4003 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4379 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f972 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4232 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f5075 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f4297 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f989 (955|15@5@1&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f978 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@2&#,)! -3 f1 (955|0@5@7&#,978|0@5@2&#,)! -3 f0 (955|0@5@7&#,978|0@5@2&#,)! -3 f1 (955|0@5@7&#,978|0@5@2&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,978|0@5@7&#,)! -3 f1 (955|15@5@1&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|15@5@1&#,)! -3 f2 (955|15@5@1&#,)! -3 f0 (955|0@5@6&#,)! -3 f952 (955|0@5@6&#,)! -3 f0 (955|0@5@7&#,)! -3 f952 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,989|0@5@2&#,)! -3 f1 (955|0@5@7&#,989|0@5@2&#,)! -3 f0 (955|0@5@7&#,991|$#,)! -3 f1 (955|0@5@7&#,991|$#,)! -3 f0 (955|0@5@7&#,4297|0@5@2&#,)! -3 f1 (955|0@5@7&#,4297|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,952|0@5@18@2@0#,)! -3 f1 (955|0@5@7&#,952|0@5@18@2@0#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f991 (955|0@5@7&#,)! -3 f0 (989|0@5@2&#,955|0@5@7&#,)! -3 f955 (989|0@5@2&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,4255|$#,)! -3 f1 (955|0@5@7&#,4255|$#,)! -3 f0 (955|15@5@1&#,978|0@5@4&#,)! -3 f1 (955|15@5@1&#,978|0@5@4&#,)! -3 f0 (5210|0@0@2&#,)! -3 f1 (5210|0@0@2&#,)! -3 f0 (5227|0@0@2&#,)! -3 f1 (5227|0@0@2&#,)! -3 f0 (5231|0@0@2&#,)! -3 f1 (5231|0@0@2&#,)! -3 f0 (5238|0@0@2&#,)! -3 f1 (5238|0@0@2&#,)! -3 f0 (5242|0@0@2&#,)! -3 f1 (5242|0@0@2&#,)! -3 f0 (5246|0@0@2&#,)! -3 f1 (5246|0@0@2&#,)! -3 f0 (5210|$#,)! -3 f5210 (5210|$#,)! -3 f0 (5227|$#,)! -3 f5227 (5227|$#,)! -3 f0 (5231|$#,)! -3 f5231 (5231|$#,)! -3 f0 (5238|$#,)! -3 f5238 (5238|$#,)! -3 f0 (5242|$#,)! -3 f5242 (5242|$#,)! -3 f0 (5246|$#,)! -3 f5246 (5246|$#,)! -3 f0 (5250|0@0@2&#,4232|$#,)! -3 f1 (5250|0@0@2&#,4232|$#,)! -3 f0 (5250|$#,4232|$#,)! -3 f5250 (5250|$#,4232|$#,)! -3 f0 (955|0@2@2&#,)! -3 f1 (955|0@2@2&#,)! -3 f0 (955|0@5@17&#,)! -3 f1 (955|0@5@17&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@9&#,955|0@5@7&#,2|$#,)! -3 f1 (955|0@5@9&#,955|0@5@7&#,2|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,989|0@5@2&#,)! -3 f1 (955|0@5@7&#,989|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,989|0@5@7&#,)! -3 f1 (955|0@5@7&#,989|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,989|0@5@2&#,)! -3 f1 (955|0@5@7&#,989|0@5@2&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,991|$#,955|0@2@7&#,955|0@2@7&#,991|$#,5|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,991|$#,955|0@2@7&#,955|0@2@7&#,991|$#,5|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (5216|$#,)! -3 f989 (5216|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,5|$#,966|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,5|$#,966|0@5@7&#,)! -3 f0 (955|0@2@9&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@9&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@5@7&#,5075|0@5@2&#,)! -3 f1 (955|0@5@7&#,5075|0@5@2&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,)! -3 f2 (955|0@2@7&#,955|0@2@7&#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@2@9&#,955|0@2@7&#,2|$#,2|$#,)! -3 f1 (955|0@2@9&#,955|0@2@7&#,2|$#,2|$#,)! -3 f0 (955|0@5@7&#,955|0@5@2&#,)! -3 f1 (955|0@5@7&#,955|0@5@2&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (955|0@5@7&#,955|0@5@2&#,)! -3 f1 (955|0@5@7&#,955|0@5@2&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f2 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|4@5@9&#,955|0@5@7&#,)! -3 f1 (955|4@5@9&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f955 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (955|0@2@7&#,955|0@2@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f1 (955|0@2@7&#,955|0@2@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,2|$#,)! -3 f2 (952|0@5@18&#,2|$#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,978|0@5@7&#,2|$#,2|$#,2|$#,1826|$#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,978|0@5@7&#,2|$#,2|$#,2|$#,1826|$#,)! -3 f0 (955|0@5@7&#,978|0@5@7&#,)! -3 f1 (955|0@5@7&#,978|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,3819|$#,)! -3 f952 (955|0@5@7&#,3819|$#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f989 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,978|0@5@4&#,)! -3 f955 (989|0@5@7&#,978|0@5@4&#,)! -3 f0 (955|0@5@7&#,966|0@5@7&#,)! -3 f1 (955|0@5@7&#,966|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! -3 f0 (3851|$#,)! -3 f2 (3851|$#,)! -3 f0 (3851|$#,)! -3 f2 (3851|$#,)! +3 f5719 (5|$#,)! +3 f0 (1117|0@5@2&#,1119|$#,975|$#,4380|$#,1003|0@5@4&#,5547|0@5@2&#,)! +3 f974 (1117|0@5@2&#,1119|$#,975|$#,4380|$#,1003|0@5@4&#,5547|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1119|$#,5719|$#,4374|$#,4380|$#,4387|$#,4390|$#,5722|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@2&#,1119|$#,5719|$#,4374|$#,4380|$#,4387|$#,4390|$#,5722|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1119|$#,1394|$#,1394|$#,1119|$#,4387|$#,4390|$#,4374|$#,4380|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@2&#,1119|$#,1394|$#,1394|$#,1119|$#,4387|$#,4390|$#,4374|$#,4380|$#,1003|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1045 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (1117|0@5@2&#,1119|$#,975|$#,2|$#,1106|0@5@2&#,2|$#,994|0@5@2&#,4387|$#,4390|$#,4374|$#,4380|$#,4485|$#,5740|$#,1706|$#,1045|0@5@2&#,1039|0@5@2&#,1003|0@5@2&#,)! +3 f974 (1117|0@5@2&#,1119|$#,975|$#,2|$#,1106|0@5@2&#,2|$#,994|0@5@2&#,4387|$#,4390|$#,4374|$#,4380|$#,4485|$#,5740|$#,1706|$#,1045|0@5@2&#,1039|0@5@2&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@2&#,4626|$#,1119|$#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@2&#,4626|$#,1119|$#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@2&#,975|$#,1119|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@2&#,975|$#,1119|$#,1003|0@5@2&#,)! +3 f0 (1117|0@5@2&#,975|$#,1003|0@5@2&#,)! +3 f974 (1117|0@5@2&#,975|$#,1003|0@5@2&#,)! +3 f0 (974|0@5@17&#,)! +3 f1 (974|0@5@17&#,)! +3 f0 (4626|$#,1003|0@5@7&#,313|$#,)! +3 f974 (4626|$#,1003|0@5@7&#,313|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,2|$#,)! +3 f1117 (974|0@5@7&#,2|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f975 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f4374 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4485 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1706 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4387 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4390 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1106 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f994 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4626 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f5547 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f4717 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f1117 (974|15@5@1&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1003 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@2&#,)! +3 f1 (974|0@5@7&#,1003|0@5@2&#,)! +3 f0 (974|0@5@7&#,1003|0@5@2&#,)! +3 f1 (974|0@5@7&#,1003|0@5@2&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,1003|0@5@7&#,)! +3 f1 (974|15@5@1&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|15@5@1&#,)! +3 f2 (974|15@5@1&#,)! +3 f0 (974|0@5@6&#,)! +3 f971 (974|0@5@6&#,)! +3 f0 (974|0@5@7&#,)! +3 f971 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1117|0@5@2&#,)! +3 f1 (974|0@5@7&#,1117|0@5@2&#,)! +3 f0 (974|0@5@7&#,1119|$#,)! +3 f1 (974|0@5@7&#,1119|$#,)! +3 f0 (974|0@5@7&#,4717|0@5@2&#,)! +3 f1 (974|0@5@7&#,4717|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (974|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1119 (974|0@5@7&#,)! +3 f0 (1117|0@5@2&#,974|0@5@7&#,)! +3 f974 (1117|0@5@2&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,4649|$#,)! +3 f1 (974|0@5@7&#,4649|$#,)! +3 f0 (974|15@5@1&#,1003|0@5@4&#,)! +3 f1 (974|15@5@1&#,1003|0@5@4&#,)! +3 f0 (5716|0@0@2&#,)! +3 f1 (5716|0@0@2&#,)! +3 f0 (5733|0@0@2&#,)! +3 f1 (5733|0@0@2&#,)! +3 f0 (5737|0@0@2&#,)! +3 f1 (5737|0@0@2&#,)! +3 f0 (5744|0@0@2&#,)! +3 f1 (5744|0@0@2&#,)! +3 f0 (5748|0@0@2&#,)! +3 f1 (5748|0@0@2&#,)! +3 f0 (5752|0@0@2&#,)! +3 f1 (5752|0@0@2&#,)! +3 f0 (5716|$#,)! +3 f5716 (5716|$#,)! +3 f0 (5733|$#,)! +3 f5733 (5733|$#,)! +3 f0 (5737|$#,)! +3 f5737 (5737|$#,)! +3 f0 (5744|$#,)! +3 f5744 (5744|$#,)! +3 f0 (5748|$#,)! +3 f5748 (5748|$#,)! +3 f0 (5752|$#,)! +3 f5752 (5752|$#,)! +3 f0 (5756|0@0@2&#,4626|$#,)! +3 f1 (5756|0@0@2&#,4626|$#,)! +3 f0 (5756|$#,4626|$#,)! +3 f5756 (5756|$#,4626|$#,)! +3 f0 (974|0@2@2&#,)! +3 f1 (974|0@2@2&#,)! +3 f0 (974|0@5@17&#,)! +3 f1 (974|0@5@17&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@9&#,974|0@5@7&#,2|$#,)! +3 f1 (974|0@5@9&#,974|0@5@7&#,2|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,1117|0@5@2&#,)! +3 f1 (974|0@5@7&#,1117|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1117|0@5@7&#,)! +3 f1 (974|0@5@7&#,1117|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1117|0@5@2&#,)! +3 f1 (974|0@5@7&#,1117|0@5@2&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,1119|$#,974|0@2@7&#,974|0@2@7&#,1119|$#,5|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,1119|$#,974|0@2@7&#,974|0@2@7&#,1119|$#,5|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (5722|$#,)! +3 f1117 (5722|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,5|$#,988|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,5|$#,988|0@5@7&#,)! +3 f0 (974|0@2@9&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@9&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@5@7&#,5547|0@5@2&#,)! +3 f1 (974|0@5@7&#,5547|0@5@2&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,)! +3 f2 (974|0@2@7&#,974|0@2@7&#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@2@9&#,974|0@2@7&#,2|$#,2|$#,)! +3 f1 (974|0@2@9&#,974|0@2@7&#,2|$#,2|$#,)! +3 f0 (974|0@5@7&#,974|0@5@2&#,)! +3 f1 (974|0@5@7&#,974|0@5@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (974|0@5@7&#,974|0@5@2&#,)! +3 f1 (974|0@5@7&#,974|0@5@2&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f2 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|4@5@9&#,974|0@5@7&#,)! +3 f1 (974|4@5@9&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f974 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (974|0@2@7&#,974|0@2@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f1 (974|0@2@7&#,974|0@2@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,2|$#,)! +3 f2 (971|0@5@7&#,2|$#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2|$#,2|$#,2062|$#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2|$#,2|$#,2062|$#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2062|$#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2062|$#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2|$#,2|$#,2062|$#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,1003|0@5@7&#,2|$#,2|$#,2|$#,2062|$#,)! +3 f0 (974|0@5@7&#,1003|0@5@7&#,)! +3 f1 (974|0@5@7&#,1003|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,4160|$#,)! +3 f971 (974|0@5@7&#,4160|$#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1117 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1003|0@5@4&#,)! +3 f974 (1117|0@5@7&#,1003|0@5@4&#,)! +3 f0 ()! +3 f974 ()! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,988|0@5@7&#,)! +3 f1 (974|0@5@7&#,988|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 (4192|$#,)! +3 f2 (4192|$#,)! +3 f0 (4192|$#,)! +3 f2 (4192|$#,)! 3 f0 (5|$#,)! -3 f3851 (5|$#,)! -3 f0 (3851|$#,3851|$#,2|$#,)! -3 f2 (3851|$#,3851|$#,2|$#,)! -3 f0 (3851|$#,3851|$#,)! -3 f2 (3851|$#,3851|$#,)! -3 f0 (3851|$#,3851|$#,)! -3 f2 (3851|$#,3851|$#,)! -3 f0 (3851|$#,3851|$#,2|$#,)! -3 f2 (3851|$#,3851|$#,2|$#,)! -3 f0 (3851|$#,)! -3 f989 (3851|$#,)! -3 f0 (3851|$#,)! -3 f2 (3851|$#,)! -3 f0 (7432|$#,)! -3 f1 (7432|$#,)! -3 f0 (7432|$#,978|0@5@7&#,)! -3 f5 (7432|$#,978|0@5@7&#,)! -3 f0 (7432|$#,5|$#,)! -3 f1 (7432|$#,5|$#,)! -3 f0 (978|0@5@2&#,989|0@5@2&#,2|$#,)! -3 f7426 (978|0@5@2&#,989|0@5@2&#,2|$#,)! -3 f0 (7426|0@0@2&#,)! -3 f1 (7426|0@0@2&#,)! -3 f0 ()! -3 f7432 ()! -1 t7426|7426& -3 f0 (7432|0@0@2&#,)! -3 f1 (7432|0@0@2&#,)! -3 f0 (7432|$#,)! -3 f1 (7432|$#,)! -3 f0 (7432|$#,978|0@5@2&#,989|0@5@2&#,2|$#,)! -3 f1 (7432|$#,978|0@5@2&#,989|0@5@2&#,2|$#,)! -3 f0 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f1 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f0 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f1 (7432|$#,978|0@5@2&#,989|0@5@2&#,)! -3 f0 (7432|$#,978|0@5@7&#,)! -3 f5 (7432|$#,978|0@5@7&#,)! -3 f0 (7432|$#,)! -3 f989 (7432|$#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (7432|$#,5|$#,)! -3 f1 (7432|$#,5|$#,)! -3 f0 (7432|$#,)! -3 f1 (7432|$#,)! -3 f0 (7432|$#,989|0@5@7&#,)! -3 f978 (7432|$#,989|0@5@7&#,)! +3 f4192 (5|$#,)! +3 f0 (4192|$#,4192|$#,2|$#,)! +3 f2 (4192|$#,4192|$#,2|$#,)! +3 f0 (4192|$#,4192|$#,)! +3 f2 (4192|$#,4192|$#,)! +3 f0 (4192|$#,4192|$#,)! +3 f2 (4192|$#,4192|$#,)! +3 f0 (4192|$#,4192|$#,2|$#,)! +3 f2 (4192|$#,4192|$#,2|$#,)! +3 f0 (4192|$#,)! +3 f1117 (4192|$#,)! +3 f0 (4192|$#,)! +3 f2 (4192|$#,)! +3 f0 (8062|$#,)! +3 f1 (8062|$#,)! +3 f0 (8062|$#,1003|0@5@7&#,)! +3 f5 (8062|$#,1003|0@5@7&#,)! +3 f0 (8062|$#,5|$#,)! +3 f1 (8062|$#,5|$#,)! +3 f0 (1003|0@5@2&#,1117|0@5@2&#,2|$#,)! +3 f8056 (1003|0@5@2&#,1117|0@5@2&#,2|$#,)! +3 f0 (8056|0@0@2&#,)! +3 f1 (8056|0@0@2&#,)! +3 f0 ()! +3 f8062 ()! +1 t8056|8056& +3 f0 (8062|0@0@2&#,)! +3 f1 (8062|0@0@2&#,)! +3 f0 (8062|$#,)! +3 f1 (8062|$#,)! +3 f0 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,2|$#,)! +3 f1 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,2|$#,)! +3 f0 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f1 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f0 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f1 (8062|$#,1003|0@5@2&#,1117|0@5@2&#,)! +3 f0 (8062|$#,1003|0@5@7&#,)! +3 f5 (8062|$#,1003|0@5@7&#,)! +3 f0 (8062|$#,)! +3 f1117 (8062|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (8062|$#,5|$#,)! +3 f1 (8062|$#,5|$#,)! +3 f0 (8062|$#,)! +3 f1 (8062|$#,)! +3 f0 (8062|$#,1117|0@5@7&#,)! +3 f1003 (8062|$#,1117|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 (5|$#,)! +3 f1706 (5|$#,)! +3 f0 (1702|$#,)! +3 f1706 (1702|$#,)! +2 F0/0|0& +2 F1706/0|1706& +3 f0 (1012|0@5@7&#,)! +3 f1706 (1012|0@5@7&#,)! +3 f0 (5|$#,)! 3 f2 (5|$#,)! 3 f0 (5|$#,)! -3 f1500 (5|$#,)! -3 f0 (1500|$#,)! -3 f989 (1500|$#,)! -3 f0 (991|$#,)! -3 f4997 (991|$#,)! -3 f0 (4997|0@5@2&#,)! -3 f1 (4997|0@5@2&#,)! -3 f0 ()! -3 f4997 ()! -3 f0 (4997|@5|0@5@7&#,1500|$#,)! -3 f4997 (4997|@5|0@5@7&#,1500|$#,)! -3 f0 (4997|@5|0@5@7&#,2156|0@5@7&#,)! -3 f4997 (4997|@5|0@5@7&#,2156|0@5@7&#,)! -3 f0 (4997|0@5@7&#,)! -3 f1 (4997|0@5@7&#,)! -3 f0 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f4997 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f0 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f4997 (4997|@5|0@5@7&#,4997|0@5@2&#,)! -3 f0 (4997|@5|0@5@7&#,991|$#,)! -3 f4997 (4997|@5|0@5@7&#,991|$#,)! -3 f0 (4997|@5|0@5@7&#,)! -3 f4997 (4997|@5|0@5@7&#,)! -3 f0 (4997|0@5@7&#,)! -3 f989 (4997|0@5@7&#,)! -3 f0 (4997|@5|0@5@7&#,991|$#,)! -3 f4997 (4997|@5|0@5@7&#,991|$#,)! -3 f0 (4997|@5|0@5@7&#,4997|0@5@7&#,)! -3 f4997 (4997|@5|0@5@7&#,4997|0@5@7&#,)! -3 f0 (5|$#,4997|@5|0@5@7&#,)! -3 f1 (5|$#,4997|@5|0@5@7&#,)! -3 f0 (4997|0@5@7&#,)! -3 f4997 (4997|0@5@7&#,)! -3 f0 (5133|$#,)! -3 f2 (5133|$#,)! -3 f0 (5133|0@0@2&#,)! -3 f1 (5133|0@0@2&#,)! -3 f0 (5133|$#,)! -3 f989 (5133|$#,)! -3 f0 (312|$#,)! -3 f5133 (312|$#,)! -3 f0 (5133|$#,)! -3 f5133 (5133|$#,)! -3 f0 (5133|$#,5133|$#,)! -3 f2 (5133|$#,5133|$#,)! -3 f0 (5129|$#,5126|$#,972|0@5@2&#,)! -3 f5133 (5129|$#,5126|$#,972|0@5@2&#,)! -3 f0 (5133|$#,)! -3 f2 (5133|$#,)! -3 f0 (5133|$#,)! -3 f2 (5133|$#,)! -3 f0 (5133|$#,)! -3 f2 (5133|$#,)! -3 f0 (5133|$#,)! -3 f996 (5133|$#,)! -3 f0 (5133|$#,)! -3 f996 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1006 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1001 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1001 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1001 (5133|$#,)! -3 f0 (5133|$#,)! -3 f1910 (5133|$#,)! -3 f0 (5133|$#,952|0@5@18&#,)! -3 f989 (5133|$#,952|0@5@18&#,)! -3 f0 (5133|$#,)! -3 f1910 (5133|$#,)! -3 f0 (5133|$#,952|0@5@18&#,)! -3 f989 (5133|$#,952|0@5@18&#,)! -3 f0 (5133|$#,)! -3 f989 (5133|$#,)! -3 f0 (312|$#,)! -3 f5133 (312|$#,)! -3 f0 (5133|$#,)! -3 f5133 (5133|$#,)! -3 f0 (5133|$#,5133|$#,)! -3 f2 (5133|$#,5133|$#,)! -3 f0 (5133|0@0@2&#,)! -3 f1 (5133|0@0@2&#,)! -3 f0 (5126|$#,)! -3 f989 (5126|$#,)! -3 f0 (5133|$#,)! -3 f989 (5133|$#,)! -3 f0 (5133|$#,)! -3 f989 (5133|$#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 (972|0@5@2&#,)! -3 f5133 (972|0@5@2&#,)! -3 f0 ()! -3 f5153 ()! -1 t5133|5133& -3 f0 (5153|0@5@7&#,)! -3 f1 (5153|0@5@7&#,)! -3 f0 (5153|@5|0@5@7&#,5133|0@0@2&#,)! -3 f5153 (5153|@5|0@5@7&#,5133|0@0@2&#,)! -3 f0 (5153|0@5@7&#,)! -3 f989 (5153|0@5@7&#,)! -3 f0 (5153|0@5@7&#,)! -3 f5153 (5153|0@5@7&#,)! -3 f0 (5153|0@5@2&#,)! -3 f1 (5153|0@5@2&#,)! -3 f0 (5153|0@5@7&#,)! -3 f989 (5153|0@5@7&#,)! -3 f0 (312|$#,)! -3 f5153 (312|$#,)! -3 f0 (5153|0@5@7&#,5129|$#,5126|$#,)! -3 f972 (5153|0@5@7&#,5129|$#,5126|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,955|0@5@7&#,)! -3 f1 (955|0@5@7&#,955|0@5@7&#,)! -3 f0 (991|$#,)! -3 f1 (991|$#,)! -0 s6803|-1 9632 -1 -1 t9631|9631& -0 s344|& -3 S_ctentry{4727|@1|^#kind,9633|@1|0@5@3&#ctbase,991|@1|^#base,991|@1|^#ptr,991|@1|^#array,989|@1|0@5@3&#unparse,}! -0 s6924|-1 9636 -1 -1 t9635|9635& -0 s345|-1 10002 -1 -0 s346|-1 9639 -1 -1 t9638|9638& -3 S_cttable{5|@1|^#size,5|@1|^#nspace,9639|@1|0@3@2&#entries,}! -0 s6878|& -0 s347|& -3 f0 (9637|@7|$#,)! -3 f2 (9637|@7|$#,)! -3 f0 (4256|$#,)! -3 f9633 (4256|$#,)! -3 f0 (9637|$#,)! -3 f989 (9637|$#,)! -3 f0 (4727|$#,9633|0@5@4&#,991|$#,991|$#,991|$#,989|0@5@4&#,)! -3 f9637 (4727|$#,9633|0@5@4&#,991|$#,991|$#,991|$#,989|0@5@4&#,)! -3 f0 (4727|$#,9633|0@5@2&#,)! -3 f9637 (4727|$#,9633|0@5@2&#,)! -3 f0 (9637|$#,)! -3 f989 (9637|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (4727|$#,9633|0@5@4&#,991|$#,)! -3 f991 (4727|$#,9633|0@5@4&#,991|$#,)! -3 f0 (9637|0@0@4&#,)! -3 f991 (9637|0@0@4&#,)! -3 f0 (9637|$#,)! -3 f2 (9637|$#,)! -3 f0 (991|$#,9|$#,)! -3 f9633 (991|$#,9|$#,)! -3 f0 (9633|0@2@2&#,)! -3 f991 (9633|0@2@2&#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,991|$#,2|$#,)! -3 f991 (991|$#,991|$#,2|$#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,)! -3 f9637 (991|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f9633 (9633|0@2@7&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@5@7&#,)! -3 f3942 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f9633 (9633|0@2@7&#,)! -3 f0 (9633|0@5@2&#,)! -3 f1 (9633|0@5@2&#,)! -3 f0 (3851|$#,)! -3 f9633 (3851|$#,)! -3 f0 ()! -3 f9633 ()! -3 f0 ()! -3 f9633 ()! -3 f0 (4256|$#,)! -3 f9633 (4256|$#,)! -3 f0 (989|0@5@2&#,4297|0@5@2&#,)! -3 f9633 (989|0@5@2&#,4297|0@5@2&#,)! -3 f0 (989|0@5@4&#,4297|0@5@2&#,)! -3 f9633 (989|0@5@4&#,4297|0@5@2&#,)! -3 f0 (989|0@5@4&#,3942|0@0@4&#,)! -3 f9633 (989|0@5@4&#,3942|0@0@4&#,)! -3 f0 ()! -3 f9633 ()! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,4297|0@5@18&#,)! -3 f9633 (991|$#,4297|0@5@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f9633 (9633|0@2@18&#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f4297 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f4297 (9633|0@2@7&#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,)! +3 f1706 (5|$#,)! +3 f0 (1706|$#,)! +3 f1117 (1706|$#,)! +3 f0 (1706|$#,1706|$#,)! +3 f2 (1706|$#,1706|$#,)! +3 f0 (1706|$#,)! +3 f1012 (1706|$#,)! +3 f0 (1706|$#,)! +3 f1 (1706|$#,)! +3 f0 (1706|$#,)! +3 f1117 (1706|$#,)! +3 f0 (313|$#,)! +3 f1706 (313|$#,)! +3 f0 (1119|$#,)! +3 f5461 (1119|$#,)! +3 f0 (5461|0@5@2&#,)! +3 f1 (5461|0@5@2&#,)! +3 f0 ()! +3 f5461 ()! +3 f0 (5461|@5|0@5@7&#,1706|$#,)! +3 f5461 (5461|@5|0@5@7&#,1706|$#,)! +3 f0 (5461|@5|0@5@7&#,2511|0@5@7&#,)! +3 f5461 (5461|@5|0@5@7&#,2511|0@5@7&#,)! +3 f0 (5461|0@5@7&#,)! +3 f1 (5461|0@5@7&#,)! +3 f0 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f5461 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f0 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f5461 (5461|@5|0@5@7&#,5461|0@5@2&#,)! +3 f0 (5461|@5|0@5@7&#,1119|$#,)! +3 f5461 (5461|@5|0@5@7&#,1119|$#,)! +3 f0 (5461|@5|0@5@7&#,)! +3 f5461 (5461|@5|0@5@7&#,)! +3 f0 (5461|0@5@7&#,)! +3 f1117 (5461|0@5@7&#,)! +3 f0 (5461|@5|0@5@7&#,1119|$#,)! +3 f5461 (5461|@5|0@5@7&#,1119|$#,)! +3 f0 (5461|@5|0@5@7&#,5461|0@5@7&#,)! +3 f5461 (5461|@5|0@5@7&#,5461|0@5@7&#,)! +3 f0 (5|$#,5461|@5|0@5@7&#,)! +3 f1 (5|$#,5461|@5|0@5@7&#,)! +3 f0 (5461|0@5@7&#,)! +3 f5461 (5461|0@5@7&#,)! +3 f0 (5601|$#,5598|$#,994|0@5@2&#,)! +3 f1042 (5601|$#,5598|$#,994|0@5@2&#,)! +3 f0 (2013|$#,1706|$#,994|0@5@2&#,)! +3 f1042 (2013|$#,1706|$#,994|0@5@2&#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1124 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1124 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1139 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1129 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1129 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1129 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1597 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1597 (1042|$#,)! +3 f0 (1042|$#,971|0@5@7&#,)! +3 f1117 (1042|$#,971|0@5@7&#,)! +3 f0 (1042|$#,971|0@5@7&#,)! +3 f1117 (1042|$#,971|0@5@7&#,)! +3 f0 (1042|$#,)! +3 f1597 (1042|$#,)! +3 f0 (1042|$#,971|0@5@7&#,)! +3 f1117 (1042|$#,971|0@5@7&#,)! +3 f0 (1042|$#,)! +3 f1117 (1042|$#,)! +3 f0 (313|$#,)! +3 f1042 (313|$#,)! +3 f0 (1042|$#,)! +3 f1042 (1042|$#,)! +3 f0 (1042|$#,1042|$#,)! +3 f2 (1042|$#,1042|$#,)! +3 f0 (1042|0@0@2&#,)! +3 f1 (1042|0@0@2&#,)! +3 f0 (1042|$#,)! +3 f1117 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1117 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1117 (1042|$#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (2013|$#,994|0@5@2&#,)! +3 f1042 (2013|$#,994|0@5@2&#,)! +3 f0 (994|0@5@2&#,)! +3 f1042 (994|0@5@2&#,)! +3 f0 (1042|$#,1042|$#,)! +3 f2 (1042|$#,1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f2 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1706 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1134 (1042|$#,)! +3 f0 (1042|$#,)! +3 f5 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1134 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1134 (1042|$#,)! +3 f0 (1042|$#,)! +3 f1003 (1042|$#,)! +3 f0 ()! +3 f1045 ()! +1 t1042|1042& +3 f0 (1045|0@5@7&#,)! +3 f1 (1045|0@5@7&#,)! +3 f0 (1045|@5|0@5@7&#,1042|0@0@2&#,)! +3 f1045 (1045|@5|0@5@7&#,1042|0@0@2&#,)! +3 f0 (1045|0@5@7&#,)! +3 f1117 (1045|0@5@7&#,)! +3 f0 (1045|0@5@7&#,)! +3 f1045 (1045|0@5@7&#,)! +3 f0 (1045|0@5@2&#,)! +3 f1 (1045|0@5@2&#,)! +3 f0 (1045|0@5@7&#,)! +3 f1117 (1045|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1045 (313|$#,)! +3 f0 (1045|0@5@7&#,1045|0@5@7&#,)! +3 f5 (1045|0@5@7&#,1045|0@5@7&#,)! +3 f0 (1045|0@5@7&#,1042|$#,)! +3 f994 (1045|0@5@7&#,1042|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,974|0@5@7&#,)! +3 f1 (974|0@5@7&#,974|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f1 (1119|$#,)! +0 s7460|-1 11873 -1 +1 t11872|11872& +0 a7461|& +3 S!228{5187|@1|^#kind,11874|@1|0@5@3&#ctbase,1119|@1|^#base,1119|@1|^#ptr,1119|@1|^#array,1117|@1|0@5@3&#unparse,}^11877 +0 s7462|& +1 t11875|11875& +0 s7463|-1 12237 -1 +0 s7464|-1 11880 -1 +1 t11879|11879& +3 S!229{5|@1|^#size,5|@1|^#nspace,11880|@1|0@3@2&#entries,}! +0 s7465|& +0 s7466|& +3 f0 (11878|@7|$#,)! +3 f2 (11878|@7|$#,)! +3 f0 (4650|$#,)! +3 f11874 (4650|$#,)! +3 f0 (11878|$#,)! +3 f1117 (11878|$#,)! +3 f0 (5187|$#,11874|0@5@4&#,1119|$#,1119|$#,1119|$#,1117|0@5@4&#,)! +3 f11878 (5187|$#,11874|0@5@4&#,1119|$#,1119|$#,1119|$#,1117|0@5@4&#,)! +3 f0 (5187|$#,11874|0@5@2&#,)! +3 f11878 (5187|$#,11874|0@5@2&#,)! +3 f0 (11878|$#,)! +3 f1117 (11878|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (5187|$#,11874|0@5@4&#,1119|$#,)! +3 f1119 (5187|$#,11874|0@5@4&#,1119|$#,)! +3 f0 (11878|0@0@4&#,)! +3 f1119 (11878|0@0@4&#,)! +3 f0 (11878|$#,)! +3 f2 (11878|$#,)! +3 f0 (1119|$#,9|$#,)! +3 f11874 (1119|$#,9|$#,)! +3 f0 (11874|0@2@2&#,)! +3 f1119 (11874|0@2@2&#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,1119|$#,2|$#,)! +3 f1119 (1119|$#,1119|$#,2|$#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,)! +3 f11878 (1119|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f11874 (11874|0@2@7&#,)! +3 f0 (11874|0@2@18&#,)! +3 f2 (11874|0@2@18&#,)! +3 f0 (11874|0@2@18&#,)! +3 f2 (11874|0@2@18&#,)! +3 f0 (11874|0@5@7&#,)! +3 f4327 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f11874 (11874|0@2@7&#,)! +3 f0 (11874|0@5@2&#,)! +3 f1 (11874|0@5@2&#,)! +3 f0 (4192|$#,)! +3 f11874 (4192|$#,)! +3 f0 ()! +3 f11874 ()! +3 f0 ()! +3 f11874 ()! +3 f0 (4650|$#,)! +3 f11874 (4650|$#,)! +3 f0 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f11874 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f0 (1117|0@5@4&#,4717|0@5@2&#,)! +3 f11874 (1117|0@5@4&#,4717|0@5@2&#,)! +3 f0 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f11874 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f0 ()! +3 f11874 ()! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (11874|0@2@18&#,)! +3 f11874 (11874|0@2@18&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f4717 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f4717 (11874|0@2@7&#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,)! 3 f0 ()! 3 f5 ()! -3 S_cfcn{991|@1|^#rval,4297|@1|0@5@18&#params,2|@1|^#liveparams,}! -0 s6874|-1 9743 -1 -1 t9742|9742& -0 s348|& -3 S_tsu{989|@1|0@5@3&#name,4297|@1|0@5@3&#fields,}! -0 s6781|-1 9747 -1 -1 t9746|9746& -0 s349|& -3 S_tconj{991|@1|^#a,991|@1|^#b,2|@1|^#isExplicit,}! -0 s6806|-1 9751 -1 -1 t9750|9750& -0 s350|& -3 S_tenum{989|@1|0@5@3&#tag,3942|@1|0@0@3&#members,}! -0 s6796|-1 9755 -1 -1 t9754|9754& -0 s351|& -3 S_tfixed{991|@1|^#base,9|@1|^#size,}! -0 s6748|-1 9759 -1 -1 t9758|9758& -0 s352|& -3 U_uconts{3851|@1|^#prim,4256|@1|^#tid,991|@1|^#base,9744|@1|0@0@3&#fcn,9748|@1|0@0@3&#su,9756|@1|0@0@3&#cenum,9752|@1|0@0@3&#conj,9760|@1|0@0@3&#farray,}! -0 s6981|& -0 s353|& -3 S__ctbase{4724|@1|^#type,9763|@1|^#contents,}! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f4256 (9633|0@5@7&#,)! -3 f0 (9633|0@2@7&#,4724|$#,)! -3 f2 (9633|0@2@7&#,4724|$#,)! -3 f0 (9633|0@2@7&#,4724|$#,4724|$#,)! -3 f2 (9633|0@2@7&#,4724|$#,4724|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f9633 (9633|0@2@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (991|$#,)! -3 f4727 (991|$#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (4724|$#,)! -3 f2 (4724|$#,)! -3 f0 (9633|0@5@7&#,)! -3 f4256 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 (312|$#,)! -3 f9633 (312|$#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,2|$#,)! -3 f5 (9633|0@5@7&#,9633|0@5@7&#,2|$#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (991|$#,991|$#,2|$#,)! -3 f9633 (991|$#,991|$#,2|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@7&#,)! -3 f989 (9633|0@2@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 ()! -3 f9633 ()! -3 f0 (991|$#,4297|0@5@17&#,)! -3 f9633 (991|$#,4297|0@5@17&#,)! -3 f0 (9633|0@2@7&#,)! -3 f9633 (9633|0@2@7&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f2 (9633|0@2@18&#,)! -3 f0 (9633|0@5@7&#,)! -3 f4256 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f4256 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,989|0@5@2&#,)! -3 f989 (9633|0@5@7&#,989|0@5@2&#,)! -1 t1296|1296& -3 f0 (9859|$#,)! -3 f9633 (9859|$#,)! -3 f0 (9633|0@5@7&#,)! -3 f989 (9633|0@5@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f9633 (9633|0@2@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f3942 (9633|0@5@7&#,)! -3 f0 (9633|0@5@2&#,)! -3 f1 (9633|0@5@2&#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 ()! -3 f9633 ()! -3 f0 (3851|$#,)! -3 f9633 (3851|$#,)! -3 f0 ()! -3 f9633 ()! -3 f0 ()! -3 f9633 ()! -3 f0 (4256|$#,)! -3 f9633 (4256|$#,)! -3 f0 (989|0@5@4&#,3942|0@0@4&#,)! -3 f9633 (989|0@5@4&#,3942|0@0@4&#,)! -3 f0 (9633|0@2@7&#,)! -3 f989 (9633|0@2@7&#,)! -3 f0 (4256|$#,)! -3 f9633 (4256|$#,)! -3 f0 ()! -3 f9633 ()! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,9|$#,)! -3 f9633 (991|$#,9|$#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,4297|0@5@17&#,)! -3 f9633 (991|$#,4297|0@5@17&#,)! -3 f0 (991|$#,4297|0@5@18&#,)! -3 f9633 (991|$#,4297|0@5@18&#,)! -3 f0 (9633|0@2@18&#,)! -3 f9633 (9633|0@2@18&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (991|$#,991|$#,2|$#,)! -3 f9633 (991|$#,991|$#,2|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,)! -3 f0 (989|0@5@2&#,4297|0@5@2&#,)! -3 f9633 (989|0@5@2&#,4297|0@5@2&#,)! -3 f0 (9633|0@2@7&#,)! -3 f4297 (9633|0@2@7&#,)! -3 f0 (989|0@5@4&#,4297|0@5@2&#,)! -3 f9633 (989|0@5@4&#,4297|0@5@2&#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f991 (9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,)! -3 f4297 (9633|0@2@7&#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f9633 (9633|0@2@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,2|$#,)! -3 f5 (9633|0@5@7&#,9633|0@5@7&#,2|$#,)! -3 f0 (9633|0@2@7&#,9633|0@2@7&#,)! -3 f5 (9633|0@2@7&#,9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,9633|0@2@7&#,)! -3 f0 (9633|0@2@7&#,4724|$#,)! -3 f2 (9633|0@2@7&#,4724|$#,)! -3 f0 (9633|0@2@7&#,4724|$#,4724|$#,)! -3 f2 (9633|0@2@7&#,4724|$#,4724|$#,)! -3 f0 (9633|0@2@7&#,)! -3 f2 (9633|0@2@7&#,)! -3 f0 (9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,)! -3 f0 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f2 (9633|0@5@7&#,9633|0@5@7&#,)! -3 f0 (9637|0@0@2&#,)! -3 f1 (9637|0@0@2&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,)! -3 f9633 (991|$#,)! -3 f0 (991|$#,)! -3 f9637 (991|$#,)! -3 f0 (4727|$#,9633|0@5@2&#,)! -3 f9637 (4727|$#,9633|0@5@2&#,)! -3 f0 (4727|$#,9633|0@5@4&#,991|$#,991|$#,991|$#,989|0@5@4&#,)! -3 f9637 (4727|$#,9633|0@5@4&#,991|$#,991|$#,991|$#,989|0@5@4&#,)! -3 f0 (9637|$#,)! -3 f989 (9637|$#,)! -3 f0 (9637|$#,)! -3 f2 (9637|$#,)! -3 f0 (9637|$#,)! -3 f989 (9637|$#,)! +3 S!230{1119|@1|^#rval,4717|@1|0@5@2&#params,}^11982 +0 s7467|& +1 t11980|11980& +0 s7468|& +3 S!231{1117|@1|0@5@3&#name,4717|@1|0@5@3&#fields,}^11986 +0 s7469|& +1 t11984|11984& +0 s7470|& +3 S!232{1119|@1|^#a,1119|@1|^#b,2|@1|^#isExplicit,}^11990 +0 s7471|& +1 t11988|11988& +0 s7472|& +3 S!233{1117|@1|0@5@3&#tag,4327|@1|0@0@3&#members,}^11994 +0 s7473|& +1 t11992|11992& +0 s7474|& +3 S!234{1119|@1|^#base,9|@1|^#size,}^11998 +0 s7475|& +1 t11996|11996& +0 s7476|& +3 U!235{4192|@1|^#prim,4650|@1|^#tid,1119|@1|^#base,11983|@1|0@0@3&#fcn,11987|@1|0@0@3&#su,11995|@1|0@0@3&#cenum,11991|@1|0@0@3&#conj,11999|@1|0@0@3&#farray,}! +0 s7477|& +0 s7478|& +3 Ss_ctbase{5184|@1|^#type,12002|@1|^#contents,}! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f4650 (11874|0@5@7&#,)! +3 f0 (11874|0@2@7&#,5184|$#,)! +3 f2 (11874|0@2@7&#,5184|$#,)! +3 f0 (11874|0@2@7&#,5184|$#,5184|$#,)! +3 f2 (11874|0@2@7&#,5184|$#,5184|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f11874 (11874|0@2@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f5187 (1119|$#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (5184|$#,)! +3 f2 (5184|$#,)! +3 f0 (11874|0@5@7&#,)! +3 f4650 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 (313|$#,)! +3 f11874 (313|$#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,2|$#,)! +3 f5 (11874|0@5@7&#,11874|0@5@7&#,2|$#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (1119|$#,1119|$#,2|$#,)! +3 f11874 (1119|$#,1119|$#,2|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (11874|0@2@18&#,)! +3 f2 (11874|0@2@18&#,)! +3 f0 (11874|0@2@6&#,)! +3 f2 (11874|0@2@6&#,)! +3 f0 (11874|0@2@6&#,)! +3 f2 (11874|0@2@6&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1117 (11874|0@2@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 ()! +3 f11874 ()! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f11874 (1119|$#,4717|0@5@2&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f11874 (11874|0@2@7&#,)! +3 f0 (11874|0@2@18&#,)! +3 f2 (11874|0@2@18&#,)! +3 f0 (11874|0@2@18&#,)! +3 f2 (11874|0@2@18&#,)! +3 f0 (11874|0@2@18&#,)! +3 f2 (11874|0@2@18&#,)! +3 f0 (11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,)! +3 f0 (11874|0@2@6&#,)! +3 f2 (11874|0@2@6&#,)! +3 f0 (11874|0@2@6&#,)! +3 f2 (11874|0@2@6&#,)! +3 f0 (11874|0@5@7&#,)! +3 f4650 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f4650 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,1117|0@5@2&#,)! +3 f1117 (11874|0@5@7&#,1117|0@5@2&#,)! +1 t1391|1391& +3 f0 (12100|$#,)! +3 f11874 (12100|$#,)! +3 f0 (11874|0@5@7&#,)! +3 f1117 (11874|0@5@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f11874 (11874|0@2@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f4327 (11874|0@5@7&#,)! +3 f0 (11874|0@5@2&#,)! +3 f1 (11874|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,2|$#,2|$#,2|$#,2|$#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 ()! +3 f11874 ()! +3 f0 (4192|$#,)! +3 f11874 (4192|$#,)! +3 f0 ()! +3 f11874 ()! +3 f0 ()! +3 f11874 ()! +3 f0 (4650|$#,)! +3 f11874 (4650|$#,)! +3 f0 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f11874 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1117 (11874|0@2@7&#,)! +3 f0 (4650|$#,)! +3 f11874 (4650|$#,)! +3 f0 ()! +3 f11874 ()! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,9|$#,)! +3 f11874 (1119|$#,9|$#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f11874 (1119|$#,4717|0@5@2&#,)! +3 f0 (11874|0@2@18&#,)! +3 f11874 (11874|0@2@18&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (1119|$#,1119|$#,2|$#,)! +3 f11874 (1119|$#,1119|$#,2|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,)! +3 f0 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f11874 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f0 (11874|0@2@7&#,)! +3 f4717 (11874|0@2@7&#,)! +3 f0 (1117|0@5@4&#,4717|0@5@2&#,)! +3 f11874 (1117|0@5@4&#,4717|0@5@2&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f1119 (11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,)! +3 f4717 (11874|0@2@7&#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f11874 (11874|0@2@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,2|$#,)! +3 f5 (11874|0@5@7&#,11874|0@5@7&#,2|$#,)! +3 f0 (11874|0@2@7&#,11874|0@2@7&#,)! +3 f5 (11874|0@2@7&#,11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,11874|0@2@7&#,)! +3 f0 (11874|0@2@7&#,5184|$#,)! +3 f2 (11874|0@2@7&#,5184|$#,)! +3 f0 (11874|0@2@7&#,5184|$#,5184|$#,)! +3 f2 (11874|0@2@7&#,5184|$#,5184|$#,)! +3 f0 (11874|0@2@7&#,)! +3 f2 (11874|0@2@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f2 (11874|0@5@7&#,11874|0@5@7&#,)! +3 f0 (11874|0@5@7&#,)! +3 f9 (11874|0@5@7&#,)! +3 f0 (11878|0@0@2&#,)! +3 f1 (11878|0@0@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (5187|$#,11874|0@5@2&#,)! +3 f11878 (5187|$#,11874|0@5@2&#,)! +3 f0 (5187|$#,11874|0@5@4&#,1119|$#,1119|$#,1119|$#,1117|0@5@4&#,)! +3 f11878 (5187|$#,11874|0@5@4&#,1119|$#,1119|$#,1119|$#,1117|0@5@4&#,)! +3 f0 (11878|$#,)! +3 f1117 (11878|$#,)! +3 f0 (11878|$#,)! +3 f2 (11878|$#,)! +3 f0 (11878|$#,)! +3 f1117 (11878|$#,)! 3 f0 (23|0@0@18&#,)! -3 f9637 (23|0@0@18&#,)! -3 f0 (9637|$#,)! -3 f989 (9637|$#,)! -3 f0 (9637|$#,)! -3 f989 (9637|$#,)! -3 f0 ()! -3 f989 ()! -3 f0 ()! -3 f1 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -1 t9637|9637& -3 f0 (4727|$#,9633|0@5@4&#,991|$#,)! -3 f991 (4727|$#,9633|0@5@4&#,991|$#,)! -3 f0 (9633|0@2@2&#,)! -3 f991 (9633|0@2@2&#,)! -3 f0 (9637|0@0@4&#,)! -3 f991 (9637|0@0@4&#,)! -3 f0 (9637|0@0@2&#,)! -3 f991 (9637|0@0@2&#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! +3 f11878 (23|0@0@18&#,)! +3 f0 (11878|$#,)! +3 f1117 (11878|$#,)! +3 f0 (11878|$#,)! +3 f1117 (11878|$#,)! +3 f0 ()! +3 f1117 ()! +3 f0 ()! +3 f1 ()! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +1 t11878|11878& +3 f0 (5187|$#,11874|0@5@4&#,1119|$#,)! +3 f1119 (5187|$#,11874|0@5@4&#,1119|$#,)! +3 f0 (11874|0@2@2&#,)! +3 f1119 (11874|0@2@2&#,)! +3 f0 (11878|0@0@4&#,)! +3 f1119 (11878|0@0@4&#,)! +3 f0 (11878|0@0@2&#,)! +3 f1119 (11878|0@0@2&#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! 3 f0 (5|$#,)! -3 f4727 (5|$#,)! +3 f5187 (5|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f1 ()! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (4256|$#,)! -3 f991 (4256|$#,)! -3 f0 (4256|$#,)! -3 f991 (4256|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (4650|$#,)! +3 f1119 (4650|$#,)! +3 f0 (4650|$#,)! +3 f1119 (4650|$#,)! 3 f0 ()! 3 f5 ()! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,9|$#,)! -3 f991 (991|$#,9|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f4297 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f5 (991|$#,991|$#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,4297|0@5@2&#,)! -3 f991 (991|$#,4297|0@5@2&#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,4297|0@5@18&#,)! -3 f991 (991|$#,4297|0@5@18&#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,9|$#,)! +3 f1119 (1119|$#,9|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f4717 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f5 (1119|$#,1119|$#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,4717|0@5@2&#,)! +3 f1119 (1119|$#,4717|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! 3 ?! -3 f10147 (991|$#,)! -3 f2 (991|$#,)^10150 -1 t10149|10149& -3 f0 (4415|$#,10150|$#,)! -3 f2 (4415|$#,10150|$#,)! -3 f0 (4415|$#,)! -3 f2 (4415|$#,)! -3 f0 (4415|$#,)! -3 f2 (4415|$#,)! -3 f0 (4415|$#,)! -3 f2 (4415|$#,)! -3 f0 (991|$#,991|$#,2|$#,)! -3 f991 (991|$#,991|$#,2|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f1 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (989|0@5@2&#,4297|0@5@2&#,)! -3 f991 (989|0@5@2&#,4297|0@5@2&#,)! -3 f0 (991|$#,)! -3 f4297 (991|$#,)! -3 f0 (989|0@5@2&#,4297|0@5@2&#,)! -3 f991 (989|0@5@2&#,4297|0@5@2&#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,2|$#,2|$#,2|$#,2|$#,)! -3 f2 (991|$#,991|$#,2|$#,2|$#,2|$#,2|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f4256 (991|$#,)! -3 f0 (991|$#,989|0@5@2&#,)! -3 f989 (991|$#,989|0@5@2&#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (312|$#,)! -3 f991 (312|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (5|$#,991|$#,)! -3 f991 (5|$#,991|$#,)! -3 f0 (991|$#,)! -3 f3942 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (989|0@5@4&#,3942|0@0@4&#,)! -3 f991 (989|0@5@4&#,3942|0@0@4&#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f989 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f991 (991|$#,)! -3 f0 (1500|$#,)! -3 f991 (1500|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,)! -3 f2 (991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f2 (991|$#,991|$#,)! -3 f0 (991|$#,991|$#,)! -3 f991 (991|$#,991|$#,)! -3 f0 (991|$#,)! -3 f9 (991|$#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 ()! -3 f989 ()! -3 f0 (2925|$#,2|$#,)! -3 f1 (2925|$#,2|$#,)! -3 f0 (2934|$#,2|$#,)! -3 f1 (2934|$#,2|$#,)! -3 f0 (3050|$#,2|$#,)! -3 f1 (3050|$#,2|$#,)! -3 f0 (2968|$#,4256|$#,2|$#,2|$#,)! -3 f1 (2968|$#,4256|$#,2|$#,2|$#,)! -3 f0 (2999|$#,)! -3 f1 (2999|$#,)! -3 f0 (2925|$#,)! -3 f1 (2925|$#,)! -3 f0 (2934|$#,)! -3 f1 (2934|$#,)! -3 f0 (3050|$#,)! -3 f1 (3050|$#,)! -3 f0 (2968|$#,4256|$#,)! -3 f1 (2968|$#,4256|$#,)! -3 f0 (2925|$#,)! -3 f1 (2925|$#,)! -3 f0 (2934|$#,)! -3 f1 (2934|$#,)! -3 f0 (3050|$#,)! -3 f1 (3050|$#,)! -3 f0 (2968|$#,4256|$#,)! -3 f1 (2968|$#,4256|$#,)! -3 U!84{1779|@1|^#tok,5|@1|^#count,5126|@1|^#sck,1500|@1|^#typequal,2156|@1|0@5@3&#tquallist,991|@1|^#ctyp,952|@1|0@5@18&#sr,4997|@1|0@5@2&#qtyp,989|@1|0@5@2&#cname,960|@1|0@5@2&#ntyp,7191|@1|0@0@2&#ntyplist,4297|@1|0@5@2&#flist,4297|@1|0@5@17&#entrylist,955|@1|0@5@18@3@0#entry,955|@1|0@5@2&#oentry,966|@1|0@5@2&#expr,3942|@1|0@0@2&#enumnamelist,3819|@1|0@0@2&#alist,972|@1|0@5@2&#srset,1882|@1|0@5@2&#cstringlist,981|@1|0@0@3&#con,984|@1|0@0@3&#conL,987|@1|0@5@3&#conE,}! -0 s6984|& -0 s354|-1 15417 -1 -3 f0 (960|@5|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,)! -3 f0 (955|0@5@7&#,991|$#,)! -3 f1 (955|0@5@7&#,991|$#,)! -3 f0 (3942|0@0@6&#,991|$#,978|0@5@7&#,)! -3 f1 (3942|0@0@6&#,991|$#,978|0@5@7&#,)! +3 f12384 (1119|$#,)! +3 f2 (1119|$#,)^12387 +1 t12386|12386& +3 f0 (4838|$#,12387|$#,)! +3 f2 (4838|$#,12387|$#,)! +3 f0 (4838|$#,)! +3 f2 (4838|$#,)! +3 f0 (4838|$#,)! +3 f2 (4838|$#,)! +3 f0 (4838|$#,)! +3 f2 (4838|$#,)! +3 f0 (1119|$#,1119|$#,2|$#,)! +3 f1119 (1119|$#,1119|$#,2|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f1 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f4717 (1119|$#,)! +3 f0 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,4717|0@5@2&#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,2|$#,2|$#,2|$#,2|$#,)! +3 f2 (1119|$#,1119|$#,2|$#,2|$#,2|$#,2|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f4650 (1119|$#,)! +3 f0 (1119|$#,1117|0@5@2&#,)! +3 f1117 (1119|$#,1117|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (313|$#,)! +3 f1119 (313|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (5|$#,1119|$#,)! +3 f1119 (5|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f4327 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f1119 (1117|0@5@4&#,4327|0@0@4&#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1117 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f1119 (1119|$#,)! +3 f0 (1706|$#,)! +3 f1119 (1706|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,)! +3 f2 (1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f2 (1119|$#,1119|$#,)! +3 f0 (1119|$#,1119|$#,)! +3 f1119 (1119|$#,1119|$#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,)! +3 f11874 (1119|$#,)! +3 f0 (1119|$#,)! +3 f11878 (1119|$#,)! +3 f0 (1119|$#,)! +3 f9 (1119|$#,)! +3 f0 (3266|$#,2|$#,)! +3 f1 (3266|$#,2|$#,)! +3 f0 (3275|$#,2|$#,)! +3 f1 (3275|$#,2|$#,)! +3 f0 (3390|$#,2|$#,)! +3 f1 (3390|$#,2|$#,)! +3 f0 (3309|$#,4650|$#,2|$#,2|$#,)! +3 f1 (3309|$#,4650|$#,2|$#,2|$#,)! +3 f0 (3340|$#,)! +3 f1 (3340|$#,)! +3 f0 (3266|$#,)! +3 f1 (3266|$#,)! +3 f0 (3275|$#,)! +3 f1 (3275|$#,)! +3 f0 (3390|$#,)! +3 f1 (3390|$#,)! +3 f0 (3309|$#,4650|$#,)! +3 f1 (3309|$#,4650|$#,)! +3 f0 (3266|$#,)! +3 f1 (3266|$#,)! +3 f0 (3275|$#,)! +3 f1 (3275|$#,)! +3 f0 (3390|$#,)! +3 f1 (3390|$#,)! +3 f0 (3309|$#,4650|$#,)! +3 f1 (3309|$#,4650|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (982|@5|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,)! +3 f0 (974|0@5@7&#,1119|$#,)! +3 f1 (974|0@5@7&#,1119|$#,)! +3 f0 (4327|0@0@6&#,1119|$#,1003|0@5@7&#,)! +3 f1 (4327|0@0@6&#,1119|$#,1003|0@5@7&#,)! +3 f0 ()! +3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (1500|$#,)! -3 f1 (1500|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1706|$#,)! +3 f1 (1706|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (1779|$#,5126|$#,972|0@5@2&#,1779|$#,)! -3 f1 (1779|$#,5126|$#,972|0@5@2&#,1779|$#,)! -3 f0 (1779|$#,972|0@5@2&#,1779|$#,)! -3 f1 (1779|$#,972|0@5@2&#,1779|$#,)! 3 f0 ()! -3 f984 ()! +3 f1112 ()! 3 f0 ()! -3 f984 ()! -3 f0 (984|$#,)! -3 f1 (984|$#,)! -3 f0 (984|$#,)! -3 f1 (984|$#,)! -3 f0 (972|0@5@2&#,)! -3 f1 (972|0@5@2&#,)! -3 f0 (952|0@5@18&#,2156|0@5@7&#,)! -3 f1 (952|0@5@18&#,2156|0@5@7&#,)! -3 f0 (952|0@5@18&#,2156|0@5@7&#,)! -3 f1 (952|0@5@18&#,2156|0@5@7&#,)! -3 f0 (989|0@5@7&#,4297|0@5@17&#,)! -3 f1 (989|0@5@7&#,4297|0@5@17&#,)! +3 f1112 ()! +3 f0 (1112|$#,)! +3 f1 (1112|$#,)! +3 f0 (1112|$#,)! +3 f1 (1112|$#,)! +3 f0 (971|0@5@7&#,2511|0@5@7&#,)! +3 f1 (971|0@5@7&#,2511|0@5@7&#,)! +3 f0 (971|0@5@6&#,2511|0@5@2&#,)! +3 f971 (971|0@5@6&#,2511|0@5@2&#,)! +3 f0 (1117|0@5@7&#,4717|0@5@17&#,)! +3 f1 (1117|0@5@7&#,4717|0@5@17&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f5 ()! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (3942|0@0@2&#,)! -3 f991 (3942|0@0@2&#,)! -3 f0 (989|0@5@2&#,3942|0@0@2&#,)! -3 f991 (989|0@5@2&#,3942|0@0@2&#,)! -3 f0 (3942|0@0@6&#,991|$#,978|0@5@7&#,)! -3 f1 (3942|0@0@6&#,991|$#,978|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (4327|0@0@2&#,)! +3 f1119 (4327|0@0@2&#,)! +3 f0 (1117|0@5@2&#,4327|0@0@2&#,)! +3 f1119 (1117|0@5@2&#,4327|0@0@2&#,)! +3 f0 (4327|0@0@6&#,1119|$#,1003|0@5@7&#,)! +3 f1 (4327|0@0@6&#,1119|$#,1003|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f984 ()! -3 f0 (4297|0@5@18&#,)! -3 f1 (4297|0@5@18&#,)! +3 f1112 ()! +3 f0 (4717|0@5@18&#,)! +3 f1 (4717|0@5@18&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f955 (960|0@5@7&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (960|0@5@2&#,)! -3 f1 (960|0@5@2&#,)! -3 f0 (960|0@5@2&#,)! -3 f1 (960|0@5@2&#,)! -3 f0 (955|0@5@7&#,991|$#,)! -3 f1 (955|0@5@7&#,991|$#,)! -3 f0 (7191|0@0@2&#,4997|0@5@7&#,)! -3 f4297 (7191|0@0@2&#,4997|0@5@7&#,)! -3 f0 (4997|0@5@7&#,)! -3 f4297 (4997|0@5@7&#,)! -3 f0 (3992|$#,)! -3 f1 (3992|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f974 (982|0@5@7&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (982|0@5@2&#,)! +3 f1 (982|0@5@2&#,)! +3 f0 (982|0@5@2&#,)! +3 f1 (982|0@5@2&#,)! +3 f0 (974|0@5@7&#,1119|$#,)! +3 f1 (974|0@5@7&#,1119|$#,)! +3 f0 (7823|0@0@2&#,5461|0@5@7&#,)! +3 f4717 (7823|0@0@2&#,5461|0@5@7&#,)! +3 f0 (5461|0@5@7&#,)! +3 f4717 (5461|0@5@7&#,)! +3 f0 (4377|$#,)! +3 f1 (4377|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -10430,12 +12666,12 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (4997|0@5@2&#,)! -3 f1 (4997|0@5@2&#,)! -3 f0 (4297|0@5@18&#,)! -3 f1 (4297|0@5@18&#,)! -3 f0 (4997|0@5@2&#,)! -3 f1 (4997|0@5@2&#,)! +3 f0 (5461|0@5@2&#,)! +3 f1 (5461|0@5@2&#,)! +3 f0 (4717|0@5@18&#,)! +3 f1 (4717|0@5@18&#,)! +3 f0 (5461|0@5@2&#,)! +3 f1 (5461|0@5@2&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -10444,32 +12680,32 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (4997|0@5@7&#,960|0@5@7&#,)! -3 f1 (4997|0@5@7&#,960|0@5@7&#,)! -3 f0 (4997|0@5@7&#,960|0@5@7&#,966|0@5@7&#,)! -3 f1 (4997|0@5@7&#,960|0@5@7&#,966|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f1 (960|0@5@7&#,)! -3 f0 (960|@5|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (4297|0@5@2&#,)! -3 f991 (4297|0@5@2&#,)! -3 f0 (989|0@5@6&#,4297|0@5@2&#,)! -3 f991 (989|0@5@6&#,4297|0@5@2&#,)! -3 f0 (989|0@5@6&#,4297|0@5@2&#,)! -3 f991 (989|0@5@6&#,4297|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f991 (989|0@5@2&#,)! +3 f0 (5461|0@5@7&#,982|0@5@7&#,)! +3 f1 (5461|0@5@7&#,982|0@5@7&#,)! +3 f0 (5461|0@5@7&#,982|0@5@7&#,988|0@5@7&#,)! +3 f1 (5461|0@5@7&#,982|0@5@7&#,988|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1 (982|0@5@7&#,)! +3 f0 (982|@5|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1119 (4717|0@5@2&#,)! +3 f0 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f0 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f1119 (1117|0@5@6&#,4717|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1119 (1117|0@5@2&#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f955 ()! +3 f974 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -10478,1439 +12714,979 @@ 3 f2 ()! 3 f0 ()! 3 f1 ()! -3 f0 (4297|@5|0@5@18&#,)! -3 f4297 (4297|@5|0@5@18&#,)! -3 f0 (4297|@5|0@5@18&#,)! -3 f4297 (4297|@5|0@5@18&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,989|0@5@2&#,)! -3 f952 (952|0@5@18&#,989|0@5@2&#,)! -3 f0 (989|0@5@7&#,)! -3 f952 (989|0@5@7&#,)! -3 f0 (952|0@5@18&#,989|0@5@2&#,)! -3 f952 (952|0@5@18&#,989|0@5@2&#,)! -3 f0 (955|0@5@7&#,)! -3 f952 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f952 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f952 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f952 (989|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f952 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (989|0@5@2&#,4997|0@5@2&#,)! -3 f960 (989|0@5@2&#,4997|0@5@2&#,)! -3 f0 (960|0@5@2&#,)! -3 f1 (960|0@5@2&#,)! -3 f0 (960|0@5@7&#,)! -3 f989 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f989 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f4997 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f991 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,)! -3 f2156 (960|0@5@7&#,)! -3 f0 (960|0@5@7&#,1500|$#,)! -3 f1 (960|0@5@7&#,1500|$#,)! -3 f0 (960|0@5@7&#,4997|0@5@2&#,)! -3 f1 (960|0@5@7&#,4997|0@5@2&#,)! -3 f0 (960|@5|0@5@7&#,991|$#,)! -3 f960 (960|@5|0@5@7&#,991|$#,)! -3 f0 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f0 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,4997|0@5@7&#,)! -3 f0 (960|@5|0@5@7&#,)! -3 f960 (960|@5|0@5@7&#,)! -3 f0 (1826|$#,)! -3 f989 (1826|$#,)! -3 f0 (1826|$#,)! -3 f989 (1826|$#,)! -3 f0 (1826|$#,)! -3 f989 (1826|$#,)! -3 f0 (1826|$#,2|$#,)! -3 f989 (1826|$#,2|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (1826|$#,)! -3 f2 (1826|$#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! +3 f0 (4717|@5|0@5@18&#,)! +3 f4717 (4717|@5|0@5@18&#,)! +3 f0 (4717|@5|0@5@18&#,)! +3 f4717 (4717|@5|0@5@18&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,1117|0@5@2&#,)! +3 f971 (971|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f971 (1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@2&#,)! +3 f971 (971|0@5@7&#,1117|0@5@2&#,)! +3 f0 (974|0@5@7&#,)! +3 f971 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f971 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f971 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f971 (1117|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@7&#,)! +3 f971 (971|0@5@19@2@0#,971|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (988|0@5@2&#,)! +3 f971 (988|0@5@2&#,)! +3 f0 (1117|0@5@2&#,5461|0@5@2&#,1030|0@5@2&#,)! +3 f982 (1117|0@5@2&#,5461|0@5@2&#,1030|0@5@2&#,)! +3 f0 (1117|0@5@2&#,5461|0@5@2&#,)! +3 f982 (1117|0@5@2&#,5461|0@5@2&#,)! +3 f0 (982|0@5@2&#,)! +3 f1 (982|0@5@2&#,)! +3 f0 (982|0@5@7&#,)! +3 f1117 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1117 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1117 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f5461 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1119 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f2511 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,)! +3 f1030 (982|0@5@7&#,)! +3 f0 (982|0@5@7&#,1706|$#,)! +3 f1 (982|0@5@7&#,1706|$#,)! +3 f0 (982|0@5@7&#,5461|0@5@2&#,)! +3 f1 (982|0@5@7&#,5461|0@5@2&#,)! +3 f0 (982|@5|0@5@7&#,1119|$#,)! +3 f982 (982|@5|0@5@7&#,1119|$#,)! +3 f0 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f0 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,5461|0@5@7&#,)! +3 f0 (982|@5|0@5@7&#,)! +3 f982 (982|@5|0@5@7&#,)! +3 f0 (982|0@5@7&#,1030|0@5@2&#,)! +3 f1 (982|0@5@7&#,1030|0@5@2&#,)! +3 f0 (2062|$#,)! +3 f1117 (2062|$#,)! +3 f0 (2062|$#,)! +3 f1117 (2062|$#,)! +3 f0 (2062|$#,)! +3 f1117 (2062|$#,)! +3 f0 (2062|$#,2|$#,)! +3 f1117 (2062|$#,2|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2062|$#,)! +3 f2 (2062|$#,)! +3 f0 (2013|0@0@2&#,1106|0@5@2&#,)! +3 f1033 (2013|0@0@2&#,1106|0@5@2&#,)! +3 f0 (1033|$#,)! +3 f1106 (1033|$#,)! +3 f0 (1033|$#,)! +3 f1106 (1033|$#,)! +3 f0 (1033|0@0@2&#,)! +3 f1 (1033|0@0@2&#,)! +3 f0 (1033|$#,)! +3 f1117 (1033|$#,)! +3 f0 (2013|0@0@2&#,)! +3 f1036 (2013|0@0@2&#,)! +3 f0 (2013|0@0@2&#,994|0@5@2&#,)! +3 f1036 (2013|0@0@2&#,994|0@5@2&#,)! +3 f0 (1036|0@0@2&#,)! +3 f1 (1036|0@0@2&#,)! +3 f0 (1036|$#,)! +3 f1117 (1036|$#,)! +3 f0 (1036|$#,)! +3 f994 (1036|$#,)! +3 f0 (1036|$#,)! +3 f994 (1036|$#,)! +3 f0 (1003|0@5@2&#,1678|0@5@2&#,988|0@5@2&#,)! +3 f1039 (1003|0@5@2&#,1678|0@5@2&#,988|0@5@2&#,)! +3 f0 (2013|0@0@2&#,1678|0@5@2&#,988|0@5@2&#,)! +3 f1039 (2013|0@0@2&#,1678|0@5@2&#,988|0@5@2&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1678 (1039|0@5@7&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1117 (1039|0@5@7&#,)! +3 f0 (1039|0@5@7&#,)! +3 f2 (1039|0@5@7&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1117 (1039|0@5@7&#,)! +3 f0 (1039|0@5@2&#,)! +3 f1 (1039|0@5@2&#,)! +3 f0 (1039|0@5@7&#,)! +3 f1117 (1039|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1039 (313|$#,)! +3 f0 (2136|$#,)! +3 f1027 (2136|$#,)! +3 f0 (1033|0@0@2&#,)! +3 f1027 (1033|0@0@2&#,)! +3 f0 (1036|0@0@2&#,)! +3 f1027 (1036|0@0@2&#,)! +3 f0 (1042|0@0@2&#,)! +3 f1027 (1042|0@0@2&#,)! +3 f0 (1039|0@5@2&#,)! +3 f1027 (1039|0@5@2&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1117 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,2136|$#,)! +3 f2 (1027|0@5@7&#,2136|$#,)! +3 f0 (1027|0@5@7&#,)! +3 f1042 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1042 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1039 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1039 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1036 (1027|0@5@7&#,)! +3 f0 (1027|0@5@7&#,)! +3 f1033 (1027|0@5@7&#,)! +3 f0 (1027|0@5@2&#,)! +3 f1 (1027|0@5@2&#,)! +3 f0 ()! +3 f1030 ()! +3 f0 ()! +3 f1030 ()! +1 t1027|1027& +3 f0 (1030|0@2@7&#,)! +3 f1 (1030|0@2@7&#,)! +3 f0 (1027|0@5@4&#,)! +3 f1030 (1027|0@5@4&#,)! +3 f0 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f1030 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f0 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f1030 (1030|@5|0@5@7&#,1027|0@5@4&#,)! +3 f0 (1030|0@5@7&#,)! +3 f1117 (1030|0@5@7&#,)! +3 f0 (1030|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1030|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1030|0@5@2&#,)! +3 f1 (1030|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! 3 f0 (6|$#,)! 3 f1 (6|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 ()! -3 f989 ()! -3 f0 (4000|$#,4000|$#,)! -3 f4000 (4000|$#,4000|$#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f2 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,955|0@5@7&#,2|$#,966|0@5@18&#,5|$#,5|$#,)! -3 f1 (966|0@5@7&#,955|0@5@7&#,2|$#,966|0@5@18&#,5|$#,5|$#,)! -3 f0 (966|0@5@7&#,955|0@5@7&#,)! -3 f1 (966|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f2 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 e!85{TT_FCNRETURN,TT_DOASSIGN,TT_FIELDASSIGN,TT_FCNPASS,TT_GLOBPASS,TT_GLOBRETURN,TT_PARAMRETURN,TT_LEAVETRANS,TT_GLOBINIT}! -0 s7049|& -0 s355|& -3 f0 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f0 (955|0@5@7&#,10592|$#,)! -3 f1 (955|0@5@7&#,10592|$#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f0 (955|0@5@7&#,10592|$#,)! -3 f1 (955|0@5@7&#,10592|$#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,2|$#,2|$#,2|$#,978|0@5@7&#,10592|$#,5|$#,2|$#,)! -3 f1299 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,2|$#,2|$#,2|$#,978|0@5@7&#,10592|$#,5|$#,2|$#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f2 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (4000|$#,4000|$#,)! -3 f4000 (4000|$#,4000|$#,)! -3 f0 (10592|$#,4000|$#,)! -3 f989 (10592|$#,4000|$#,)! -3 f0 (10592|$#,4003|$#,)! -3 f989 (10592|$#,4003|$#,)! -3 f0 (10592|$#,)! -3 f989 (10592|$#,)! -3 f0 (10592|$#,)! -3 f989 (10592|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,952|0@5@18&#,10592|$#,)! -3 f989 (966|0@5@7&#,966|0@5@7&#,952|0@5@18&#,10592|$#,)! -3 f0 (10592|$#,)! -3 f989 (10592|$#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,2|$#,2|$#,2|$#,978|0@5@7&#,10592|$#,5|$#,2|$#,)! -3 f1299 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,2|$#,2|$#,2|$#,978|0@5@7&#,10592|$#,5|$#,2|$#,)! -3 e!86{DSC_GLOB,DSC_LOCAL,DSC_PARAM,DSC_STRUCT}! -0 s7050|& -0 s356|& -3 f0 (10631|$#,)! -3 f989 (10631|$#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,2|$#,978|0@5@7&#,5|$#,10631|$#,)! -3 f2 (966|0@5@7&#,952|0@5@18&#,2|$#,978|0@5@7&#,5|$#,10631|$#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f2 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,2|$#,978|0@5@7&#,5|$#,10631|$#,)! -3 f2 (966|0@5@7&#,952|0@5@18&#,2|$#,978|0@5@7&#,5|$#,10631|$#,)! -3 f0 (966|0@5@7&#,955|0@5@7&#,)! -3 f1 (966|0@5@7&#,955|0@5@7&#,)! -3 f0 (955|0@5@7&#,966|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f1 (955|0@5@7&#,966|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 (966|0@5@7&#,955|0@5@7&#,2|$#,966|0@5@18&#,5|$#,5|$#,)! -3 f1 (966|0@5@7&#,955|0@5@7&#,2|$#,966|0@5@18&#,5|$#,5|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,10592|$#,)! -3 f1 (955|0@5@7&#,10592|$#,)! -3 f0 (955|0@5@7&#,10592|$#,)! -3 f1 (955|0@5@7&#,10592|$#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,2|$#,966|0@5@7&#,952|0@5@18&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,2|$#,966|0@5@7&#,952|0@5@18&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,10592|$#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f2 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f2 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! -3 f1 (952|0@5@18&#,966|0@5@7&#,2|$#,952|0@5@18&#,966|0@5@7&#,2|$#,978|0@5@7&#,10592|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (4387|$#,4387|$#,)! +3 f4387 (4387|$#,4387|$#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f2 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,974|0@5@7&#,2|$#,988|0@5@18&#,5|$#,5|$#,)! +3 f1 (988|0@5@7&#,974|0@5@7&#,2|$#,988|0@5@18&#,5|$#,5|$#,)! +3 f0 (988|0@5@7&#,974|0@5@7&#,)! +3 f1 (988|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (971|0@5@18&#,1003|0@5@7&#,)! +3 f2 (971|0@5@18&#,1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 e!236{TT_FCNRETURN,TT_DOASSIGN,TT_FIELDASSIGN,TT_FCNPASS,TT_GLOBPASS,TT_GLOBRETURN,TT_PARAMRETURN,TT_LEAVETRANS,TT_GLOBINIT}! +0 s7512|& +0 s7513|& +3 f0 (988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f1 (988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@19@2@0#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f0 (974|0@5@7&#,12929|$#,)! +3 f1 (974|0@5@7&#,12929|$#,)! +3 f0 (988|0@5@7&#,971|0@5@18&#,988|0@5@7&#,971|0@5@18&#,1003|0@5@7&#,12929|$#,)! +3 f1 (988|0@5@7&#,971|0@5@18&#,988|0@5@7&#,971|0@5@18&#,1003|0@5@7&#,12929|$#,)! +3 f0 (974|0@5@7&#,12929|$#,)! +3 f1 (974|0@5@7&#,12929|$#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,2|$#,2|$#,2|$#,1003|0@5@7&#,12929|$#,5|$#,2|$#,)! +3 f1394 (988|0@5@7&#,971|0@5@19@2@0#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,2|$#,2|$#,2|$#,1003|0@5@7&#,12929|$#,5|$#,2|$#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@18&#,1003|0@5@7&#,)! +3 f2 (971|0@5@18&#,1003|0@5@7&#,)! +3 f0 (4387|$#,4387|$#,)! +3 f4387 (4387|$#,4387|$#,)! +3 f0 (12929|$#,4387|$#,)! +3 f1117 (12929|$#,4387|$#,)! +3 f0 (12929|$#,988|0@5@7&#,988|0@5@7&#,)! +3 f1117 (12929|$#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 (12929|$#,4390|$#,)! +3 f1117 (12929|$#,4390|$#,)! +3 f0 (12929|$#,)! +3 f1117 (12929|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,971|0@5@7&#,12929|$#,)! +3 f1117 (988|0@5@7&#,988|0@5@7&#,971|0@5@7&#,12929|$#,)! +3 f0 (12929|$#,)! +3 f1117 (12929|$#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,2|$#,2|$#,2|$#,1003|0@5@7&#,12929|$#,5|$#,2|$#,)! +3 f1394 (988|0@5@7&#,971|0@5@19@2@0#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,2|$#,2|$#,2|$#,1003|0@5@7&#,12929|$#,5|$#,2|$#,)! +3 e!237{DSC_GLOB,DSC_LOCAL,DSC_PARAM,DSC_STRUCT}! +0 s7518|& +0 s7519|& +3 f0 (12968|$#,)! +3 f1117 (12968|$#,)! +3 f0 (988|0@5@7&#,971|0@5@7&#,2|$#,1003|0@5@7&#,5|$#,12968|$#,2|$#,)! +3 f2 (988|0@5@7&#,971|0@5@7&#,2|$#,1003|0@5@7&#,5|$#,12968|$#,2|$#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f2 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,971|0@5@7&#,2|$#,1003|0@5@7&#,5|$#,12968|$#,2|$#,)! +3 f2 (988|0@5@7&#,971|0@5@7&#,2|$#,1003|0@5@7&#,5|$#,12968|$#,2|$#,)! +3 f0 (988|0@5@7&#,974|0@5@7&#,)! +3 f1 (988|0@5@7&#,974|0@5@7&#,)! +3 f0 (974|0@5@7&#,988|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,988|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 (988|0@5@7&#,974|0@5@7&#,2|$#,988|0@5@18&#,5|$#,5|$#,)! +3 f1 (988|0@5@7&#,974|0@5@7&#,2|$#,988|0@5@18&#,5|$#,5|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,12929|$#,)! +3 f1 (974|0@5@7&#,12929|$#,)! +3 f0 (974|0@5@7&#,12929|$#,)! +3 f1 (974|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f1 (988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@19@2@0#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@19@2@0#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@7&#,988|0@5@7&#,2|$#,971|0@5@7&#,988|0@5@7&#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,2|$#,988|0@5@7&#,971|0@5@19@2@0#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,2|$#,988|0@5@7&#,971|0@5@19@2@0#,2|$#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f1 (971|0@5@19@2@0#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f0 (988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f1 (988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,1003|0@5@7&#,12929|$#,)! +3 f0 (988|0@5@7&#,971|0@5@18&#,988|0@5@7&#,971|0@5@18&#,1003|0@5@7&#,12929|$#,)! +3 f1 (988|0@5@7&#,971|0@5@18&#,988|0@5@7&#,971|0@5@18&#,1003|0@5@7&#,12929|$#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@18&#,1003|0@5@7&#,)! +3 f2 (971|0@5@18&#,1003|0@5@7&#,)! +3 f0 (971|0@5@18&#,1003|0@5@7&#,)! +3 f2 (971|0@5@18&#,1003|0@5@7&#,)! 3 f0 (5|$#,)! -3 f4000 (5|$#,)! +3 f4387 (5|$#,)! 3 f0 (5|$#,)! -3 f3995 (5|$#,)! +3 f4380 (5|$#,)! 3 f0 (5|$#,)! -3 f3989 (5|$#,)! +3 f4374 (5|$#,)! 3 f0 (5|$#,)! -3 f4003 (5|$#,)! -3 f0 (3989|$#,)! -3 f989 (3989|$#,)! -3 f0 (3995|$#,)! -3 f2 (3995|$#,)! -3 f0 (3995|$#,)! -3 f2 (3995|$#,)! -3 f0 (3995|$#,)! -3 f989 (3995|$#,)! -3 f0 (3995|$#,3995|$#,)! -3 f5 (3995|$#,3995|$#,)! -3 f0 (4000|$#,4000|$#,)! -3 f4000 (4000|$#,4000|$#,)! -3 f0 (4000|$#,)! -3 f989 (4000|$#,)! -3 f0 (4003|$#,)! -3 f989 (4003|$#,)! -3 f0 (4003|$#,)! -3 f989 (4003|$#,)! -3 f0 (4003|$#,)! -3 f989 (4003|$#,)! -3 f0 (4000|$#,)! -3 f989 (4000|$#,)! -3 f0 (1500|$#,)! -3 f4003 (1500|$#,)! -3 f0 (1500|$#,)! -3 f3989 (1500|$#,)! -3 f0 (1500|$#,)! -3 f4096 (1500|$#,)! -3 f0 (1500|$#,)! -3 f4000 (1500|$#,)! -3 f0 (4000|$#,)! -3 f2 (4000|$#,)! -3 f0 (4000|$#,4000|$#,)! -3 f2 (4000|$#,4000|$#,)! -3 f0 (4000|$#,4000|$#,)! -3 f2 (4000|$#,4000|$#,)! -3 f0 (4000|$#,)! -3 f4000 (4000|$#,)! -3 f0 (4096|$#,)! -3 f989 (4096|$#,)! -3 f0 (4096|$#,)! -3 f4096 (4096|$#,)! -3 f0 (4096|$#,4096|$#,)! -3 f4096 (4096|$#,4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! -3 f0 (4096|$#,)! -3 f2 (4096|$#,)! +3 f4390 (5|$#,)! +3 f0 (4374|$#,)! +3 f1117 (4374|$#,)! +3 f0 (4380|$#,)! +3 f2 (4380|$#,)! +3 f0 (4380|$#,)! +3 f2 (4380|$#,)! +3 f0 (4380|$#,)! +3 f1117 (4380|$#,)! +3 f0 (4380|$#,4380|$#,)! +3 f5 (4380|$#,4380|$#,)! +3 f0 (4387|$#,4387|$#,)! +3 f4387 (4387|$#,4387|$#,)! +3 f0 (4387|$#,)! +3 f1117 (4387|$#,)! +3 f0 (4390|$#,)! +3 f1117 (4390|$#,)! +3 f0 (4390|$#,)! +3 f1117 (4390|$#,)! +3 f0 (4390|$#,)! +3 f1117 (4390|$#,)! +3 f0 (4387|$#,)! +3 f1117 (4387|$#,)! +3 f0 (1706|$#,)! +3 f4390 (1706|$#,)! +3 f0 (1706|$#,)! +3 f4374 (1706|$#,)! +3 f0 (1706|$#,)! +3 f4485 (1706|$#,)! +3 f0 (1706|$#,)! +3 f4387 (1706|$#,)! +3 f0 (4387|$#,)! +3 f2 (4387|$#,)! +3 f0 (4387|$#,4387|$#,)! +3 f2 (4387|$#,4387|$#,)! +3 f0 (4387|$#,4387|$#,)! +3 f2 (4387|$#,4387|$#,)! +3 f0 (4387|$#,)! +3 f4387 (4387|$#,)! +3 f0 (4485|$#,)! +3 f1117 (4485|$#,)! +3 f0 (4485|$#,)! +3 f4485 (4485|$#,)! +3 f0 (4485|$#,4485|$#,)! +3 f4485 (4485|$#,4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! +3 f0 (4485|$#,)! +3 f2 (4485|$#,)! 3 f0 (5|$#,)! -3 f4096 (5|$#,)! -3 f0 (955|0@5@7&#,1910|$#,2|$#,)! -3 f2 (955|0@5@7&#,1910|$#,2|$#,)! -3 f0 (955|0@5@7&#,1910|$#,2|$#,)! -3 f2 (955|0@5@7&#,1910|$#,2|$#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -2 y1910|1910& -3 f1 (1910|@3|&#,)! +3 f4485 (5|$#,)! +3 f0 (974|0@5@7&#,1597|$#,2|$#,)! +3 f2 (974|0@5@7&#,1597|$#,2|$#,)! +3 f0 (974|0@5@7&#,1597|$#,2|$#,)! +3 f2 (974|0@5@7&#,1597|$#,2|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +2 y1597|1597& +3 f1 (1597|@3|&#,)! 3 f0 (5|$#,5|$#,)! 3 f2 (5|$#,5|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (1910|$#,)! -3 f1910 (1910|$#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,1910|$#,2|$#,)! -3 f2 (955|0@5@7&#,1910|$#,2|$#,)! -3 f0 (955|0@5@7&#,1910|$#,2|$#,)! -3 f2 (955|0@5@7&#,1910|$#,2|$#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (989|0@5@7&#,978|0@5@7&#,)! -3 f2 (989|0@5@7&#,978|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1597|$#,)! +3 f1597 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,1597|$#,2|$#,)! +3 f2 (974|0@5@7&#,1597|$#,2|$#,)! +3 f0 (974|0@5@7&#,1597|$#,2|$#,)! +3 f2 (974|0@5@7&#,1597|$#,2|$#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! 2 F0/0|0& -2 F1067/0|1067& -1 t1067|1067& -3 f0 (989|0@5@7&#,978|0@5@7&#,)! -3 f2 (989|0@5@7&#,978|0@5@7&#,)! +2 F1164/0|1164& +1 t1164|1164& +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! 2 F0/0|0& -2 F1067/0|1067& -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (991|$#,991|@7|$#,)! -3 f2 (991|$#,991|@7|$#,)! -3 f0 (972|0@5@7&#,955|0@5@7&#,)! -3 f1 (972|0@5@7&#,955|0@5@7&#,)! -3 f0 (952|0@5@18&#,3819|$#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (952|0@5@18&#,3819|$#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,966|0@5@2&#,)! -3 f1 (955|0@5@7&#,966|0@5@2&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f1 (978|0@5@7&#,)! -3 f0 (989|0@5@7&#,966|0@5@7&#,)! -3 f1 (989|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (4379|0@5@7&#,4379|0@5@7&#,)! -3 f1 (4379|0@5@7&#,4379|0@5@7&#,)! -0 s71|-1 10830 -1 -1 t10829|10829& -3 S_exprNodeSList{5|@1|^#nelements,5|@1|^#nspace,10830|@1|11@3@3&#elements,}! -0 s6870|-1 10833 -1 -1 t10832|10832& -0 a357|& -3 f1 (10834|@7|&#,966|@3|6@5@19@2@0#,)! -3 f0 ()! -3 f10834 ()! -3 f0 (966|0@5@18@2@0#,)! -3 f10834 (966|0@5@18@2@0#,)! -3 f0 (10834|$#,966|0@5@18@2@0#,)! -3 f1 (10834|$#,966|0@5@18@2@0#,)! -3 f0 (10834|$#,)! -3 f989 (10834|$#,)! -3 f0 (10834|0@0@2&#,)! -3 f1 (10834|0@0@2&#,)! -3 f0 (10834|@5|$#,10834|0@0@2&#,)! -3 f10834 (10834|@5|$#,10834|0@0@2&#,)! -3 f0 (6392|$#,6392|$#,)! -3 f2 (6392|$#,6392|$#,)! -3 f0 (6392|0@0@2&#,)! -3 f1 (6392|0@0@2&#,)! -3 f0 ()! -3 f6392 ()! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f989 (6392|$#,)! -3 f0 (6392|@5|$#,)! -3 f6392 (6392|@5|$#,)! -3 f0 (6392|$#,)! -3 f978 (6392|$#,)! -3 f0 (6392|$#,)! -3 f6388 (6392|$#,)! -3 f0 (6392|$#,)! -3 f952 (6392|$#,)! -3 f0 (966|0@5@18@2@0#,)! -3 f6392 (966|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f6392 (952|0@5@18@2@0#,)! -3 f0 (6392|$#,)! -3 f6392 (6392|$#,)! -3 f0 (6392|@5|$#,978|0@5@7&#,)! -3 f6392 (6392|@5|$#,978|0@5@7&#,)! -3 f0 (6392|$#,)! -3 f989 (6392|$#,)! -3 f0 (6392|@5|$#,3819|$#,)! -3 f6392 (6392|@5|$#,3819|$#,)! -3 f0 (6392|$#,)! -3 f989 (6392|$#,)! -3 f0 (5|$#,)! -3 f6392 (5|$#,)! -3 f0 (6392|$#,)! -3 f2 (6392|$#,)! -3 f0 (6392|$#,)! -3 f5 (6392|$#,)! -3 f0 (6392|$#,6392|$#,)! -3 f2 (6392|$#,6392|$#,)! -3 f0 (6392|$#,)! -3 f952 (6392|$#,)! -3 f0 (6392|$#,6392|$#,)! -3 f2 (6392|$#,6392|$#,)! -3 f0 (6392|$#,6392|$#,)! -3 f2 (6392|$#,6392|$#,)! -3 f0 (6392|0@0@19@3@0#,210|$#,)! -3 f1 (6392|0@0@19@3@0#,210|$#,)! -3 f0 (210|$#,)! -3 f6392 (210|$#,)! -3 f0 (6456|0@0@2&#,)! -3 f1 (6456|0@0@2&#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6456 (6456|0@0@19@3@0#,)! -3 f0 (6456|0@0@2&#,)! -3 f1 (6456|0@0@2&#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6456 (6456|0@0@19@3@0#,)! -3 f0 (6456|0@0@2&#,)! -3 f1 (6456|0@0@2&#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6456 (6456|0@0@19@3@0#,)! -3 f0 (6456|@5|11@0@7&#,6392|0@0@2&#,)! -3 f6456 (6456|@5|11@0@7&#,6392|0@0@2&#,)! -3 f0 (6456|0@0@19@3@0#,)! -3 f6392 (6456|0@0@19@3@0#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f6446 (6456|11@0@19@3@0#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f987 (6456|11@0@19@3@0#,)! -3 f0 (6456|@5|11@0@7&#,6446|$#,)! -3 f6456 (6456|@5|11@0@7&#,6446|$#,)! -3 f0 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f6456 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f0 (6456|11@0@7&#,)! -3 f6443 (6456|11@0@7&#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f987 (6456|11@0@19@3@0#,)! -3 f0 (6456|11@0@19@3@0#,)! -3 f987 (6456|11@0@19@3@0#,)! -3 f0 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f6456 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f0 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f6456 (6456|@5|11@0@7&#,987|0@5@2&#,)! -3 f0 (6456|@5|11@0@7&#,6443|$#,)! -3 f6456 (6456|@5|11@0@7&#,6443|$#,)! -3 f0 (987|0@5@2&#,5|$#,)! -3 f987 (987|0@5@2&#,5|$#,)! -3 f0 (987|0@5@2&#,3819|0@0@6@3@0#,)! -3 f987 (987|0@5@2&#,3819|0@0@6@3@0#,)! -3 f0 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f987 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f0 ()! -3 f987 ()! -3 f0 (987|0@5@2&#,)! -3 f1 (987|0@5@2&#,)! -3 f0 (987|0@5@7&#,)! -3 f2 (987|0@5@7&#,)! -3 f0 (987|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! -3 f987 (987|0@5@2&#,21|4@0@7&#,24|4@0@7&#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 ()! -3 f987 ()! -3 f0 (6456|0@0@19@3@0#,6501|$#,)! -3 f6456 (6456|0@0@19@3@0#,6501|$#,)! -3 f0 (987|0@5@7&#,)! -3 f987 (987|0@5@7&#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (6392|0@0@2&#,)! -3 f987 (6392|0@0@2&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f987 (952|0@5@18@2@0#,)! -3 f0 ()! -3 f987 ()! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@2&#,6446|$#,)! -3 f987 (987|0@5@2&#,6446|$#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (952|0@5@18@2@0#,6446|$#,)! -3 f987 (952|0@5@18@2@0#,6446|$#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f987 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f987 (952|0@5@18@2@0#,)! -3 f0 (1779|$#,987|0@5@2&#,)! -3 f987 (1779|$#,987|0@5@2&#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,)! -3 f0 (5|$#,)! -3 f987 (5|$#,)! -3 f0 ()! -3 f987 ()! -3 f0 (987|0@5@2&#,987|0@5@2&#,)! -3 f987 (987|0@5@2&#,987|0@5@2&#,)! -3 f0 (987|0@5@2&#,1779|$#,987|0@5@2&#,)! -3 f987 (987|0@5@2&#,1779|$#,987|0@5@2&#,)! -3 f0 (966|0@5@19@2@0#,966|0@5@19@2@0#,)! -3 f987 (966|0@5@19@2@0#,966|0@5@19@2@0#,)! -3 f0 (987|0@5@2&#,5|$#,)! -3 f987 (987|0@5@2&#,5|$#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@2&#,987|0@5@2&#,)! -3 f987 (987|0@5@2&#,987|0@5@2&#,)! -3 f0 (987|0@5@2&#,987|0@5@2&#,)! -3 f987 (987|0@5@2&#,987|0@5@2&#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (6446|$#,)! -3 f989 (6446|$#,)! -3 f0 (6443|$#,)! -3 f989 (6443|$#,)! -3 f0 (987|0@5@7&#,987|0@5@7&#,)! -3 f2 (987|0@5@7&#,987|0@5@7&#,)! -3 f0 (987|0@5@7&#,987|0@5@7&#,)! -3 f2 (987|0@5@7&#,987|0@5@7&#,)! -3 f0 (987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f2 (987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (987|0@5@2&#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f987 (987|0@5@2&#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (987|@5|0@5@7&#,)! -3 f987 (987|@5|0@5@7&#,)! -3 f0 (987|@5|0@5@7&#,978|0@5@7&#,)! -3 f987 (987|@5|0@5@7&#,978|0@5@7&#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@7&#,987|0@5@2&#,)! -3 f987 (987|0@5@7&#,987|0@5@2&#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@2&#,)! -3 f987 (987|0@5@2&#,)! -3 f0 (987|0@5@6@3@0#,)! -3 f989 (987|0@5@6@3@0#,)! -3 f0 (987|@5|0@5@7&#,3819|$#,)! -3 f987 (987|@5|0@5@7&#,3819|$#,)! -3 f0 (987|@5|0@5@2&#,3819|$#,)! -3 f987 (987|@5|0@5@2&#,3819|$#,)! -3 f0 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f987 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f0 (987|0@5@7&#,)! -3 f989 (987|0@5@7&#,)! -3 f0 (987|0@5@19@3@0#,)! -3 f2 (987|0@5@19@3@0#,)! -3 f0 (987|0@5@7&#,987|0@5@7&#,)! -3 f5 (987|0@5@7&#,987|0@5@7&#,)! -3 f0 (987|0@5@7&#,)! -3 f5 (987|0@5@7&#,)! -3 f0 (987|0@5@7&#,)! -3 f2 (987|0@5@7&#,)! -3 f0 (987|0@5@7&#,)! -3 f978 (987|0@5@7&#,)! -3 f0 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f987 (987|0@5@2&#,966|0@5@19@2@0#,)! -3 f0 (987|0@5@2&#,3819|0@0@6@3@0#,)! -3 f987 (987|0@5@2&#,3819|0@0@6@3@0#,)! -3 f0 (987|0@5@19@3@0#,)! -3 f2 (987|0@5@19@3@0#,)! -3 f0 (6456|0@0@19@3@0#,210|$#,)! -3 f1 (6456|0@0@19@3@0#,210|$#,)! -3 f0 (210|$#,)! -3 f987 (210|$#,)! -3 f0 (6456|0@0@19@3@0#,210|$#,)! -3 f1 (6456|0@0@19@3@0#,210|$#,)! -3 f0 (210|$#,)! -3 f987 (210|$#,)! -3 f0 (987|0@5@19@3@0#,210|$#,)! -3 f1 (987|0@5@19@3@0#,210|$#,)! -3 f0 (210|$#,)! -3 f987 (210|$#,)! -3 f0 (981|0@0@6@3@0#,)! -3 f989 (981|0@0@6@3@0#,)! -3 f0 ()! -3 f981 ()! -3 f0 (312|$#,)! -3 f1 (312|$#,)! -3 f0 (987|0@5@7&#,1779|$#,966|0@5@7&#,)! -3 f981 (987|0@5@7&#,1779|$#,966|0@5@7&#,)! -3 f0 (981|$#,981|$#,)! -3 f2 (981|$#,981|$#,)! -3 f0 (987|0@5@7&#,1779|$#,987|0@5@7&#,)! -3 f981 (987|0@5@7&#,1779|$#,987|0@5@7&#,)! -3 f0 (981|0@0@19@3@0#,)! -3 f981 (981|0@0@19@3@0#,)! -3 f0 (981|$#,981|0@0@19@3@0#,)! -3 f1 (981|$#,981|0@0@19@3@0#,)! -3 f0 ()! -3 f981 ()! -3 f0 (981|@5|$#,966|0@5@7&#,)! -3 f981 (981|@5|$#,966|0@5@7&#,)! -3 f0 (981|@5|$#,966|0@5@7&#,)! -3 f981 (981|@5|$#,966|0@5@7&#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|$#,)! -3 f978 (981|$#,)! -3 f0 (981|$#,)! -3 f2 (981|$#,)! -3 f0 (981|$#,)! -3 f2 (981|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,5|$#,)! -3 f981 (966|0@5@7&#,5|$#,)! -3 f0 (952|0@5@18&#,9|$#,)! -3 f981 (952|0@5@18&#,9|$#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f981 (952|0@5@18&#,5|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,5|$#,)! -3 f981 (966|0@5@7&#,5|$#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f981 (952|0@5@18&#,5|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (987|0@5@2&#,987|0@5@2&#,978|0@5@7&#,6587|$#,)! -3 f981 (987|0@5@2&#,987|0@5@2&#,978|0@5@7&#,6587|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,6587|$#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,6587|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,966|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,978|0@5@7&#,)! -3 f981 (966|0@5@7&#,978|0@5@7&#,)! -3 f0 (981|0@0@2&#,)! -3 f1 (981|0@0@2&#,)! -3 f0 (6587|$#,)! -3 f989 (6587|$#,)! -3 f0 (981|$#,978|0@5@7&#,)! -3 f1 (981|$#,978|0@5@7&#,)! -3 f0 (981|0@0@19@3@0#,978|0@5@19@3@0#,)! -3 f1 (981|0@0@19@3@0#,978|0@5@19@3@0#,)! -3 f0 (981|$#,)! -3 f989 (981|$#,)! -3 f0 (981|0@0@6@3@0#,)! -3 f989 (981|0@0@6@3@0#,)! -3 f0 (981|$#,)! -3 f989 (981|$#,)! -3 f0 (981|$#,)! -3 f989 (981|$#,)! -3 f0 (981|$#,)! -3 f989 (981|$#,)! -3 f0 (981|@5|0@0@2&#,3819|$#,)! -3 f981 (981|@5|0@0@2&#,3819|$#,)! -3 f0 (981|$#,966|0@5@7&#,)! -3 f981 (981|$#,966|0@5@7&#,)! -3 f0 (981|$#,3819|$#,)! -3 f981 (981|$#,3819|$#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|0@0@6@3@0#,)! -3 f2 (981|0@0@6@3@0#,)! -3 f0 (210|$#,)! -3 f981 (210|$#,)! -3 f0 (981|0@0@19@3@0#,210|$#,)! -3 f1 (981|0@0@19@3@0#,210|$#,)! -3 f1 (984|@7|&#,981|@3|&#,)! -1 t981|981& -3 f0 ()! -3 f984 ()! -3 f0 (984|$#,)! -3 f1 (984|$#,)! -3 f0 (984|@5|$#,981|0@0@2&#,)! -3 f984 (984|@5|$#,981|0@0@2&#,)! -3 f0 (984|0@0@2&#,)! -3 f1 (984|0@0@2&#,)! -3 f0 (984|@5|$#,984|0@0@19@3@0#,)! -3 f984 (984|@5|$#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,984|0@0@2&#,)! -3 f984 (984|0@0@2&#,984|0@0@2&#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f989 (984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f989 (984|0@0@19@3@0#,)! -3 f0 (984|$#,978|0@5@7&#,)! -3 f1 (984|$#,978|0@5@7&#,)! -3 f0 (984|$#,978|0@5@7&#,)! -3 f1 (984|$#,978|0@5@7&#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f989 (984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,)! -3 f1 (984|0@0@2&#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,)! -3 f0 (984|@5|$#,)! -3 f984 (984|@5|$#,)! -3 f0 (984|@5|$#,966|0@5@7&#,)! -3 f984 (984|@5|$#,966|0@5@7&#,)! -3 f0 (984|@5|$#,966|0@5@7&#,)! -3 f984 (984|@5|$#,966|0@5@7&#,)! -3 f0 (984|0@0@2&#,966|0@5@19@3@0#,)! -3 f984 (984|0@0@2&#,966|0@5@19@3@0#,)! -3 f0 (984|0@0@2&#,3819|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,3819|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,3819|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,3819|0@0@19@3@0#,)! -3 f0 (984|@5|$#,)! -3 f984 (984|@5|$#,)! -3 f0 (210|$#,)! -3 f984 (210|$#,)! -3 f0 (984|0@0@19@3@0#,210|$#,)! -3 f1 (984|0@0@19@3@0#,210|$#,)! -3 f0 (6587|$#,987|0@5@19@3@0#,6587|$#,987|0@5@19@3@0#,)! -3 f2 (6587|$#,987|0@5@19@3@0#,6587|$#,987|0@5@19@3@0#,)! -3 f0 (981|@5|$#,984|$#,)! -3 f981 (981|@5|$#,984|$#,)! -3 f0 (981|@5|$#,987|0@5@7&#,987|0@5@7&#,)! -3 f981 (981|@5|$#,987|0@5@7&#,987|0@5@7&#,)! -3 f0 (981|@5|$#,981|0@0@19@3@0#,)! -3 f981 (981|@5|$#,981|0@0@19@3@0#,)! -3 f0 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f2 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,984|$#,)! -3 f984 (984|0@0@2&#,984|$#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (984|$#,984|0@0@19@3@0#,)! -3 f984 (984|$#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (966|4@5@7&#,3819|$#,978|0@5@7&#,)! -3 f1 (966|4@5@7&#,3819|$#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,3819|$#,)! -3 f984 (966|0@5@7&#,3819|$#,)! -3 f0 (966|0@5@7&#,3819|$#,966|0@5@7&#,)! -3 f984 (966|0@5@7&#,3819|$#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (981|@5|$#,981|0@0@19@3@0#,)! -3 f981 (981|@5|$#,981|0@0@19@3@0#,)! -3 f0 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f2 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (981|0@0@2&#,984|$#,21|$#,)! -3 f981 (981|0@0@2&#,984|$#,21|$#,)! -3 f0 (981|$#,984|$#,21|4@0@7&#,)! -3 f981 (981|$#,984|$#,21|4@0@7&#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (984|0@0@19@3@0#,984|$#,)! -3 f984 (984|0@0@19@3@0#,984|$#,)! -3 f0 (984|0@0@2&#,984|$#,)! -3 f984 (984|0@0@2&#,984|$#,)! -3 f0 (981|$#,981|$#,)! -3 f2 (981|$#,981|$#,)! -3 f0 (981|$#,981|0@0@19@3@0#,)! -3 f1 (981|$#,981|0@0@19@3@0#,)! -3 f0 (981|$#,984|$#,)! -3 f2 (981|$#,984|$#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (981|$#,981|$#,)! -3 f2 (981|$#,981|$#,)! -3 f0 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f2 (981|0@0@19@3@0#,984|0@0@19@3@0#,)! -3 f0 (6587|$#,6587|$#,)! -3 f2 (6587|$#,6587|$#,)! -3 f0 (981|0@0@19@3@0#,)! -3 f2 (981|0@0@19@3@0#,)! -3 f0 (6587|$#,987|0@5@19@3@0#,6587|$#,987|0@5@19@3@0#,)! -3 f2 (6587|$#,987|0@5@19@3@0#,6587|$#,987|0@5@19@3@0#,)! -3 f0 (981|@5|$#,987|0@5@7&#,987|0@5@7&#,)! -3 f981 (981|@5|$#,987|0@5@7&#,987|0@5@7&#,)! -3 f0 (981|$#,987|0@5@7&#,)! -3 f2 (981|$#,987|0@5@7&#,)! -3 f0 (981|@5|$#,981|0@0@19@3@0#,)! -3 f981 (981|@5|$#,981|0@0@19@3@0#,)! -3 f0 (981|@5|$#,984|$#,)! -3 f981 (981|@5|$#,984|$#,)! -3 f0 (981|@5|$#,984|$#,)! -3 f981 (981|@5|$#,984|$#,)! -3 f0 (981|0@0@19@3@0#,984|$#,)! -3 f981 (981|0@0@19@3@0#,984|$#,)! -3 f0 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f984 (984|0@0@2&#,984|0@0@19@3@0#,)! -3 f0 (984|$#,984|$#,)! -3 f984 (984|$#,984|$#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (6587|$#,)! -3 f6587 (6587|$#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (981|@5|$#,)! -3 f981 (981|@5|$#,)! -3 f0 (978|0@5@19@3@0#,978|0@5@19@3@0#,978|0@5@19@3@0#,)! -3 f2 (978|0@5@19@3@0#,978|0@5@19@3@0#,978|0@5@19@3@0#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 C1.2/1|! -3 f0 (966|0@5@6&#,)! -3 f2 (966|0@5@6&#,)! -3 f11344 (966|0@5@6&#,)! -3 f6681 (966|0@5@6&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (972|0@5@19@3@0#,)! -3 f984 (972|0@5@19@3@0#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (966|0@5@7&#,2|$#,2|$#,978|0@5@7&#,)! -3 f1 (966|0@5@7&#,2|$#,2|$#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,2|$#,2|$#,978|0@5@19@3@0#,)! -3 f1 (966|0@5@7&#,2|$#,2|$#,978|0@5@19@3@0#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f984 (966|0@5@7&#,)! -3 f0 (5|$#,)! -3 f1 (5|$#,)! -3 f0 (987|0@5@19@3@0#,)! -3 f2 (987|0@5@19@3@0#,)! -3 f0 (981|0@2@7&#,)! -3 f2 (981|0@2@7&#,)! -3 f0 (981|0@0@19@3@0#,987|0@5@19@3@0#,)! -3 f2 (981|0@0@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,)! -3 f2 (966|0@2@7&#,966|0@2@7&#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,)! -3 f0 (984|0@0@19@3@0#,)! -3 f984 (984|0@0@19@3@0#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,)! -3 f987 (966|0@2@7&#,966|0@2@7&#,)! -3 f0 (987|0@5@2&#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f987 (987|0@5@2&#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (981|@5|$#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f981 (981|@5|$#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (984|@5|$#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f984 (984|@5|$#,987|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@19@3@0#,987|0@5@19@3@0#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (6842|0@5@2&#,6793|$#,)! -3 f1 (6842|0@5@2&#,6793|$#,)! -3 f0 (6842|0@5@2&#,6793|$#,)! -3 f1 (6842|0@5@2&#,6793|$#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f960 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f955 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f3819 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f955 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f3819 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f955 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f3819 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f989 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f4997 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f989 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f989 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1779 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f4997 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f4997 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f1882 (6842|0@5@7&#,)! -3 f0 (6842|0@5@7&#,)! -3 f966 (6842|0@5@7&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,1779|0@0@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,1779|0@0@4&#,)! -3 f0 (966|0@5@4&#,1779|0@0@4&#,)! -3 f6842 (966|0@5@4&#,1779|0@0@4&#,)! -3 f0 (966|0@5@2&#,)! -3 f6842 (966|0@5@2&#,)! -3 f0 (1779|0@0@2&#,)! -3 f6842 (1779|0@0@2&#,)! -3 f0 (955|0@5@19@2@0#,3819|0@0@4&#,966|0@5@4&#,955|0@5@19@2@0#,)! -3 f6842 (955|0@5@19@2@0#,3819|0@0@4&#,966|0@5@4&#,955|0@5@19@2@0#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@4&#,3819|0@0@4&#,)! -3 f6842 (966|0@5@4&#,3819|0@0@4&#,)! -3 f0 (955|0@5@18&#,3819|0@0@4&#,)! -3 f6842 (955|0@5@18&#,3819|0@0@4&#,)! -3 f0 (966|0@5@4&#,989|0@5@4&#,)! -3 f6842 (966|0@5@4&#,989|0@5@4&#,)! -3 f0 (4997|0@5@2&#,1882|0@5@4&#,)! -3 f6842 (4997|0@5@2&#,1882|0@5@4&#,)! -3 f0 (4997|0@5@2&#,)! -3 f6842 (4997|0@5@2&#,)! -3 f0 (1779|0@0@4&#,966|0@5@4&#,4997|0@5@2&#,)! -3 f6842 (1779|0@0@4&#,966|0@5@4&#,4997|0@5@2&#,)! -3 f0 (960|0@5@4&#,966|0@5@4&#,)! -3 f6842 (960|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 (989|0@5@2&#,)! -3 f6842 (989|0@5@2&#,)! -3 f0 (955|0@5@6&#,)! -3 f6842 (955|0@5@6&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,)! -3 f6842 (966|0@5@4&#,966|0@5@4&#,)! -3 f0 ()! -3 f989 ()! -3 f0 (989|0@5@7&#,)! -3 f4 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f4 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,4|$#,)! -3 f989 (989|0@5@7&#,4|$#,)! -3 f0 (989|0@5@7&#,5|$#,4|$#,)! -3 f1 (989|0@5@7&#,5|$#,4|$#,)! -3 f0 (989|0@5@7&#,)! -3 f4 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! +2 F1164/0|1164& +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (7468|0@5@2&#,7419|$#,)! +3 f1 (7468|0@5@2&#,7419|$#,)! +3 f0 (7468|0@5@2&#,7419|$#,)! +3 f1 (7468|0@5@2&#,7419|$#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f982 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f974 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f4160 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f974 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f4160 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f974 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f4160 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f1117 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f5461 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f1117 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f1117 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2013 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f5461 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f5461 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f2243 (7468|0@5@7&#,)! +3 f0 (7468|0@5@7&#,)! +3 f988 (7468|0@5@7&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,2013|0@0@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,2013|0@0@4&#,)! +3 f0 (988|0@5@4&#,2013|0@0@4&#,)! +3 f7468 (988|0@5@4&#,2013|0@0@4&#,)! +3 f0 (988|0@5@2&#,)! +3 f7468 (988|0@5@2&#,)! +3 f0 (2013|0@0@2&#,)! +3 f7468 (2013|0@0@2&#,)! +3 f0 (974|0@5@19@2@0#,4160|0@0@4&#,988|0@5@4&#,974|0@5@19@2@0#,)! +3 f7468 (974|0@5@19@2@0#,4160|0@0@4&#,988|0@5@4&#,974|0@5@19@2@0#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@4&#,4160|0@0@4&#,)! +3 f7468 (988|0@5@4&#,4160|0@0@4&#,)! +3 f0 (974|0@5@18&#,4160|0@0@4&#,)! +3 f7468 (974|0@5@18&#,4160|0@0@4&#,)! +3 f0 (988|0@5@4&#,1117|0@5@4&#,)! +3 f7468 (988|0@5@4&#,1117|0@5@4&#,)! +3 f0 (5461|0@5@2&#,2243|0@5@4&#,)! +3 f7468 (5461|0@5@2&#,2243|0@5@4&#,)! +3 f0 (5461|0@5@2&#,)! +3 f7468 (5461|0@5@2&#,)! +3 f0 (2013|0@0@4&#,988|0@5@4&#,5461|0@5@2&#,)! +3 f7468 (2013|0@0@4&#,988|0@5@4&#,5461|0@5@2&#,)! +3 f0 (982|0@5@4&#,988|0@5@4&#,)! +3 f7468 (982|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 (1117|0@5@2&#,)! +3 f7468 (1117|0@5@2&#,)! +3 f0 (974|0@5@6&#,)! +3 f7468 (974|0@5@6&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,)! +3 f7468 (988|0@5@4&#,988|0@5@4&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1117|0@5@7&#,)! +3 f4 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f4 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,4|$#,)! +3 f1117 (1117|0@5@7&#,4|$#,)! +3 f0 (1117|0@5@7&#,5|$#,4|$#,)! +3 f1 (1117|0@5@7&#,5|$#,4|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f4 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! 3 f0 (23|$#,5|$#,)! -3 f989 (23|$#,5|$#,)! -3 f0 (989|0@5@7&#,4|$#,)! -3 f2 (989|0@5@7&#,4|$#,)! -3 f0 (989|0@5@9&#,23|$#,23|$#,)! -3 f1 (989|0@5@9&#,23|$#,23|$#,)! -3 f0 (989|0@5@7&#,23|$#,)! -3 f1 (989|0@5@7&#,23|$#,)! -3 f0 (989|0@5@9&#,989|0@5@7&#,)! -3 f2 (989|0@5@9&#,989|0@5@7&#,)! +3 f1117 (23|$#,5|$#,)! +3 f0 (1117|0@5@7&#,4|$#,)! +3 f2 (1117|0@5@7&#,4|$#,)! +3 f0 (1117|0@5@9&#,23|$#,23|$#,)! +3 f1 (1117|0@5@9&#,23|$#,23|$#,)! +3 f0 (1117|0@5@7&#,23|$#,)! +3 f1 (1117|0@5@7&#,23|$#,)! +3 f0 (1117|0@5@9&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@9&#,1117|0@5@7&#,)! 3 f0 (4|$#,)! 3 f4 (4|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,5|$#,2|$#,2|$#,)! -3 f1154 (989|0@5@7&#,989|0@5@7&#,5|$#,2|$#,2|$#,)! -3 f0 (989|0@5@2&#,989|0@5@2&#,)! -3 f2 (989|0@5@2&#,989|0@5@2&#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f2 (989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,23|$#,)! -3 f2 (989|0@5@7&#,23|$#,)! -3 f0 (989|0@5@7&#,23|$#,)! -3 f2 (989|0@5@7&#,23|$#,)! -3 f0 (1194|$#,1194|$#,)! -3 f5 (1194|$#,1194|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f5 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@17&#,)! -3 f1 (989|0@5@17&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,5|$#,2|$#,2|$#,)! +3 f1247 (1117|0@5@7&#,1117|0@5@7&#,5|$#,2|$#,2|$#,)! +3 f0 (1117|0@5@2&#,1117|0@5@2&#,)! +3 f2 (1117|0@5@2&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,23|$#,)! +3 f2 (1117|0@5@7&#,23|$#,)! +3 f0 (1117|0@5@7&#,23|$#,)! +3 f2 (1117|0@5@7&#,23|$#,)! +3 f0 (1287|$#,1287|$#,)! +3 f5 (1287|$#,1287|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@17&#,)! +3 f1 (1117|0@5@17&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! 3 f0 (23|@5|0@5@6@2@0#,)! -3 f989 (23|@5|0@5@6@2@0#,)! -3 f0 (989|0@5@7&#,)! -3 f19 (989|@5|0@5@6@2@0#,)! -3 f23 (989|@5|0@5@6@2@0#,)! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@2&#,)! -3 f989 (989|0@5@2&#,)! -3 f0 (989|@5|0@5@7&#,5|$#,)! -3 f989 (989|@5|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 (989|0@5@2&#,4|$#,)! -3 f989 (989|0@5@2&#,4|$#,)! -3 f0 (989|0@5@2&#,989|0@5@2&#,)! -3 f989 (989|0@5@2&#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,989|0@5@7&#,)! -3 f989 (989|0@5@2&#,989|0@5@7&#,)! -3 f0 (989|0@5@2&#,23|$#,)! -3 f989 (989|0@5@2&#,23|$#,)! -3 f0 (989|0@5@2&#,23|$#,5|$#,)! -3 f989 (989|0@5@2&#,23|$#,5|$#,)! -3 f0 (989|0@5@7&#,989|0@5@7&#,)! -3 f989 (989|0@5@7&#,989|0@5@7&#,)! -3 f0 (4|$#,989|0@5@2&#,)! -3 f989 (4|$#,989|0@5@2&#,)! -3 f0 (4|$#,989|0@5@6&#,)! -3 f989 (4|$#,989|0@5@6&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! +3 f1117 (23|@5|0@5@6@2@0#,)! +3 f0 (1117|0@5@7&#,)! +3 f19 (1117|@5|0@5@6@2@0#,)! +3 f23 (1117|@5|0@5@6@2@0#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1117 (1117|0@5@2&#,)! +3 f0 (1117|@5|0@5@7&#,5|$#,)! +3 f1117 (1117|@5|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,4|$#,)! +3 f1117 (1117|0@5@2&#,4|$#,)! +3 f0 (1117|0@5@2&#,1117|0@5@2&#,)! +3 f1117 (1117|0@5@2&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@2&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,23|$#,)! +3 f1117 (1117|0@5@2&#,23|$#,)! +3 f0 (1117|0@5@2&#,23|$#,5|$#,)! +3 f1117 (1117|0@5@2&#,23|$#,5|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4|$#,1117|0@5@2&#,)! +3 f1117 (4|$#,1117|0@5@2&#,)! +3 f0 (4|$#,1117|0@5@6&#,)! +3 f1117 (4|$#,1117|0@5@6&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 (5|$#,)! -3 f989 (5|$#,)! -3 f0 (989|0@5@7&#,5|$#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,5|$#,)! -3 f0 (989|0@5@2&#,)! -3 f942 (989|0@5@2&#,)! -3 f0 (989|0@5@7&#,312|$#,5|$#,)! -3 f989 (989|0@5@7&#,312|$#,5|$#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -0 a258|& -3 f0 (11624|0@5@7&#,)! -3 f2 (11624|0@5@7&#,)! -3 f1 (11624|@7|6@5@7&#,1322|@3|&#,)! -3 f0 ()! -3 f11624 ()! -3 f0 (11624|@7|0@5@7&#,)! -3 f2 (11624|@7|0@5@7&#,)! -3 f0 (11624|0@5@7&#,1322|$#,)! -3 f1 (11624|0@5@7&#,1322|$#,)! -3 f0 (11624|@7|0@5@7&#,)! -3 f5 (11624|@7|0@5@7&#,)! -3 f0 (11624|0@5@2&#,)! -3 f1 (11624|0@5@2&#,)! -3 f0 (1333|$#,1322|$#,5|$#,5|$#,)! -3 f978 (1333|$#,1322|$#,5|$#,5|$#,)! -3 f0 (1322|$#,)! -3 f1333 (1322|$#,)! -3 f0 (978|0@5@7&#,5|$#,)! -3 f978 (978|0@5@7&#,5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,5|$#,)! -3 f1 (978|0@5@7&#,5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 (978|0@5@2&#,978|0@5@7&#,)! -3 f978 (978|0@5@2&#,978|0@5@7&#,)! -3 f0 (978|0@5@2&#,1322|$#,)! -3 f978 (978|0@5@2&#,1322|$#,)! -3 f0 (978|0@5@2&#,)! -3 f1 (978|0@5@2&#,)! -3 f0 (978|0@5@2&#,)! -3 f1 (978|0@5@2&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f5 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,5|$#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,5|$#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,978|0@5@7&#,)! -3 f2 (978|0@5@7&#,978|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f978 (948|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f978 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f978 (989|0@5@7&#,)! -3 f0 ()! -3 f978 ()! -3 f0 ()! -3 f978 ()! -3 f0 ()! -3 f978 ()! -3 f0 ()! -3 f978 ()! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f978 (978|0@5@7&#,)! -3 f0 ()! -3 f978 ()! -3 f0 (989|0@5@7&#,5|$#,)! -3 f978 (989|0@5@7&#,5|$#,)! -3 f0 (1333|$#,1322|$#,5|$#,5|$#,)! -3 f978 (1333|$#,1322|$#,5|$#,5|$#,)! -3 f0 (1322|$#,5|$#,5|$#,)! -3 f978 (1322|$#,5|$#,5|$#,)! -3 f0 (1322|$#,5|$#,5|$#,)! -3 f978 (1322|$#,5|$#,5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f5 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f5 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,)! -3 f0 (989|0@5@7&#,5|$#,5|$#,)! -3 f989 (989|0@5@7&#,5|$#,5|$#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f989 (978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! +3 f1117 (5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,5|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f961 (1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,313|$#,5|$#,)! +3 f1117 (1117|0@5@7&#,313|$#,5|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1428|$#,1417|$#,5|$#,5|$#,)! +3 f1003 (1428|$#,1417|$#,5|$#,5|$#,)! +3 f0 (1417|$#,)! +3 f1428 (1417|$#,)! +3 f0 (1003|0@5@7&#,5|$#,)! +3 f1003 (1003|0@5@7&#,5|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,5|$#,)! +3 f1 (1003|0@5@7&#,5|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 (1003|0@5@2&#,1003|0@5@7&#,)! +3 f1003 (1003|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@2&#,1417|$#,)! +3 f1003 (1003|0@5@2&#,1417|$#,)! +3 f0 (1003|0@5@2&#,)! +3 f1 (1003|0@5@2&#,)! +3 f0 (1003|0@5@2&#,)! +3 f1 (1003|0@5@2&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f5 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,5|$#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,5|$#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1003 (967|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1003 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1003 (1117|0@5@7&#,)! +3 f0 ()! +3 f1003 ()! +3 f0 ()! +3 f1003 ()! +3 f0 ()! +3 f1003 ()! +3 f0 ()! +3 f1003 ()! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1003 (1003|0@5@7&#,)! +3 f0 ()! +3 f1003 ()! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1003 (1117|0@5@7&#,5|$#,)! +3 f0 (1428|$#,1417|$#,5|$#,5|$#,)! +3 f1003 (1428|$#,1417|$#,5|$#,5|$#,)! +3 f0 (1417|$#,5|$#,5|$#,)! +3 f1003 (1417|$#,5|$#,5|$#,)! +3 f0 (1417|$#,5|$#,5|$#,)! +3 f1003 (1417|$#,5|$#,5|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f5 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f5 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1117|0@5@7&#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,5|$#,5|$#,)! +3 f1117 (1117|0@5@7&#,5|$#,5|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1117 (1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! 2 F0/64|0& 2 F4/64|4& -3 e!87{XINVALID,XCHAR,XSTRING,XSTRINGFREE,XTSTRINGFREE,XINT,XFLOAT,XBOOL,XUENTRY,XPERCENT,XCTYPE,XPLURAL,XREPREFIX,XFILELOC}! -0 s7051|& -0 s358|& -3 f0 (312|$#,)! -3 f11746 (312|$#,)! +3 e!238{XINVALID,XCHAR,XSTRING,XSTRINGFREE,XTSTRINGFREE,XINT,XFLOAT,XBOOL,XUENTRY,XPERCENT,XCTYPE,XPLURAL,XREPREFIX,XFILELOC}! +0 s7538|& +0 s7539|& +3 f0 (313|$#,)! +3 f13459 (313|$#,)! 3 f0 (23|0@0@6&#,!.,)! -3 f989 (23|0@0@6&#,!.,)! -3 f0 (2124|$#,)! -3 f2 (2124|$#,)! -3 f0 (2124|0@5@2&#,)! -3 f1 (2124|0@5@2&#,)! -3 f0 (23|$#,23|$#,2|$#,)! -3 f19 (23|0@0@6&#,23|$#,2|$#,)! -3 f2124 (23|0@0@6&#,23|$#,2|$#,)! -3 f0 (23|$#,23|$#,)! -3 f19 (23|$#,23|$#,)! -3 f2124 (23|$#,23|$#,)! -3 f0 (2124|$#,)! -3 f19 (2124|$#,)! -3 f23 (2124|$#,)! -3 f0 (2124|$#,)! -3 f2 (2124|$#,)! -3 f0 (23|$#,2124|$#,)! -3 f2 (23|$#,2124|$#,)! -3 f0 (23|$#,312|4@0@7&#,)! -3 f19 (23|$#,312|4@0@7&#,)! -3 f23 (23|$#,312|4@0@7&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,7455|0@0@2&#,)! -3 f1322 (7461|0@5@7&#,7455|0@0@2&#,)! -3 f0 (23|$#,23|$#,23|$#,)! -3 f19 (23|$#,23|$#,23|$#,)! -3 f23 (23|$#,23|$#,23|$#,)! -3 f0 (7451|$#,)! -3 f989 (7451|$#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f5 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f989 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f1 (7461|0@5@7&#,)! -3 f0 (989|0@5@4&#,2|$#,7451|$#,1322|$#,)! -3 f7455 (989|0@5@4&#,2|$#,7451|$#,1322|$#,)! -3 f0 (7455|0@0@2&#,)! -3 f1 (7455|0@0@2&#,)! -3 f0 ()! -3 f7461 ()! -1 t7455|7455& -3 f0 (7461|0@5@7&#,)! -3 f1 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,7455|0@0@2&#,)! -3 f1322 (7461|0@5@7&#,7455|0@0@2&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@2&#,2|$#,7451|$#,1322|$#,)! -3 f1322 (7461|0@5@7&#,989|0@5@2&#,2|$#,7451|$#,1322|$#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@2&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@2&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f1322 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f2 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,989|0@5@7&#,)! -3 f1322 (7461|0@5@7&#,989|0@5@7&#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f989 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f989 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,)! -3 f989 (7461|0@5@7&#,1322|$#,)! -3 f0 (7461|0@5@7&#,1322|$#,1322|$#,)! -3 f2 (7461|0@5@7&#,1322|$#,1322|$#,)! -3 f0 (7461|0@5@7&#,)! -3 f1 (7461|0@5@7&#,)! -3 f0 (7461|0@5@2&#,)! -3 f1 (7461|0@5@2&#,)! +3 f1117 (23|0@0@6&#,!.,)! +3 f0 (1015|0@5@7&#,)! +3 f2 (1015|0@5@7&#,)! +3 f0 (1015|0@5@2&#,)! +3 f1 (1015|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1117|0@5@7&#,2|$#,)! +3 f1015 (1117|0@5@2&#,1117|0@5@7&#,2|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f1015 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f5 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,5|$#,)! +3 f5 (1015|0@5@7&#,5|$#,)! +3 f0 (1015|0@5@7&#,)! +3 f5 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f19 (1015|0@5@7&#,)! +3 f23 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f2 (1015|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1015|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f19 (1015|0@5@7&#,)! +3 f211 (1015|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f1117 (1015|0@5@7&#,)! +3 f0 (1015|@7|0@5@7&#,)! +3 f2 (1015|@7|0@5@7&#,)! +3 f0 (1015|0@5@7&#,)! +3 f5 (1015|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,8085|0@0@2&#,)! +3 f1417 (8091|0@5@7&#,8085|0@0@2&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8081|$#,)! +3 f1117 (8081|$#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f5 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f1117 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f1 (8091|0@5@7&#,)! +3 f0 (1117|0@5@4&#,2|$#,8081|$#,1417|$#,)! +3 f8085 (1117|0@5@4&#,2|$#,8081|$#,1417|$#,)! +3 f0 (8085|0@0@2&#,)! +3 f1 (8085|0@0@2&#,)! +3 f0 ()! +3 f8091 ()! +1 t8085|8085& +3 f0 (8091|0@5@7&#,)! +3 f1 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,8085|0@0@2&#,)! +3 f1417 (8091|0@5@7&#,8085|0@0@2&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@2&#,2|$#,8081|$#,1417|$#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@2&#,2|$#,8081|$#,1417|$#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@2&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@2&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1417 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f2 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,1117|0@5@7&#,)! +3 f1 (8091|0@5@7&#,1417|$#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f1417 (8091|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1117 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1117 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,)! +3 f1117 (8091|0@5@7&#,1417|$#,)! +3 f0 (8091|0@5@7&#,1417|$#,1417|$#,)! +3 f2 (8091|0@5@7&#,1417|$#,1417|$#,)! +3 f0 (8091|0@5@7&#,)! +3 f1 (8091|0@5@7&#,)! +3 f0 (8091|0@5@2&#,)! +3 f1 (8091|0@5@2&#,)! 3 f0 (23|$#,)! 3 f1 (23|$#,)! -3 f0 (23|$#,23|$#,23|$#,)! -3 f19 (23|$#,23|$#,23|$#,)! -3 f23 (23|$#,23|$#,23|$#,)! -3 f0 (3884|0@5@7&#,)! -3 f2 (3884|0@5@7&#,)! -3 f0 (989|0@5@7&#,5|$#,)! -3 f3879 (989|0@5@7&#,5|$#,)! -3 f0 (3884|0@5@7&#,)! -3 f2 (3884|0@5@7&#,)! -3 f0 (3884|0@5@7&#,)! -3 f989 (3884|0@5@7&#,)! -3 f0 (3879|$#,)! -3 f3884 (3879|$#,)! -3 f0 (3884|0@2@7&#,)! -3 f1 (3884|0@2@7&#,)! -3 f0 (3884|0@5@7&#,989|0@5@7&#,)! -3 f5 (3884|0@5@7&#,989|0@5@7&#,)! -3 f0 (3884|0@2@7&#,3879|$#,)! -3 f1 (3884|0@2@7&#,3879|$#,)! -3 f0 (3884|0@5@7&#,)! -3 f5 (3884|0@5@7&#,)! -3 f0 (3884|0@5@7&#,989|0@5@7&#,)! -3 f5 (3884|0@5@7&#,989|0@5@7&#,)! -3 f0 (3884|0@5@2&#,)! -3 f1 (3884|0@5@2&#,)! -3 f0 (3876|0@0@2&#,)! -3 f1 (3876|0@0@2&#,)! -3 f0 (3876|$#,)! -3 f5 (3876|$#,)! -3 f0 (3876|$#,)! -3 f5 (3876|$#,)! -2 F0/256|0& -2 F6/256|6& -3 f0 (3876|$#,989|0@5@7&#,)! -3 f6 (3876|$#,989|0@5@7&#,)! -3 f0 (3876|$#,989|0@5@7&#,)! -3 f3884 (3876|$#,989|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|0@5@7&#,1117|0@5@7&#,)! +2 F0/0|0& +2 F6/0|6& +3 f0 (1006|0@2@7&#,4218|0@0@2&#,)! +3 f1 (1006|0@2@7&#,4218|0@0@2&#,)! +3 f0 (4224|0@5@7&#,)! +3 f2 (4224|0@5@7&#,)! +3 f0 (1117|0@5@4&#,5|$#,)! +3 f4218 (1117|0@5@4&#,5|$#,)! +3 f0 (4218|0@0@2&#,)! +3 f1 (4218|0@0@2&#,)! +3 f0 (4224|0@5@7&#,)! +3 f2 (4224|0@5@7&#,)! +3 f0 (4224|0@5@7&#,)! +3 f1117 (4224|0@5@7&#,)! +3 f0 (4218|0@0@2&#,)! +3 f4224 (4218|0@0@2&#,)! +1 t4218|4218& +3 f0 (4224|0@2@7&#,)! +3 f1 (4224|0@2@7&#,)! +3 f0 (4224|0@5@7&#,1117|0@5@7&#,)! +3 f5 (4224|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4224|0@5@7&#,1117|0@5@7&#,)! +3 f2 (4224|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4224|0@2@7&#,4218|0@0@2&#,)! +3 f1 (4224|0@2@7&#,4218|0@0@2&#,)! +3 f0 (4224|0@5@7&#,)! +3 f5 (4224|0@5@7&#,)! +3 f0 (4224|0@5@7&#,1117|0@5@7&#,)! +3 f5 (4224|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4224|0@5@2&#,)! +3 f1 (4224|0@5@2&#,)! +3 f0 (1006|0@5@2&#,)! +3 f1 (1006|0@5@2&#,)! +3 f0 (1006|0@5@7&#,)! +3 f5 (1006|0@5@7&#,)! +3 f0 (1006|0@5@7&#,)! +3 f5 (1006|0@5@7&#,)! +3 f0 (1006|0@2@7&#,1117|0@5@7&#,)! +3 f6 (1006|0@2@7&#,1117|0@5@7&#,)! +3 f0 (1006|0@2@7&#,1117|0@5@7&#,)! +3 f4224 (1006|0@2@7&#,1117|0@5@7&#,)! 3 f0 (5|$#,)! -3 f3876 (5|$#,)! -1 t3884|3884& -3 f0 (3876|$#,)! -3 f1 (3876|$#,)! -3 f0 (3876|$#,)! -3 f989 (3876|$#,)! -3 f0 (3876|$#,3879|$#,)! -3 f1 (3876|$#,3879|$#,)! -3 f0 (3876|$#,989|0@5@7&#,5|$#,)! -3 f1 (3876|$#,989|0@5@7&#,5|$#,)! -3 f0 (3876|$#,989|0@5@7&#,)! -3 f5 (3876|$#,989|0@5@7&#,)! -3 f0 (3876|$#,989|0@5@7&#,989|0@5@18&#,)! -3 f1 (3876|$#,989|0@5@7&#,989|0@5@18&#,)! -3 f0 (3876|$#,989|0@5@7&#,)! -3 f1 (3876|$#,989|0@5@7&#,)! -3 f0 (210|$#,989|0@5@2&#,5|$#,)! -3 f1 (210|$#,989|0@5@2&#,5|$#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f2 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f2 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f0 (210|$#,989|0@5@2&#,)! -3 f1 (210|$#,989|0@5@2&#,)! -3 f0 (210|$#,989|0@5@2&#,)! -3 f1 (210|$#,989|0@5@2&#,)! +3 f1006 (5|$#,)! +1 t4224|4224& +3 f0 (1006|0@5@7&#,)! +3 f1117 (1006|0@5@7&#,)! +3 f0 (1006|0@5@7&#,)! +3 f1117 (1006|0@5@7&#,)! +3 f0 (1006|0@2@7&#,)! +3 f1 (1006|0@2@7&#,)! +3 f0 (1006|0@2@7&#,4218|0@0@2&#,)! +3 f1 (1006|0@2@7&#,4218|0@0@2&#,)! +3 f0 (1006|0@5@7&#,1117|0@5@2&#,5|$#,)! +3 f1 (1006|0@5@7&#,1117|0@5@2&#,5|$#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f5 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f1 (1006|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,1117|0@5@2&#,)! +3 f1 (1006|0@5@7&#,1117|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f1 (1006|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1019|0@5@7&#,)! +3 f1019 (1019|0@5@7&#,)! +3 f0 (1019|0@5@7&#,)! +3 f1117 (1019|0@5@7&#,)! +3 f0 (1019|0@5@7&#,1117|0@5@2&#,1018|0@5@2&#,)! +3 f1 (1019|0@5@7&#,1117|0@5@2&#,1018|0@5@2&#,)! +3 f0 (1019|0@5@7&#,1117|0@5@7&#,1018|0@5@17&#,)! +3 f1 (1019|0@5@7&#,1117|0@5@7&#,1018|0@5@17&#,)! +3 f0 (5|$#,6236|0@5@2&#,)! +3 f1018 (5|$#,6236|0@5@2&#,)! +3 f0 (1018|0@5@7&#,)! +3 f1018 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f2 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f1117 (1018|0@5@7&#,)! +3 f0 (1018|@7|0@5@7&#,5|$#,6236|0@5@2&#,)! +3 f1 (1018|@7|0@5@7&#,5|$#,6236|0@5@2&#,)! +3 f0 (1018|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f1 (1018|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f1 (1018|0@5@7&#,1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f1 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f0 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f1117 (1018|0@5@7&#,1024|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f5 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f6236 (1018|0@5@7&#,)! +3 f0 (1018|0@5@7&#,)! +3 f2 (1018|0@5@7&#,)! +3 f0 (211|$#,1117|0@5@2&#,5|$#,)! +3 f1 (211|$#,1117|0@5@2&#,5|$#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f2 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f2 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f0 (211|$#,1117|0@5@2&#,)! +3 f1 (211|$#,1117|0@5@2&#,)! +3 f0 (211|$#,1117|0@5@2&#,)! +3 f1 (211|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,)! +3 f1 (23|$#,5|$#,)! 3 f0 (23|@5|0@5@7&#,23|@5|0@5@7&#,)! 3 f19 (23|@5|0@5@7&#,23|@5|0@5@7&#,)! 3 f23 (23|@5|0@5@7&#,23|@5|0@5@7&#,)! @@ -11920,435 +13696,507 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@19@3@0#,)! -3 f1 (989|0@5@19@3@0#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (4|$#,1910|$#,)! -3 f1 (4|$#,1910|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -0 s49|-1 11937 -1 -1 t11936|11936& -3 f0 (312|@5|$#,11937|4@0@7&#,5|$#,24|&#,)! -3 f1 (312|@5|$#,11937|4@0@7&#,5|$#,24|&#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,)! -3 f1 (989|0@5@2&#,978|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (989|0@5@2&#,978|0@5@7&#,)! -3 f1 (989|0@5@2&#,978|0@5@7&#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,)! -3 f1 (989|0@5@2&#,978|0@5@7&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (1910|$#,991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,991|$#,966|0@5@7&#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,)! -3 f2 (989|0@5@2&#,978|0@5@7&#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f2 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f1 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f2 (989|0@5@2&#,978|0@5@7&#,2|$#,2|$#,)! -3 f0 (210|$#,989|0@5@2&#,)! -3 f1 (210|$#,989|0@5@2&#,)! -3 f0 (210|$#,989|0@5@2&#,5|$#,)! -3 f1 (210|$#,989|0@5@2&#,5|$#,)! -3 f0 (210|$#,989|0@5@2&#,)! -3 f1 (210|$#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@19@3@0#,)! +3 f1 (1117|0@5@19@3@0#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (4|$#,1597|$#,1597|$#,)! +3 f1 (4|$#,1597|$#,1597|$#,)! +3 f0 (4|$#,1597|$#,)! +3 f1 (4|$#,1597|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +0 s7545|-1 13715 -1 +1 t13714|13714& +3 f0 (313|@5|$#,13715|4@0@7&#,5|$#,24|&#,)! +3 f1 (313|@5|$#,13715|4@0@7&#,5|$#,24|&#,)! +3 f0 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f1 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f1 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f1 (1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1597|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1119|$#,988|0@5@7&#,1119|$#,988|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f2 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2409 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f2 (23|$#,5|$#,1117|0@5@2&#,1003|0@5@7&#,2|$#,2|$#,)! +3 f0 (211|$#,1117|0@5@2&#,)! +3 f1 (211|$#,1117|0@5@2&#,)! +3 f0 (211|$#,1117|0@5@2&#,5|$#,)! +3 f1 (211|$#,1117|0@5@2&#,5|$#,)! +3 f0 (211|$#,1117|0@5@2&#,)! +3 f1 (211|$#,1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,)! +3 f1 (23|$#,5|$#,1117|0@5@2&#,)! 3 f0 (23|0@0@6&#,)! 3 f1 (23|0@0@6&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@7&#,5|$#,989|0@5@2&#,)! -3 f1 (989|0@5@7&#,5|$#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@7&#,5|$#,1117|0@5@2&#,)! +3 f1 (1117|0@5@7&#,5|$#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1117|0@5@2&#,)! +3 f1 (23|$#,5|$#,1117|0@5@2&#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f5 ()! -3 f0 (948|0@5@7&#,989|0@5@2&#,)! -3 f1 (948|0@5@7&#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (948|0@5@7&#,989|0@5@2&#,)! -3 f1 (948|0@5@7&#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,)! -3 f0 (1910|$#,989|0@5@2&#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f2 (1910|$#,989|0@5@2&#,978|0@5@7&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (2|$#,989|0@5@7&#,989|0@5@7&#,5|$#,)! -3 f2 (2|$#,989|0@5@7&#,989|0@5@7&#,5|$#,)! +3 f0 (23|$#,5|$#,967|0@5@7&#,1117|0@5@2&#,)! +3 f1 (23|$#,5|$#,967|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (967|0@5@7&#,1117|0@5@2&#,)! +3 f1 (967|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,)! +3 f0 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1597|$#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (23|$#,5|$#,1678|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f2 (23|$#,5|$#,1678|0@5@7&#,1117|0@5@2&#,1003|0@5@7&#,)! +3 f0 (2|$#,1117|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (2|$#,1117|0@5@7&#,1117|0@5@7&#,5|$#,)! 3 f0 (5|$#,)! -3 f989 (5|$#,)! -3 f0 (989|0@5@2&#,989|0@5@7&#,5|$#,)! -3 f1 (989|0@5@2&#,989|0@5@7&#,5|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f7535 ()! -1 t7529|7529& -3 f0 (978|0@5@7&#,989|0@5@7&#,)! -3 f7529 (978|0@5@7&#,989|0@5@7&#,)! -3 f0 (7529|0@0@2&#,)! -3 f1 (7529|0@0@2&#,)! -3 f0 (7529|$#,7529|$#,)! -3 f2 (7529|$#,7529|$#,)! -3 f0 (7529|$#,7529|$#,)! -3 f2 (7529|$#,7529|$#,)! -3 f0 (7535|0@5@7&#,7529|$#,)! -3 f5 (7535|0@5@7&#,7529|$#,)! -3 f0 (7535|0@2@7&#,)! -3 f1 (7535|0@2@7&#,)! -3 f0 (7535|0@5@7&#,978|0@5@7&#,989|0@5@7&#,)! -3 f2 (7535|0@5@7&#,978|0@5@7&#,989|0@5@7&#,)! -3 f0 (7535|0@5@7&#,)! -3 f989 (7535|0@5@7&#,)! -3 f0 (7535|0@5@2&#,)! -3 f1 (7535|0@5@2&#,)! -3 f0 (1910|$#,1299|$#,978|0@5@7&#,)! -3 f7366 (1910|$#,1299|$#,978|0@5@7&#,)! -3 f0 (1910|$#,978|0@5@7&#,)! -3 f7366 (1910|$#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f7366 (978|0@5@7&#,)! -3 f0 (5|$#,978|0@5@7&#,)! -3 f7366 (5|$#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f7366 (978|0@5@7&#,)! -3 f0 (7366|$#,)! -3 f1299 (7366|$#,)! -3 f0 (7366|$#,)! -3 f1910 (7366|$#,)! -3 f0 (7366|$#,)! -3 f5 (7366|$#,)! -3 f0 (7366|$#,)! -3 f989 (7366|$#,)! -3 f0 (7366|0@0@2&#,)! -3 f1 (7366|0@0@2&#,)! -3 f0 (7366|$#,978|0@5@7&#,)! -3 f2 (7366|$#,978|0@5@7&#,)! -3 f0 (7366|$#,978|0@5@7&#,)! -3 f2 (7366|$#,978|0@5@7&#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 ()! -3 f975 ()! -3 f0 ()! -3 f975 ()! -1 t972|972& -3 f0 (975|0@2@7&#,)! -3 f1 (975|0@2@7&#,)! -3 f0 (975|0@2@7&#,952|0@5@18&#,)! -3 f5 (975|0@2@7&#,952|0@5@18&#,)! -3 f0 (975|@5|0@5@7&#,952|0@5@18@2@0#,952|0@5@18&#,)! -3 f975 (975|@5|0@5@7&#,952|0@5@18@2@0#,952|0@5@18&#,)! -3 f0 (975|@5|0@5@7&#,952|0@5@18@2@0#,972|0@5@2&#,)! -3 f975 (975|@5|0@5@7&#,952|0@5@18@2@0#,972|0@5@2&#,)! -3 f0 (975|0@2@7&#,952|0@5@18&#,)! -3 f1 (975|0@2@7&#,952|0@5@18&#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,)! -3 f1 (975|0@5@7&#,952|0@5@18&#,)! -3 f0 (975|0@2@7&#,952|0@5@18&#,)! -3 f1 (975|0@2@7&#,952|0@5@18&#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f972 (975|0@5@7&#,952|0@5@18&#,5|$#,)! -3 f0 (975|0@5@7&#,)! -3 f975 (975|0@5@7&#,)! -3 f0 (975|0@5@7&#,5|$#,)! -3 f1 (975|0@5@7&#,5|$#,)! -3 f0 (975|@5|0@5@7&#,975|0@5@2&#,5|$#,)! -3 f975 (975|@5|0@5@7&#,975|0@5@2&#,5|$#,)! -3 f0 (975|@5|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f975 (975|@5|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f0 (975|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f975 (975|0@5@7&#,975|0@5@7&#,5|$#,)! -3 f0 (975|0@5@7&#,)! -3 f989 (975|0@5@7&#,)! -3 f0 (975|0@5@7&#,)! -3 f1 (975|0@5@7&#,)! -3 f0 (975|0@5@2&#,)! -3 f1 (975|0@5@2&#,)! -3 f0 (975|0@5@7&#,)! -3 f1 (975|0@5@7&#,)! +3 f1117 (5|$#,)! +3 f0 (1117|0@5@2&#,1117|0@5@7&#,5|$#,)! +3 f1 (1117|0@5@2&#,1117|0@5@7&#,5|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f8173 ()! +1 t8167|8167& +3 f0 (1003|0@5@7&#,1117|0@5@7&#,)! +3 f8167 (1003|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8167|$#,)! +3 f1117 (8167|$#,)! +3 f0 (8167|0@0@2&#,)! +3 f1 (8167|0@0@2&#,)! +3 f0 (8167|$#,8167|$#,)! +3 f2 (8167|$#,8167|$#,)! +3 f0 (8167|$#,8167|$#,)! +3 f2 (8167|$#,8167|$#,)! +3 f0 (8173|0@5@7&#,8167|$#,)! +3 f5 (8173|0@5@7&#,8167|$#,)! +3 f0 (8173|0@2@7&#,)! +3 f1 (8173|0@2@7&#,)! +3 f0 (8173|0@5@7&#,1003|0@5@7&#,1117|0@5@7&#,)! +3 f2 (8173|0@5@7&#,1003|0@5@7&#,1117|0@5@7&#,)! +3 f0 (8173|0@5@7&#,)! +3 f1117 (8173|0@5@7&#,)! +3 f0 (8173|0@5@2&#,)! +3 f1 (8173|0@5@2&#,)! +3 f0 (1597|$#,1394|$#,1003|0@5@7&#,)! +3 f7996 (1597|$#,1394|$#,1003|0@5@7&#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f7996 (1597|$#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f7996 (1003|0@5@7&#,)! +3 f0 (5|$#,1003|0@5@7&#,)! +3 f7996 (5|$#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f7996 (1003|0@5@7&#,)! +3 f0 (7996|$#,)! +3 f1394 (7996|$#,)! +3 f0 (7996|$#,)! +3 f1597 (7996|$#,)! +3 f0 (7996|$#,)! +3 f5 (7996|$#,)! +3 f0 (7996|$#,)! +3 f1117 (7996|$#,)! +3 f0 (7996|0@0@2&#,)! +3 f1 (7996|0@0@2&#,)! +3 f0 (7996|$#,1003|0@5@7&#,)! +3 f2 (7996|$#,1003|0@5@7&#,)! +3 f0 (7996|$#,1003|0@5@7&#,)! +3 f2 (7996|$#,1003|0@5@7&#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 ()! +3 f1000 ()! +3 f0 ()! +3 f1000 ()! +1 t971|971& +1 t994|994& +3 f0 (1000|0@2@7&#,)! +3 f1 (1000|0@2@7&#,)! +3 f0 (1000|0@2@7&#,971|0@5@7&#,)! +3 f5 (1000|0@2@7&#,971|0@5@7&#,)! +3 f0 (1000|@5|0@5@7&#,971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f1000 (1000|@5|0@5@7&#,971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 (1000|@5|0@5@7&#,971|0@5@19@2@0#,994|0@5@2&#,)! +3 f1000 (1000|@5|0@5@7&#,971|0@5@19@2@0#,994|0@5@2&#,)! +3 f0 (1000|0@2@7&#,971|0@5@7&#,)! +3 f1 (1000|0@2@7&#,971|0@5@7&#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,)! +3 f1 (1000|0@5@7&#,971|0@5@7&#,)! +3 f0 (1000|0@2@7&#,971|0@5@7&#,)! +3 f1 (1000|0@2@7&#,971|0@5@7&#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f994 (1000|0@5@7&#,971|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,)! +3 f1000 (1000|0@5@7&#,)! +3 f0 (1000|0@5@7&#,5|$#,)! +3 f1 (1000|0@5@7&#,5|$#,)! +3 f0 (1000|@5|0@5@7&#,1000|0@5@2&#,5|$#,)! +3 f1000 (1000|@5|0@5@7&#,1000|0@5@2&#,5|$#,)! +3 f0 (1000|@5|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f1000 (1000|@5|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f1000 (1000|0@5@7&#,1000|0@5@7&#,5|$#,)! +3 f0 (1000|0@5@7&#,)! +3 f1117 (1000|0@5@7&#,)! +3 f0 (1000|0@5@7&#,)! +3 f1 (1000|0@5@7&#,)! +3 f0 (1000|0@5@2&#,)! +3 f1 (1000|0@5@2&#,)! +3 f0 (1000|0@5@7&#,)! +3 f1 (1000|0@5@7&#,)! 3 f0 (4|$#,)! -3 f1299 (4|$#,)! -3 f0 (1299|$#,1299|$#,)! -3 f5 (1299|$#,1299|$#,)! -0 s62|-1 12141 -1 -1 t12140|12140& -3 S_sRefTable{5|@1|^#entries,5|@1|^#nspace,12141|@1|11@3@3&#elements,}! -0 s6822|-1 12144 -1 -1 t12143|12143& -0 a359|& -3 f0 (12145|0@5@7&#,)! -3 f2 (12145|0@5@7&#,)! -3 f0 (12145|@7|0@5@7&#,)! -3 f2 (12145|@7|0@5@7&#,)! -3 f0 (12145|0@5@7&#,)! -3 f2 (12145|0@5@7&#,)! -3 f0 (12145|0@5@7&#,)! -3 f989 (12145|0@5@7&#,)! -3 f0 (12145|0@5@2&#,)! -3 f1 (12145|0@5@2&#,)! -3 f0 (12145|0@5@7&#,)! -3 f1 (12145|0@5@7&#,)! -3 f0 (12145|@5|0@5@7&#,952|15@5@17&#,)! -3 f12145 (12145|@5|0@5@7&#,952|15@5@17&#,)! -3 f0 ()! -3 f12145 ()! -3 f0 (12145|0@2@7&#,)! -3 f1 (12145|0@2@7&#,)! -3 f0 (12145|@5|0@5@7&#,952|15@5@17&#,)! -3 f12145 (12145|@5|0@5@7&#,952|15@5@17&#,)! -3 f0 (12145|0@5@7&#,)! -3 f1 (12145|0@5@7&#,)! -3 f0 (12145|0@5@7&#,)! -3 f5 (12145|0@5@7&#,)! -3 f0 (12145|0@5@7&#,)! -3 f989 (12145|0@5@7&#,)! -3 f0 (12145|0@5@2&#,)! -3 f1 (12145|0@5@2&#,)! +3 f1394 (4|$#,)! +3 f0 (1394|$#,1394|$#,)! +3 f5 (1394|$#,1394|$#,)! +0 s7547|-1 13925 -1 +1 t13924|13924& +3 S!239{5|@1|^#entries,5|@1|^#nspace,13925|@1|11@3@3&#elements,}^13928 +0 s7548|& +1 t13926|13926& +0 a7549|& +3 f0 (13929|0@5@7&#,)! +3 f2 (13929|0@5@7&#,)! +3 f0 (13929|@7|0@5@7&#,)! +3 f2 (13929|@7|0@5@7&#,)! +3 f0 (13929|0@5@7&#,)! +3 f2 (13929|0@5@7&#,)! +3 f0 (13929|0@5@7&#,)! +3 f1117 (13929|0@5@7&#,)! +3 f0 (13929|0@5@2&#,)! +3 f1 (13929|0@5@2&#,)! +3 f0 (13929|0@5@7&#,)! +3 f1 (13929|0@5@7&#,)! +3 f0 (13929|@5|0@5@7&#,971|15@5@17&#,)! +3 f13929 (13929|@5|0@5@7&#,971|15@5@17&#,)! +3 f0 ()! +3 f13929 ()! +3 f0 (13929|0@2@7&#,)! +3 f1 (13929|0@2@7&#,)! +3 f0 (13929|@5|0@5@7&#,971|15@5@17&#,)! +3 f13929 (13929|@5|0@5@7&#,971|15@5@17&#,)! +3 f0 (13929|0@5@7&#,)! +3 f1 (13929|0@5@7&#,)! +3 f0 (13929|0@5@7&#,)! +3 f5 (13929|0@5@7&#,)! +3 f0 (13929|0@5@7&#,)! +3 f1117 (13929|0@5@7&#,)! +3 f0 (13929|0@5@2&#,)! +3 f1 (13929|0@5@2&#,)! +3 f0 (4259|0@5@7&#,)! +3 f2 (4259|0@5@7&#,)! +3 f0 (1117|0@5@4&#,20|0@0@4&#,)! +3 f4253 (1117|0@5@4&#,20|0@0@4&#,)! +3 f0 (4259|0@5@7&#,)! +3 f2 (4259|0@5@7&#,)! +3 f0 (1009|0@5@7&#,)! +3 f5 (1009|0@5@7&#,)! +3 f0 (4259|0@5@7&#,)! +3 f1117 (4259|0@5@7&#,)! +3 f0 (4253|0@0@4&#,)! +3 f4259 (4253|0@0@4&#,)! +1 t4253|4253& +3 f0 (4259|0@2@7&#,)! +3 f1 (4259|0@2@7&#,)! +3 f0 (4259|0@5@7&#,1117|0@5@7&#,)! +3 f19 (4259|0@5@7&#,1117|0@5@7&#,)! +3 f20 (4259|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4259|0@2@7&#,4253|0@0@2&#,)! +3 f1 (4259|0@2@7&#,4253|0@0@2&#,)! +3 f0 (4259|0@5@7&#,)! +3 f5 (4259|0@5@7&#,)! +3 f0 (4259|0@5@7&#,1117|0@5@7&#,)! +3 f19 (4259|0@5@7&#,1117|0@5@7&#,)! +3 f20 (4259|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4259|0@5@2&#,)! +3 f1 (4259|0@5@2&#,)! +3 f0 (1009|0@5@2&#,)! +3 f1 (1009|0@5@2&#,)! +3 f0 (1009|0@5@7&#,)! +3 f5 (1009|0@5@7&#,)! +3 f0 (1009|0@5@7&#,)! +3 f5 (1009|0@5@7&#,)! +3 f0 (1009|0@2@7&#,1117|0@5@7&#,)! +3 f6 (1009|0@2@7&#,1117|0@5@7&#,)! +3 f0 (1009|0@2@7&#,1117|0@5@7&#,)! +3 f4259 (1009|0@2@7&#,1117|0@5@7&#,)! +3 f0 (5|$#,)! +3 f1009 (5|$#,)! +1 t4259|4259& +3 f0 (1009|0@5@7&#,)! +3 f1 (1009|0@5@7&#,)! +3 f0 (1009|0@5@7&#,)! +3 f1117 (1009|0@5@7&#,)! +3 f0 (1009|0@2@7&#,4253|0@0@4&#,)! +3 f1 (1009|0@2@7&#,4253|0@0@4&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@2&#,20|0@0@2&#,)! +3 f1 (1009|0@5@7&#,1117|0@5@2&#,20|0@0@2&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f19 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f20 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,20|0@0@2&#,)! +3 f1 (1009|0@5@7&#,1117|0@5@7&#,20|0@0@2&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f1 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1009|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1009|0@5@7&#,1117|0@5@7&#,)! 3 f0 (5|$#,)! -3 f4232 (5|$#,)! -3 f0 (4232|$#,)! -3 f989 (4232|$#,)! -3 f0 (4232|$#,)! -3 f989 (4232|$#,)! -3 f0 (4232|$#,)! -3 f989 (4232|$#,)! +3 f4626 (5|$#,)! +3 f0 (4626|$#,)! +3 f1117 (4626|$#,)! +3 f0 (4626|$#,)! +3 f1117 (4626|$#,)! +3 f0 (4626|$#,)! +3 f1117 (4626|$#,)! 3 f0 ()! 3 f5 ()! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (4483|0@5@2&#,5|$#,)! -3 f1 (4483|0@5@2&#,5|$#,)! -3 f0 (4297|0@5@7&#,2|$#,)! -3 f991 (4297|0@5@7&#,2|$#,)! -3 f0 (963|0@2@2&#,)! -3 f1 (963|0@2@2&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (963|0@5@7&#,)! -3 f989 (963|0@5@7&#,)! -3 f0 (963|0@2@7&#,5|$#,4255|$#,)! -3 f955 (963|0@2@7&#,5|$#,4255|$#,)! -3 f0 (963|0@2@7&#,)! -3 f989 (963|0@2@7&#,)! -3 f0 (963|0@2@7&#,)! -3 f989 (963|0@2@7&#,)! -3 f0 (963|0@2@7&#,)! -3 f989 (963|0@2@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (963|0@2@7&#,989|0@5@7&#,)! -3 f955 (963|0@2@7&#,989|0@5@7&#,)! -3 f0 (963|0@2@7&#,)! -3 f963 (963|0@2@7&#,)! -3 f0 (963|0@2@7&#,5|$#,4255|$#,)! -3 f955 (963|0@2@7&#,5|$#,4255|$#,)! -3 f0 (963|0@5@7&#,989|0@5@7&#,)! -3 f955 (963|0@5@7&#,989|0@5@7&#,)! -3 f0 (963|0@5@7&#,)! -3 f1 (963|0@5@7&#,)! -3 f0 (963|0@2@7&#,989|0@5@7&#,)! -3 f5 (963|0@2@7&#,989|0@5@7&#,)! -3 f0 (963|0@2@7&#,5|$#,)! -3 f955 (963|0@2@7&#,5|$#,)! -3 f0 (963|0@5@7&#,989|0@5@7&#,)! -3 f955 (963|0@5@7&#,989|0@5@7&#,)! -3 f0 ()! -3 f963 ()! -3 f0 (963|0@2@7&#,5|$#,5|$#,)! -3 f5 (963|0@2@7&#,5|$#,5|$#,)! -3 f0 (963|0@5@7&#,)! -3 f2 (963|0@5@7&#,)! -3 f0 (963|0@5@7&#,)! -3 f2 (963|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (963|0@5@7&#,)! -3 f2 (963|0@5@7&#,)! -3 f0 (963|0@5@7&#,)! -3 f2 (963|0@5@7&#,)! -3 f0 (963|0@5@7&#,)! -3 f2 (963|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (4096|$#,)! -3 f1 (4096|$#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (4476|$#,963|0@5@4&#,2|$#,)! -3 f963 (4476|$#,963|0@5@4&#,2|$#,)! -1 t4480|4480& -3 f0 ()! -3 f963 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (963|0@2@7&#,)! -3 f1 (963|0@2@7&#,)! -3 f0 (963|0@2@7&#,955|0@5@4&#,)! -3 f1 (963|0@2@7&#,955|0@5@4&#,)! -3 C1.955/1|! -3 f0 (963|0@2@7&#,955|0@5@2&#,)! -3 f955 (963|0@2@7&#,955|0@5@2&#,)! -3 f12261 (963|0@2@7&#,955|0@5@2&#,)! -3 f0 (963|0@2@7&#,955|0@5@4&#,2|$#,)! -3 f4255 (963|0@2@7&#,955|0@5@4&#,2|$#,)! -3 f0 (955|0@5@2&#,)! -3 f4255 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (963|0@2@7&#,955|0@5@2&#,2|$#,)! -3 f4255 (963|0@2@7&#,955|0@5@2&#,2|$#,)! -3 f0 (963|0@2@7&#,955|0@5@2&#,)! -3 f1 (963|0@2@7&#,955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (963|0@2@7&#,955|0@5@2&#,2|$#,)! -3 f955 (963|0@2@7&#,955|0@5@2&#,2|$#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f991 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,2|$#,)! -3 f4255 (955|0@5@2&#,2|$#,)! -3 f0 (955|0@5@2&#,2|$#,)! -3 f4255 (955|0@5@2&#,2|$#,)! -3 f0 (955|0@5@2&#,)! -3 f991 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (955|0@5@2&#,)! -3 f955 (955|0@5@2&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (4937|0@5@2&#,5|$#,)! +3 f1 (4937|0@5@2&#,5|$#,)! +3 f0 (4717|0@5@7&#,2|$#,)! +3 f1119 (4717|0@5@7&#,2|$#,)! +3 f0 ()! +3 f5 ()! +3 f0 (985|0@2@2&#,)! +3 f1 (985|0@2@2&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (985|0@5@7&#,)! +3 f1117 (985|0@5@7&#,)! +3 f0 (985|0@2@7&#,5|$#,4649|$#,)! +3 f974 (985|0@2@7&#,5|$#,4649|$#,)! +3 f0 (985|0@2@7&#,)! +3 f1117 (985|0@2@7&#,)! +3 f0 (985|0@2@7&#,)! +3 f1117 (985|0@2@7&#,)! +3 f0 (985|0@2@7&#,)! +3 f1117 (985|0@2@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (985|0@2@7&#,1117|0@5@7&#,)! +3 f974 (985|0@2@7&#,1117|0@5@7&#,)! +3 f0 (985|0@2@7&#,)! +3 f985 (985|0@2@7&#,)! +3 f0 (985|0@2@7&#,5|$#,4649|$#,)! +3 f974 (985|0@2@7&#,5|$#,4649|$#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,)! +3 f0 (985|0@5@7&#,)! +3 f1 (985|0@5@7&#,)! +3 f0 (985|0@2@7&#,1117|0@5@7&#,)! +3 f5 (985|0@2@7&#,1117|0@5@7&#,)! +3 f0 (985|0@2@7&#,5|$#,)! +3 f974 (985|0@2@7&#,5|$#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,)! +3 f0 ()! +3 f985 ()! +3 f0 (985|0@2@7&#,5|$#,5|$#,)! +3 f5 (985|0@2@7&#,5|$#,5|$#,)! +3 f0 (985|0@5@7&#,)! +3 f2 (985|0@5@7&#,)! +3 f0 (985|0@5@7&#,)! +3 f2 (985|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (985|0@5@7&#,)! +3 f2 (985|0@5@7&#,)! +3 f0 (985|0@5@7&#,)! +3 f2 (985|0@5@7&#,)! +3 f0 (985|0@5@7&#,)! +3 f2 (985|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (4485|$#,)! +3 f1 (4485|$#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (4930|$#,985|0@5@4&#,2|$#,)! +3 f985 (4930|$#,985|0@5@4&#,2|$#,)! +1 t4934|4934& +3 f0 ()! +3 f985 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (985|0@2@7&#,)! +3 f1 (985|0@2@7&#,)! +3 f0 (985|0@2@7&#,974|0@5@4&#,)! +3 f1 (985|0@2@7&#,974|0@5@4&#,)! +3 C1.974/1|! +3 f0 (985|0@2@7&#,974|0@5@2&#,)! +3 f974 (985|0@2@7&#,974|0@5@2&#,)! +3 f14110 (985|0@2@7&#,974|0@5@2&#,)! +3 f0 (985|0@2@7&#,974|0@5@2&#,)! +3 f974 (985|0@2@7&#,974|0@5@2&#,)! +3 f14110 (985|0@2@7&#,974|0@5@2&#,)! +3 f0 (985|0@2@7&#,974|0@5@4&#,2|$#,)! +3 f4649 (985|0@2@7&#,974|0@5@4&#,2|$#,)! +3 f0 (974|0@5@2&#,)! +3 f4649 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (985|0@2@7&#,974|0@5@2&#,2|$#,)! +3 f4649 (985|0@2@7&#,974|0@5@2&#,2|$#,)! +3 f0 (985|0@2@7&#,974|0@5@2&#,)! +3 f1 (985|0@2@7&#,974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (985|0@2@7&#,974|0@5@2&#,2|$#,)! +3 f974 (985|0@2@7&#,974|0@5@2&#,2|$#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1119 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,2|$#,)! +3 f4649 (974|0@5@2&#,2|$#,)! +3 f0 (974|0@5@2&#,2|$#,)! +3 f4649 (974|0@5@2&#,2|$#,)! +3 f0 (974|0@5@2&#,)! +3 f1119 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (974|0@5@2&#,)! +3 f974 (974|0@5@2&#,)! 3 f0 ()! 3 f2 ()! -3 f0 (963|0@2@7&#,989|0@5@7&#,)! -3 f5 (963|0@2@7&#,989|0@5@7&#,)! -3 f0 (963|0@2@7&#,5|$#,)! -3 f955 (963|0@2@7&#,5|$#,)! -3 f0 (989|0@5@7&#,)! -3 f4255 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f4255 (989|0@5@7&#,)! -3 f0 (963|0@2@7&#,4255|$#,)! -3 f955 (963|0@2@7&#,4255|$#,)! -3 f0 (4255|$#,)! -3 f955 (4255|$#,)! -3 f0 (4255|$#,)! -3 f955 (4255|$#,)! -3 f0 (4255|$#,)! -3 f955 (4255|$#,)! -3 f0 (4255|$#,)! -3 f2 (4255|$#,)! -3 f0 (4255|$#,)! -3 f989 (4255|$#,)! -3 f0 (963|0@2@7&#,)! -3 f1 (963|0@2@7&#,)! -3 f0 (963|0@2@7&#,)! -3 f963 (963|0@2@7&#,)! -3 f0 (963|0@2@2&#,)! -3 f1 (963|0@2@2&#,)! -3 f0 (4255|$#,)! -3 f4255 (4255|$#,)! +3 f0 (985|0@2@7&#,1117|0@5@7&#,)! +3 f5 (985|0@2@7&#,1117|0@5@7&#,)! +3 f0 (985|0@2@7&#,5|$#,)! +3 f974 (985|0@2@7&#,5|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f4649 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f4649 (1117|0@5@7&#,)! +3 f0 (985|0@2@7&#,4649|$#,)! +3 f974 (985|0@2@7&#,4649|$#,)! +3 f0 (4649|$#,)! +3 f974 (4649|$#,)! +3 f0 (4649|$#,)! +3 f974 (4649|$#,)! +3 f0 (4649|$#,)! +3 f974 (4649|$#,)! +3 f0 (4649|$#,)! +3 f2 (4649|$#,)! +3 f0 (4649|$#,)! +3 f1117 (4649|$#,)! +3 f0 (985|0@2@7&#,)! +3 f1 (985|0@2@7&#,)! +3 f0 (985|0@2@7&#,)! +3 f985 (985|0@2@7&#,)! +3 f0 (985|0@2@2&#,)! +3 f1 (985|0@2@2&#,)! +3 f0 (4649|$#,)! +3 f4649 (4649|$#,)! 3 f0 ()! 3 f1 ()! -3 ?! -3 f12339 (20|28@0@25@404@0#,20|25@0@404@3@0#,)! -3 f5 (20|28@0@25@404@0#,20|25@0@404@3@0#,)^12342 -1 t12341|12341& -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 (210|$#,)! -3 f1 (210|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 (211|$#,)! +3 f1 (211|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -12357,36 +14205,36 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (969|0@5@2&#,)! -3 f1 (969|0@5@2&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (991|0@5@2&#,)! +3 f1 (991|0@5@2&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,1826|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f2 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,2|$#,)! -3 f1 (966|0@5@7&#,2|$#,)! -3 f0 (952|0@5@18&#,963|0@2@7&#,963|0@2@7&#,2|$#,)! -3 f1 (952|0@5@18&#,963|0@2@7&#,963|0@2@7&#,2|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,2|$#,1826|$#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,2|$#,1826|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,2062|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f2 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,2|$#,)! +3 f1 (988|0@5@7&#,2|$#,)! +3 f0 (971|0@5@7&#,985|0@2@7&#,985|0@2@7&#,2|$#,)! +3 f1 (971|0@5@7&#,985|0@2@7&#,985|0@2@7&#,2|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,2|$#,2062|$#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,2|$#,2062|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (969|0@5@2&#,)! -3 f1 (969|0@5@2&#,)! +3 f0 (991|0@5@2&#,)! +3 f1 (991|0@5@2&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -12395,90 +14243,94 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@7&#,952|0@5@18&#,)! -3 f1 (955|0@5@7&#,952|0@5@18&#,)! +3 f0 (974|0@5@7&#,971|0@5@7&#,)! +3 f1 (974|0@5@7&#,971|0@5@7&#,)! 3 f0 (2|$#,)! 3 f1 (2|$#,)! -3 f0 (978|0@5@7&#,)! -3 f1 (978|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1 (1003|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f5 (955|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f5 (974|0@5@7&#,)! 3 f0 (5|$#,)! -3 f955 (5|$#,)! -3 f0 (963|0@2@7&#,5|$#,4255|$#,)! -3 f955 (963|0@2@7&#,5|$#,4255|$#,)! -3 f0 (963|0@2@7&#,)! -3 f963 (963|0@2@7&#,)! -3 f0 (5|$#,4255|$#,)! -3 f955 (5|$#,4255|$#,)! -3 f0 (963|0@2@7&#,5|$#,4255|$#,)! -3 f955 (963|0@2@7&#,5|$#,4255|$#,)! -3 f0 (963|0@2@7&#,5|$#,5|$#,)! -3 f5 (963|0@2@7&#,5|$#,5|$#,)! +3 f974 (5|$#,)! +3 f0 (985|0@2@7&#,5|$#,4649|$#,)! +3 f974 (985|0@2@7&#,5|$#,4649|$#,)! +3 f0 (985|0@2@7&#,)! +3 f985 (985|0@2@7&#,)! +3 f0 (5|$#,4649|$#,)! +3 f974 (5|$#,4649|$#,)! +3 f0 (985|0@2@7&#,5|$#,4649|$#,)! +3 f974 (985|0@2@7&#,5|$#,4649|$#,)! +3 f0 (985|0@2@7&#,5|$#,5|$#,)! +3 f5 (985|0@2@7&#,5|$#,5|$#,)! 3 f0 (5|$#,5|$#,)! -3 f4480 (5|$#,5|$#,)! -3 f0 (963|0@2@7&#,989|0@5@7&#,)! -3 f955 (963|0@2@7&#,989|0@5@7&#,)! -3 f0 (963|0@5@7&#,989|0@5@7&#,)! -3 f955 (963|0@5@7&#,989|0@5@7&#,)! -3 f0 (963|0@5@7&#,989|0@5@7&#,)! -3 f955 (963|0@5@7&#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f991 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f991 (989|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f991 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f991 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,2|$#,)! -3 f991 (4297|0@5@7&#,2|$#,)! -3 f0 (3942|$#,)! -3 f991 (3942|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (4483|0@5@2&#,5|$#,)! -3 f1 (4483|0@5@2&#,5|$#,)! -3 f0 (963|0@2@2&#,)! -3 f1 (963|0@2@2&#,)! -3 f0 (963|0@5@2&#,)! -3 f1 (963|0@5@2&#,)! +3 f4934 (5|$#,5|$#,)! +3 f0 (985|0@2@7&#,1117|0@5@7&#,)! +3 f974 (985|0@2@7&#,1117|0@5@7&#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,)! +3 f0 (985|0@5@7&#,1117|0@5@7&#,)! +3 f974 (985|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f974 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1119 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1119 (1117|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1119 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1119 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,2|$#,)! +3 f1119 (4717|0@5@7&#,2|$#,)! +3 f0 (4327|$#,)! +3 f1119 (4327|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (4937|0@5@2&#,5|$#,)! +3 f1 (4937|0@5@2&#,5|$#,)! +3 f0 (985|0@2@2&#,)! +3 f1 (985|0@2@2&#,)! +3 f0 (985|0@5@2&#,)! +3 f1 (985|0@5@2&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -12489,1083 +14341,1142 @@ 3 f2 ()! 3 f0 ()! 3 f2 ()! -3 f0 (955|0@5@2&#,)! -3 f1 (955|0@5@2&#,)! -3 f0 (4255|$#,4255|$#,)! -3 f2 (4255|$#,4255|$#,)! -3 f0 (969|0@5@7&#,)! -3 f1 (969|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! +3 f0 (974|0@5@2&#,)! +3 f1 (974|0@5@2&#,)! +3 f0 (4649|$#,4649|$#,)! +3 f2 (4649|$#,4649|$#,)! +3 f0 (991|0@5@7&#,)! +3 f1 (991|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 ?! -3 f12509 (20|0@2@17&#,20|0@0@65&#,)! -3 f5 (20|0@2@17&#,20|0@0@65&#,)^12512 -1 t12511|12511& +3 f14361 (20|$#,20|$#,)! +3 f5 (20|$#,20|$#,)^14364 +1 t14363|14363& 3 f0 ()! -3 f963 ()! +3 f985 ()! 3 f0 ()! -3 f989 ()! -3 f0 (963|0@5@7&#,)! -3 f989 (963|0@5@7&#,)! -3 f0 (963|0@2@7&#,)! -3 f989 (963|0@2@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! +3 f1117 ()! +3 f0 (985|0@5@7&#,)! +3 f1117 (985|0@5@7&#,)! +3 f0 (985|0@2@7&#,)! +3 f1117 (985|0@2@7&#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f1 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f1 (971|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f994 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f994 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f994 (971|0@5@7&#,)! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (963|0@5@7&#,)! -3 f1 (963|0@5@7&#,)! +3 f0 (985|0@5@7&#,)! +3 f1 (985|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (963|0@2@7&#,)! -3 f989 (963|0@2@7&#,)! -3 f0 (963|0@2@7&#,)! -3 f989 (963|0@2@7&#,)! +3 f0 (985|0@2@7&#,)! +3 f1117 (985|0@2@7&#,)! +3 f0 (985|0@2@7&#,)! +3 f1117 (985|0@2@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,5|$#,)! -3 f1 (955|0@5@7&#,5|$#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,5|$#,)! +3 f1 (974|0@5@7&#,5|$#,)! +3 f0 ()! +3 f971 ()! 3 f0 ()! -3 f5075 ()! -3 f0 (5069|$#,)! -3 f5075 (5069|$#,)! +3 f5547 ()! +3 f0 (5541|$#,)! +3 f5547 (5541|$#,)! 3 f0 (9|$#,)! -3 f5075 (9|$#,)! +3 f5547 (9|$#,)! 3 f0 (4|$#,)! -3 f5075 (4|$#,)! +3 f5547 (4|$#,)! 3 f0 (17|$#,)! -3 f5075 (17|$#,)! -3 f0 (989|0@5@2&#,)! -3 f5075 (989|0@5@2&#,)! -3 f0 (5075|0@5@7&#,)! -3 f5075 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f5075 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f9 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f4 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f17 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f989 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f2 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f989 (5075|0@5@7&#,)! -3 f0 (5075|0@5@7&#,)! -3 f989 (5075|0@5@7&#,)! -3 f0 (312|$#,)! -3 f5075 (312|$#,)! -3 f0 (5075|0@5@7&#,5075|0@5@7&#,)! -3 f5 (5075|0@5@7&#,5075|0@5@7&#,)! -3 f0 (5075|0@5@2&#,)! -3 f1 (5075|0@5@2&#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (1779|$#,)! -3 f989 (1779|$#,)! -3 f0 (5|$#,978|0@5@2&#,)! -3 f1779 (5|$#,978|0@5@2&#,)! -3 f0 (1779|15@0@1&#,)! -3 f1 (1779|15@0@1&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f952 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! +3 f5547 (17|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f5547 (1117|0@5@2&#,)! +3 f0 (5547|0@5@7&#,)! +3 f5547 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f5547 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f9 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f4 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f17 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f1117 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f2 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f1117 (5547|0@5@7&#,)! +3 f0 (5547|0@5@7&#,)! +3 f1117 (5547|0@5@7&#,)! +3 f0 (313|$#,)! +3 f5547 (313|$#,)! +3 f0 (5547|0@5@7&#,5547|0@5@7&#,)! +3 f5 (5547|0@5@7&#,5547|0@5@7&#,)! +3 f0 (5547|0@5@2&#,)! +3 f1 (5547|0@5@2&#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (2013|$#,)! +3 f1117 (2013|$#,)! +3 f0 (5|$#,1003|0@5@2&#,)! +3 f2013 (5|$#,1003|0@5@2&#,)! +3 f0 (2013|15@0@1&#,)! +3 f1 (2013|15@0@1&#,)! +3 f0 (2013|$#,)! +3 f1003 (2013|$#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f1 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f971 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! 3 ?! -3 f12647 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)^12650 -1 t12649|12649& -3 f0 (12650|$#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (12650|$#,952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! +3 f14507 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)^14510 +1 t14509|14509& +3 f0 (14510|$#,971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (14510|$#,971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! 3 ?! -3 f12655 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)^12658 -1 t12657|12657& -3 f0 (12658|$#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (12658|$#,952|0@5@18&#,978|0@5@7&#,)! +3 f14515 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)^14518 +1 t14517|14517& +3 f0 (14518|$#,971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (14518|$#,971|0@5@7&#,1003|0@5@7&#,)! 3 ?! -3 f12661 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)^12664 -1 t12663|12663& -3 f0 (12664|$#,952|0@5@18&#,952|0@5@18&#,)! -3 f1 (12664|$#,952|0@5@18&#,952|0@5@18&#,)! +3 f14521 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)^14524 +1 t14523|14523& +3 f0 (14524|$#,971|0@5@7&#,971|0@5@7&#,)! +3 f1 (14524|$#,971|0@5@7&#,971|0@5@7&#,)! 3 ?! -3 f12667 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4000|$#,978|0@5@7&#,)^12670 -1 t12669|12669& -3 f0 (12670|$#,952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (12670|$#,952|0@5@18&#,4000|$#,978|0@5@7&#,)! +3 f14527 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)^14530 +1 t14529|14529& +3 f0 (14530|$#,971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (14530|$#,971|0@5@7&#,4387|$#,1003|0@5@7&#,)! 3 f0 (5|$#,)! -3 f5715 (5|$#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (5718|$#,)! -3 f2 (5718|$#,)! -3 f0 (952|15@2@6&#,)! -3 f1 (952|15@2@6&#,)! -3 f0 (952|0@2@18&#,)! -3 f5738 (952|0@2@18&#,)! -3 f0 (952|0@5@18&#,955|0@5@7&#,)! -3 f1 (952|0@5@18&#,955|0@5@7&#,)! -3 f0 (952|0@2@18&#,2|$#,978|0@5@7&#,)! -3 f2 (952|0@2@18&#,2|$#,978|0@5@7&#,)! -3 f0 (952|0@2@18@2@0#,)! -3 f952 (952|0@2@18@2@0#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,1826|$#,978|0@5@7&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! -3 f0 (952|0@5@18&#,955|0@5@7&#,)! -3 f1 (952|0@5@18&#,955|0@5@7&#,)! -3 f0 (952|0@2@18@2@0#,952|0@2@18@2@0#,)! -3 f1 (952|0@2@18@2@0#,952|0@2@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,978|0@5@7&#,)! -3 f5742 (952|0@5@18@2@0#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,2|$#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,2|$#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18@2@0#,989|0@5@19@2@0#,)! -3 f952 (952|0@5@18@2@0#,989|0@5@19@2@0#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,1826|$#,2|$#,978|0@5@7&#,2|$#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,1826|$#,2|$#,978|0@5@7&#,2|$#,)! -3 f0 (952|0@2@18&#,)! -3 f5738 (952|0@2@18&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f972 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (972|0@5@2&#,972|0@5@19@2@0#,2|$#,1826|$#,978|0@5@7&#,)! -3 f972 (972|0@5@2&#,972|0@5@19@2@0#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f972 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,4297|0@5@7&#,)! -3 f989 (952|0@5@18&#,4297|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@2@18&#,989|0@5@7&#,)! -3 f952 (952|0@2@18&#,989|0@5@7&#,)! -3 f0 (952|@5|0@2@18&#,952|0@5@18&#,)! -3 f952 (952|@5|0@2@18&#,952|0@5@18&#,)! -3 f0 (978|0@5@7&#,)! -3 f5742 (978|0@5@7&#,)! -3 f0 (5742|0@5@7&#,)! -3 f5742 (5742|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! +3 f6315 (5|$#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@19@2@0#,)! +3 f1 (971|0@2@7&#,971|0@2@19@2@0#,)! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (6318|$#,)! +3 f2 (6318|$#,)! +3 f0 (971|15@2@6&#,)! +3 f1 (971|15@2@6&#,)! +3 f0 (971|0@2@7&#,)! +3 f6338 (971|0@2@7&#,)! +3 f0 (971|0@5@7&#,974|0@5@7&#,)! +3 f1 (971|0@5@7&#,974|0@5@7&#,)! +3 f0 (971|0@2@7&#,2|$#,1003|0@5@7&#,)! +3 f2 (971|0@2@7&#,2|$#,1003|0@5@7&#,)! +3 f0 (971|0@2@19@2@0#,)! +3 f971 (971|0@2@19@2@0#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,2062|$#,1003|0@5@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,)! +3 f0 (971|0@5@7&#,974|0@5@7&#,)! +3 f1 (971|0@5@7&#,974|0@5@7&#,)! +3 f0 (971|0@2@19@2@0#,971|0@2@19@2@0#,)! +3 f1 (971|0@2@19@2@0#,971|0@2@19@2@0#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,2|$#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,2|$#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,1117|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,1117|0@5@19@2@0#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,2062|$#,2|$#,1003|0@5@7&#,2|$#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,2062|$#,2|$#,1003|0@5@7&#,2|$#,)! +3 f0 (971|0@2@7&#,)! +3 f6338 (971|0@2@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f994 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (994|0@5@2&#,994|0@5@19@2@0#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f994 (994|0@5@2&#,994|0@5@19@2@0#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f994 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4717|0@5@7&#,)! +3 f1117 (971|0@5@7&#,4717|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@2@7&#,1117|0@5@7&#,)! +3 f971 (971|0@2@7&#,1117|0@5@7&#,)! +3 f0 (971|@5|0@2@7&#,971|0@5@7&#,)! +3 f971 (971|@5|0@2@7&#,971|0@5@7&#,)! +3 f0 ()! +3 f971 ()! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f1 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@6&#,)! +3 f1 (971|0@5@6&#,)! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@19@2@0#,)! +3 f1 (971|0@2@7&#,971|0@2@19@2@0#,)! 3 ?! -3 f12757 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^12760 -1 t12759|12759& -3 f0 (12760|$#,952|0@5@18&#,)! -3 f2 (12760|$#,952|0@5@18&#,)! +3 f14623 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^14626 +1 t14625|14625& +3 f0 (14626|$#,971|0@5@7&#,)! +3 f2 (14626|$#,971|0@5@7&#,)! 3 f0 ()! 3 f2 ()! -3 f0 (952|0@5@18&#,991|$#,)! -3 f1 (952|0@5@18&#,991|$#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (5742|0@5@2&#,)! -3 f1 (5742|0@5@2&#,)! -3 f0 (5742|0@5@2&#,5742|0@5@7&#,)! -3 f5742 (5742|0@5@2&#,5742|0@5@7&#,)! -3 f0 (5742|0@5@2&#,978|0@5@7&#,)! -3 f5742 (5742|0@5@2&#,978|0@5@7&#,)! -3 f0 (5742|0@5@2&#,952|0@5@18&#,978|0@5@7&#,)! -3 f5742 (5742|0@5@2&#,952|0@5@18&#,978|0@5@7&#,)! -3 f0 (5742|0@5@7&#,)! -3 f5742 (5742|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f978 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f978 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f978 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f978 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (978|0@5@7&#,)! -3 f5742 (978|0@5@7&#,)! -3 f0 (952|0@5@18@2@0#,978|0@5@7&#,)! -3 f5742 (952|0@5@18@2@0#,978|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 (952|0@2@18&#,)! -3 f952 (952|0@2@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f955 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f955 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18&#,972|0@5@7&#,)! -3 f2 (952|0@5@18&#,972|0@5@7&#,)! -3 f0 (952|0@5@18@2@0#,952|0@5@18&#,)! -3 f952 (952|0@5@18@2@0#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f5 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (5722|$#,5722|$#,)! -3 f2 (5722|$#,5722|$#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18@3@0#,3819|0@0@6@3@0#,)! -3 f987 (952|0@5@18@3@0#,3819|0@0@6@3@0#,)! -3 f0 (952|@5|0@5@18&#,3819|$#,)! -3 f952 (952|@5|0@5@18&#,3819|$#,)! -3 f0 (312|$#,)! -3 f952 (312|$#,)! -3 f0 (312|$#,)! -3 f952 (312|$#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,4297|0@5@7&#,)! -3 f991 (952|0@5@18&#,4297|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f991 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,4297|0@5@7&#,)! -3 f989 (952|0@5@18&#,4297|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (989|0@5@19@2@0#,)! -3 f952 (989|0@5@19@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (5|$#,4255|$#,991|$#,)! -3 f952 (5|$#,4255|$#,991|$#,)! -3 f0 (5|$#,4255|$#,991|$#,)! -3 f952 (5|$#,4255|$#,991|$#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (4255|$#,991|$#,)! -3 f952 (4255|$#,991|$#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f1 (952|0@5@18&#,5|$#,)! -3 f0 (5|$#,991|$#,)! -3 f952 (5|$#,991|$#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@2@18&#,)! -3 f2 (952|0@2@18&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f952 (952|0@5@18&#,5|$#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,1826|$#,2|$#,978|0@5@7&#,2|$#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,1826|$#,2|$#,978|0@5@7&#,2|$#,)! -3 f0 (972|0@5@2&#,972|0@5@19@2@0#,2|$#,1826|$#,978|0@5@7&#,)! -3 f972 (972|0@5@2&#,972|0@5@19@2@0#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f972 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@2@18&#,2|$#,978|0@5@7&#,)! -3 f2 (952|0@2@18&#,2|$#,978|0@5@7&#,)! -3 f0 (952|0@2@18&#,2|$#,978|0@5@7&#,)! -3 f1 (952|0@2@18&#,2|$#,978|0@5@7&#,)! -3 f0 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f972 (972|0@5@2&#,972|0@5@7&#,2|$#,1826|$#,978|0@5@7&#,)! -3 f0 (952|@5|0@5@18@2@0#,952|0@5@18@2@0#,)! -3 f952 (952|@5|0@5@18@2@0#,952|0@5@18@2@0#,)! -3 f0 ()! -3 f952 ()! -3 f0 (5715|$#,)! -3 f952 (5715|$#,)! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 ()! -3 f952 ()! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 ()! -3 f952 ()! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f4255 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1299 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1299 (952|0@5@18&#,)! -3 f0 (952|0@5@18@2@0#,5|$#,)! -3 f952 (952|0@5@18@2@0#,5|$#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f3989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,4000|$#,)! -3 f1 (952|0@5@18&#,4000|$#,)! -3 f0 (952|0@5@18&#,)! -3 f4003 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f4003 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,4003|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4003|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,2|$#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,2|$#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3989|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@2@18&#,3995|$#,978|0@5@7&#,)! -3 f1 (952|0@2@18&#,3995|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,5221|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,5221|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,3995|$#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@2&#,)! -3 f1 (952|0@5@2&#,)! -3 f0 (952|0@5@18&#,991|$#,)! -3 f1 (952|0@5@18&#,991|$#,)! -3 f0 (952|0@5@18&#,991|$#,)! -3 f1 (952|0@5@18&#,991|$#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@2@18&#,989|0@5@7&#,)! -3 f952 (952|0@2@18&#,989|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f972 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@2@18&#,2|$#,5|$#,2|$#,)! -3 f952 (952|0@2@18&#,2|$#,5|$#,2|$#,)! -3 f0 (952|0@5@18@2@0#,989|0@5@19@2@0#,)! -3 f952 (952|0@5@18@2@0#,989|0@5@19@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@2@18@2@0#,952|0@2@18@2@0#,)! -3 f1 (952|0@2@18@2@0#,952|0@2@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18@2@0#,5|$#,)! -3 f952 (952|0@5@18@2@0#,5|$#,)! -3 f0 (952|0@5@18&#,955|0@5@7&#,)! -3 f1 (952|0@5@18&#,955|0@5@7&#,)! -3 f0 (952|0@5@18&#,955|0@5@7&#,)! -3 f1 (952|0@5@18&#,955|0@5@7&#,)! -3 f0 (952|0@5@18&#,955|0@5@7&#,)! -3 f1 (952|0@5@18&#,955|0@5@7&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,2|$#,)! -3 f952 (952|0@5@18&#,2|$#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@2@18@2@0#,)! -3 f952 (952|0@2@18@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18@2@0#,)! -3 f952 (952|0@5@18@2@0#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f952 (952|0@5@18&#,5|$#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (991|$#,952|0@5@18&#,989|0@5@19@2@0#,)! -3 f952 (991|$#,952|0@5@18&#,989|0@5@19@2@0#,)! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 (991|$#,)! -3 f952 (991|$#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|@5|0@5@18&#,)! -3 f952 (952|@5|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|@5|0@5@18&#,952|@5|0@5@18&#,)! -3 f952 (952|@5|0@5@18&#,952|@5|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,)! -3 f952 (952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,3995|$#,)! -3 f1 (952|0@5@18&#,3995|$#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,3995|$#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,3995|$#,)! -3 f0 (952|@5|0@2@18&#,952|0@5@18&#,)! -3 f952 (952|@5|0@2@18&#,952|0@5@18&#,)! -3 ?! -3 f13341 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)^13344 -1 t13343|13343& -3 ?! -3 f13345 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^13348 -1 t13347|13347& -3 f0 (13344|$#,13348|0@5@7&#,952|0@5@18&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (13344|$#,13348|0@5@7&#,952|0@5@18&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (996|$#,952|0@5@18&#,)! -3 f2 (996|$#,952|0@5@18&#,)! -3 ?! -3 f13353 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^13356 -1 t13355|13355& -3 f0 (13356|$#,952|0@5@18&#,)! -3 f2 (13356|$#,952|0@5@18&#,)! -3 ?! -3 f13359 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)^13362 -1 t13361|13361& -3 f0 (13362|$#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (13362|$#,952|0@5@18&#,978|0@5@7&#,)! +3 f0 (971|0@5@7&#,1119|$#,)! +3 f1 (971|0@5@7&#,1119|$#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,)! +3 f6236 (971|0@5@7&#,1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f1003 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f1003 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f1003 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f1003 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@6&#,)! +3 f971 (971|0@5@6&#,)! +3 f0 ()! +3 f2 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (971|0@2@7&#,)! +3 f971 (971|0@2@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f974 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f974 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@7&#,994|0@5@7&#,)! +3 f2 (971|0@5@7&#,994|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,971|0@5@7&#,)! +3 f971 (971|0@5@19@2@0#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f5 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (6322|$#,6322|$#,)! +3 f2 (6322|$#,6322|$#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@19@3@0#,4160|0@0@6@3@0#,)! +3 f1115 (971|0@5@19@3@0#,4160|0@0@6@3@0#,)! +3 f0 (971|@5|0@5@7&#,4160|$#,)! +3 f971 (971|@5|0@5@7&#,4160|$#,)! +3 f0 (313|$#,)! +3 f971 (313|$#,)! +3 f0 (313|$#,)! +3 f971 (313|$#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4717|0@5@7&#,)! +3 f1119 (971|0@5@7&#,4717|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1119 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4717|0@5@7&#,)! +3 f1117 (971|0@5@7&#,4717|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (1117|0@5@19@2@0#,)! +3 f971 (1117|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (5|$#,4649|$#,1119|$#,)! +3 f971 (5|$#,4649|$#,1119|$#,)! +3 f0 (5|$#,4649|$#,1119|$#,)! +3 f971 (5|$#,4649|$#,1119|$#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (4649|$#,1119|$#,)! +3 f971 (4649|$#,1119|$#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1 (971|0@5@7&#,5|$#,)! +3 f0 (5|$#,1119|$#,)! +3 f971 (5|$#,1119|$#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@2@7&#,)! +3 f2 (971|0@2@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f971 (971|0@5@7&#,5|$#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@18&#,971|0@5@18&#,)! +3 f1 (971|0@5@18&#,971|0@5@18&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,2062|$#,2|$#,1003|0@5@7&#,2|$#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,2062|$#,2|$#,1003|0@5@7&#,2|$#,)! +3 f0 (994|0@5@2&#,994|0@5@19@2@0#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f994 (994|0@5@2&#,994|0@5@19@2@0#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f994 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@2@7&#,2|$#,1003|0@5@7&#,)! +3 f2 (971|0@2@7&#,2|$#,1003|0@5@7&#,)! +3 f0 (971|0@2@7&#,2|$#,1003|0@5@7&#,)! +3 f1 (971|0@2@7&#,2|$#,1003|0@5@7&#,)! +3 f0 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f994 (994|0@5@2&#,994|0@5@7&#,2|$#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|@5|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f971 (971|@5|0@5@19@2@0#,971|0@5@19@2@0#,)! +3 f0 ()! +3 f971 ()! +3 f0 (6315|$#,)! +3 f971 (6315|$#,)! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 ()! +3 f971 ()! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 ()! +3 f971 ()! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f4649 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1394 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1394 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,5|$#,)! +3 f971 (971|0@5@19@2@0#,5|$#,)! +3 f0 (971|0@5@6&#,)! +3 f2 (971|0@5@6&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f4374 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4387|$#,)! +3 f1 (971|0@5@7&#,4387|$#,)! +3 f0 (971|0@5@7&#,)! +3 f4390 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f4390 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4390|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4390|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,2|$#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,2|$#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4374|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@6&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f1 (971|0@5@6&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (971|0@2@7&#,4380|$#,1003|0@5@7&#,)! +3 f1 (971|0@2@7&#,4380|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4380|$#,)! +3 f1 (971|0@5@7&#,4380|$#,)! +3 f0 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,5727|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,5727|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4380|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@2&#,)! +3 f1 (971|0@5@2&#,)! +3 f0 (971|0@5@7&#,1119|$#,)! +3 f1 (971|0@5@7&#,1119|$#,)! +3 f0 (971|0@5@7&#,1119|$#,)! +3 f1 (971|0@5@7&#,1119|$#,)! +3 f0 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f971 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f0 (971|0@2@7&#,1117|0@5@7&#,)! +3 f971 (971|0@2@7&#,1117|0@5@7&#,)! +3 f0 (971|0@5@6&#,)! +3 f994 (971|0@5@6&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@2@7&#,2|$#,5|$#,2|$#,)! +3 f971 (971|0@2@7&#,2|$#,5|$#,2|$#,)! +3 f0 (971|0@5@19@2@0#,1117|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,1117|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@2@19@2@0#,971|0@2@19@2@0#,)! +3 f1 (971|0@2@19@2@0#,971|0@2@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,5|$#,)! +3 f971 (971|0@5@19@2@0#,5|$#,)! +3 f0 (971|0@5@7&#,974|0@5@7&#,)! +3 f1 (971|0@5@7&#,974|0@5@7&#,)! +3 f0 (971|0@5@7&#,974|0@5@7&#,)! +3 f1 (971|0@5@7&#,974|0@5@7&#,)! +3 f0 (971|0@5@7&#,974|0@5@7&#,)! +3 f1 (971|0@5@7&#,974|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@7&#,2|$#,)! +3 f971 (971|0@5@7&#,2|$#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@2@19@2@0#,)! +3 f971 (971|0@2@19@2@0#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f971 (971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,5|$#,)! +3 f971 (971|0@5@19@2@0#,5|$#,)! +3 f0 (971|0@5@7&#,1117|0@5@18&#,)! +3 f971 (971|0@5@7&#,1117|0@5@18&#,)! +3 f0 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f971 (971|0@5@19@2@0#,1117|0@5@18&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (1119|$#,971|0@5@7&#,1117|0@5@19@2@0#,)! +3 f971 (1119|$#,971|0@5@7&#,1117|0@5@19@2@0#,)! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 (1119|$#,)! +3 f971 (1119|$#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|@5|0@5@7&#,)! +3 f971 (971|@5|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|@5|0@5@7&#,971|@5|0@5@7&#,)! +3 f971 (971|@5|0@5@7&#,971|@5|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f971 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,)! +3 f1 (971|0@5@7&#,1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,4380|$#,)! +3 f1 (971|0@5@7&#,4380|$#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,4380|$#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,4380|$#,)! +3 f0 (971|@5|0@2@7&#,971|0@5@7&#,)! +3 f971 (971|@5|0@2@7&#,971|0@5@7&#,)! 3 ?! -3 f13365 (952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,4000|$#,978|0@5@7&#,)^13368 -1 t13367|13367& -3 f0 (13368|$#,952|0@5@18&#,4000|$#,978|0@5@7&#,)! -3 f1 (13368|$#,952|0@5@18&#,4000|$#,978|0@5@7&#,)! +3 f15201 (971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@7&#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)^15204 +1 t15203|15203& 3 ?! -3 f13371 (952|0@5@18&#,978|0@5@7&#,)! -3 f1 (952|0@5@18&#,978|0@5@7&#,)^13374 -1 t13373|13373& -3 f0 (13374|$#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (13374|$#,952|0@5@18&#,978|0@5@7&#,)! +3 f15205 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^15208 +1 t15207|15207& +3 f0 (15204|$#,15208|0@5@7&#,971|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (15204|$#,15208|0@5@7&#,971|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 (1124|$#,971|0@5@7&#,)! +3 f2 (1124|$#,971|0@5@7&#,)! 3 ?! -3 f13377 (952|0@5@18&#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,)^13380 -1 t13379|13379& -3 f0 (13380|$#,952|0@5@18&#,952|0@5@18&#,)! -3 f1 (13380|$#,952|0@5@18&#,952|0@5@18&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,1826|$#,978|0@5@7&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,1826|$#,978|0@5@7&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,1826|$#,978|0@5@7&#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f952 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@5@18&#,989|0@5@18&#,)! -3 f952 (952|0@5@18&#,989|0@5@18&#,)! -3 f0 (952|0@2@18&#,)! -3 f5738 (952|0@2@18&#,)! -3 f0 (952|0@2@18&#,)! -3 f5738 (952|0@2@18&#,)! -3 f0 (952|0@2@18@2@0#,952|0@2@18@2@0#,)! -3 f1 (952|0@2@18@2@0#,952|0@2@18@2@0#,)! -3 f0 (952|15@2@6&#,)! -3 f1 (952|15@2@6&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! +3 f15213 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^15216 +1 t15215|15215& +3 f0 (15216|$#,971|0@5@7&#,)! +3 f2 (15216|$#,971|0@5@7&#,)! +3 ?! +3 f15219 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)^15222 +1 t15221|15221& +3 f0 (15222|$#,971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (15222|$#,971|0@5@7&#,1003|0@5@7&#,)! +3 ?! +3 f15225 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,4387|$#,1003|0@5@7&#,)^15228 +1 t15227|15227& +3 f0 (15228|$#,971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 f1 (15228|$#,971|0@5@7&#,4387|$#,1003|0@5@7&#,)! +3 ?! +3 f15231 (971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1003|0@5@7&#,)^15234 +1 t15233|15233& +3 f0 (15234|$#,971|0@5@7&#,1003|0@5@7&#,)! +3 f1 (15234|$#,971|0@5@7&#,1003|0@5@7&#,)! +3 ?! +3 f15237 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)^15240 +1 t15239|15239& +3 f0 (15240|$#,971|0@5@7&#,971|0@5@7&#,)! +3 f1 (15240|$#,971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,2062|$#,1003|0@5@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,2062|$#,1003|0@5@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,2062|$#,1003|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f971 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@18&#,)! +3 f971 (971|0@5@7&#,1117|0@5@18&#,)! +3 f0 (971|0@5@7&#,1117|0@5@18&#,)! +3 f971 (971|0@5@7&#,1117|0@5@18&#,)! +3 f0 (971|0@2@7&#,)! +3 f6338 (971|0@2@7&#,)! +3 f0 (971|0@2@7&#,)! +3 f6338 (971|0@2@7&#,)! +3 f0 (971|0@2@19@2@0#,971|0@2@19@2@0#,)! +3 f1 (971|0@2@19@2@0#,971|0@2@19@2@0#,)! +3 f0 (971|15@2@6&#,)! +3 f1 (971|15@2@6&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! 3 f0 (5|$#,)! -3 f5715 (5|$#,)! -3 f0 (952|0@2@18&#,952|0@2@18&#,)! -3 f1 (952|0@2@18&#,952|0@2@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f989 (952|0@5@18&#,)! -3 f0 (952|@5|0@5@18&#,991|$#,955|0@5@7&#,)! -3 f952 (952|@5|0@5@18&#,991|$#,955|0@5@7&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|@7|0@5@18&#,)! -3 f2 (952|@7|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f5221 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f1 (952|0@5@18&#,5|$#,)! -3 f0 (952|0@5@18&#,5|$#,)! -3 f1 (952|0@5@18&#,5|$#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f9 (952|0@5@18&#,)! -3 U!88{948|@1|0@5@3&#ltok,1500|@1|^#typequal,6|@1|^#count,2481|@1|0@5@2&#ltokenList,2706|@1|0@0@2&#abstDecl,2710|@1|0@0@2&#declare,2720|@1|0@0@2&#declarelist,945|@1|0@0@2&#typeexpr,2735|@1|0@0@2&#array,2764|@1|0@0@2&#quantifier,2774|@1|0@0@2&#quantifiers,2739|@1|0@0@2&#var,2749|@1|0@0@2&#vars,2794|@1|0@0@2&#storeref,2812|@1|0@0@2&#storereflist,934|@1|0@0@2&#term,940|@1|0@0@2&#termlist,2862|@1|0@0@2&#program,3390|@1|0@0@2&#stmt,2962|@1|0@0@2&#claim,3050|@1|0@0@2&#type,2999|@1|0@0@2&#iter,2968|@1|0@0@2&#fcn,2978|@1|0@5@2&#fcns,2833|@1|0@0@2&#letdecl,2841|@1|0@0@2&#letdecls,2885|@1|0@0@2&#lclpredicate,2827|@1|0@0@2&#modify,2328|@1|0@0@2&#param,2346|@1|0@5@2&#paramlist,2678|@1|0@0@2&#declaratorinvs,2668|@1|0@0@2&#declaratorinv,3003|@1|0@0@2&#abstbody,3009|@1|0@0@2&#abstract,2889|@1|0@0@2&#exposed,2954|@1|0@0@2&#globals,2925|@1|0@0@2&#constdeclaration,2934|@1|0@0@2&#vardeclaration,2944|@1|0@0@2&#vardeclarationlist,2912|@1|0@0@2&#initdecls,2902|@1|0@0@2&#initdecl,3025|@1|0@0@2&#structdecls,3015|@1|0@0@2&#structdecl,3058|@1|0@0@2&#structorunion,3064|@1|0@0@2&#enumspec,937|@1|0@5@2&#lcltypespec,3094|@1|0@0@2&#typname,3125|@1|0@0@2&#opform,3136|@1|0@0@2&#signature,3186|@1|0@0@2&#name,3104|@1|0@0@2&#namelist,3231|@1|0@0@2&#replace,3241|@1|0@0@2&#replacelist,3264|@1|0@0@2&#renaming,3270|@1|0@0@2&#traitref,3278|@1|0@0@2&#traitreflist,2541|@1|0@0@2&#import,2555|@1|0@0@2&#importlist,3318|@1|0@0@2&#iface,3328|@1|0@0@2&#interfacelist,2898|@1|0@0@2&#ctypes,}! -0 s6985|& +3 f6315 (5|$#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,)! +3 f0 (971|0@2@7&#,971|0@2@7&#,)! +3 f1 (971|0@2@7&#,971|0@2@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1117 (971|0@5@7&#,)! +3 f0 (971|@5|0@5@7&#,1119|$#,974|0@5@7&#,)! +3 f971 (971|@5|0@5@7&#,1119|$#,974|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f2 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f4387 (971|@7|0@5@7&#,)! +3 f0 (971|@7|0@5@7&#,)! +3 f4380 (971|@7|0@5@7&#,)! +3 f0 (971|0@5@7&#,1012|0@5@7&#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1012|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f1 (971|0@5@7&#,1117|0@5@7&#,5|$#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f2 (971|0@5@7&#,1117|0@5@7&#,5|$#,)! +3 f0 (971|0@5@7&#,1117|0@5@7&#,)! +3 f1018 (971|0@5@7&#,1117|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1019 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f5727 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1 (971|0@5@7&#,5|$#,)! +3 f0 (971|0@5@7&#,5|$#,)! +3 f1 (971|0@5@7&#,5|$#,)! +3 f0 (971|0@5@7&#,)! +3 f1 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@7&#,)! +3 f9 (971|0@5@7&#,)! +3 U!240{967|@1|0@5@3&#ltok,1706|@1|^#typequal,6|@1|^#count,2837|@1|0@5@2&#ltokenList,3076|@1|0@0@2&#abstDecl,3013|@1|0@0@2&#declare,3023|@1|0@0@2&#declarelist,964|@1|0@0@2&#typeexpr,3082|@1|0@0@2&#array,3111|@1|0@0@2&#quantifier,3121|@1|0@0@2&#quantifiers,3086|@1|0@0@2&#var,3096|@1|0@0@2&#vars,3141|@1|0@0@2&#storeref,3159|@1|0@0@2&#storereflist,941|@1|0@0@2&#term,959|@1|0@0@2&#termlist,3206|@1|0@0@2&#program,950|@1|0@0@2&#stmt,3303|@1|0@0@2&#claim,3390|@1|0@0@2&#type,3340|@1|0@0@2&#iter,3309|@1|0@0@2&#fcn,3319|@1|0@5@2&#fcns,3180|@1|0@0@2&#letdecl,3188|@1|0@0@2&#letdecls,947|@1|0@0@2&#lclpredicate,3174|@1|0@0@2&#modify,2684|@1|0@0@2&#param,2702|@1|0@5@2&#paramlist,3048|@1|0@0@2&#declaratorinvs,3038|@1|0@0@2&#declaratorinv,944|@1|0@0@2&#abstbody,3349|@1|0@0@2&#abstract,3230|@1|0@0@2&#exposed,3295|@1|0@0@2&#globals,3266|@1|0@0@2&#constdeclaration,3275|@1|0@0@2&#vardeclaration,3285|@1|0@0@2&#vardeclarationlist,3253|@1|0@0@2&#initdecls,3243|@1|0@0@2&#initdecl,3365|@1|0@0@2&#structdecls,3355|@1|0@0@2&#structdecl,3399|@1|0@0@2&#structorunion,3405|@1|0@0@2&#enumspec,956|@1|0@5@2&#lcltypespec,3434|@1|0@0@2&#typname,938|@1|0@0@2&#opform,3477|@1|0@0@2&#signature,3528|@1|0@0@2&#name,3444|@1|0@0@2&#namelist,3573|@1|0@0@2&#replace,3583|@1|0@0@2&#replacelist,3606|@1|0@0@2&#renaming,3612|@1|0@0@2&#traitref,3620|@1|0@0@2&#traitreflist,2886|@1|0@0@2&#import,2900|@1|0@0@2&#importlist,3660|@1|0@0@2&#iface,3670|@1|0@0@2&#interfacelist,3239|@1|0@0@2&#ctypes,}! +0 s7558|& 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 ()! -3 f949 ()! +3 f968 ()! 3 f0 ()! -3 f948 ()! -3 f0 (948|0@5@2&#,)! -3 f1 (948|0@5@2&#,)! +3 f967 ()! +3 f0 (967|0@5@2&#,)! +3 f1 (967|0@5@2&#,)! 3 f0 ()! -3 f19 ()! -3 f2124 ()! +3 f1015 ()! 3 f0 ()! 3 f1 ()! -3 f0 (2124|$#,)! -3 f1 (2124|$#,)! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 2 F0/0|0& -2 F1067/0|1067& +2 F1164/0|1164& 2 F0/0|0& -2 F1067/0|1067& -3 f0 (210|$#,989|0@5@7&#,)! -3 f2 (210|$#,989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! +2 F1164/0|1164& +3 f0 (211|$#,1117|0@5@7&#,)! +3 f2 (211|$#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! 3 f0 ()! 3 f2 ()! -3 f0 (210|$#,989|0@5@7&#,)! -3 f2 (210|$#,989|0@5@7&#,)! +3 f0 (211|$#,1117|0@5@7&#,)! +3 f2 (211|$#,1117|0@5@7&#,)! 2 F0/0|0& 2 F4/0|4& -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 S_filelocStack{5|@1|^#nelements,5|@1|^#free,3902|@1|11@3@3&#elements,}! -0 s6840|-1 13514 -1 -1 t13513|13513& -0 a360|& -3 f0 (13515|0@5@7&#,)! -3 f2 (13515|0@5@7&#,)! -3 f0 (13515|@7|0@5@7&#,)! -3 f5 (13515|@7|0@5@7&#,)! -3 f0 (13515|0@5@7&#,)! -3 f5 (13515|0@5@7&#,)! -3 f0 (13515|0@5@7&#,)! -3 f1 (13515|0@5@7&#,)! -3 f0 (13515|0@5@7&#,)! -3 f1 (13515|0@5@7&#,)! -3 f0 ()! -3 f13515 ()! -3 f0 (13515|0@5@7&#,)! -3 f978 (13515|0@5@7&#,)! -3 f0 (13515|0@5@7&#,978|0@5@2&#,)! -3 f2 (13515|0@5@7&#,978|0@5@2&#,)! -3 f0 (13515|0@5@7&#,)! -3 f989 (13515|0@5@7&#,)! -3 f0 (13515|0@5@2&#,)! -3 f1 (13515|0@5@2&#,)! -3 S_intSet{5|@1|^#entries,5|@1|^#nspace,24|@1|11@3@3&#elements,}! -0 s6815|-1 13538 -1 -1 t13537|13537& -0 a361|& -3 f1 (13539|@7|&#,5|@3|&#,)! -3 f0 ()! -3 f13539 ()! -3 f0 (13539|$#,)! -3 f2 (13539|$#,)! -3 f0 (13539|$#,)! -3 f5 (13539|$#,)! -3 f0 (13539|$#,5|$#,)! -3 f2 (13539|$#,5|$#,)! -3 f0 (13539|$#,5|$#,)! -3 f2 (13539|$#,5|$#,)! -3 f0 (13539|$#,)! -3 f989 (13539|$#,)! -3 f0 (13539|0@0@2&#,)! -3 f1 (13539|0@0@2&#,)! -3 f0 (13539|$#,)! -3 f989 (13539|$#,)! -3 S!89{989|@1|0@5@3&#file,956|@1|^#daccess,}! -0 s6759|& -0 s376|-1 13563 -1 -3 e!90{CX_GLOBAL,CX_INNER,CX_FUNCTION,CX_FCNDECL,CX_MACROFCN,CX_MACROCONST,CX_UNKNOWNMACRO,CX_ITERDEF,CX_ITEREND,CX_LCL,CX_LCLLIB}! -0 s7052|& -0 s362|& -1 t13559|13559& +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +2 F0/0|0& +2 F6/0|6& +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@6&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@6&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1117 (1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@6&#,1117|0@5@7&#,)! +3 f1117 (1117|0@5@6&#,1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1117|@5|0@5@7&#,)! +3 f1117 (1117|@5|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 S!241{5|@1|^#nelements,5|@1|^#free,4287|@1|11@3@3&#elements,}^15425 +0 s7575|& +1 t15423|15423& +0 a7576|& +3 f0 (15426|0@5@7&#,)! +3 f2 (15426|0@5@7&#,)! +3 f0 (15426|@7|0@5@7&#,)! +3 f5 (15426|@7|0@5@7&#,)! +3 f0 (15426|0@5@7&#,)! +3 f5 (15426|0@5@7&#,)! +3 f0 (15426|0@5@7&#,)! +3 f1 (15426|0@5@7&#,)! +3 f0 (15426|0@5@7&#,)! +3 f1 (15426|0@5@7&#,)! +3 f0 ()! +3 f15426 ()! +3 f0 (15426|0@5@7&#,)! +3 f1003 (15426|0@5@7&#,)! +3 f0 (15426|0@5@7&#,1003|0@5@2&#,)! +3 f2 (15426|0@5@7&#,1003|0@5@2&#,)! +3 f0 (15426|0@5@7&#,)! +3 f1117 (15426|0@5@7&#,)! +3 f0 (15426|0@5@2&#,)! +3 f1 (15426|0@5@2&#,)! +3 S!242{5|@1|^#entries,5|@1|^#nspace,24|@1|11@3@3&#elements,}^15449 +0 s7587|& +1 t15447|15447& +0 a7588|& +3 f1 (15450|@7|&#,5|@3|&#,)! +3 f0 ()! +3 f15450 ()! +3 f0 (15450|$#,)! +3 f2 (15450|$#,)! +3 f0 (15450|$#,)! +3 f5 (15450|$#,)! +3 f0 (15450|$#,5|$#,)! +3 f2 (15450|$#,5|$#,)! +3 f0 (15450|$#,5|$#,)! +3 f2 (15450|$#,5|$#,)! +3 f0 (15450|$#,)! +3 f1117 (15450|$#,)! +3 f0 (15450|0@0@2&#,)! +3 f1 (15450|0@0@2&#,)! +3 f0 (15450|$#,)! +3 f1117 (15450|$#,)! +3 S!243{1117|@1|0@5@3&#file,975|@1|^#daccess,}! +0 s7598|& +0 s7599|-1 15474 -1 +3 e!244{CX_ERROR,CX_GLOBAL,CX_INNER,CX_FUNCTION,CX_FCNHEADER,CX_FCNDECLARATION,CX_MACROFCN,CX_MACROCONST,CX_UNKNOWNMACRO,CX_ITERDEF,CX_ITEREND,CX_LCL,CX_LCLLIB,CX_MT}! +0 s7614|& +0 s7615|& +1 t15470|15470& 2 F0/0|0& 2 F2/0|2& 2 F0/0|0& @@ -13579,35 +15490,35 @@ 2 F0/0|0& 2 F5/0|5& 2 F0/0|0& -2 F990/0|990& -3 U!91{2|@1|^#glob,5|@1|^#cdepth,955|@1|0@5@18@2@0#fcn,}! -0 s6967|& -3 S_context{5|@1|^#linesprocessed,5|@1|^#speclinesprocessed,7408|@1|0@0@3&#markers,2|@1|^#macroMissingParams,2|@1|^#preprocessing,2|@1|^#incommandline,2|@1|^#insuppressregion,2|@1|^#inDerivedFile,2|@1|^#instandardlib,2|@1|^#inimport,2|@1|^#inheader,2|@1|^#inmacrocache,2|@1|^#protectVars,2|@1|^#neednl,2|@1|^#showfunction,2|@1|^#savedFlags,2|@1|^#justpopped,2|@1|^#anyExports,1910|@1|^#library,1299|@1|^#isNullGuarded,978|@1|0@5@3&#saveloc,978|@1|0@5@3&#pushloc,7550|@1|0@0@3&#clauses,1826|@1|^#inclause,5|@1|^#numerrors,13515|@1|0@5@3&#locstack,7461|@1|0@5@3&#ftab,989|@1|0@5@3&#msgAnnote,952|@1|0@5@18@3@0#aliasAnnote,952|@1|0@5@18@3@0#aliasAnnoteAls,7535|@1|0@5@3&#msgLog,7432|@1|0@0@3&#mc,972|@1|0@5@18@3@0#mods,956|@1|^#facct,956|@1|^#acct,956|@1|^#nacct,4379|@1|0@5@18@3@0#globs,4379|@1|0@5@2&#globs_used,5|@1|^#nmods,5|@1|^#maxmods,13563|@1|11@0@3&#moduleaccess,13562|@1|^#kind,991|@1|^#boolType,13565|@1|^#flags,13567|@1|^#saveflags,13569|@1|^#setGlobally,13571|@1|^#setLocally,13573|@1|^#values,13575|@1|^#counters,13577|@1|^#strings,7346|@1|0@5@3&#modrecs,13578|@1|^#cont,}! -0 s6956|& -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! +2 F1118/0|1118& +3 U!245{2|@1|^#glob,5|@1|^#cdepth,974|@1|0@5@18@2@0#fcn,}! +0 s7616|& +3 S!246{5|@1|^#linesprocessed,5|@1|^#speclinesprocessed,8038|@1|0@0@3&#markers,2|@1|^#macroMissingParams,2|@1|^#preprocessing,2|@1|^#incommandline,2|@1|^#insuppressregion,2|@1|^#inDerivedFile,2|@1|^#instandardlib,2|@1|^#inimport,2|@1|^#inheader,2|@1|^#inmacrocache,2|@1|^#protectVars,2|@1|^#neednl,2|@1|^#showfunction,2|@1|^#savedFlags,2|@1|^#justpopped,2|@1|^#anyExports,1597|@1|^#library,1394|@1|^#isNullGuarded,1003|@1|0@5@3&#saveloc,1003|@1|0@5@3&#pushloc,8188|@1|0@0@3&#clauses,2062|@1|^#inclause,5|@1|^#numerrors,15426|@1|0@5@3&#locstack,8091|@1|0@5@3&#ftab,1117|@1|0@5@3&#msgAnnote,971|@1|0@5@18@3@0#aliasAnnote,971|@1|0@5@18@3@0#aliasAnnoteAls,8173|@1|0@5@3&#msgLog,8062|@1|0@0@3&#mc,994|@1|0@5@18@3@0#mods,975|@1|^#facct,975|@1|^#acct,975|@1|^#nacct,1106|@1|0@5@18@3@0#globs,1106|@1|0@5@2&#globs_used,5|@1|^#nmods,5|@1|^#maxmods,15474|@1|11@0@3&#moduleaccess,15473|@1|^#kind,15473|@1|^#savekind,1119|@1|^#boolType,15476|@1|^#flags,15478|@1|^#saveflags,15480|@1|^#setGlobally,15482|@1|^#setLocally,15484|@1|^#values,15486|@1|^#counters,15488|@1|^#strings,7976|@1|0@5@3&#modrecs,1020|@1|0@5@3&#stateTable,1021|@1|0@5@3&#annotTable,15489|@1|^#cont,}! +0 s7617|& +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (1910|$#,5|$#,)! -3 f1 (1910|$#,5|$#,)! -3 f0 (1910|$#,2|$#,)! -3 f1 (1910|$#,2|$#,)! -3 f0 (1910|$#,2|$#,2|$#,2|$#,)! -3 f1 (1910|$#,2|$#,2|$#,2|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! +3 f0 (1597|$#,5|$#,)! +3 f1 (1597|$#,5|$#,)! +3 f0 (1597|$#,2|$#,)! +3 f1 (1597|$#,2|$#,)! +3 f0 (1597|$#,2|$#,2|$#,2|$#,)! +3 f1 (1597|$#,2|$#,2|$#,2|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -13615,35 +15526,37 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! +3 f2 ()! +3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (1826|$#,)! -3 f1 (1826|$#,)! -3 f0 (7550|$#,)! -3 f1826 (7550|$#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (978|0@5@7&#,1910|$#,)! -3 f2 (978|0@5@7&#,1910|$#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! -3 f0 (1910|$#,978|0@5@7&#,)! -3 f2 (1910|$#,978|0@5@7&#,)! -3 f0 (1910|$#,978|0@5@7&#,)! -3 f2 (1910|$#,978|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f2 (978|0@5@7&#,)! +3 f0 (2062|$#,)! +3 f1 (2062|$#,)! +3 f0 (8188|$#,)! +3 f2062 (8188|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (1003|0@5@7&#,1597|$#,)! +3 f2 (1003|0@5@7&#,1597|$#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f2 (1597|$#,1003|0@5@7&#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f2 (1597|$#,1003|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f2 (1003|0@5@7&#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f1 ()! -3 f0 (1910|$#,1299|$#,)! -3 f1 (1910|$#,1299|$#,)! +3 f0 (1597|$#,1394|$#,)! +3 f1 (1597|$#,1394|$#,)! 3 f0 (5|$#,)! 3 f1 (5|$#,)! 3 f0 ()! @@ -13654,59 +15567,68 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@2&#,956|$#,)! -3 f1 (989|0@5@2&#,956|$#,)! -3 f0 (989|0@5@7&#,4256|$#,)! -3 f1 (989|0@5@7&#,4256|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (1117|0@5@2&#,975|$#,)! +3 f1 (1117|0@5@2&#,975|$#,)! +3 f0 (1117|0@5@7&#,4650|$#,)! +3 f1 (1117|0@5@7&#,4650|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (211|$#,)! +3 f1 (211|$#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f1910 ()! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! +3 f1597 ()! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! 3 f0 ()! -3 f19 ()! -3 f23 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! +3 f1117 ()! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 ()! +3 f975 ()! 3 f0 ()! -3 f956 ()! +3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (4650|$#,)! +3 f1 (4650|$#,)! +3 f0 (4650|$#,)! +3 f1 (4650|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (4256|$#,)! -3 f1 (4256|$#,)! -3 f0 (4256|$#,)! -3 f1 (4256|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! +3 f2 ()! +3 f0 (974|0@5@19@2@0#,)! +3 f1 (974|0@5@19@2@0#,)! +3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (955|0@5@19@3@0#,)! -3 f1 (955|0@5@19@3@0#,)! -3 f0 (955|0@5@18@3@0#,)! -3 f1 (955|0@5@18@3@0#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f1 (974|0@5@19@3@0#,)! +3 f0 (974|0@5@18@3@0#,)! +3 f1 (974|0@5@18@3@0#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -13714,47 +15636,47 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f1826 ()! +3 f2062 ()! 3 f0 ()! -3 f1826 ()! +3 f2062 ()! 3 f0 ()! 3 f2 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (1826|$#,)! -3 f1 (1826|$#,)! -3 f0 (966|0@5@7&#,1826|$#,)! -3 f1 (966|0@5@7&#,1826|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,2|$#,)! -3 f1 (966|0@5@7&#,2|$#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,1826|$#,)! -3 f1 (966|0@5@7&#,1826|$#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (955|0@5@18@2@0#,)! -3 f1 (955|0@5@18@2@0#,)! -3 f0 ()! -3 f955 ()! -3 f0 (978|0@5@7&#,)! -3 f1 (978|0@5@7&#,)! -3 f0 (955|0@5@19@2@0#,)! -3 f1 (955|0@5@19@2@0#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (2062|$#,)! +3 f1 (2062|$#,)! +3 f0 (988|0@5@7&#,2062|$#,)! +3 f1 (988|0@5@7&#,2062|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,2|$#,)! +3 f1 (988|0@5@7&#,2|$#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,2062|$#,)! +3 f1 (988|0@5@7&#,2062|$#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (974|0@5@18@2@0#,)! +3 f1 (974|0@5@18@2@0#,)! +3 f0 ()! +3 f974 ()! +3 f0 (1003|0@5@7&#,)! +3 f1 (1003|0@5@7&#,)! +3 f0 (974|0@5@19@2@0#,)! +3 f1 (974|0@5@19@2@0#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -13765,34 +15687,34 @@ 3 f2 ()! 3 f0 ()! 3 f2 ()! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f2 (955|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f2 (974|0@5@7&#,)! 3 f0 ()! 3 f2 ()! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (952|0@5@18&#,)! -3 f1 (952|0@5@18&#,)! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f1 (971|0@5@19@2@0#,)! 3 f0 ()! -3 f972 ()! -3 f0 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! +3 f994 ()! +3 f0 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! -3 f0 (4256|$#,)! -3 f2 (4256|$#,)! +3 f1117 ()! +3 f0 (4650|$#,)! +3 f2 (4650|$#,)! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -13801,106 +15723,108 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f4297 ()! +3 f1 ()! +3 f0 ()! +3 f4717 ()! 3 f0 ()! -3 f4379 ()! +3 f1106 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f4379 ()! +3 f1106 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! 3 f2 ()! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f989 ()! -3 f0 (952|0@5@18@3@0#,952|0@5@18@3@0#,)! -3 f1 (952|0@5@18@3@0#,952|0@5@18@3@0#,)! +3 f1117 ()! +3 f0 (971|0@5@19@3@0#,971|0@5@19@3@0#,)! +3 f1 (971|0@5@19@3@0#,971|0@5@19@3@0#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f989 ()! -3 f0 (972|0@5@18&#,)! -3 f1 (972|0@5@18&#,)! -3 f0 (4379|0@5@18&#,)! -3 f1 (4379|0@5@18&#,)! +3 f1117 ()! +3 f0 (994|0@5@18&#,)! +3 f1 (994|0@5@18&#,)! +3 f0 (1106|0@5@18&#,)! +3 f1 (1106|0@5@18&#,)! 3 f0 (4|$#,)! 3 f1 (4|$#,)! 3 f0 ()! 3 f4 ()! -3 f0 (1910|$#,5|$#,)! -3 f1 (1910|$#,5|$#,)! -3 f0 (1910|$#,5|$#,)! -3 f1 (1910|$#,5|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! +3 f0 (1597|$#,5|$#,)! +3 f1 (1597|$#,5|$#,)! +3 f0 (1597|$#,5|$#,)! +3 f1 (1597|$#,5|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! 3 f0 ()! 3 f2 ()! -3 f0 (1910|$#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! +3 f0 (1597|$#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f991 ()! +3 f1119 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -13934,35 +15858,37 @@ 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f978 ()! +3 f1003 ()! 3 f0 ()! -3 f989 ()! -3 f0 (1910|$#,2|$#,)! -3 f1 (1910|$#,2|$#,)! -3 f0 (1910|$#,1299|$#,)! -3 f1 (1910|$#,1299|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,2|$#,)! -3 f1 (1910|$#,2|$#,)! -3 f0 (1910|$#,2|$#,)! -3 f1 (1910|$#,2|$#,)! -3 f0 (1910|$#,2|$#,2|$#,2|$#,)! -3 f1 (1910|$#,2|$#,2|$#,2|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! +3 f1117 ()! +3 f0 (1597|$#,2|$#,)! +3 f1 (1597|$#,2|$#,)! +3 f0 (1597|$#,1394|$#,)! +3 f1 (1597|$#,1394|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,2|$#,)! +3 f1 (1597|$#,2|$#,)! +3 f0 (1597|$#,2|$#,)! +3 f1 (1597|$#,2|$#,)! +3 f0 (1597|$#,2|$#,2|$#,2|$#,)! +3 f1 (1597|$#,2|$#,2|$#,2|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,1003|0@5@7&#,)! +3 f2 (1597|$#,1003|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (1322|$#,5|$#,)! -3 f1 (1322|$#,5|$#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f1 (955|0@5@19@3@0#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f1 (955|0@5@19@3@0#,)! +3 f0 (1417|$#,5|$#,)! +3 f1 (1417|$#,5|$#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f1 (974|0@5@19@3@0#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f1 (974|0@5@19@3@0#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -14018,11 +15944,11 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f7461 ()! +3 f8091 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f7535 ()! +3 f8173 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -14036,9 +15962,9 @@ 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f2 ()! 3 f0 ()! @@ -14063,22 +15989,22 @@ 3 f1 ()! 3 f0 ()! 3 f2 ()! -3 f0 (1322|$#,)! -3 f1 (1322|$#,)! +3 f0 (1417|$#,)! +3 f1 (1417|$#,)! 3 f0 ()! 3 f2 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! -3 f989 ()! +3 f1117 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -14094,106 +16020,120 @@ 3 f0 ()! 3 f1 ()! 3 f0 ()! -3 f1 ()! -3 S!92{1914|@1|^#kind,23|@1|0@5@18@3@0#name,23|@1|0@5@18@3@0#describe,}! -0 s6832|& -0 s383|-1 -1 14096 -2 y14095|14095& -3 e!93{ARG_NONE,ARG_VALUE,ARG_STRING,ARG_SPECIAL}! -0 s7053|& -0 s363|& -3 S!94{1914|@1|^#main,1914|@1|^#sub,2|@1|^#isSpecial,2|@1|^#isIdem,2|@1|^#isGlobal,2|@1|^#isModeFlag,14099|@1|^#argtype,23|@1|0@0@18@3@0#flag,1910|@1|^#code,23|@1|0@5@18@3@0#desc,1068|@1|0@5@3@3@0#hint,5|@1|^#nreported,5|@1|^#nsuppressed,}! -0 s6947|& -0 s385|-1 -1 14103 -2 y14102|14102& -0 s364|& -3 f1 (14102|@3|6@0@19@3@0#,)! -2 y1068|1068& -3 f1 (1068|@3|6@5@19@3@0#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 ()! -3 f1852 ()! -3 f0 (1914|$#,)! -3 f989 (1914|$#,)! -3 f0 ()! -3 f989 ()! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,)! -3 f1 (1910|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (1914|$#,)! -3 f5 (1914|$#,)! -3 f0 (989|0@5@7&#,)! -3 f1914 (989|0@5@7&#,)! -3 f0 (1914|$#,)! -3 f989 (1914|$#,)! -3 f0 (1914|$#,)! -3 f5 (1914|$#,)! -3 f0 (1914|$#,)! -3 f1 (1914|$#,)! +3 f1020 ()! +3 f0 (1117|0@5@7&#,)! +3 f1024 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1012 (1117|0@5@7&#,)! +3 f0 (1012|0@5@2&#,)! +3 f1 (1012|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1024|0@5@2&#,)! +3 f1 (1117|0@5@2&#,1024|0@5@2&#,)! +3 f0 (971|0@5@7&#,)! +3 f1019 (971|0@5@7&#,)! +3 f0 ()! +3 f1019 ()! +3 f0 ()! +3 f1 ()! +3 S!247{1601|@1|^#kind,23|@1|0@5@18@3@0#name,23|@1|0@5@18@3@0#describe,}! +0 s7618|& +0 s7619|-1 -1 16036 +2 y16035|16035& +3 e!248{ARG_NONE,ARG_VALUE,ARG_STRING,ARG_SPECIAL}! +0 s7624|& +0 s7625|& +3 S!249{1601|@1|^#main,1601|@1|^#sub,2|@1|^#isSpecial,2|@1|^#isIdem,2|@1|^#isGlobal,2|@1|^#isModeFlag,16039|@1|^#argtype,23|@1|0@0@18@3@0#flag,1597|@1|^#code,23|@1|0@5@18@3@0#desc,1165|@1|0@5@3@3@0#hint,5|@1|^#nreported,5|@1|^#nsuppressed,}! +0 s7626|& +0 s7627|-1 -1 16043 +2 y16042|16042& +0 s7628|& +3 f1 (16042|@3|6@0@19@3@0#,)! +2 y1165|1165& +3 f1 (1165|@3|6@5@19@3@0#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 ()! +3 f2211 ()! +3 f0 (1601|$#,)! +3 f1117 (1601|$#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1 (1597|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (1601|$#,)! +3 f5 (1601|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1601 (1117|0@5@7&#,)! +3 f0 (1601|$#,)! +3 f1117 (1601|$#,)! +3 f0 (1601|$#,)! +3 f5 (1601|$#,)! +3 f0 (1601|$#,)! +3 f1 (1601|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 (2|$#,2|$#,)! 3 f1 (2|$#,2|$#,)! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (989|0@5@7&#,)! -3 f989 (989|0@5@7&#,)! -3 f0 ()! -3 f1852 ()! -3 f0 ()! -3 f1 ()! -3 f0 (1910|$#,)! -3 f989 (1910|$#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f1910 (989|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@7&#,)! -3 f1 (1910|$#,989|0@5@7&#,)! -3 f0 (1910|$#,989|0@5@2&#,)! -3 f1 (1910|$#,989|0@5@2&#,)! -3 f0 ()! -3 f989 ()! -3 f0 ()! -3 f989 ()! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 ()! +3 f2211 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1597|$#,)! +3 f1117 (1597|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1597 (1117|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@7&#,)! +3 f1 (1597|$#,1117|0@5@7&#,)! +3 f0 (1597|$#,1117|0@5@2&#,)! +3 f1 (1597|$#,1117|0@5@2&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 ()! +3 f1117 ()! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! 2 F0/0|0& -2 F1910/0|1910& -3 f0 (1910|$#,)! -3 f5 (1910|$#,)! +2 F1597/0|1597& +3 f0 (1597|$#,)! +3 f5 (1597|$#,)! 2 F0/0|0& -2 F1910/0|1910& -3 f0 (1910|$#,)! -3 f2 (1910|$#,)! +2 F1597/0|1597& +3 f0 (1597|$#,)! +3 f2 (1597|$#,)! 3 f0 (20|4@5@2&#,)! 3 f1 (20|4@5@2&#,)! 3 f0 (20|0@5@17&#,)! @@ -14214,45 +16154,15 @@ 3 f23 (5|$#,)! 2 F0/255|0& 2 F4/255|4& -3 f0 (23|$#,)! -3 f2 (23|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (23|0@0@6&#,23|$#,)! -3 f19 (23|0@0@6&#,23|$#,)! -3 f23 (23|0@0@6&#,23|$#,)! 3 f0 (23|$#,23|$#,)! 3 f2 (23|$#,23|$#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (23|0@0@2&#,)! -3 f19 (23|0@0@2&#,)! -3 f23 (23|0@0@2&#,)! 3 f0 (23|0@0@17&#,)! 3 f1 (23|0@0@17&#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (23|$#,23|$#,)! -3 f19 (23|$#,23|$#,)! -3 f23 (23|$#,23|$#,)! -3 f0 (312|$#,)! -3 f5 (312|$#,)! -3 f0 (312|$#,)! -3 f4 (312|$#,)! -3 f0 (312|$#,)! -3 f17 (312|$#,)! -3 f0 (312|$#,)! -3 f19 (312|$#,)! -3 f23 (312|$#,)! -3 f0 (312|$#,4|$#,)! -3 f2 (312|$#,4|$#,)! -3 f0 (312|$#,4|$#,23|$#,5|$#,)! -3 f1 (312|$#,4|$#,23|$#,5|$#,)! 3 f0 (5|$#,)! 3 f19 (5|$#,)! 3 f23 (5|$#,)! +3 f0 (23|$#,4|$#,)! +3 f2 (23|$#,4|$#,)! 3 f0 (23|$#,23|$#,)! 3 f19 (23|$#,23|$#,)! 3 f23 (23|$#,23|$#,)! @@ -14274,8 +16184,8 @@ 3 f0 (5|$#,)! 3 f19 (5|$#,)! 3 f23 (5|$#,)! -3 f0 (210|$#,23|$#,)! -3 f1 (210|$#,23|$#,)! +3 f0 (211|$#,23|$#,)! +3 f1 (211|$#,23|$#,)! 3 f0 (5|$#,)! 3 f5 (5|$#,)! 3 f0 (5|$#,)! @@ -14296,1155 +16206,1233 @@ 3 f2 (23|$#,23|$#,)! 3 f0 (23|0@5@7&#,23|0@5@7&#,)! 3 f2 (23|0@5@7&#,23|0@5@7&#,)! -3 f0 (23|@5|$#,)! -3 f19 (23|@5|$#,)! -3 f23 (23|@5|$#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (5|$#,210|$#,)! -3 f1 (5|$#,210|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (23|$#,755|4@0@7&#,)! -3 f5 (23|$#,755|4@0@7&#,)! +3 f0 (23|$#,756|4@0@7&#,)! +3 f5 (23|$#,756|4@0@7&#,)! 3 f0 (23|$#,)! 3 f2 (23|$#,)! -3 f0 (312|$#,312|4@0@7&#,8361|4@0@7&#,)! -3 f2 (312|$#,312|4@0@7&#,8361|4@0@7&#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! -3 f0 (23|$#,23|@5|$#,)! -3 f19 (23|$#,23|@5|$#,)! -3 f23 (23|$#,23|@5|$#,)! -3 f0 ()! -3 f19 ()! -3 f23 ()! -3 f0 (23|$#,312|4@0@7&#,)! -3 f8247 (23|$#,312|4@0@7&#,)! -3 f0 (23|$#,23|$#,312|4@0@7&#,)! -3 f8247 (23|$#,23|$#,312|4@0@7&#,)! +3 f0 (313|$#,313|4@0@7&#,10522|4@0@7&#,)! +3 f2 (313|$#,313|4@0@7&#,10522|4@0@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,1117|@5|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,1117|@5|0@5@7&#,)! +3 f0 ()! +3 f1117 ()! +3 f0 (1117|0@5@7&#,1287|4@0@7&#,)! +3 f10412 (1117|0@5@7&#,1287|4@0@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! +3 f10412 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! 2 F0/0|0& 2 F4/0|4& -3 f0 (23|$#,23|$#,312|4@0@7&#,)! -3 f8247 (23|$#,23|$#,312|4@0@7&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! +3 f10412 (1117|0@5@7&#,1117|0@5@7&#,1287|4@0@7&#,)! 2 F0/0|0& 2 F4/0|4& +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 (23|$#,)! 3 f2 (23|$#,)! -3 f0 (23|$#,)! -3 f2 (23|$#,)! -3 f0 (9859|$#,9859|4@0@7&#,8361|4@0@7&#,)! -3 f2 (9859|$#,9859|4@0@7&#,8361|4@0@7&#,)! -3 f0 (23|$#,)! -3 f19 (23|$#,)! -3 f23 (23|$#,)! +3 f0 (12100|$#,12100|4@0@7&#,10522|4@0@7&#,)! +3 f2 (12100|$#,12100|4@0@7&#,10522|4@0@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! 3 f0 (23|0@5@7&#,)! 3 f5 (23|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! 3 f0 (23|$#,)! 3 f5 (23|$#,)! -3 f0 (23|$#,)! -3 f5 (23|$#,)! -3 f0 (23|$#,)! -3 f5 (23|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f5 (1117|0@5@7&#,)! 3 f0 ()! 3 f5 ()! -3 f0 (23|$#,)! -3 f989 (23|$#,)! -3 f0 (23|$#,)! -3 f2 (23|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1117 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -3 f0 ()! -3 f7550 ()! -3 f0 (7550|$#,)! -3 f1 (7550|$#,)! -3 f0 (7550|$#,1826|$#,)! -3 f1 (7550|$#,1826|$#,)! -3 f0 (7550|$#,)! -3 f1 (7550|$#,)! -3 f0 (7550|$#,)! -3 f1826 (7550|$#,)! -3 f0 (7550|$#,1826|$#,)! -3 f1 (7550|$#,1826|$#,)! -3 f0 (7550|$#,1826|$#,)! -3 f1 (7550|$#,1826|$#,)! -3 f0 (7550|$#,)! -3 f5 (7550|$#,)! -3 f0 (7550|$#,)! -3 f989 (7550|$#,)! -3 f0 (7550|$#,)! -3 f1 (7550|$#,)! -3 f0 (7550|0@0@2&#,)! -3 f1 (7550|0@0@2&#,)! -3 f0 ()! -3 f13515 ()! -1 t978|978& -3 f0 ()! -3 f13515 ()! -3 f0 (13515|0@2@7&#,)! -3 f1 (13515|0@2@7&#,)! -3 f0 (13515|@5|0@5@7&#,978|0@5@4&#,)! -3 f1 (13515|@5|0@5@7&#,978|0@5@4&#,)! -3 f0 (13515|0@5@7&#,)! -3 f978 (13515|0@5@7&#,)! -3 f0 (13515|0@5@7&#,)! -3 f1 (13515|0@5@7&#,)! -3 f0 (13515|0@5@7&#,978|0@5@2&#,)! -3 f2 (13515|0@5@7&#,978|0@5@2&#,)! -3 f0 (13515|0@5@7&#,)! -3 f989 (13515|0@5@7&#,)! -3 f0 (13515|0@5@7&#,)! -3 f5 (13515|0@5@7&#,)! -3 f0 (13515|0@5@7&#,)! -3 f1 (13515|0@5@7&#,)! -3 f0 (13515|0@5@2&#,)! -3 f1 (13515|0@5@2&#,)! -3 f0 ()! -3 f1882 ()! -3 f0 ()! -3 f1882 ()! -3 f0 (1882|0@2@7&#,)! -3 f1 (1882|0@2@7&#,)! -3 f0 (989|0@5@4&#,)! -3 f1882 (989|0@5@4&#,)! -3 f0 (1882|@5|0@5@7&#,989|0@5@4&#,)! -3 f1882 (1882|@5|0@5@7&#,989|0@5@4&#,)! -3 f0 (1882|0@5@7&#,)! -3 f989 (1882|0@5@7&#,)! -3 f0 (1882|0@5@7&#,989|0@5@7&#,)! -3 f989 (1882|0@5@7&#,989|0@5@7&#,)! -3 f0 (1882|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f1 (1882|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f0 (1882|0@5@7&#,)! -3 f989 (1882|0@5@7&#,)! -3 f0 (1882|0@5@2&#,)! -3 f1 (1882|0@5@2&#,)! -3 f0 (1882|0@5@7&#,)! -3 f1 (1882|0@5@7&#,)! +3 f0 (313|$#,)! +3 f5 (313|$#,)! +3 f0 (313|$#,)! +3 f4 (313|$#,)! +3 f0 (313|$#,)! +3 f17 (313|$#,)! +3 f0 (313|$#,)! +3 f19 (313|$#,)! +3 f23 (313|$#,)! +3 f0 (313|$#,4|$#,)! +3 f1117 (313|$#,4|$#,)! +3 f0 (313|$#,23|$#,)! +3 f1117 (313|$#,23|$#,)! +3 f0 (313|$#,4|$#,)! +3 f2 (313|$#,4|$#,)! +3 f0 (313|$#,4|$#,23|$#,5|$#,)! +3 f1 (313|$#,4|$#,23|$#,5|$#,)! +3 f0 (5|$#,211|$#,)! +3 f1 (5|$#,211|$#,)! +3 f0 (211|$#,23|$#,5|$#,)! +3 f19 (211|$#,23|@5|$#,5|$#,)! +3 f23 (211|$#,23|@5|$#,5|$#,)! +3 f0 ()! +3 f8188 ()! +3 f0 (8188|$#,)! +3 f1 (8188|$#,)! +3 f0 (8188|$#,2062|$#,)! +3 f1 (8188|$#,2062|$#,)! +3 f0 (8188|$#,)! +3 f1 (8188|$#,)! +3 f0 (8188|$#,)! +3 f2062 (8188|$#,)! +3 f0 (8188|$#,2062|$#,)! +3 f1 (8188|$#,2062|$#,)! +3 f0 (8188|$#,2062|$#,)! +3 f1 (8188|$#,2062|$#,)! +3 f0 (8188|$#,)! +3 f5 (8188|$#,)! +3 f0 (8188|$#,)! +3 f1117 (8188|$#,)! +3 f0 (8188|$#,)! +3 f1 (8188|$#,)! +3 f0 (8188|0@0@2&#,)! +3 f1 (8188|0@0@2&#,)! +3 f0 ()! +3 f15426 ()! +1 t1003|1003& +3 f0 ()! +3 f15426 ()! +3 f0 (15426|0@2@7&#,)! +3 f1 (15426|0@2@7&#,)! +3 f0 (15426|@5|0@5@7&#,1003|0@5@4&#,)! +3 f1 (15426|@5|0@5@7&#,1003|0@5@4&#,)! +3 f0 (15426|0@5@7&#,)! +3 f1003 (15426|0@5@7&#,)! +3 f0 (15426|0@5@7&#,)! +3 f1 (15426|0@5@7&#,)! +3 f0 (15426|0@5@7&#,1003|0@5@2&#,)! +3 f2 (15426|0@5@7&#,1003|0@5@2&#,)! +3 f0 (15426|0@5@7&#,)! +3 f1117 (15426|0@5@7&#,)! +3 f0 (15426|0@5@7&#,)! +3 f5 (15426|0@5@7&#,)! +3 f0 (15426|0@5@7&#,)! +3 f1 (15426|0@5@7&#,)! +3 f0 (15426|0@5@2&#,)! +3 f1 (15426|0@5@2&#,)! +3 f0 ()! +3 f2243 ()! +3 f0 ()! +3 f2243 ()! +3 f0 (5|$#,)! +3 f2243 (5|$#,)! +3 f0 (2243|0@2@7&#,)! +3 f1 (2243|0@2@7&#,)! +3 f0 (1117|0@5@4&#,)! +3 f2243 (1117|0@5@4&#,)! +3 f0 (2243|@5|0@5@7&#,1117|0@5@4&#,)! +3 f2243 (2243|@5|0@5@7&#,1117|0@5@4&#,)! +3 f0 (2243|@5|0@5@2&#,1117|0@5@4&#,)! +3 f2243 (2243|@5|0@5@2&#,1117|0@5@4&#,)! +3 f0 (2243|0@5@7&#,)! +3 f1117 (2243|0@5@7&#,)! +3 f0 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f0 (2243|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f1 (2243|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f0 (2243|0@5@7&#,)! +3 f1117 (2243|0@5@7&#,)! +3 f0 (2243|0@5@2&#,)! +3 f1 (2243|0@5@2&#,)! +3 f0 (2243|0@5@7&#,)! +3 f1 (2243|0@5@7&#,)! 3 ?! -3 f14421 (20|1684300127@0@17&#,20|17@1@0@25@0#,)! -3 f5 (20|1684300127@0@17&#,20|17@1@0@25@0#,)^14424 -1 t14423|14423& -3 f0 ()! -3 f1852 ()! -3 f0 ()! -3 f1852 ()! -3 f0 (1852|0@2@7&#,)! -3 f1 (1852|0@2@7&#,)! -3 f0 (989|0@5@19@2@0#,)! -3 f1852 (989|0@5@19@2@0#,)! -3 f0 (1852|@5|0@5@7&#,989|0@5@19@2@0#,)! -3 f1852 (1852|@5|0@5@7&#,989|0@5@19@2@0#,)! -3 f0 (1852|0@5@7&#,)! -3 f989 (1852|0@5@7&#,)! -3 f0 (1852|0@5@7&#,989|0@5@7&#,)! -3 f989 (1852|0@5@7&#,989|0@5@7&#,)! -3 f0 (1852|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f1 (1852|0@5@7&#,5|$#,5|$#,5|$#,)! -3 f0 (1852|0@5@7&#,)! -3 f989 (1852|0@5@7&#,)! -3 f0 (1852|0@5@2&#,)! -3 f1 (1852|0@5@2&#,)! -3 f0 (1852|0@5@7&#,)! -3 f1 (1852|0@5@7&#,)! +3 f16343 (20|$#,20|$#,)! +3 f5 (20|$#,20|$#,)^16346 +1 t16345|16345& +3 f0 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f5 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f0 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f2 (2243|0@5@7&#,1117|0@5@7&#,)! +3 f0 (2243|0@5@7&#,)! +3 f2243 (2243|0@5@7&#,)! +3 f0 (2243|0@5@7&#,5|$#,)! +3 f1117 (2243|0@5@7&#,5|$#,)! +3 f0 ()! +3 f2211 ()! +3 f0 ()! +3 f2211 ()! +3 f0 (2211|0@2@7&#,)! +3 f1 (2211|0@2@7&#,)! +3 f0 (1117|0@5@19@2@0#,)! +3 f2211 (1117|0@5@19@2@0#,)! +3 f0 (2211|@5|0@5@7&#,1117|0@5@19@2@0#,)! +3 f2211 (2211|@5|0@5@7&#,1117|0@5@19@2@0#,)! +3 f0 (2211|0@5@7&#,5|$#,)! +3 f1117 (2211|0@5@7&#,5|$#,)! +3 f0 (2211|0@5@7&#,)! +3 f1117 (2211|0@5@7&#,)! +3 f0 (2211|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (2211|0@5@7&#,1117|0@5@7&#,)! +3 f0 (2211|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f1 (2211|0@5@7&#,5|$#,5|$#,5|$#,)! +3 f0 (2211|0@5@7&#,)! +3 f1117 (2211|0@5@7&#,)! +3 f0 (2211|0@5@2&#,)! +3 f1 (2211|0@5@2&#,)! +3 f0 (2211|0@5@7&#,)! +3 f1 (2211|0@5@7&#,)! 3 ?! -3 f14447 (20|0@2@7&#,20|25@175266528@0&#,)! -3 f5 (20|0@2@7&#,20|25@175266528@0&#,)^14450 -1 t14449|14449& -3 f0 ()! -3 f7346 ()! -3 f0 (7346|0@2@7&#,)! -3 f1 (7346|0@2@7&#,)! -3 f0 (7346|@5|0@5@7&#,972|0@5@18@2@0#,)! -3 f7346 (7346|@5|0@5@7&#,972|0@5@18@2@0#,)! -3 f0 (7346|0@5@7&#,)! -3 f1 (7346|0@5@7&#,)! -3 f0 (7346|0@5@2&#,)! -3 f1 (7346|0@5@2&#,)! -3 f0 ()! -3 f4419 ()! -3 f0 (4419|0@2@7&#,)! -3 f1 (4419|0@2@7&#,)! -3 f0 (4419|0@5@7&#,991|$#,)! -3 f1 (4419|0@5@7&#,991|$#,)! -3 f0 (4419|0@5@7&#,)! -3 f989 (4419|0@5@7&#,)! -3 f0 (4419|0@5@2&#,)! -3 f1 (4419|0@5@2&#,)! -3 f0 ()! -3 f3942 ()! -1 t3934|3934& -3 f0 (3934|0@5@4&#,)! -3 f3942 (3934|0@5@4&#,)! -3 f0 (3942|$#,3942|$#,)! -3 f2 (3942|$#,3942|$#,)! -3 f0 (3942|$#,)! -3 f1 (3942|$#,)! -3 f0 (3942|$#,3934|0@5@4&#,)! -3 f1 (3942|$#,3934|0@5@4&#,)! -3 f0 (3942|@5|$#,3934|0@5@2&#,)! -3 f3942 (3942|@5|$#,3934|0@5@2&#,)! -3 f0 (3942|$#,)! -3 f3942 (3942|$#,)! -3 f0 (3942|$#,989|0@5@7&#,)! -3 f2 (3942|$#,989|0@5@7&#,)! -3 f0 (3942|$#,3942|$#,)! -3 f3942 (3942|$#,3942|$#,)! -3 f0 (3942|$#,)! -3 f989 (3942|$#,)! -3 f0 (3942|$#,)! -3 f989 (3942|$#,)! -3 f0 (3942|$#,)! -3 f989 (3942|$#,)! -3 f0 (9859|$#,)! -3 f3942 (9859|$#,)! -3 f0 (3942|0@0@2&#,)! -3 f1 (3942|0@0@2&#,)! -3 f0 (3972|0@0@2&#,)! -3 f1 (3972|0@0@2&#,)! -3 f0 ()! -3 f3819 ()! -1 t966|966& -3 f0 (3819|$#,)! -3 f1 (3819|$#,)! -3 f0 (3819|$#,966|0@5@2&#,)! -3 f1 (3819|$#,966|0@5@2&#,)! -3 f0 (3819|$#,)! -3 f1 (3819|$#,)! -3 f0 (3819|$#,)! -3 f1 (3819|$#,)! -3 f0 (3819|$#,)! -3 f966 (3819|$#,)! -3 f0 (3819|$#,)! -3 f966 (3819|$#,)! -3 f0 (3819|$#,5|$#,)! -3 f966 (3819|$#,5|$#,)! -3 f0 (966|0@5@2&#,)! -3 f3819 (966|0@5@2&#,)! -3 f0 (3819|@5|$#,966|0@5@2&#,)! -3 f3819 (3819|@5|$#,966|0@5@2&#,)! -3 f0 (3819|$#,5|$#,)! -3 f966 (3819|$#,5|$#,)! -3 f0 (3819|$#,)! -3 f989 (3819|$#,)! -3 f0 (3819|0@0@2&#,)! -3 f1 (3819|0@0@2&#,)! -3 f0 (3819|0@0@2&#,)! -3 f1 (3819|0@0@2&#,)! -3 f0 ()! -3 f10834 ()! -3 f0 (10834|$#,)! -3 f1 (10834|$#,)! -3 f0 (10834|$#,966|0@5@18@2@0#,)! -3 f1 (10834|$#,966|0@5@18@2@0#,)! -3 f0 (10834|@5|$#,10834|0@0@2&#,)! -3 f10834 (10834|@5|$#,10834|0@0@2&#,)! -3 f0 (966|0@5@18@2@0#,)! -3 f10834 (966|0@5@18@2@0#,)! -3 f0 (10834|$#,)! -3 f989 (10834|$#,)! -3 f0 (10834|0@0@2&#,)! -3 f1 (10834|0@0@2&#,)! -3 f0 ()! -3 f4297 ()! -3 f0 (955|0@5@4&#,)! -3 f4297 (955|0@5@4&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|@5|0@5@7&#,955|0@5@4&#,)! -3 f4297 (4297|@5|0@5@7&#,955|0@5@4&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,2|$#,2|$#,)! -3 f2 (4297|0@5@7&#,4297|0@5@7&#,2|$#,2|$#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,989|0@5@7&#,)! -3 f5 (4297|0@5@7&#,989|0@5@7&#,)! -3 f0 (4297|0@5@7&#,989|0@5@7&#,)! -3 f5 (4297|0@5@7&#,989|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f4297 (4297|0@5@7&#,)! -3 f0 (4297|0@5@2&#,)! -3 f1 (4297|0@5@2&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,5|$#,)! -3 f955 (4297|0@5@7&#,5|$#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f955 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f989 (4297|0@5@7&#,)! -3 f0 (312|$#,978|0@5@7&#,)! -3 f4297 (312|$#,978|0@5@7&#,)! -3 f0 (312|$#,)! -3 f4297 (312|$#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f5 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,989|0@5@7&#,)! -3 f955 (4297|0@5@7&#,989|0@5@7&#,)! -3 f0 (4297|0@5@2&#,4297|0@5@2&#,)! -3 f4297 (4297|0@5@2&#,4297|0@5@2&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f1 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f2 (4297|0@5@7&#,4297|0@5@7&#,)! -3 f0 ()! -3 f3906 ()! -3 f0 ()! -3 f3906 ()! -3 f0 (3906|0@2@7&#,)! -3 f1 (3906|0@2@7&#,)! -3 f0 (3906|@5|0@5@7&#,3906|0@5@2&#,)! -3 f3906 (3906|@5|0@5@7&#,3906|0@5@2&#,)! -3 f0 (3906|@5|0@5@7&#,)! -3 f3906 (3906|@5|0@5@7&#,)! -3 f0 (3906|0@5@7&#,)! -3 f2 (3906|0@5@7&#,)! -3 f0 (3906|@5|0@5@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f3906 (3906|@5|0@5@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f0 (3906|@5|0@5@7&#,978|0@5@2&#,)! -3 f3906 (3906|@5|0@5@7&#,978|0@5@2&#,)! -3 f0 (3906|0@5@7&#,)! -3 f989 (3906|0@5@7&#,)! -3 f0 (3906|0@5@7&#,)! -3 f5 (3906|0@5@7&#,)! -3 f0 (3906|0@5@7&#,)! -3 f989 (3906|0@5@7&#,)! -3 f0 (3906|0@5@2&#,)! -3 f1 (3906|0@5@2&#,)! -3 f0 ()! -3 f2156 ()! -3 f0 ()! -3 f2156 ()! -3 f0 (2156|0@5@7&#,)! -3 f1 (2156|0@5@7&#,)! -3 f0 (2156|0@2@7&#,)! -3 f1 (2156|0@2@7&#,)! -3 f0 (2156|@5|0@5@7&#,1500|$#,)! -3 f2156 (2156|@5|0@5@7&#,1500|$#,)! -3 f0 (2156|@5|0@5@7&#,2156|0@5@7&#,)! -3 f2156 (2156|@5|0@5@7&#,2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2156 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f989 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f989 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -3 f0 (2156|0@5@2&#,)! -3 f1 (2156|0@5@2&#,)! -3 f0 (2156|0@5@7&#,)! -3 f2 (2156|0@5@7&#,)! -3 f0 ()! -3 f7408 ()! -1 t7366|7366& -3 f0 (7408|$#,)! -3 f1 (7408|$#,)! -3 f0 (7408|$#,7366|0@0@2&#,)! -3 f1 (7408|$#,7366|0@0@2&#,)! -3 f0 (7408|$#,)! -3 f1 (7408|$#,)! -3 f0 (7408|$#,5|$#,7366|0@0@4&#,)! -3 f1 (7408|$#,5|$#,7366|0@0@4&#,)! -3 f0 (7408|$#,)! -3 f989 (7408|$#,)! -3 f0 (7408|0@0@2&#,)! -3 f1 (7408|0@0@2&#,)! -3 f0 (7408|$#,978|0@5@7&#,)! -3 f5 (7408|$#,978|0@5@7&#,)! -3 f0 (7408|$#,1910|$#,978|0@5@7&#,)! -3 f1299 (7408|$#,1910|$#,978|0@5@7&#,)! -3 f0 (7408|$#,978|0@5@7&#,)! -3 f2 (7408|$#,978|0@5@7&#,)! -3 f0 (960|0@5@2&#,)! -3 f7191 (960|0@5@2&#,)! -1 t960|960& -3 f0 (7191|$#,)! -3 f1 (7191|$#,)! -3 f0 (7191|@5|$#,960|0@5@2&#,)! -3 f7191 (7191|@5|$#,960|0@5@2&#,)! -3 f0 (7191|$#,)! -3 f989 (7191|$#,)! -3 f0 (7191|0@0@2&#,)! -3 f1 (7191|0@0@2&#,)! -3 f0 ()! -3 f4379 ()! -3 f0 (4379|0@5@7&#,)! -3 f1 (4379|0@5@7&#,)! -3 f0 (4379|@5|0@5@7&#,952|0@5@18&#,)! -3 f4379 (4379|@5|0@5@7&#,952|0@5@18&#,)! -3 f0 (4379|@5|0@5@7&#,4379|0@5@19@2@0#,)! -3 f4379 (4379|@5|0@5@7&#,4379|0@5@19@2@0#,)! -3 f0 (4379|0@5@7&#,)! -3 f4379 (4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,952|0@5@18&#,)! -3 f2 (4379|0@5@7&#,952|0@5@18&#,)! -3 f0 (4379|0@5@7&#,952|0@5@18&#,)! -3 f952 (4379|0@5@7&#,952|0@5@18&#,)! -3 f0 (4379|0@5@7&#,)! -3 f2 (4379|0@5@7&#,)! -3 f0 (4379|0@5@2&#,)! -3 f1 (4379|0@5@2&#,)! -3 f0 (4379|0@5@7&#,)! -3 f989 (4379|0@5@7&#,)! -3 f0 (312|$#,)! -3 f4379 (312|$#,)! -3 f0 (4379|0@5@7&#,)! -3 f989 (4379|0@5@7&#,)! -3 f0 (4379|0@5@7&#,4379|0@5@7&#,)! -3 f5 (4379|0@5@7&#,4379|0@5@7&#,)! -3 f0 ()! -3 f13539 ()! -3 f0 (13539|$#,)! -3 f1 (13539|$#,)! -3 f0 (13539|$#,5|$#,)! -3 f2 (13539|$#,5|$#,)! -3 f0 (13539|$#,5|$#,)! -3 f2 (13539|$#,5|$#,)! -3 f0 (13539|$#,)! -3 f989 (13539|$#,)! -3 f0 (13539|$#,)! -3 f989 (13539|$#,)! -3 f0 (13539|0@0@2&#,)! -3 f1 (13539|0@0@2&#,)! -0 s255|-1 14740 -1 -1 t14739|14739& -3 f0 (4263|0@5@2&#,)! -3 f1 (4263|0@5@2&#,)! -3 f0 ()! -3 f1 ()! -1 t4263|4263& -3 f0 ()! -3 f1 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (210|$#,)! -3 f1 (210|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (4263|0@5@2&#,)! -3 f1 (4263|0@5@2&#,)! -3 f0 (4263|0@5@2&#,)! -3 f5 (4263|0@5@2&#,)! -3 f0 (956|$#,)! -3 f4263 (956|$#,)! -3 f0 ()! -3 f956 ()! -3 f0 (956|$#,4256|$#,)! -3 f2 (956|$#,4256|$#,)! -3 f0 (956|@7|$#,)! -3 f2 (956|@7|$#,)! -3 f0 (4256|$#,)! -3 f956 (4256|$#,)! -3 f0 (4256|$#,)! -3 f956 (4256|$#,)! -3 f0 (956|$#,4256|$#,)! -3 f956 (956|$#,4256|$#,)! -3 f0 (956|$#,4256|$#,)! -3 f956 (956|$#,4256|$#,)! -3 f0 (956|$#,)! -3 f989 (956|$#,)! -3 f0 (956|$#,956|$#,)! -3 f5 (956|$#,956|$#,)! -3 f0 (956|$#,956|$#,)! -3 f956 (956|$#,956|$#,)! -3 f0 (956|$#,)! -3 f989 (956|$#,)! -3 f0 (312|$#,)! -3 f956 (312|$#,)! -3 f0 (956|$#,956|$#,)! -3 f956 (956|$#,956|$#,)! -3 f0 ()! -3 f969 ()! -3 f0 ()! -3 f969 ()! -3 f0 (969|0@5@7&#,)! -3 f972 (969|0@5@7&#,)! -3 f0 (969|0@5@7&#,952|0@5@18&#,)! -3 f1 (969|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|0@5@7&#,)! -3 f972 (969|0@5@7&#,)! -3 f0 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f969 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f0 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f969 (969|@5|0@5@9&#,969|0@5@7&#,)! -3 f0 (969|0@5@2&#,969|0@5@7&#,)! -3 f969 (969|0@5@2&#,969|0@5@7&#,)! -3 f0 (969|0@5@2&#,969|0@5@7&#,5|$#,)! -3 f969 (969|0@5@2&#,969|0@5@7&#,5|$#,)! -3 f0 (969|@5|0@5@9&#,969|0@5@2&#,5|$#,)! -3 f969 (969|@5|0@5@9&#,969|0@5@2&#,5|$#,)! -3 f0 (969|0@5@7&#,)! -3 f1 (969|0@5@7&#,)! -3 f0 (969|0@5@6&#,)! -3 f969 (969|0@5@6&#,)! -3 f0 (969|0@5@6&#,)! -3 f969 (969|0@5@6&#,)! -3 f0 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f969 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f969 (969|@5|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|0@5@7&#,)! -3 f989 (969|0@5@7&#,)! -3 f0 (969|0@5@2&#,)! -3 f1 (969|0@5@2&#,)! -3 f0 (969|0@5@7&#,952|0@5@18&#,)! -3 f2 (969|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|0@5@7&#,952|0@5@18&#,)! -3 f2 (969|0@5@7&#,952|0@5@18&#,)! -3 f0 (969|0@5@7&#,)! -3 f2 (969|0@5@7&#,)! -3 f0 ()! -3 f4263 ()! -3 f0 ()! -3 f4263 ()! -3 f0 (4263|0@2@7&#,)! -3 f1 (4263|0@2@7&#,)! -3 f0 (4255|$#,)! -3 f4263 (4255|$#,)! -3 f0 (4263|@5|0@5@7&#,4255|$#,)! -3 f4263 (4263|@5|0@5@7&#,4255|$#,)! -3 f0 (4263|0@2@7&#,)! -3 f4263 (4263|0@2@7&#,)! -3 f0 (4263|0@5@7&#,4255|$#,)! -3 f4263 (4263|0@5@7&#,4255|$#,)! -3 f0 (4263|0@5@6&#,4255|$#,)! -3 f4263 (4263|0@5@6&#,4255|$#,)! -3 f0 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f4263 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f0 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f4263 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f0 (4263|0@5@7&#,4255|$#,)! -3 f2 (4263|0@5@7&#,4255|$#,)! -3 f0 (4263|0@5@2&#,)! -3 f1 (4263|0@5@2&#,)! -3 f0 (4263|0@5@7&#,)! -3 f989 (4263|0@5@7&#,)! -3 f0 (312|$#,)! -3 f4263 (312|$#,)! -3 f0 (4263|0@5@7&#,)! -3 f989 (4263|0@5@7&#,)! -3 f0 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f5 (4263|0@5@7&#,4263|0@5@7&#,)! -3 f0 ()! -3 f972 ()! -3 f0 ()! -3 f972 ()! -3 f0 (952|0@5@18@2@0#,)! -3 f972 (952|0@5@18@2@0#,)! -3 f0 (972|0@2@7&#,)! -3 f1 (972|0@2@7&#,)! -3 f0 (972|@5|0@5@7&#,952|0@5@18@2@0#,)! -3 f972 (972|@5|0@5@7&#,952|0@5@18@2@0#,)! -3 f0 (972|0@5@7&#,)! -3 f1 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f1 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,)! -3 f952 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f952 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@2&#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@2&#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@7&#,952|0@5@18&#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f972 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f972 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@7&#,5|$#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@7&#,5|$#,)! -3 f0 (972|0@5@7&#,5|$#,)! -3 f1 (972|0@5@7&#,5|$#,)! -3 f0 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f972 (972|@5|0@5@7&#,972|0@5@19@2@0#,)! -3 f0 (972|0@5@6@2@0#,)! -3 f972 (972|0@5@6@2@0#,)! -3 f0 (972|0@5@19@2@0#,5|$#,)! -3 f972 (972|0@5@19@2@0#,5|$#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! +3 f16379 (20|$#,20|$#,)! +3 f5 (20|$#,20|$#,)^16382 +1 t16381|16381& +3 f0 ()! +3 f7976 ()! +3 f0 (7976|0@2@7&#,)! +3 f1 (7976|0@2@7&#,)! +3 f0 (7976|@5|0@5@7&#,994|0@5@18@2@0#,)! +3 f7976 (7976|@5|0@5@7&#,994|0@5@18@2@0#,)! +3 f0 (7976|0@5@7&#,)! +3 f1 (7976|0@5@7&#,)! +3 f0 (7976|0@5@2&#,)! +3 f1 (7976|0@5@2&#,)! +3 f0 ()! +3 f4842 ()! +3 f0 (4842|0@2@7&#,)! +3 f1 (4842|0@2@7&#,)! +3 f0 (4842|0@5@7&#,1119|$#,)! +3 f1 (4842|0@5@7&#,1119|$#,)! +3 f0 (4842|0@5@2&#,1119|$#,)! +3 f4842 (4842|0@5@2&#,1119|$#,)! +3 f0 (4842|@5|0@5@2&#,4842|0@5@7&#,)! +3 f4842 (4842|@5|0@5@2&#,4842|0@5@7&#,)! +3 f0 (4842|0@5@7&#,)! +3 f1117 (4842|0@5@7&#,)! +3 f0 (4842|0@5@2&#,)! +3 f1 (4842|0@5@2&#,)! +3 f0 ()! +3 f4327 ()! +1 t4319|4319& +3 f0 (4319|0@5@4&#,)! +3 f4327 (4319|0@5@4&#,)! +3 f0 (4327|$#,4327|$#,)! +3 f2 (4327|$#,4327|$#,)! +3 f0 (4327|$#,)! +3 f1 (4327|$#,)! +3 f0 (4327|$#,4319|0@5@4&#,)! +3 f1 (4327|$#,4319|0@5@4&#,)! +3 f0 (4327|@5|$#,4319|0@5@2&#,)! +3 f4327 (4327|@5|$#,4319|0@5@2&#,)! +3 f0 (4327|$#,)! +3 f4327 (4327|$#,)! +3 f0 (4327|$#,1117|0@5@7&#,)! +3 f2 (4327|$#,1117|0@5@7&#,)! +3 f0 (4327|$#,4327|$#,)! +3 f4327 (4327|$#,4327|$#,)! +3 f0 (4327|$#,)! +3 f1117 (4327|$#,)! +3 f0 (4327|$#,)! +3 f1117 (4327|$#,)! +3 f0 (4327|$#,)! +3 f1117 (4327|$#,)! +3 f0 (12100|$#,)! +3 f4327 (12100|$#,)! +3 f0 (4327|0@0@2&#,)! +3 f1 (4327|0@0@2&#,)! +3 f0 (4357|0@0@2&#,)! +3 f1 (4357|0@0@2&#,)! +3 f0 ()! +3 f4160 ()! +1 t988|988& +3 f0 (4160|$#,)! +3 f1 (4160|$#,)! +3 f0 (4160|$#,988|0@5@2&#,)! +3 f1 (4160|$#,988|0@5@2&#,)! +3 f0 (4160|$#,)! +3 f1 (4160|$#,)! +3 f0 (4160|$#,)! +3 f1 (4160|$#,)! +3 f0 (4160|$#,)! +3 f988 (4160|$#,)! +3 f0 (4160|$#,)! +3 f988 (4160|$#,)! +3 f0 (4160|$#,5|$#,)! +3 f988 (4160|$#,5|$#,)! +3 f0 (988|0@5@2&#,)! +3 f4160 (988|0@5@2&#,)! +3 f0 (4160|@5|$#,988|0@5@2&#,)! +3 f4160 (4160|@5|$#,988|0@5@2&#,)! +3 f0 (4160|$#,5|$#,)! +3 f988 (4160|$#,5|$#,)! +3 f0 (4160|$#,)! +3 f1117 (4160|$#,)! +3 f0 (4160|0@0@2&#,)! +3 f1 (4160|0@0@2&#,)! +3 f0 (4160|0@0@2&#,)! +3 f1 (4160|0@0@2&#,)! +3 f0 ()! +3 f9586 ()! +3 f0 (9586|$#,)! +3 f1 (9586|$#,)! +3 f0 (9586|$#,988|0@5@18@2@0#,)! +3 f1 (9586|$#,988|0@5@18@2@0#,)! +3 f0 (9586|@5|$#,9586|0@0@2&#,)! +3 f9586 (9586|@5|$#,9586|0@0@2&#,)! +3 f0 (988|0@5@18@2@0#,)! +3 f9586 (988|0@5@18@2@0#,)! +3 f0 (9586|$#,)! +3 f1117 (9586|$#,)! +3 f0 (9586|0@0@2&#,)! +3 f1 (9586|0@0@2&#,)! +3 f0 ()! +3 f4717 ()! +3 f0 (974|0@5@4&#,)! +3 f4717 (974|0@5@4&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|@5|0@5@7&#,974|0@5@4&#,)! +3 f4717 (4717|@5|0@5@7&#,974|0@5@4&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,2|$#,2|$#,)! +3 f2 (4717|0@5@7&#,4717|0@5@7&#,2|$#,2|$#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f5 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f5 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f4717 (4717|0@5@7&#,)! +3 f0 (4717|0@5@2&#,)! +3 f1 (4717|0@5@2&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,5|$#,)! +3 f974 (4717|0@5@7&#,5|$#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f974 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1117 (4717|0@5@7&#,)! +3 f0 (313|$#,1003|0@5@7&#,)! +3 f4717 (313|$#,1003|0@5@7&#,)! +3 f0 (313|$#,)! +3 f4717 (313|$#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f5 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f974 (4717|0@5@7&#,1117|0@5@7&#,)! +3 f0 (4717|0@5@2&#,4717|0@5@2&#,)! +3 f4717 (4717|0@5@2&#,4717|0@5@2&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f1 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f2 (4717|0@5@7&#,4717|0@5@7&#,)! +3 f0 ()! +3 f4291 ()! +3 f0 ()! +3 f4291 ()! +3 f0 (4291|0@2@7&#,)! +3 f1 (4291|0@2@7&#,)! +3 f0 (4291|@5|0@5@7&#,4291|0@5@2&#,)! +3 f4291 (4291|@5|0@5@7&#,4291|0@5@2&#,)! +3 f0 (4291|@5|0@5@7&#,)! +3 f4291 (4291|@5|0@5@7&#,)! +3 f0 (4291|0@5@7&#,)! +3 f2 (4291|0@5@7&#,)! +3 f0 (4291|@5|0@5@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f4291 (4291|@5|0@5@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (4291|@5|0@5@7&#,1003|0@5@2&#,)! +3 f4291 (4291|@5|0@5@7&#,1003|0@5@2&#,)! +3 f0 (4291|0@5@7&#,)! +3 f1117 (4291|0@5@7&#,)! +3 f0 (4291|0@5@7&#,)! +3 f5 (4291|0@5@7&#,)! +3 f0 (4291|0@5@7&#,)! +3 f1117 (4291|0@5@7&#,)! +3 f0 (4291|0@5@2&#,)! +3 f1 (4291|0@5@2&#,)! +3 f0 ()! +3 f2511 ()! +3 f0 ()! +3 f2511 ()! +3 f0 (2511|0@5@7&#,)! +3 f1 (2511|0@5@7&#,)! +3 f0 (2511|0@2@7&#,)! +3 f1 (2511|0@2@7&#,)! +3 f0 (2511|@5|0@5@7&#,1706|$#,)! +3 f2511 (2511|@5|0@5@7&#,1706|$#,)! +3 f0 (2511|@5|0@5@7&#,2511|0@5@7&#,)! +3 f2511 (2511|@5|0@5@7&#,2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2511 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f1117 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f1117 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f0 (2511|0@5@2&#,)! +3 f1 (2511|0@5@2&#,)! +3 f0 (2511|0@5@7&#,)! +3 f2 (2511|0@5@7&#,)! +3 f0 ()! +3 f997 ()! +3 f0 ()! +3 f997 ()! +3 f0 (971|0@5@18&#,)! +3 f997 (971|0@5@18&#,)! +3 f0 (997|0@2@7&#,)! +3 f1 (997|0@2@7&#,)! +3 f0 (997|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f997 (997|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (997|0@5@7&#,)! +3 f997 (997|0@5@7&#,)! +3 f0 (997|0@5@7&#,)! +3 f1117 (997|0@5@7&#,)! +3 f0 (997|0@5@7&#,)! +3 f5 (997|0@5@7&#,)! +3 f0 (997|0@5@2&#,)! +3 f1 (997|0@5@2&#,)! +3 f0 ()! +3 f8038 ()! +1 t7996|7996& +3 f0 (8038|$#,)! +3 f1 (8038|$#,)! +3 f0 (8038|$#,7996|0@0@2&#,)! +3 f1 (8038|$#,7996|0@0@2&#,)! +3 f0 (8038|$#,)! +3 f1 (8038|$#,)! +3 f0 (8038|$#,5|$#,7996|0@0@4&#,)! +3 f1 (8038|$#,5|$#,7996|0@0@4&#,)! +3 f0 (8038|$#,)! +3 f1117 (8038|$#,)! +3 f0 (8038|0@0@2&#,)! +3 f1 (8038|0@0@2&#,)! +3 f0 (8038|$#,1003|0@5@7&#,)! +3 f5 (8038|$#,1003|0@5@7&#,)! +3 f0 (8038|$#,1597|$#,1003|0@5@7&#,)! +3 f1394 (8038|$#,1597|$#,1003|0@5@7&#,)! +3 f0 (8038|$#,1003|0@5@7&#,)! +3 f2 (8038|$#,1003|0@5@7&#,)! +3 f0 (982|0@5@2&#,)! +3 f7823 (982|0@5@2&#,)! +1 t982|982& +3 f0 (7823|$#,)! +3 f1 (7823|$#,)! +3 f0 (7823|@5|$#,982|0@5@2&#,)! +3 f7823 (7823|@5|$#,982|0@5@2&#,)! +3 f0 (7823|$#,)! +3 f1117 (7823|$#,)! +3 f0 (7823|0@0@2&#,)! +3 f1 (7823|0@0@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1675 (1117|0@5@2&#,)! +3 f0 (1675|0@0@2&#,)! +3 f1 (1675|0@0@2&#,)! +3 f0 (1675|0@0@2&#,1678|0@5@2&#,)! +3 f1678 (1675|0@0@2&#,1678|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1678 (1117|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1678|0@5@2&#,)! +3 f1678 (1117|0@5@2&#,1678|0@5@2&#,)! +3 f0 (1678|0@5@2&#,)! +3 f1 (1678|0@5@2&#,)! +3 f0 (1678|0@5@7&#,)! +3 f1117 (1678|0@5@7&#,)! +3 f0 (1678|0@5@7&#,)! +3 f1117 (1678|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1678 (313|$#,)! +3 f0 (1678|0@5@7&#,)! +3 f1597 (1678|0@5@7&#,)! +3 f0 (1678|0@5@7&#,1003|0@5@7&#,)! +3 f2 (1678|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1678|0@5@7&#,1003|0@5@7&#,)! +3 f1597 (1678|0@5@7&#,1003|0@5@7&#,)! +3 f0 ()! +3 f1106 ()! +3 f0 (1106|0@5@7&#,)! +3 f1 (1106|0@5@7&#,)! +3 f0 (1106|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f1106 (1106|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (971|0@5@19@2@0#,)! +3 f1106 (971|0@5@19@2@0#,)! +3 f0 (1106|0@5@7&#,)! +3 f1 (1106|0@5@7&#,)! +3 f0 (1106|@5|0@5@7&#,1106|0@5@19@2@0#,)! +3 f1106 (1106|@5|0@5@7&#,1106|0@5@19@2@0#,)! +3 f0 (1106|0@5@7&#,)! +3 f1106 (1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,971|0@5@7&#,)! +3 f2 (1106|0@5@7&#,971|0@5@7&#,)! +3 f0 (1106|0@5@7&#,971|0@5@7&#,)! +3 f971 (1106|0@5@7&#,971|0@5@7&#,)! +3 f0 (1106|0@5@7&#,)! +3 f2 (1106|0@5@7&#,)! +3 f0 (1106|0@5@2&#,)! +3 f1 (1106|0@5@2&#,)! +3 f0 (1106|0@5@7&#,)! +3 f1117 (1106|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1106 (313|$#,)! +3 f0 (1106|0@5@7&#,)! +3 f1117 (1106|0@5@7&#,)! +3 f0 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f5 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f0 ()! +3 f15450 ()! +3 f0 (15450|$#,)! +3 f1 (15450|$#,)! +3 f0 (15450|$#,5|$#,)! +3 f2 (15450|$#,5|$#,)! +3 f0 (15450|$#,5|$#,)! +3 f2 (15450|$#,5|$#,)! +3 f0 (15450|$#,)! +3 f1117 (15450|$#,)! +3 f0 (15450|$#,)! +3 f1117 (15450|$#,)! +3 f0 (15450|0@0@2&#,)! +3 f1 (15450|0@0@2&#,)! +0 s7634|-1 16724 -1 +1 t16723|16723& +3 f0 (4657|0@5@2&#,)! +3 f1 (4657|0@5@2&#,)! +3 f0 ()! +3 f1 ()! +1 t4657|4657& +3 f0 ()! +3 f1 ()! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (211|$#,)! +3 f1 (211|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (4657|0@5@2&#,)! +3 f1 (4657|0@5@2&#,)! +3 f0 (4657|0@5@2&#,)! +3 f5 (4657|0@5@2&#,)! +3 f0 (975|$#,)! +3 f4657 (975|$#,)! +3 f0 ()! +3 f975 ()! +3 f0 (975|$#,4650|$#,)! +3 f2 (975|$#,4650|$#,)! +3 f0 (975|@7|$#,)! +3 f2 (975|@7|$#,)! +3 f0 (4650|$#,)! +3 f975 (4650|$#,)! +3 f0 (4650|$#,)! +3 f975 (4650|$#,)! +3 f0 (975|$#,4650|$#,)! +3 f975 (975|$#,4650|$#,)! +3 f0 (975|$#,4650|$#,)! +3 f975 (975|$#,4650|$#,)! +3 f0 (975|$#,)! +3 f1117 (975|$#,)! +3 f0 (975|$#,975|$#,)! +3 f5 (975|$#,975|$#,)! +3 f0 (975|$#,975|$#,)! +3 f975 (975|$#,975|$#,)! +3 f0 (975|$#,)! +3 f1117 (975|$#,)! +3 f0 (313|$#,)! +3 f975 (313|$#,)! +3 f0 (975|$#,975|$#,)! +3 f975 (975|$#,975|$#,)! +3 f0 ()! +3 f991 ()! +3 f0 ()! +3 f991 ()! +3 f0 (991|0@5@7&#,)! +3 f994 (991|0@5@7&#,)! +3 f0 (991|0@5@7&#,971|0@5@7&#,)! +3 f1 (991|0@5@7&#,971|0@5@7&#,)! +3 f0 (991|0@5@7&#,)! +3 f994 (991|0@5@7&#,)! +3 f0 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f991 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f0 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f991 (991|@5|0@5@9&#,991|0@5@7&#,)! +3 f0 (991|0@5@2&#,991|0@5@7&#,)! +3 f991 (991|0@5@2&#,991|0@5@7&#,)! +3 f0 (991|0@5@2&#,991|0@5@7&#,5|$#,)! +3 f991 (991|0@5@2&#,991|0@5@7&#,5|$#,)! +3 f0 (991|@5|0@5@9&#,991|0@5@2&#,5|$#,)! +3 f991 (991|@5|0@5@9&#,991|0@5@2&#,5|$#,)! +3 f0 (991|0@5@7&#,)! +3 f1 (991|0@5@7&#,)! +3 f0 (991|0@5@6&#,)! +3 f991 (991|0@5@6&#,)! +3 f0 (991|0@5@6&#,)! +3 f991 (991|0@5@6&#,)! +3 f0 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f991 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f991 (991|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (991|0@5@7&#,)! +3 f1117 (991|0@5@7&#,)! +3 f0 (991|0@5@2&#,)! +3 f1 (991|0@5@2&#,)! +3 f0 (991|0@5@7&#,971|0@5@7&#,)! +3 f2 (991|0@5@7&#,971|0@5@7&#,)! +3 f0 (991|0@5@7&#,971|0@5@7&#,)! +3 f2 (991|0@5@7&#,971|0@5@7&#,)! +3 f0 (991|0@5@7&#,)! +3 f2 (991|0@5@7&#,)! +3 f0 ()! +3 f4657 ()! +3 f0 ()! +3 f4657 ()! +3 f0 (4657|0@2@7&#,)! +3 f1 (4657|0@2@7&#,)! +3 f0 (4649|$#,)! +3 f4657 (4649|$#,)! +3 f0 (4657|@5|0@5@7&#,4649|$#,)! +3 f4657 (4657|@5|0@5@7&#,4649|$#,)! +3 f0 (4657|0@2@7&#,)! +3 f4657 (4657|0@2@7&#,)! +3 f0 (4657|0@5@7&#,4649|$#,)! +3 f4657 (4657|0@5@7&#,4649|$#,)! +3 f0 (4657|0@5@6&#,4649|$#,)! +3 f4657 (4657|0@5@6&#,4649|$#,)! +3 f0 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f4657 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f0 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f4657 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f0 (4657|0@5@7&#,4649|$#,)! +3 f2 (4657|0@5@7&#,4649|$#,)! +3 f0 (4657|0@5@2&#,)! +3 f1 (4657|0@5@2&#,)! +3 f0 (4657|0@5@7&#,)! +3 f1117 (4657|0@5@7&#,)! +3 f0 (313|$#,)! +3 f4657 (313|$#,)! +3 f0 (4657|0@5@7&#,)! +3 f1117 (4657|0@5@7&#,)! +3 f0 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f5 (4657|0@5@7&#,4657|0@5@7&#,)! +3 f0 ()! +3 f994 ()! +3 f0 ()! +3 f994 ()! +3 f0 (971|0@5@19@2@0#,)! +3 f994 (971|0@5@19@2@0#,)! +3 f0 (994|0@2@7&#,)! +3 f1 (994|0@2@7&#,)! +3 f0 (994|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f994 (994|@5|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f971 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f971 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@2&#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@2&#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@7&#,971|0@5@7&#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f994 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f994 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@7&#,5|$#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@7&#,5|$#,)! +3 f0 (994|0@5@7&#,5|$#,)! +3 f1 (994|0@5@7&#,5|$#,)! +3 f0 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f994 (994|@5|0@5@7&#,994|0@5@19@2@0#,)! +3 f0 (994|0@5@6@2@0#,)! +3 f994 (994|0@5@6@2@0#,)! +3 f0 (994|0@5@19@2@0#,5|$#,)! +3 f994 (994|0@5@19@2@0#,5|$#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! 3 ?! -3 f14904 (952|0@5@18&#,952|0@5@18&#,)! -3 f2 (952|0@5@18&#,952|0@5@18&#,)^14907 -1 t14906|14906& -3 f0 (14907|$#,972|0@5@7&#,952|0@5@18&#,)! -3 f2 (14907|$#,972|0@5@7&#,952|0@5@18&#,)! +3 f16888 (971|0@5@7&#,971|0@5@7&#,)! +3 f2 (971|0@5@7&#,971|0@5@7&#,)^16891 +1 t16890|16890& +3 f0 (16891|$#,994|0@5@7&#,971|0@5@7&#,)! +3 f2 (16891|$#,994|0@5@7&#,971|0@5@7&#,)! 3 ?! -3 f14910 (952|0@5@18&#,)! -3 f2 (952|0@5@18&#,)^14913 -1 t14912|14912& -3 f0 (14913|$#,972|0@5@7&#,)! -3 f2 (14913|$#,972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f2 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f2 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,952|0@5@18&#,)! -3 f952 (972|0@5@7&#,952|0@5@18&#,)! -3 f0 (972|0@5@7&#,)! -3 f5 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f1 (972|0@5@7&#,)! -3 f0 (972|0@5@2&#,)! -3 f1 (972|0@5@2&#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,989|0@5@19@3@0#,)! -3 f972 (972|0@5@7&#,989|0@5@19@3@0#,)! -3 f0 (972|0@5@7&#,)! -3 f972 (972|0@5@7&#,)! -3 f0 (972|0@5@7&#,5|$#,)! -3 f972 (972|0@5@7&#,5|$#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f5 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (972|0@5@7&#,972|0@5@7&#,)! -3 f2 (972|0@5@7&#,972|0@5@7&#,)! -3 f0 (312|$#,)! -3 f972 (312|$#,)! -3 f0 (972|0@5@7&#,)! -3 f989 (972|0@5@7&#,)! -3 f0 ()! -3 f2600 ()! -3 f0 (2600|0@5@7&#,)! -3 f1 (2600|0@5@7&#,)! -3 f0 (2600|0@5@7&#,942|$#,)! -3 f2 (2600|0@5@7&#,942|$#,)! -3 f0 (2600|0@5@7&#,942|$#,)! -3 f2 (2600|0@5@7&#,942|$#,)! -3 f0 (2600|0@5@7&#,)! -3 f989 (2600|0@5@7&#,)! -3 f0 (2600|0@5@2&#,)! -3 f1 (2600|0@5@2&#,)! -3 f0 (3150|0@5@7&#,3136|$#,)! -3 f2 (3150|0@5@7&#,3136|$#,)! -3 f0 ()! -3 f3150 ()! -1 t3136|3136& -3 f0 (3136|0@0@17&#,)! -3 f3150 (3136|0@0@17&#,)! -3 f0 (3150|0@2@7&#,)! -3 f1 (3150|0@2@7&#,)! -3 f0 (3150|0@5@7&#,3136|0@0@17&#,)! -3 f2 (3150|0@5@7&#,3136|0@0@17&#,)! -3 f0 (3150|0@5@7&#,3136|$#,)! -3 f2 (3150|0@5@7&#,3136|$#,)! -3 f0 (3150|0@5@7&#,)! -3 f989 (3150|0@5@7&#,)! -3 f0 (3150|0@5@7&#,)! -3 f989 (3150|0@5@7&#,)! -3 f0 (3150|0@5@7&#,)! -3 f989 (3150|0@5@7&#,)! -3 f0 (3150|0@5@2&#,)! -3 f1 (3150|0@5@2&#,)! -3 f0 (934|@5|$#,)! -3 f934 (934|@5|$#,)! -3 f0 (934|@5|0@5@7&#,)! -3 f934 (934|@5|0@5@7&#,)! -3 f0 (948|0@5@7&#,2885|$#,)! -3 f1 (948|0@5@7&#,2885|$#,)! -3 f0 (3208|0@5@7&#,3198|$#,)! -3 f2 (3208|0@5@7&#,3198|$#,)! -3 f0 ()! -3 f3208 ()! -1 t3198|3198& +3 f16894 (971|0@5@7&#,)! +3 f2 (971|0@5@7&#,)^16897 +1 t16896|16896& +3 f0 (16897|$#,994|0@5@7&#,)! +3 f2 (16897|$#,994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f2 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f2 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,971|0@5@7&#,)! +3 f971 (994|0@5@7&#,971|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f5 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 f0 (994|0@5@2&#,)! +3 f1 (994|0@5@2&#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,1117|0@5@19@3@0#,)! +3 f994 (994|0@5@7&#,1117|0@5@19@3@0#,)! +3 f0 (994|0@5@7&#,)! +3 f994 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,5|$#,)! +3 f994 (994|0@5@7&#,5|$#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f5 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (994|0@5@7&#,994|0@5@7&#,)! +3 f2 (994|0@5@7&#,994|0@5@7&#,)! +3 f0 (313|$#,)! +3 f994 (313|$#,)! +3 f0 (994|0@5@7&#,)! +3 f1117 (994|0@5@7&#,)! +3 f0 (994|0@5@7&#,)! +3 f1 (994|0@5@7&#,)! +3 f0 ()! +3 f2946 ()! +3 f0 (2946|0@5@7&#,)! +3 f1 (2946|0@5@7&#,)! +3 f0 (2946|0@5@7&#,961|$#,)! +3 f2 (2946|0@5@7&#,961|$#,)! +3 f0 (2946|0@5@7&#,961|$#,)! +3 f2 (2946|0@5@7&#,961|$#,)! +3 f0 (2946|0@5@7&#,)! +3 f1117 (2946|0@5@7&#,)! +3 f0 (2946|0@5@2&#,)! +3 f1 (2946|0@5@2&#,)! +3 f0 (3491|0@5@7&#,3477|$#,)! +3 f2 (3491|0@5@7&#,3477|$#,)! +3 f0 ()! +3 f3491 ()! +1 t3477|3477& +3 f0 (3477|0@0@17&#,)! +3 f3491 (3477|0@0@17&#,)! +3 f0 (3491|0@2@7&#,)! +3 f1 (3491|0@2@7&#,)! +3 f0 (3491|0@5@7&#,3477|0@0@17&#,)! +3 f2 (3491|0@5@7&#,3477|0@0@17&#,)! +3 f0 (3491|0@5@7&#,3477|$#,)! +3 f2 (3491|0@5@7&#,3477|$#,)! +3 f0 (3491|0@5@7&#,)! +3 f1117 (3491|0@5@7&#,)! +3 f0 (3491|0@5@7&#,)! +3 f1117 (3491|0@5@7&#,)! +3 f0 (3491|0@5@7&#,)! +3 f1117 (3491|0@5@7&#,)! +3 f0 (3491|0@5@2&#,)! +3 f1 (3491|0@5@2&#,)! +3 f0 (941|@5|$#,)! +3 f941 (941|@5|$#,)! +3 f0 (941|@5|0@5@7&#,)! +3 f941 (941|@5|0@5@7&#,)! +3 f0 (967|0@5@7&#,947|$#,)! +3 f1 (967|0@5@7&#,947|$#,)! +3 f0 (3550|0@5@7&#,3540|$#,)! +3 f2 (3550|0@5@7&#,3540|$#,)! +3 f0 ()! +3 f3550 ()! +1 t3540|3540& 3 f0 (5|$#,)! -3 f3208 (5|$#,)! -3 f0 (3208|0@2@7&#,)! -3 f1 (3208|0@2@7&#,)! -3 f0 (3208|0@5@7&#,3198|0@0@2&#,)! -3 f2 (3208|0@5@7&#,3198|0@0@2&#,)! -3 f0 (3208|0@5@7&#,3198|$#,)! -3 f2 (3208|0@5@7&#,3198|$#,)! -3 f0 (3208|0@5@7&#,)! -3 f989 (3208|0@5@7&#,)! -3 f0 (3208|0@5@7&#,)! -3 f3208 (3208|0@5@7&#,)! -3 f0 (3208|0@5@2&#,)! -3 f1 (3208|0@5@2&#,)! -3 f0 ()! -3 f2617 ()! +3 f3550 (5|$#,)! +3 f0 (3550|0@2@7&#,)! +3 f1 (3550|0@2@7&#,)! +3 f0 (3550|0@5@7&#,3540|0@0@2&#,)! +3 f2 (3550|0@5@7&#,3540|0@0@2&#,)! +3 f0 (3550|0@5@7&#,3540|$#,)! +3 f2 (3550|0@5@7&#,3540|$#,)! +3 f0 (3550|0@5@7&#,)! +3 f1117 (3550|0@5@7&#,)! +3 f0 (3550|0@5@7&#,)! +3 f3550 (3550|0@5@7&#,)! +3 f0 (3550|0@5@2&#,)! +3 f1 (3550|0@5@2&#,)! +3 f0 ()! +3 f2963 ()! 3 f0 (5|$#,)! -3 f2617 (5|$#,)! -3 f0 (2617|0@2@7&#,)! -3 f1 (2617|0@2@7&#,)! -3 f0 (2617|0@5@7&#,941|$#,)! -3 f2 (2617|0@5@7&#,941|$#,)! -3 f0 (2617|0@5@7&#,)! -3 f941 (2617|0@5@7&#,)! -3 f0 (2617|0@5@7&#,941|$#,)! -3 f2 (2617|0@5@7&#,941|$#,)! -3 f0 (2617|0@5@7&#,)! -3 f989 (2617|0@5@7&#,)! -3 f0 (2617|0@5@7&#,)! -3 f989 (2617|0@5@7&#,)! -3 f0 (2617|0@5@7&#,)! -3 f989 (2617|0@5@7&#,)! -3 f0 (2617|0@5@2&#,)! -3 f1 (2617|0@5@2&#,)! -3 f0 (2617|0@5@7&#,)! -3 f2617 (2617|0@5@7&#,)! -3 f0 ()! -3 f2912 ()! -1 t2902|2902& -3 f0 (2912|$#,)! -3 f1 (2912|$#,)! -3 f0 (2912|@5|$#,2902|0@0@2&#,)! -3 f2912 (2912|@5|$#,2902|0@0@2&#,)! -3 f0 (2912|$#,)! -3 f989 (2912|$#,)! -3 f0 (2912|0@0@2&#,)! -3 f1 (2912|0@0@2&#,)! -3 f0 ()! -3 f2570 ()! -3 f0 (2570|$#,)! -3 f1 (2570|$#,)! -3 f0 (2570|$#,941|$#,)! -3 f1 (2570|$#,941|$#,)! -3 f0 (2570|$#,)! -3 f1 (2570|$#,)! -3 f0 (2570|$#,)! -3 f1 (2570|$#,)! -3 f0 (2570|$#,)! -3 f941 (2570|$#,)! -3 f0 (2570|$#,)! -3 f989 (2570|$#,)! -3 f0 (2570|0@0@2&#,)! -3 f1 (2570|0@0@2&#,)! -3 f0 ()! -3 f2678 ()! -1 t2668|2668& -3 f0 (2678|$#,)! -3 f1 (2678|$#,)! -3 f0 (2678|@5|$#,2668|0@0@2&#,)! -3 f2678 (2678|@5|$#,2668|0@0@2&#,)! -3 f0 (2678|$#,)! -3 f989 (2678|$#,)! -3 f0 (2678|0@0@2&#,)! -3 f1 (2678|0@0@2&#,)! -3 f0 ()! -3 f3328 ()! -1 t3318|3318& -3 f0 (3328|$#,)! -3 f1 (3328|$#,)! -3 f0 (3328|@5|$#,3318|0@0@2&#,)! -3 f3328 (3328|@5|$#,3318|0@0@2&#,)! -3 f0 (3328|$#,3318|0@0@4&#,)! -3 f1 (3328|$#,3318|0@0@4&#,)! -3 f0 (3328|0@0@2&#,)! -3 f1 (3328|0@0@2&#,)! -3 f0 ()! -3 f3398 ()! -1 t2617|2617& -3 f0 (3398|$#,)! -3 f1 (3398|$#,)! -3 f0 (3398|$#,2617|0@5@18@2@0#,)! -3 f1 (3398|$#,2617|0@5@18@2@0#,)! -3 f0 (3398|$#,)! -3 f1 (3398|$#,)! -3 f0 (3398|$#,)! -3 f1 (3398|$#,)! -3 f0 (3398|$#,)! -3 f2617 (3398|$#,)! -3 f0 (3398|$#,)! -3 f2617 (3398|$#,)! -3 f0 (3398|$#,)! -3 f989 (3398|$#,)! -3 f0 (3398|0@0@2&#,)! -3 f1 (3398|0@0@2&#,)! -3 f0 ()! -3 f2720 ()! -1 t2710|2710& -3 f0 (2720|$#,)! -3 f1 (2720|$#,)! -3 f0 (2720|@5|$#,2710|0@0@2&#,)! -3 f2720 (2720|@5|$#,2710|0@0@2&#,)! -3 f0 (2720|$#,)! -3 f989 (2720|$#,)! -3 f0 (2720|$#,)! -3 f2720 (2720|$#,)! -3 f0 (2720|0@0@2&#,)! -3 f1 (2720|0@0@2&#,)! -3 f0 ()! -3 f2841 ()! -1 t2833|2833& -3 f0 (2841|$#,)! -3 f1 (2841|$#,)! -3 f0 (2841|@5|$#,2833|0@0@2&#,)! -3 f2841 (2841|@5|$#,2833|0@0@2&#,)! -3 f0 (2841|$#,)! -3 f989 (2841|$#,)! -3 f0 (2841|0@0@2&#,)! -3 f1 (2841|0@0@2&#,)! -3 f0 ()! -3 f3025 ()! -1 t3015|3015& -3 f0 (3025|$#,)! -3 f1 (3025|$#,)! -3 f0 (3025|@5|$#,3015|0@0@2&#,)! -3 f3025 (3025|@5|$#,3015|0@0@2&#,)! -3 f0 (3025|$#,)! -3 f3025 (3025|$#,)! -3 f0 (3025|$#,)! -3 f989 (3025|$#,)! -3 f0 (3025|0@0@2&#,)! -3 f1 (3025|0@0@2&#,)! -3 f0 ()! -3 f3423 ()! -3 f0 (3423|$#,)! -3 f1 (3423|$#,)! -3 f0 (3423|$#,3198|0@0@19@2@0#,)! -3 f1 (3423|$#,3198|0@0@19@2@0#,)! -3 f0 (3423|$#,)! -3 f989 (3423|$#,)! -3 f0 (3423|0@0@2&#,)! -3 f1 (3423|0@0@2&#,)! -3 f0 ()! -3 f2812 ()! -1 t2794|2794& -3 f0 (2812|$#,)! -3 f1 (2812|$#,)! -3 f0 (2812|@5|$#,2794|0@0@2&#,)! -3 f2812 (2812|@5|$#,2794|0@0@2&#,)! -3 f0 (2812|$#,)! -3 f2812 (2812|$#,)! -3 f0 (2812|$#,)! -3 f989 (2812|$#,)! -3 f0 (2812|0@0@2&#,)! -3 f1 (2812|0@0@2&#,)! -3 f0 ()! -3 f2589 ()! -3 f0 (2589|$#,)! -3 f1 (2589|$#,)! -3 f0 (2589|$#,942|$#,)! -3 f1 (2589|$#,942|$#,)! -3 f0 (2589|0@0@2&#,)! -3 f1 (2589|0@0@2&#,)! -3 f0 ()! -3 f940 ()! -1 t934|934& -3 f0 (940|$#,)! -3 f1 (940|$#,)! -3 f0 (940|$#,934|0@0@4&#,)! -3 f1 (940|$#,934|0@0@4&#,)! -3 f0 (940|@5|$#,934|0@0@4&#,)! -3 f940 (940|@5|$#,934|0@0@4&#,)! -3 f0 (940|$#,934|0@0@4&#,)! -3 f1 (940|$#,934|0@0@4&#,)! -3 f0 (940|$#,)! -3 f1 (940|$#,)! -3 f0 (940|$#,)! -3 f1 (940|$#,)! -3 f0 (940|$#,)! -3 f1 (940|$#,)! -3 f0 (940|$#,)! -3 f934 (940|$#,)! -3 f0 (940|$#,)! -3 f940 (940|$#,)! -3 f0 (940|$#,)! -3 f934 (940|$#,)! -3 f0 (940|$#,5|$#,)! -3 f934 (940|$#,5|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|$#,)! -3 f989 (940|$#,)! -3 f0 (940|0@0@2&#,)! -3 f1 (940|0@0@2&#,)! -3 f0 ()! -3 f2481 ()! -1 t948|948& -3 f0 (948|0@5@2&#,)! -3 f2481 (948|0@5@2&#,)! -3 f0 (2481|0@2@7&#,)! -3 f1 (2481|0@2@7&#,)! -3 f0 (2481|@5|0@5@7&#,948|0@5@2&#,)! -3 f2481 (2481|@5|0@5@7&#,948|0@5@2&#,)! -3 f0 (2481|0@5@7&#,948|0@5@2&#,)! -3 f1 (2481|0@5@7&#,948|0@5@2&#,)! -3 f0 (2481|0@5@7&#,)! -3 f1 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f2 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f1 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f948 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,2481|0@5@7&#,)! -3 f2 (2481|0@5@7&#,2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f2481 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f1 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f948 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f989 (2481|0@5@7&#,)! -3 f0 (2481|0@5@2&#,)! -3 f1 (2481|0@5@2&#,)! -3 f0 ()! -3 f3278 ()! -1 t3270|3270& -3 f0 (3278|$#,)! -3 f1 (3278|$#,)! -3 f0 (3278|@5|$#,3270|0@0@2&#,)! -3 f3278 (3278|@5|$#,3270|0@0@2&#,)! -3 f0 (3278|$#,)! -3 f989 (3278|$#,)! -3 f0 (3278|0@0@2&#,)! -3 f1 (3278|0@0@2&#,)! -3 f0 ()! -3 f2651 ()! -1 t2643|2643& -3 f0 (2651|0@2@7&#,)! -3 f1 (2651|0@2@7&#,)! -3 f0 (2651|0@5@7&#,2643|0@0@4&#,)! -3 f1 (2651|0@5@7&#,2643|0@0@4&#,)! -3 f0 (2651|0@5@7&#,)! -3 f989 (2651|0@5@7&#,)! -3 f0 (2651|0@5@2&#,)! -3 f1 (2651|0@5@2&#,)! -3 f0 ()! -3 f3104 ()! -1 t3094|3094& -3 f0 (3104|$#,)! -3 f1 (3104|$#,)! -3 f0 (3104|@5|$#,3094|0@0@2&#,)! -3 f3104 (3104|@5|$#,3094|0@0@2&#,)! -3 f0 (3104|$#,)! -3 f989 (3104|$#,)! -3 f0 (3104|0@0@2&#,)! -3 f1 (3104|0@0@2&#,)! -3 f0 ()! -3 f2978 ()! -3 f0 ()! -3 f2978 ()! -1 t2968|2968& -3 f0 (2978|0@2@7&#,)! -3 f1 (2978|0@2@7&#,)! -3 f0 (2978|@5|0@5@7&#,2968|0@0@4&#,)! -3 f2978 (2978|@5|0@5@7&#,2968|0@0@4&#,)! -3 f0 (2978|0@5@7&#,)! -3 f989 (2978|0@5@7&#,)! -3 f0 (2978|0@5@2&#,)! -3 f1 (2978|0@5@2&#,)! -3 f0 ()! -3 f2346 ()! -1 t2328|2328& -3 f0 (2328|0@0@4&#,)! -3 f2346 (2328|0@0@4&#,)! -3 f0 (2346|0@2@7&#,)! -3 f1 (2346|0@2@7&#,)! -3 f0 (2346|@5|0@5@7&#,2328|0@5@2&#,)! -3 f2346 (2346|@5|0@5@7&#,2328|0@5@2&#,)! -3 f0 (2346|0@5@7&#,)! -3 f2346 (2346|0@5@7&#,)! -3 f0 (2346|0@5@7&#,)! -3 f989 (2346|0@5@7&#,)! -3 f0 (2346|0@5@7&#,)! -3 f989 (2346|0@5@7&#,)! -3 f0 (2346|0@5@2&#,)! -3 f1 (2346|0@5@2&#,)! -3 f0 ()! -3 f2870 ()! -1 t2862|2862& -3 f0 (2870|$#,)! -3 f1 (2870|$#,)! -3 f0 (2870|$#,2862|0@0@4&#,)! -3 f1 (2870|$#,2862|0@0@4&#,)! -3 f0 (2870|$#,)! -3 f989 (2870|$#,)! -3 f0 (2870|0@0@2&#,)! -3 f1 (2870|0@0@2&#,)! -3 f0 ()! -3 f2944 ()! -1 t2934|2934& -3 f0 (2944|$#,)! -3 f1 (2944|$#,)! -3 f0 (2944|$#,2934|0@0@4&#,)! -3 f1 (2944|$#,2934|0@0@4&#,)! -3 f0 (2944|$#,)! -3 f989 (2944|$#,)! -3 f0 (2944|0@0@2&#,)! -3 f1 (2944|0@0@2&#,)! -3 f0 ()! -3 f2749 ()! -1 t2739|2739& -3 f0 (2749|$#,)! -3 f1 (2749|$#,)! -3 f0 (2749|@5|$#,2739|0@0@2&#,)! -3 f2749 (2749|@5|$#,2739|0@0@2&#,)! -3 f0 (2749|$#,)! -3 f989 (2749|$#,)! -3 f0 (2749|0@0@2&#,)! -3 f1 (2749|0@0@2&#,)! -3 f0 (2749|$#,)! -3 f2749 (2749|$#,)! -3 f0 ()! -3 f2774 ()! -1 t2764|2764& -3 f0 (2774|$#,)! -3 f1 (2774|$#,)! -3 f0 (2774|@5|$#,2764|0@0@2&#,)! -3 f2774 (2774|@5|$#,2764|0@0@2&#,)! -3 f0 (2774|$#,)! -3 f2774 (2774|$#,)! -3 f0 (2774|$#,)! -3 f989 (2774|$#,)! -3 f0 (2774|0@0@2&#,)! -3 f1 (2774|0@0@2&#,)! -3 f0 ()! -3 f3241 ()! -1 t3231|3231& -3 f0 (3241|$#,)! -3 f1 (3241|$#,)! -3 f0 (3241|@5|$#,3231|0@0@2&#,)! -3 f3241 (3241|@5|$#,3231|0@0@2&#,)! -3 f0 (3241|$#,)! -3 f989 (3241|$#,)! -3 f0 (3241|0@0@2&#,)! -3 f1 (3241|0@0@2&#,)! -3 f0 ()! -3 f2555 ()! -1 t2541|2541& -3 f0 (2555|$#,)! -3 f1 (2555|$#,)! -3 f0 (2555|@5|$#,2541|0@0@2&#,)! -3 f2555 (2555|@5|$#,2541|0@0@2&#,)! -3 f0 (2555|$#,)! -3 f989 (2555|$#,)! -3 f0 (2555|0@0@2&#,)! -3 f1 (2555|0@0@2&#,)! -3 f0 (949|$#,942|$#,942|$#,2|$#,)! -3 f948 (949|$#,942|$#,942|$#,2|$#,)! -3 f0 (949|$#,942|$#,2|$#,)! -3 f1 (949|$#,942|$#,2|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (949|$#,23|$#,)! -3 f948 (949|$#,23|$#,)! -3 f0 (942|$#,2|$#,)! -3 f1 (942|$#,2|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (949|$#,942|$#,942|$#,2|$#,)! -3 f948 (949|$#,942|$#,942|$#,2|$#,)! -3 f0 (949|$#,942|$#,2|$#,)! -3 f1 (949|$#,942|$#,2|$#,)! -3 f0 (942|$#,2|$#,)! -3 f1 (942|$#,2|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (949|$#,23|$#,)! -3 f948 (949|$#,23|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 U!95{948|@1|0@5@3&#ltok,6|@1|^#count,2481|@1|0@5@2&#ltokenList,3125|@1|0@0@2&#opform,3136|@1|0@0@17&#signature,3186|@1|0@0@2&#name,3198|@1|0@0@17&#operator,3423|@1|0@0@2&#operators,}! -0 s6980|& -1 t10321|10321& -3 f0 (15417|$#,)! -3 f6 (15417|$#,)! -3 f0 ()! -3 f948 ()! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 ()! -3 f19 ()! -3 f2124 ()! -3 f0 ()! -3 f1 ()! -3 f0 (2124|$#,)! -3 f1 (2124|$#,)! -3 f0 ()! -3 f1 ()! -3 e!96{CHC_NULL,IDCHAR,OPCHAR,SLASHCHAR,WHITECHAR,CHC_EXTENSION,SINGLECHAR,PERMCHAR}! -0 s6987|& -0 s365|& -3 S!97{15435|@1|^#code,2|@1|^#endCommentChar,}! -0 s6749|& -0 s373|-1 -1 15498 +3 f2963 (5|$#,)! +3 f0 (2963|0@2@7&#,)! +3 f1 (2963|0@2@7&#,)! +3 f0 (2963|0@5@7&#,960|$#,)! +3 f2 (2963|0@5@7&#,960|$#,)! +3 f0 (2963|0@5@7&#,)! +3 f960 (2963|0@5@7&#,)! +3 f0 (2963|0@5@7&#,960|$#,)! +3 f2 (2963|0@5@7&#,960|$#,)! +3 f0 (2963|0@5@7&#,)! +3 f1117 (2963|0@5@7&#,)! +3 f0 (2963|0@5@7&#,)! +3 f1117 (2963|0@5@7&#,)! +3 f0 (2963|0@5@7&#,)! +3 f1117 (2963|0@5@7&#,)! +3 f0 (2963|0@5@2&#,)! +3 f1 (2963|0@5@2&#,)! +3 f0 (2963|0@5@7&#,)! +3 f2963 (2963|0@5@7&#,)! +3 f0 ()! +3 f3253 ()! +1 t3243|3243& +3 f0 (3253|$#,)! +3 f1 (3253|$#,)! +3 f0 (3253|@5|$#,3243|0@0@2&#,)! +3 f3253 (3253|@5|$#,3243|0@0@2&#,)! +3 f0 (3253|$#,)! +3 f1117 (3253|$#,)! +3 f0 (3253|0@0@2&#,)! +3 f1 (3253|0@0@2&#,)! +3 f0 ()! +3 f2916 ()! +3 f0 (2916|$#,)! +3 f1 (2916|$#,)! +3 f0 (2916|$#,960|$#,)! +3 f1 (2916|$#,960|$#,)! +3 f0 (2916|$#,)! +3 f1 (2916|$#,)! +3 f0 (2916|$#,)! +3 f1 (2916|$#,)! +3 f0 (2916|$#,)! +3 f960 (2916|$#,)! +3 f0 (2916|$#,)! +3 f1117 (2916|$#,)! +3 f0 (2916|0@0@2&#,)! +3 f1 (2916|0@0@2&#,)! +3 f0 ()! +3 f3048 ()! +1 t3038|3038& +3 f0 (3048|$#,)! +3 f1 (3048|$#,)! +3 f0 (3048|@5|$#,3038|0@0@2&#,)! +3 f3048 (3048|@5|$#,3038|0@0@2&#,)! +3 f0 (3048|$#,)! +3 f1117 (3048|$#,)! +3 f0 (3048|0@0@2&#,)! +3 f1 (3048|0@0@2&#,)! +3 f0 ()! +3 f3670 ()! +1 t3660|3660& +3 f0 (3670|$#,)! +3 f1 (3670|$#,)! +3 f0 (3670|@5|$#,3660|0@0@2&#,)! +3 f3670 (3670|@5|$#,3660|0@0@2&#,)! +3 f0 (3670|$#,3660|0@0@4&#,)! +3 f1 (3670|$#,3660|0@0@4&#,)! +3 f0 (3670|0@0@2&#,)! +3 f1 (3670|0@0@2&#,)! +3 f0 ()! +3 f3739 ()! +1 t2963|2963& +3 f0 (3739|$#,)! +3 f1 (3739|$#,)! +3 f0 (3739|$#,2963|0@5@18@2@0#,)! +3 f1 (3739|$#,2963|0@5@18@2@0#,)! +3 f0 (3739|$#,)! +3 f1 (3739|$#,)! +3 f0 (3739|$#,)! +3 f1 (3739|$#,)! +3 f0 (3739|$#,)! +3 f2963 (3739|$#,)! +3 f0 (3739|$#,)! +3 f2963 (3739|$#,)! +3 f0 (3739|$#,)! +3 f1117 (3739|$#,)! +3 f0 (3739|0@0@2&#,)! +3 f1 (3739|0@0@2&#,)! +3 f0 ()! +3 f3023 ()! +1 t3013|3013& +3 f0 (3023|$#,)! +3 f1 (3023|$#,)! +3 f0 (3023|@5|$#,3013|0@0@2&#,)! +3 f3023 (3023|@5|$#,3013|0@0@2&#,)! +3 f0 (3023|$#,)! +3 f1117 (3023|$#,)! +3 f0 (3023|$#,)! +3 f3023 (3023|$#,)! +3 f0 (3023|0@0@2&#,)! +3 f1 (3023|0@0@2&#,)! +3 f0 ()! +3 f3188 ()! +1 t3180|3180& +3 f0 (3188|$#,)! +3 f1 (3188|$#,)! +3 f0 (3188|@5|$#,3180|0@0@2&#,)! +3 f3188 (3188|@5|$#,3180|0@0@2&#,)! +3 f0 (3188|$#,)! +3 f1117 (3188|$#,)! +3 f0 (3188|0@0@2&#,)! +3 f1 (3188|0@0@2&#,)! +3 f0 ()! +3 f3365 ()! +1 t3355|3355& +3 f0 (3365|$#,)! +3 f1 (3365|$#,)! +3 f0 (3365|@5|$#,3355|0@0@2&#,)! +3 f3365 (3365|@5|$#,3355|0@0@2&#,)! +3 f0 (3365|$#,)! +3 f3365 (3365|$#,)! +3 f0 (3365|$#,)! +3 f1117 (3365|$#,)! +3 f0 (3365|0@0@2&#,)! +3 f1 (3365|0@0@2&#,)! +3 f0 ()! +3 f3764 ()! +3 f0 (3764|$#,)! +3 f1 (3764|$#,)! +3 f0 (3764|$#,3540|0@0@19@2@0#,)! +3 f1 (3764|$#,3540|0@0@19@2@0#,)! +3 f0 (3764|$#,)! +3 f1117 (3764|$#,)! +3 f0 (3764|0@0@2&#,)! +3 f1 (3764|0@0@2&#,)! +3 f0 ()! +3 f3159 ()! +1 t3141|3141& +3 f0 (3159|$#,)! +3 f1 (3159|$#,)! +3 f0 (3159|@5|$#,3141|0@0@2&#,)! +3 f3159 (3159|@5|$#,3141|0@0@2&#,)! +3 f0 (3159|$#,)! +3 f3159 (3159|$#,)! +3 f0 (3159|$#,)! +3 f1117 (3159|$#,)! +3 f0 (3159|0@0@2&#,)! +3 f1 (3159|0@0@2&#,)! +3 f0 ()! +3 f2935 ()! +3 f0 (2935|$#,)! +3 f1 (2935|$#,)! +3 f0 (2935|$#,961|$#,)! +3 f1 (2935|$#,961|$#,)! +3 f0 (2935|0@0@2&#,)! +3 f1 (2935|0@0@2&#,)! +3 f0 ()! +3 f959 ()! +1 t941|941& +3 f0 (959|$#,)! +3 f1 (959|$#,)! +3 f0 (959|$#,941|0@0@4&#,)! +3 f1 (959|$#,941|0@0@4&#,)! +3 f0 (959|@5|$#,941|0@0@4&#,)! +3 f959 (959|@5|$#,941|0@0@4&#,)! +3 f0 (959|$#,941|0@0@4&#,)! +3 f1 (959|$#,941|0@0@4&#,)! +3 f0 (959|$#,)! +3 f1 (959|$#,)! +3 f0 (959|$#,)! +3 f1 (959|$#,)! +3 f0 (959|$#,)! +3 f1 (959|$#,)! +3 f0 (959|$#,)! +3 f941 (959|$#,)! +3 f0 (959|$#,)! +3 f959 (959|$#,)! +3 f0 (959|$#,)! +3 f941 (959|$#,)! +3 f0 (959|$#,5|$#,)! +3 f941 (959|$#,5|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|$#,)! +3 f1117 (959|$#,)! +3 f0 (959|0@0@2&#,)! +3 f1 (959|0@0@2&#,)! +3 f0 ()! +3 f2837 ()! +1 t967|967& +3 f0 (967|0@5@2&#,)! +3 f2837 (967|0@5@2&#,)! +3 f0 (2837|0@2@7&#,)! +3 f1 (2837|0@2@7&#,)! +3 f0 (2837|@5|0@5@7&#,967|0@5@2&#,)! +3 f2837 (2837|@5|0@5@7&#,967|0@5@2&#,)! +3 f0 (2837|0@5@7&#,967|0@5@2&#,)! +3 f1 (2837|0@5@7&#,967|0@5@2&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f2 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f967 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,2837|0@5@7&#,)! +3 f2 (2837|0@5@7&#,2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f2837 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f967 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1117 (2837|0@5@7&#,)! +3 f0 (2837|0@5@2&#,)! +3 f1 (2837|0@5@2&#,)! +3 f0 ()! +3 f3620 ()! +1 t3612|3612& +3 f0 (3620|$#,)! +3 f1 (3620|$#,)! +3 f0 (3620|@5|$#,3612|0@0@2&#,)! +3 f3620 (3620|@5|$#,3612|0@0@2&#,)! +3 f0 (3620|$#,)! +3 f1117 (3620|$#,)! +3 f0 (3620|0@0@2&#,)! +3 f1 (3620|0@0@2&#,)! +3 f0 ()! +3 f2998 ()! +1 t2990|2990& +3 f0 (2998|0@2@7&#,)! +3 f1 (2998|0@2@7&#,)! +3 f0 (2998|0@5@7&#,2990|0@0@4&#,)! +3 f1 (2998|0@5@7&#,2990|0@0@4&#,)! +3 f0 (2998|0@5@7&#,)! +3 f1117 (2998|0@5@7&#,)! +3 f0 (2998|0@5@2&#,)! +3 f1 (2998|0@5@2&#,)! +3 f0 ()! +3 f3444 ()! +1 t3434|3434& +3 f0 (3444|$#,)! +3 f1 (3444|$#,)! +3 f0 (3444|@5|$#,3434|0@0@2&#,)! +3 f3444 (3444|@5|$#,3434|0@0@2&#,)! +3 f0 (3444|$#,)! +3 f1117 (3444|$#,)! +3 f0 (3444|0@0@2&#,)! +3 f1 (3444|0@0@2&#,)! +3 f0 ()! +3 f3319 ()! +3 f0 ()! +3 f3319 ()! +1 t3309|3309& +3 f0 (3319|0@2@7&#,)! +3 f1 (3319|0@2@7&#,)! +3 f0 (3319|@5|0@5@7&#,3309|0@0@4&#,)! +3 f3319 (3319|@5|0@5@7&#,3309|0@0@4&#,)! +3 f0 (3319|0@5@7&#,)! +3 f1117 (3319|0@5@7&#,)! +3 f0 (3319|0@5@2&#,)! +3 f1 (3319|0@5@2&#,)! +3 f0 ()! +3 f2702 ()! +1 t2684|2684& +3 f0 (2684|0@0@4&#,)! +3 f2702 (2684|0@0@4&#,)! +3 f0 (2702|0@2@7&#,)! +3 f1 (2702|0@2@7&#,)! +3 f0 (2702|@5|0@5@7&#,2684|0@5@2&#,)! +3 f2702 (2702|@5|0@5@7&#,2684|0@5@2&#,)! +3 f0 (2702|0@5@7&#,)! +3 f2702 (2702|0@5@7&#,)! +3 f0 (2702|0@5@7&#,)! +3 f1117 (2702|0@5@7&#,)! +3 f0 (2702|0@5@7&#,)! +3 f1117 (2702|0@5@7&#,)! +3 f0 (2702|0@5@2&#,)! +3 f1 (2702|0@5@2&#,)! +3 f0 ()! +3 f953 ()! +1 t3206|3206& +3 f0 (953|$#,)! +3 f1 (953|$#,)! +3 f0 (953|$#,3206|0@0@4&#,)! +3 f1 (953|$#,3206|0@0@4&#,)! +3 f0 (953|$#,)! +3 f1117 (953|$#,)! +3 f0 (953|0@0@2&#,)! +3 f1 (953|0@0@2&#,)! +3 f0 ()! +3 f3285 ()! +1 t3275|3275& +3 f0 (3285|$#,)! +3 f1 (3285|$#,)! +3 f0 (3285|$#,3275|0@0@4&#,)! +3 f1 (3285|$#,3275|0@0@4&#,)! +3 f0 (3285|$#,)! +3 f1117 (3285|$#,)! +3 f0 (3285|0@0@2&#,)! +3 f1 (3285|0@0@2&#,)! +3 f0 ()! +3 f3096 ()! +1 t3086|3086& +3 f0 (3096|$#,)! +3 f1 (3096|$#,)! +3 f0 (3096|@5|$#,3086|0@0@2&#,)! +3 f3096 (3096|@5|$#,3086|0@0@2&#,)! +3 f0 (3096|$#,)! +3 f1117 (3096|$#,)! +3 f0 (3096|0@0@2&#,)! +3 f1 (3096|0@0@2&#,)! +3 f0 (3096|$#,)! +3 f3096 (3096|$#,)! +3 f0 ()! +3 f3121 ()! +1 t3111|3111& +3 f0 (3121|$#,)! +3 f1 (3121|$#,)! +3 f0 (3121|@5|$#,3111|0@0@2&#,)! +3 f3121 (3121|@5|$#,3111|0@0@2&#,)! +3 f0 (3121|$#,)! +3 f3121 (3121|$#,)! +3 f0 (3121|$#,)! +3 f1117 (3121|$#,)! +3 f0 (3121|0@0@2&#,)! +3 f1 (3121|0@0@2&#,)! +3 f0 ()! +3 f3583 ()! +1 t3573|3573& +3 f0 (3583|$#,)! +3 f1 (3583|$#,)! +3 f0 (3583|@5|$#,3573|0@0@2&#,)! +3 f3583 (3583|@5|$#,3573|0@0@2&#,)! +3 f0 (3583|$#,)! +3 f1117 (3583|$#,)! +3 f0 (3583|0@0@2&#,)! +3 f1 (3583|0@0@2&#,)! +3 f0 ()! +3 f2900 ()! +1 t2886|2886& +3 f0 (2900|$#,)! +3 f1 (2900|$#,)! +3 f0 (2900|@5|$#,2886|0@0@2&#,)! +3 f2900 (2900|@5|$#,2886|0@0@2&#,)! +3 f0 (2900|$#,)! +3 f1117 (2900|$#,)! +3 f0 (2900|0@0@2&#,)! +3 f1 (2900|0@0@2&#,)! +3 f0 (968|$#,961|$#,961|$#,2|$#,)! +3 f967 (968|$#,961|$#,961|$#,2|$#,)! +3 f0 (968|$#,961|$#,2|$#,)! +3 f1 (968|$#,961|$#,2|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (968|$#,23|$#,)! +3 f967 (968|$#,23|$#,)! +3 f0 (961|$#,2|$#,)! +3 f1 (961|$#,2|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (968|$#,961|$#,961|$#,2|$#,)! +3 f967 (968|$#,961|$#,961|$#,2|$#,)! +3 f0 (968|$#,961|$#,2|$#,)! +3 f1 (968|$#,961|$#,2|$#,)! +3 f0 (961|$#,2|$#,)! +3 f1 (961|$#,2|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (968|$#,23|$#,)! +3 f967 (968|$#,23|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 U!250{967|@1|0@5@3&#ltok,6|@1|^#count,2837|@1|0@5@2&#ltokenList,938|@1|0@0@2&#opform,3477|@1|0@0@17&#signature,3528|@1|0@0@2&#name,3540|@1|0@0@17&#operator,3764|@1|0@0@2&#operators,}! +0 s7646|& +3 f0 (8860|$#,)! +3 f6 (8860|$#,)! +3 f0 ()! +3 f967 ()! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 ()! +3 f1015 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! +3 f0 ()! +3 f1 ()! +3 e!251{CHC_NULL,IDCHAR,OPCHAR,SLASHCHAR,WHITECHAR,CHC_EXTENSION,SINGLECHAR,PERMCHAR}! +0 s7663|& +0 s7664|& +3 S!252{17423|@1|^#code,2|@1|^#endCommentChar,}! +0 s7665|& +0 s7666|-1 -1 17485 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 (2|$#,)! 3 f1 (2|$#,)! 3 f0 ()! @@ -15454,40 +17442,39 @@ 3 f0 ()! 3 f1 ()! 3 f0 (4|$#,)! -3 f15435 (4|$#,)! +3 f17423 (4|$#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -3 f0 (4|$#,15435|$#,)! -3 f1 (4|$#,15435|$#,)! +3 f0 (4|$#,17423|$#,)! +3 f1 (4|$#,17423|$#,)! 3 f0 (4|$#,2|$#,)! 3 f1 (4|$#,2|$#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 2 F0/0|0& -2 F2398/0|2398& -3 f0 (15417|$#,)! -3 f6 (15417|$#,)! +2 F2754/0|2754& +3 f0 (8860|$#,)! +3 f6 (8860|$#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 ()! -3 f948 ()! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! +3 f967 ()! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! 3 f0 ()! -3 f19 ()! -3 f2124 ()! +3 f1015 ()! 3 f0 ()! 3 f1 ()! -3 f0 (2124|$#,)! -3 f1 (2124|$#,)! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (942|$#,942|$#,)! -3 f1 (942|$#,942|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (942|$#,)! -3 f2 (942|$#,)! +3 f0 (961|$#,961|$#,)! +3 f1 (961|$#,961|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (961|$#,)! +3 f2 (961|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -15497,14 +17484,14 @@ 3 f0 (23|0@0@6&#,)! 3 f1 (23|0@0@6&#,)! 2 F0/0|0& -2 F15438/0|15438& +2 F17426/0|17426& 2 F0/0|0& 2 F4/0|4& -2 y15438|15438& +2 y17426|17426& 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 (2|$#,)! 3 f1 (2|$#,)! 3 f0 (23|0@0@6&#,)! @@ -15516,152 +17503,152 @@ 3 f0 ()! 3 f1 ()! 3 f0 (4|$#,)! -3 f15435 (4|$#,)! +3 f17423 (4|$#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -3 f0 (4|$#,15435|$#,)! -3 f1 (4|$#,15435|$#,)! +3 f0 (4|$#,17423|$#,)! +3 f1 (4|$#,17423|$#,)! 3 f0 (4|$#,2|$#,)! 3 f1 (4|$#,2|$#,)! -3 e!98{INITFILE1,INITLINES1,INITLINES2,INITLINES3,INITLINE1,INITLINE2,CLASSIFICATION1,CLASSIFICATION2,CLASSIFICATION3,CHARCLASS1,CHARCLASS2,CHARCLASS3,CHARCLASS4,CHARCLASS5,CHARCLASS6,LRC_ENDCOMMENT1,LRC_ENDCOMMENT2,IDCHARS1,IDCHARS2,OPCHARS1,OPCHARS2,LRC_EXTENSIONCHAR1,SINGCHARS1,SINGCHARS2,WHITECHARS1,WHITECHARS2,LRC_ENDCOMMENTCHAR1,IDCHAR1,OPCHAR1,SINGCHAR1,WHITECHAR1,TOKENCLASS1,TOKENCLASS2,TOKENCLASS3,TOKENCLASS4,TOKENCLASS5,TOKENCLASS6,TOKENCLASS7,TOKENCLASS8,TOKENCLASS9,TOKENCLASS10,TOKENCLASS11,TOKENCLASS12,TOKENCLASS13,QUANTIFIERSYMTOKS1,QUANTIFIERSYMTOKS2,LOGICALOPTOKS1,LOGICALOPTOKS2,LRC_EQOPTOKS1,LRC_EQOPTOKS2,LRC_EQUATIONSYMTOKS1,LRC_EQUATIONSYMTOKS2,LRC_EQSEPSYMTOKS1,LRC_EQSEPSYMTOKS2,SELECTSYMTOKS1,SELECTSYMTOKS2,OPENSYMTOKS1,OPENSYMTOKS2,SEPSYMTOKS1,SEPSYMTOKS2,CLOSESYMTOKS1,CLOSESYMTOKS2,SIMPLEIDTOKS1,SIMPLEIDTOKS2,MAPSYMTOKS1,MAPSYMTOKS2,MARKERSYMTOKS1,MARKERSYMTOKS2,COMMENTSYMTOKS1,COMMENTSYMTOKS2,QUANTIFIERSYMTOK1,LOGICALOPTOK1,LRC_EQOPTOK1,LRC_EQUATIONSYMTOK1,LRC_EQSEPSYMTOK1,SELECTSYMTOK1,OPENSYMTOK1,SEPSYMTOK1,CLOSESYMTOK1,SIMPLEIDTOK1,MAPSYMTOK1,MARKERSYMTOK1,COMMENTSYMTOK1,SYNCLASS1,OLDTOKEN1,NEWTOKEN1}! -0 s7054|& -0 s366|& -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (942|$#,)! -3 f942 (942|$#,)! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! -3 f0 (23|$#,23|$#,)! -3 f3198 (23|$#,23|$#,)! -3 f0 (3318|$#,)! -3 f1 (3318|$#,)! -3 f0 (23|$#,23|0@0@2&#,)! -3 f1 (23|$#,23|0@0@2&#,)! -3 f0 (23|$#,23|$#,2|$#,)! -3 f1 (23|$#,23|$#,2|$#,)! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! -3 f0 (23|$#,23|$#,)! -3 f3198 (23|$#,23|$#,)! -3 f0 (942|$#,)! -3 f942 (942|$#,)! -3 f0 (3094|$#,)! -3 f989 (3094|$#,)! -3 f0 (3231|$#,)! -3 f989 (3231|$#,)! -3 f0 (3241|$#,)! -3 f989 (3241|$#,)! -3 f0 (3104|$#,)! -3 f989 (3104|$#,)! -3 f0 (3264|$#,)! -3 f989 (3264|$#,)! -3 f0 (3278|$#,)! -3 f989 (3278|$#,)! -3 f0 (23|$#,23|0@0@2&#,)! -3 f1 (23|$#,23|0@0@2&#,)! -3 f0 (23|$#,23|$#,2|$#,)! -3 f1 (23|$#,23|$#,2|$#,)! -3 f0 (3318|$#,)! -3 f1 (3318|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (2124|$#,)! -3 f1 (2124|$#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (3328|$#,)! -3 f1 (3328|$#,)! -3 f0 (937|0@5@7&#,2912|$#,2930|$#,)! -3 f989 (937|0@5@7&#,2912|$#,2930|$#,)! -3 f0 (3050|$#,)! -3 f989 (3050|$#,)! -3 f0 (937|0@5@7&#,2710|$#,)! -3 f989 (937|0@5@7&#,2710|$#,)! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 S!99{210|@1|11@5@18&#f,23|@1|11@0@3&#name,}! -0 s6757|& -0 s375|& -3 f0 (937|0@5@7&#,)! -3 f989 (937|0@5@7&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (2710|$#,)! -3 f989 (2710|$#,)! -3 f0 (23|$#,23|$#,)! -3 f19 (23|$#,23|$#,)! -3 f210 (23|$#,23|$#,)! -3 f0 (937|0@5@7&#,2710|$#,)! -3 f989 (937|0@5@7&#,2710|$#,)! -3 f0 (2710|$#,)! -3 f989 (2710|$#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (3050|$#,)! -3 f989 (3050|$#,)! -3 f0 (937|0@5@7&#,)! -3 f989 (937|0@5@7&#,)! -3 f0 (937|0@5@7&#,2912|$#,2930|$#,)! -3 f989 (937|0@5@7&#,2912|$#,2930|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (2124|$#,)! -3 f1 (2124|$#,)! -3 f0 (989|0@5@2&#,)! -3 f1 (989|0@5@2&#,)! -3 f0 (3328|$#,)! -3 f1 (3328|$#,)! -3 f0 (3398|$#,)! -3 f989 (3398|$#,)! -3 f0 (3186|0@5@7&#,3398|$#,941|$#,)! -3 f2617 (3186|0@5@7&#,3398|$#,941|$#,)! -3 f0 (3186|0@5@7&#,)! -3 f2 (3186|0@5@7&#,)! -3 f0 (934|$#,941|$#,)! -3 f1 (934|$#,941|$#,)! -3 f0 (934|@5|0@5@7&#,)! -3 f934 (934|@5|0@5@7&#,)! -3 f0 (3398|$#,)! -3 f989 (3398|$#,)! -3 f0 (934|@5|$#,)! -3 f934 (934|@5|$#,)! -3 f0 (934|$#,941|$#,)! -3 f1 (934|$#,941|$#,)! -3 f0 (948|0@5@7&#,2885|$#,)! -3 f1 (948|0@5@7&#,2885|$#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 (3186|0@5@7&#,)! -3 f2 (3186|0@5@7&#,)! -3 f0 (3186|0@5@7&#,3398|$#,941|$#,)! -3 f2617 (3186|0@5@7&#,3398|$#,941|$#,)! -3 S!100{1009|@1|^#pt,2314|@1|^#ts,}! -0 s6787|& -0 s379|-1 -1 15653 -2 y15652|15652& -3 f0 (1009|$#,)! -3 f942 (1009|$#,)! -3 f0 (1009|$#,)! -3 f942 (1009|$#,)! -3 f0 (942|$#,948|0@5@7&#,2538|$#,)! -3 f1 (942|$#,948|0@5@7&#,2538|$#,)! +3 e!253{INITFILE1,INITLINES1,INITLINES2,INITLINES3,INITLINE1,INITLINE2,CLASSIFICATION1,CLASSIFICATION2,CLASSIFICATION3,CHARCLASS1,CHARCLASS2,CHARCLASS3,CHARCLASS4,CHARCLASS5,CHARCLASS6,LRC_ENDCOMMENT1,LRC_ENDCOMMENT2,IDCHARS1,IDCHARS2,OPCHARS1,OPCHARS2,LRC_EXTENSIONCHAR1,SINGCHARS1,SINGCHARS2,WHITECHARS1,WHITECHARS2,LRC_ENDCOMMENTCHAR1,IDCHAR1,OPCHAR1,SINGCHAR1,WHITECHAR1,TOKENCLASS1,TOKENCLASS2,TOKENCLASS3,TOKENCLASS4,TOKENCLASS5,TOKENCLASS6,TOKENCLASS7,TOKENCLASS8,TOKENCLASS9,TOKENCLASS10,TOKENCLASS11,TOKENCLASS12,TOKENCLASS13,QUANTIFIERSYMTOKS1,QUANTIFIERSYMTOKS2,LOGICALOPTOKS1,LOGICALOPTOKS2,LRC_EQOPTOKS1,LRC_EQOPTOKS2,LRC_EQUATIONSYMTOKS1,LRC_EQUATIONSYMTOKS2,LRC_EQSEPSYMTOKS1,LRC_EQSEPSYMTOKS2,SELECTSYMTOKS1,SELECTSYMTOKS2,OPENSYMTOKS1,OPENSYMTOKS2,SEPSYMTOKS1,SEPSYMTOKS2,CLOSESYMTOKS1,CLOSESYMTOKS2,SIMPLEIDTOKS1,SIMPLEIDTOKS2,MAPSYMTOKS1,MAPSYMTOKS2,MARKERSYMTOKS1,MARKERSYMTOKS2,COMMENTSYMTOKS1,COMMENTSYMTOKS2,QUANTIFIERSYMTOK1,LOGICALOPTOK1,LRC_EQOPTOK1,LRC_EQUATIONSYMTOK1,LRC_EQSEPSYMTOK1,SELECTSYMTOK1,OPENSYMTOK1,SEPSYMTOK1,CLOSESYMTOK1,SIMPLEIDTOK1,MAPSYMTOK1,MARKERSYMTOK1,COMMENTSYMTOK1,SYNCLASS1,OLDTOKEN1,NEWTOKEN1}! +0 s7770|& +0 s7771|& +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (961|$#,)! +3 f961 (961|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f5 (1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f3540 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (3660|$#,)! +3 f1 (3660|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@2&#,)! +3 f1 (1117|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f1 (1117|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f0 (1117|0@5@2&#,)! +3 f5 (1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f3540 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (961|$#,)! +3 f961 (961|$#,)! +3 f0 (3434|$#,)! +3 f1117 (3434|$#,)! +3 f0 (3573|$#,)! +3 f1117 (3573|$#,)! +3 f0 (3583|$#,)! +3 f1117 (3583|$#,)! +3 f0 (3444|$#,)! +3 f1117 (3444|$#,)! +3 f0 (3606|$#,)! +3 f1117 (3606|$#,)! +3 f0 (3620|$#,)! +3 f1117 (3620|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@2&#,)! +3 f1 (1117|0@5@7&#,1117|0@5@2&#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f1 (1117|0@5@7&#,1117|0@5@7&#,2|$#,)! +3 f0 (3660|$#,)! +3 f1 (3660|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (3670|$#,)! +3 f1 (3670|$#,)! +3 f0 (956|0@5@7&#,3253|$#,3271|$#,)! +3 f1117 (956|0@5@7&#,3253|$#,3271|$#,)! +3 f0 (3390|$#,)! +3 f1117 (3390|$#,)! +3 f0 (956|0@5@7&#,3013|$#,)! +3 f1117 (956|0@5@7&#,3013|$#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 S!254{211|@1|11@5@18&#f,1117|@1|11@5@3&#name,}! +0 s7792|& +0 s7793|& +3 f0 (956|0@5@7&#,)! +3 f1117 (956|0@5@7&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (3013|$#,)! +3 f1117 (3013|$#,)! +3 f0 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f19 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f211 (1117|0@5@7&#,1117|0@5@7&#,)! +3 f0 (956|0@5@7&#,3013|$#,)! +3 f1117 (956|0@5@7&#,3013|$#,)! +3 f0 (3013|$#,)! +3 f1117 (3013|$#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (3390|$#,)! +3 f1117 (3390|$#,)! +3 f0 (956|0@5@7&#,)! +3 f1117 (956|0@5@7&#,)! +3 f0 (956|0@5@7&#,3253|$#,3271|$#,)! +3 f1117 (956|0@5@7&#,3253|$#,3271|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1 (1117|0@5@2&#,)! +3 f0 (3670|$#,)! +3 f1 (3670|$#,)! +3 f0 (3739|$#,)! +3 f1117 (3739|$#,)! +3 f0 (3528|0@5@7&#,3739|$#,960|$#,)! +3 f2963 (3528|0@5@7&#,3739|$#,960|$#,)! +3 f0 (3528|0@5@7&#,)! +3 f2 (3528|0@5@7&#,)! +3 f0 (941|$#,960|$#,)! +3 f1 (941|$#,960|$#,)! +3 f0 (941|@5|0@5@7&#,)! +3 f941 (941|@5|0@5@7&#,)! +3 f0 (3739|$#,)! +3 f1117 (3739|$#,)! +3 f0 (941|@5|$#,)! +3 f941 (941|@5|$#,)! +3 f0 (941|$#,960|$#,)! +3 f1 (941|$#,960|$#,)! +3 f0 (967|0@5@7&#,947|$#,)! +3 f1 (967|0@5@7&#,947|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (1117|0@5@7&#,)! +3 f2 (1117|0@5@7&#,)! +3 f0 (3528|0@5@7&#,)! +3 f2 (3528|0@5@7&#,)! +3 f0 (3528|0@5@7&#,3739|$#,960|$#,)! +3 f2963 (3528|0@5@7&#,3739|$#,960|$#,)! +3 S!255{1142|@1|^#pt,2670|@1|^#ts,}! +0 s7794|& +0 s7795|-1 -1 17640 +2 y17639|17639& +3 f0 (1142|$#,)! +3 f961 (1142|$#,)! +3 f0 (1142|$#,)! +3 f961 (1142|$#,)! +3 f0 (961|$#,967|0@5@7&#,2882|$#,)! +3 f1 (961|$#,967|0@5@7&#,2882|$#,)! 3 f0 (23|$#,23|$#,23|$#,)! 3 f1 (23|$#,23|$#,23|$#,)! 3 f0 ()! @@ -15670,20 +17657,20 @@ 3 f1 (23|$#,23|$#,23|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (942|$#,948|0@5@7&#,2538|$#,)! -3 f1 (942|$#,948|0@5@7&#,2538|$#,)! +3 f0 (961|$#,967|0@5@7&#,2882|$#,)! +3 f1 (961|$#,967|0@5@7&#,2882|$#,)! 2 F0/0|0& 2 F4/0|4& -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (948|0@5@2&#,)! -3 f1 (948|0@5@2&#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (967|0@5@2&#,)! +3 f1 (967|0@5@2&#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 (2|$#,)! 3 f1 (2|$#,)! -3 f0 (948|0@5@7&#,23|0@0@6&#,)! -3 f1 (948|0@5@7&#,23|0@0@6&#,)! +3 f0 (967|0@5@7&#,23|0@0@6&#,)! +3 f1 (967|0@5@7&#,23|0@0@6&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -15778,24 +17765,24 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (15523|$#,)! -3 f1 (15523|$#,)! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! +3 f0 (17510|$#,)! +3 f1 (17510|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! -3 f0 (949|$#,)! -3 f1 (949|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! +3 f0 (968|$#,)! +3 f1 (968|$#,)! 3 f0 ()! 3 f1 ()! 2 F0/0|0& 2 F2/0|2& -3 f0 (948|0@5@7&#,)! -3 f2 (948|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f2 (967|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -15892,35 +17879,35 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (15523|$#,)! -3 f1 (15523|$#,)! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! +3 f0 (17510|$#,)! +3 f1 (17510|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! -3 f0 (949|$#,)! -3 f1 (949|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! +3 f0 (968|$#,)! +3 f1 (968|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (948|0@5@7&#,23|0@0@6&#,)! -3 f1 (948|0@5@7&#,23|0@0@6&#,)! +3 f0 (967|0@5@7&#,23|0@0@6&#,)! +3 f1 (967|0@5@7&#,23|0@0@6&#,)! 3 f0 (23|$#,)! -3 f948 (23|$#,)! +3 f967 (23|$#,)! 3 f0 ()! 3 f1 ()! -0 s122|& +0 s7803|& 3 f0 (5|$#,)! 3 f1 (5|$#,)! -3 f0 (942|$#,942|$#,)! -3 f1 (942|$#,942|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (942|$#,)! -3 f2 (942|$#,)! +3 f0 (961|$#,961|$#,)! +3 f1 (961|$#,961|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (961|$#,)! +3 f2 (961|$#,)! 3 f0 (5|$#,)! 3 f1 (5|$#,)! 3 f0 ()! @@ -15929,684 +17916,684 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (942|$#,942|$#,)! -3 f1 (942|$#,942|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (942|$#,)! -3 f2 (942|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (2968|$#,4997|0@5@2&#,991|$#,4256|$#,2|$#,2|$#,)! -3 f1 (2968|$#,4997|0@5@2&#,991|$#,4256|$#,2|$#,2|$#,)! -3 f0 (2346|0@5@7&#,)! -3 f4297 (2346|0@5@7&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f4997 (937|0@5@7&#,)! -3 f0 (991|$#,945|0@5@7&#,)! -3 f991 (991|$#,945|0@5@7&#,)! -3 f0 (991|$#,945|0@5@7&#,)! -3 f991 (991|$#,945|0@5@7&#,)! -3 f0 (934|$#,2968|$#,4297|0@5@7&#,)! -3 f952 (934|$#,2968|$#,4297|0@5@7&#,)! -3 f0 (2968|$#,4297|0@5@7&#,)! -3 f972 (2968|$#,4297|0@5@7&#,)! -3 f0 (3025|$#,)! -3 f4297 (3025|$#,)! -3 f0 (2346|0@5@7&#,)! -3 f4297 (2346|0@5@7&#,)! -3 f0 (991|$#,945|0@5@7&#,)! -3 f991 (991|$#,945|0@5@7&#,)! -3 f0 (991|$#,945|0@5@7&#,)! -3 f991 (991|$#,945|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f991 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f3942 (2481|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f4997 (937|0@5@7&#,)! -3 f0 (991|$#,948|0@5@7&#,)! -3 f5075 (991|$#,948|0@5@7&#,)! -3 f0 (2925|$#,2|$#,)! -3 f1 (2925|$#,2|$#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (2934|$#,2|$#,)! -3 f1 (2934|$#,2|$#,)! -3 f0 (4379|@5|0@5@7&#,2934|$#,)! -3 f4379 (4379|@5|0@5@7&#,2934|$#,)! -3 f0 (3009|$#,2|$#,)! -3 f1 (3009|$#,2|$#,)! -3 f0 (2889|$#,2|$#,)! -3 f1 (2889|$#,2|$#,)! -3 f0 (3050|$#,2|$#,)! -3 f1 (3050|$#,2|$#,)! -3 f0 (2999|$#,)! -3 f1 (2999|$#,)! -3 f0 (2968|$#,4997|0@5@2&#,991|$#,4256|$#,2|$#,2|$#,)! -3 f1 (2968|$#,4997|0@5@2&#,991|$#,4256|$#,2|$#,2|$#,)! -3 f0 (2968|$#,4256|$#,2|$#,2|$#,)! -3 f1 (2968|$#,4256|$#,2|$#,2|$#,)! -3 f0 (989|0@5@7&#,2968|$#,)! -3 f5 (989|0@5@7&#,2968|$#,)! -3 f0 (989|0@5@7&#,2968|$#,)! -3 f934 (989|0@5@7&#,2968|$#,)! -3 f0 (3125|0@5@7&#,940|$#,2968|$#,4297|0@5@7&#,)! -3 f952 (3125|0@5@7&#,940|$#,2968|$#,4297|0@5@7&#,)! -3 f0 (934|$#,2968|$#,4297|0@5@7&#,)! -3 f952 (934|$#,2968|$#,4297|0@5@7&#,)! -3 f0 (2968|$#,4297|0@5@7&#,)! -3 f972 (2968|$#,4297|0@5@7&#,)! -3 f0 (2328|$#,)! -3 f989 (2328|$#,)! -3 f0 (2328|$#,)! -3 f955 (2328|$#,)! -3 f0 (2346|0@5@7&#,)! -3 f4297 (2346|0@5@7&#,)! -3 f0 (2885|0@5@2&#,)! -3 f1 (2885|0@5@2&#,)! -3 f0 (2889|0@5@2&#,)! -3 f1 (2889|0@5@2&#,)! -3 f0 (2898|0@5@2&#,)! -3 f1 (2898|0@5@2&#,)! -3 f0 (2898|0@5@7&#,)! -3 f2898 (2898|0@5@7&#,)! -3 f0 (2925|0@5@2&#,)! -3 f1 (2925|0@5@2&#,)! -3 f0 (2962|0@5@2&#,)! -3 f1 (2962|0@5@2&#,)! -3 f0 (2999|0@5@2&#,)! -3 f1 (2999|0@5@2&#,)! -3 f0 (3003|0@5@2&#,)! -3 f1 (3003|0@5@2&#,)! -3 f0 (3009|0@5@2&#,)! -3 f1 (3009|0@5@2&#,)! -3 f0 (3042|0@5@2&#,)! -3 f1 (3042|0@5@2&#,)! -3 f0 (3050|0@5@2&#,)! -3 f1 (3050|0@5@2&#,)! -3 f0 (3058|0@5@7&#,)! -3 f3058 (3058|0@5@7&#,)! -3 f0 (3058|0@5@2&#,)! -3 f1 (3058|0@5@2&#,)! -3 f0 (3064|0@5@2&#,)! -3 f1 (3064|0@5@2&#,)! -3 f0 (3064|0@5@7&#,)! -3 f3064 (3064|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f937 (937|0@5@7&#,)! -3 f0 (937|0@5@2&#,)! -3 f1 (937|0@5@2&#,)! -3 f0 (3089|0@5@2&#,)! -3 f1 (3089|0@5@2&#,)! -3 f0 (3125|0@5@2&#,)! -3 f1 (3125|0@5@2&#,)! -3 f0 (3130|$#,)! -3 f3130 (3130|$#,)! -3 f0 (3258|0@5@2&#,)! -3 f1 (3258|0@5@2&#,)! -3 f0 (3264|0@5@2&#,)! -3 f1 (3264|0@5@2&#,)! -3 f0 (3296|0@5@2&#,)! -3 f1 (3296|0@5@2&#,)! -3 f0 (3307|0@5@2&#,)! -3 f1 (3307|0@5@2&#,)! -3 f0 (934|0@5@7&#,)! -3 f934 (934|0@5@7&#,)! +3 f0 (961|$#,961|$#,)! +3 f1 (961|$#,961|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (961|$#,)! +3 f2 (961|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (3309|$#,5461|0@5@2&#,1119|$#,4650|$#,2|$#,2|$#,)! +3 f1 (3309|$#,5461|0@5@2&#,1119|$#,4650|$#,2|$#,2|$#,)! +3 f0 (2702|0@5@7&#,)! +3 f4717 (2702|0@5@7&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f5461 (956|0@5@7&#,)! +3 f0 (1119|$#,964|0@5@7&#,)! +3 f1119 (1119|$#,964|0@5@7&#,)! +3 f0 (1119|$#,964|0@5@7&#,)! +3 f1119 (1119|$#,964|0@5@7&#,)! +3 f0 (941|$#,3309|$#,4717|0@5@7&#,)! +3 f971 (941|$#,3309|$#,4717|0@5@7&#,)! +3 f0 (3309|$#,4717|0@5@7&#,)! +3 f994 (3309|$#,4717|0@5@7&#,)! +3 f0 (3365|$#,)! +3 f4717 (3365|$#,)! +3 f0 (2702|0@5@7&#,)! +3 f4717 (2702|0@5@7&#,)! +3 f0 (1119|$#,964|0@5@7&#,)! +3 f1119 (1119|$#,964|0@5@7&#,)! +3 f0 (1119|$#,964|0@5@7&#,)! +3 f1119 (1119|$#,964|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1119 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f4327 (2837|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f5461 (956|0@5@7&#,)! +3 f0 (1119|$#,967|0@5@7&#,)! +3 f5547 (1119|$#,967|0@5@7&#,)! +3 f0 (3266|$#,2|$#,)! +3 f1 (3266|$#,2|$#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (3275|$#,2|$#,)! +3 f1 (3275|$#,2|$#,)! +3 f0 (1106|@5|0@5@7&#,3275|$#,)! +3 f1106 (1106|@5|0@5@7&#,3275|$#,)! +3 f0 (3349|$#,2|$#,)! +3 f1 (3349|$#,2|$#,)! +3 f0 (3230|$#,2|$#,)! +3 f1 (3230|$#,2|$#,)! +3 f0 (3390|$#,2|$#,)! +3 f1 (3390|$#,2|$#,)! +3 f0 (3340|$#,)! +3 f1 (3340|$#,)! +3 f0 (3309|$#,5461|0@5@2&#,1119|$#,4650|$#,2|$#,2|$#,)! +3 f1 (3309|$#,5461|0@5@2&#,1119|$#,4650|$#,2|$#,2|$#,)! +3 f0 (3309|$#,4650|$#,2|$#,2|$#,)! +3 f1 (3309|$#,4650|$#,2|$#,2|$#,)! +3 f0 (1117|0@5@7&#,3309|$#,)! +3 f5 (1117|0@5@7&#,3309|$#,)! +3 f0 (1117|0@5@7&#,3309|$#,)! +3 f941 (1117|0@5@7&#,3309|$#,)! +3 f0 (938|0@5@7&#,959|$#,3309|$#,4717|0@5@7&#,)! +3 f971 (938|0@5@7&#,959|$#,3309|$#,4717|0@5@7&#,)! +3 f0 (941|$#,3309|$#,4717|0@5@7&#,)! +3 f971 (941|$#,3309|$#,4717|0@5@7&#,)! +3 f0 (3309|$#,4717|0@5@7&#,)! +3 f994 (3309|$#,4717|0@5@7&#,)! +3 f0 (2684|$#,)! +3 f1117 (2684|$#,)! +3 f0 (2684|$#,)! +3 f974 (2684|$#,)! +3 f0 (2702|0@5@7&#,)! +3 f4717 (2702|0@5@7&#,)! +3 f0 (947|0@5@2&#,)! +3 f1 (947|0@5@2&#,)! +3 f0 (3230|0@5@2&#,)! +3 f1 (3230|0@5@2&#,)! +3 f0 (3239|0@5@2&#,)! +3 f1 (3239|0@5@2&#,)! +3 f0 (3239|0@5@7&#,)! +3 f3239 (3239|0@5@7&#,)! +3 f0 (3266|0@5@2&#,)! +3 f1 (3266|0@5@2&#,)! +3 f0 (3303|0@5@2&#,)! +3 f1 (3303|0@5@2&#,)! +3 f0 (3340|0@5@2&#,)! +3 f1 (3340|0@5@2&#,)! +3 f0 (944|0@5@2&#,)! +3 f1 (944|0@5@2&#,)! +3 f0 (3349|0@5@2&#,)! +3 f1 (3349|0@5@2&#,)! +3 f0 (3382|0@5@2&#,)! +3 f1 (3382|0@5@2&#,)! 3 f0 (3390|0@5@2&#,)! 3 f1 (3390|0@5@2&#,)! -3 f0 (945|0@5@7&#,)! -3 f945 (945|0@5@7&#,)! -3 f0 (2706|$#,)! -3 f989 (2706|$#,)! -3 f0 (945|0@5@7&#,)! -3 f2651 (945|0@5@7&#,)! -3 f0 (937|0@5@7&#,2710|$#,)! -3 f941 (937|0@5@7&#,2710|$#,)! -3 f0 (934|$#,948|0@5@7&#,)! -3 f1 (934|$#,948|0@5@7&#,)! +3 f0 (3399|0@5@7&#,)! +3 f3399 (3399|0@5@7&#,)! +3 f0 (3399|0@5@2&#,)! +3 f1 (3399|0@5@2&#,)! +3 f0 (3405|0@5@2&#,)! +3 f1 (3405|0@5@2&#,)! +3 f0 (3405|0@5@7&#,)! +3 f3405 (3405|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f956 (956|0@5@7&#,)! +3 f0 (956|0@5@2&#,)! +3 f1 (956|0@5@2&#,)! +3 f0 (3430|0@5@2&#,)! +3 f1 (3430|0@5@2&#,)! +3 f0 (938|0@5@2&#,)! +3 f1 (938|0@5@2&#,)! +3 f0 (3470|$#,)! +3 f3470 (3470|$#,)! +3 f0 (3600|0@5@2&#,)! +3 f1 (3600|0@5@2&#,)! +3 f0 (3606|0@5@2&#,)! +3 f1 (3606|0@5@2&#,)! +3 f0 (3638|0@5@2&#,)! +3 f1 (3638|0@5@2&#,)! +3 f0 (3649|0@5@2&#,)! +3 f1 (3649|0@5@2&#,)! +3 f0 (941|0@5@7&#,)! +3 f941 (941|0@5@7&#,)! +3 f0 (950|0@5@2&#,)! +3 f1 (950|0@5@2&#,)! +3 f0 (964|0@5@7&#,)! +3 f964 (964|0@5@7&#,)! +3 f0 (3076|$#,)! +3 f1117 (3076|$#,)! +3 f0 (964|0@5@7&#,)! +3 f2998 (964|0@5@7&#,)! +3 f0 (956|0@5@7&#,3013|$#,)! +3 f960 (956|0@5@7&#,3013|$#,)! +3 f0 (941|$#,967|0@5@7&#,)! +3 f1 (941|$#,967|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 (5|$#,)! -3 f989 (5|$#,)! -3 f0 (937|0@5@7&#,945|$#,)! -3 f1 (937|0@5@7&#,945|$#,)! -3 f0 (989|0@5@7&#,)! -3 f1 (989|0@5@7&#,)! +3 f1117 (5|$#,)! +3 f0 (956|0@5@7&#,964|$#,)! +3 f1 (956|0@5@7&#,964|$#,)! +3 f0 (1117|0@5@7&#,)! +3 f1 (1117|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -3 f0 (2710|$#,)! -3 f1 (2710|$#,)! +3 f0 (3013|$#,)! +3 f1 (3013|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (3318|0@0@2&#,3328|@5|$#,)! -3 f3328 (3318|0@0@2&#,3328|@5|$#,)! -3 f0 (2555|0@0@2&#,)! -3 f3318 (2555|0@0@2&#,)! -3 f0 (3278|0@0@2&#,)! -3 f3318 (3278|0@0@2&#,)! -3 f0 (2925|0@0@2&#,)! -3 f3318 (2925|0@0@2&#,)! -3 f0 (2934|0@0@2&#,)! -3 f3318 (2934|0@0@2&#,)! -3 f0 (3050|0@0@2&#,)! -3 f3318 (3050|0@0@2&#,)! -3 f0 (2968|0@0@2&#,)! -3 f3318 (2968|0@0@2&#,)! -3 f0 (2962|0@0@2&#,)! -3 f3318 (2962|0@0@2&#,)! -3 f0 (2999|0@0@2&#,)! -3 f3318 (2999|0@0@2&#,)! -3 f0 (2925|0@0@2&#,)! -3 f3318 (2925|0@0@2&#,)! -3 f0 (2934|0@0@2&#,)! -3 f3318 (2934|0@0@2&#,)! -3 f0 (3050|0@0@2&#,)! -3 f3318 (3050|0@0@2&#,)! -3 f0 (2968|0@0@2&#,)! -3 f3318 (2968|0@0@2&#,)! -3 f0 (3296|$#,)! -3 f989 (3296|$#,)! -3 f0 (3307|$#,)! -3 f989 (3307|$#,)! -3 f0 (2885|0@5@2&#,)! -3 f1 (2885|0@5@2&#,)! -3 f0 (2885|0@5@7&#,)! -3 f989 (2885|0@5@7&#,)! -3 f0 (948|0@5@7&#,948|0@5@7&#,)! -3 f2 (948|0@5@7&#,948|0@5@7&#,)! -3 f0 (2999|0@5@7&#,)! -3 f989 (2999|0@5@7&#,)! -3 f0 (2968|0@5@7&#,)! -3 f989 (2968|0@5@7&#,)! -3 f0 (2934|0@5@7&#,)! -3 f989 (2934|0@5@7&#,)! -3 f0 (3050|0@5@7&#,)! -3 f989 (3050|0@5@7&#,)! -3 f0 (2925|0@5@7&#,)! -3 f989 (2925|0@5@7&#,)! -3 f0 (934|0@0@2&#,)! -3 f2794 (934|0@0@2&#,)! -3 f0 (937|0@5@2&#,2|$#,)! -3 f2794 (937|0@5@2&#,2|$#,)! -3 f0 ()! -3 f2794 ()! -3 f0 ()! -3 f2794 ()! -3 f0 (948|0@5@2&#,2|$#,)! -3 f2827 (948|0@5@2&#,2|$#,)! -3 f0 (948|0@5@2&#,2812|0@0@2&#,)! -3 f2827 (948|0@5@2&#,2812|0@0@2&#,)! -3 f0 (934|0@5@7&#,)! -3 f948 (934|0@5@7&#,)! -3 f0 (3186|0@5@7&#,)! -3 f948 (3186|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f948 (937|0@5@7&#,)! -3 f0 (941|$#,934|0@5@7&#,)! -3 f2 (941|$#,934|0@5@7&#,)! -3 f0 (948|0@5@2&#,937|0@5@2&#,934|0@0@2&#,)! -3 f2833 (948|0@5@2&#,937|0@5@2&#,934|0@0@2&#,)! -3 f0 (2870|0@0@2&#,2853|$#,)! -3 f2862 (2870|0@0@2&#,2853|$#,)! +3 f0 (3660|0@0@2&#,3670|@5|$#,)! +3 f3670 (3660|0@0@2&#,3670|@5|$#,)! +3 f0 (2900|0@0@2&#,)! +3 f3660 (2900|0@0@2&#,)! +3 f0 (3620|0@0@2&#,)! +3 f3660 (3620|0@0@2&#,)! +3 f0 (3266|0@0@2&#,)! +3 f3660 (3266|0@0@2&#,)! +3 f0 (3275|0@0@2&#,)! +3 f3660 (3275|0@0@2&#,)! 3 f0 (3390|0@0@2&#,)! -3 f2862 (3390|0@0@2&#,)! -3 f0 (3009|0@0@2&#,)! -3 f3050 (3009|0@0@2&#,)! -3 f0 (2889|0@0@2&#,)! -3 f3050 (2889|0@0@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2541 (948|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2541 (948|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f989 (989|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2541 (948|0@5@2&#,)! +3 f3660 (3390|0@0@2&#,)! +3 f0 (3309|0@0@2&#,)! +3 f3660 (3309|0@0@2&#,)! +3 f0 (3303|0@0@2&#,)! +3 f3660 (3303|0@0@2&#,)! +3 f0 (3340|0@0@2&#,)! +3 f3660 (3340|0@0@2&#,)! +3 f0 (3266|0@0@2&#,)! +3 f3660 (3266|0@0@2&#,)! +3 f0 (3275|0@0@2&#,)! +3 f3660 (3275|0@0@2&#,)! +3 f0 (3390|0@0@2&#,)! +3 f3660 (3390|0@0@2&#,)! +3 f0 (3309|0@0@2&#,)! +3 f3660 (3309|0@0@2&#,)! +3 f0 (3638|$#,)! +3 f1117 (3638|$#,)! +3 f0 (3649|$#,)! +3 f1117 (3649|$#,)! +3 f0 (947|0@5@2&#,)! +3 f1 (947|0@5@2&#,)! +3 f0 (947|0@5@7&#,)! +3 f1117 (947|0@5@7&#,)! +3 f0 (967|0@5@7&#,967|0@5@7&#,)! +3 f2 (967|0@5@7&#,967|0@5@7&#,)! +3 f0 (3340|0@5@7&#,)! +3 f1117 (3340|0@5@7&#,)! +3 f0 (3309|0@5@7&#,)! +3 f1117 (3309|0@5@7&#,)! +3 f0 (3275|0@5@7&#,)! +3 f1117 (3275|0@5@7&#,)! +3 f0 (3390|0@5@7&#,)! +3 f1117 (3390|0@5@7&#,)! +3 f0 (3266|0@5@7&#,)! +3 f1117 (3266|0@5@7&#,)! +3 f0 (941|0@0@2&#,)! +3 f3141 (941|0@0@2&#,)! +3 f0 (956|0@5@2&#,2|$#,)! +3 f3141 (956|0@5@2&#,2|$#,)! +3 f0 ()! +3 f3141 ()! +3 f0 ()! +3 f3141 ()! +3 f0 (967|0@5@2&#,2|$#,)! +3 f3174 (967|0@5@2&#,2|$#,)! +3 f0 (967|0@5@2&#,3159|0@0@2&#,)! +3 f3174 (967|0@5@2&#,3159|0@0@2&#,)! +3 f0 (941|0@5@7&#,)! +3 f967 (941|0@5@7&#,)! +3 f0 (3528|0@5@7&#,)! +3 f967 (3528|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f967 (956|0@5@7&#,)! +3 f0 (960|$#,941|0@5@7&#,)! +3 f2 (960|$#,941|0@5@7&#,)! +3 f0 (967|0@5@2&#,956|0@5@2&#,941|0@0@2&#,)! +3 f3180 (967|0@5@2&#,956|0@5@2&#,941|0@0@2&#,)! +3 f0 (953|0@0@2&#,3200|$#,)! +3 f3206 (953|0@0@2&#,3200|$#,)! +3 f0 (950|0@0@2&#,)! +3 f3206 (950|0@0@2&#,)! +3 f0 (3349|0@0@2&#,)! +3 f3390 (3349|0@0@2&#,)! +3 f0 (3230|0@0@2&#,)! +3 f3390 (3230|0@0@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f2886 (967|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f2886 (967|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f1117 (1117|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f2886 (967|0@5@2&#,)! 3 f0 (23|0@0@2&#,)! 3 f1 (23|0@0@2&#,)! -3 f0 (948|0@5@7&#,948|0@5@7&#,)! -3 f1 (948|0@5@7&#,948|0@5@7&#,)! -3 f0 (2481|0@5@2&#,3264|0@5@2&#,)! -3 f3270 (2481|0@5@2&#,3264|0@5@2&#,)! -3 f0 (2481|0@5@7&#,)! -3 f989 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f989 (2481|0@5@7&#,)! -3 f0 (2481|0@5@7&#,)! -3 f989 (2481|0@5@7&#,)! -3 f0 (3104|0@0@2&#,3241|0@0@2&#,)! -3 f3264 (3104|0@0@2&#,3241|0@0@2&#,)! -3 f0 (3264|0@5@7&#,)! -3 f989 (3264|0@5@7&#,)! -3 f0 (948|0@5@2&#,3094|0@0@2&#,3186|0@0@2&#,)! -3 f3231 (948|0@5@2&#,3094|0@0@2&#,3186|0@0@2&#,)! -3 f0 (948|0@5@2&#,3094|0@0@2&#,2|$#,948|0@5@2&#,3186|0@5@2&#,3136|0@5@2&#,)! -3 f3231 (948|0@5@2&#,3094|0@0@2&#,2|$#,948|0@5@2&#,3186|0@5@2&#,3136|0@5@2&#,)! -3 f0 (3231|0@5@7&#,)! -3 f989 (3231|0@5@7&#,)! -3 f0 (3125|0@5@2&#,)! -3 f3186 (3125|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f3186 (948|0@5@2&#,)! -3 f0 (3186|0@5@7&#,)! -3 f989 (3186|0@5@7&#,)! -3 f0 (948|0@5@2&#,2481|0@5@2&#,948|0@5@2&#,)! -3 f3136 (948|0@5@2&#,2481|0@5@2&#,948|0@5@2&#,)! -3 f0 (3136|0@5@7&#,)! -3 f989 (3136|0@5@7&#,)! -3 f0 (3136|0@0@17&#,)! -3 f1 (3136|0@0@17&#,)! -3 f0 (3136|0@5@7&#,)! -3 f989 (3136|0@5@7&#,)! -3 f0 (3125|$#,3120|$#,)! -3 f6 (3125|$#,3120|$#,)! -3 f0 (948|0@5@2&#,3120|$#,3123|$#,948|0@5@2&#,)! -3 f3125 (948|0@5@2&#,3120|$#,3123|$#,948|0@5@2&#,)! +3 f0 (967|0@5@7&#,967|0@5@7&#,)! +3 f1 (967|0@5@7&#,967|0@5@7&#,)! +3 f0 (2837|0@5@2&#,3606|0@5@2&#,)! +3 f3612 (2837|0@5@2&#,3606|0@5@2&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1117 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1117 (2837|0@5@7&#,)! +3 f0 (2837|0@5@7&#,)! +3 f1117 (2837|0@5@7&#,)! +3 f0 (3444|0@0@2&#,3583|0@0@2&#,)! +3 f3606 (3444|0@0@2&#,3583|0@0@2&#,)! +3 f0 (3606|0@5@7&#,)! +3 f1117 (3606|0@5@7&#,)! +3 f0 (967|0@5@2&#,3434|0@0@2&#,3528|0@0@2&#,)! +3 f3573 (967|0@5@2&#,3434|0@0@2&#,3528|0@0@2&#,)! +3 f0 (967|0@5@2&#,3434|0@0@2&#,2|$#,967|0@5@2&#,3528|0@5@2&#,3477|0@5@2&#,)! +3 f3573 (967|0@5@2&#,3434|0@0@2&#,2|$#,967|0@5@2&#,3528|0@5@2&#,3477|0@5@2&#,)! +3 f0 (3573|0@5@7&#,)! +3 f1117 (3573|0@5@7&#,)! +3 f0 (938|0@5@2&#,)! +3 f3528 (938|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f3528 (967|0@5@2&#,)! +3 f0 (3528|0@5@7&#,)! +3 f1117 (3528|0@5@7&#,)! +3 f0 (967|0@5@2&#,2837|0@5@2&#,967|0@5@2&#,)! +3 f3477 (967|0@5@2&#,2837|0@5@2&#,967|0@5@2&#,)! +3 f0 (3477|0@5@7&#,)! +3 f1117 (3477|0@5@7&#,)! +3 f0 (3477|0@0@17&#,)! +3 f1 (3477|0@0@17&#,)! +3 f0 (3477|0@5@7&#,)! +3 f1117 (3477|0@5@7&#,)! +3 f0 (938|$#,3460|$#,)! +3 f6 (938|$#,3460|$#,)! +3 f0 (967|0@5@2&#,3460|$#,3463|$#,967|0@5@2&#,)! +3 f938 (967|0@5@2&#,3460|$#,3463|$#,967|0@5@2&#,)! 3 f0 (5|$#,)! -3 f989 (5|$#,)! -3 f0 (3125|0@5@7&#,)! -3 f989 (3125|0@5@7&#,)! -3 f0 (2|$#,937|0@5@2&#,2706|0@0@2&#,)! -3 f3094 (2|$#,937|0@5@2&#,2706|0@0@2&#,)! -3 f0 (3125|0@0@2&#,)! -3 f3094 (3125|0@0@2&#,)! -3 f0 (3094|0@5@7&#,)! -3 f989 (3094|0@5@7&#,)! -3 f0 (937|0@5@2&#,937|0@5@2&#,)! -3 f937 (937|0@5@2&#,937|0@5@2&#,)! -3 f0 (2898|0@5@2&#,)! -3 f937 (2898|0@5@2&#,)! -3 f0 (3058|0@5@2&#,)! -3 f937 (3058|0@5@2&#,)! -3 f0 (3064|0@5@2&#,)! -3 f937 (3064|0@5@2&#,)! -3 f0 (937|0@5@2&#,1500|$#,)! -3 f937 (937|0@5@2&#,1500|$#,)! -3 f0 (937|0@5@7&#,)! -3 f989 (937|0@5@7&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,2481|0@5@17&#,)! -3 f3064 (948|0@5@2&#,948|0@5@2&#,2481|0@5@17&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,)! -3 f3064 (948|0@5@2&#,948|0@5@2&#,)! -3 f0 (3064|0@5@7&#,)! -3 f989 (3064|0@5@7&#,)! -3 f0 (948|0@5@2&#,3055|$#,948|0@5@2&#,3025|0@0@2&#,)! -3 f3058 (948|0@5@2&#,3055|$#,948|0@5@2&#,3025|0@0@2&#,)! -3 f0 (948|0@5@2&#,3055|$#,948|0@5@2&#,)! -3 f3058 (948|0@5@2&#,3055|$#,948|0@5@2&#,)! -3 f0 (3058|0@5@7&#,)! -3 f989 (3058|0@5@7&#,)! -3 f0 (937|0@5@2&#,2720|0@0@2&#,)! -3 f3015 (937|0@5@2&#,2720|0@0@2&#,)! -3 f0 (945|0@5@2&#,2346|0@5@2&#,)! -3 f945 (945|0@5@2&#,2346|0@5@2&#,)! -3 f0 (945|0@5@7&#,)! -3 f948 (945|0@5@7&#,)! -3 f0 (948|0@5@2&#,)! -3 f945 (948|0@5@2&#,)! -3 f0 (945|0@0@2&#,)! -3 f2710 (945|0@0@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2710 (948|0@5@2&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (2710|$#,)! -3 f989 (2710|$#,)! -3 f0 (2710|$#,)! -3 f2710 (2710|$#,)! -3 f0 (945|0@5@7&#,)! -3 f945 (945|0@5@7&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (945|0@5@2&#,)! -3 f1 (945|0@5@2&#,)! -3 f0 (2710|$#,)! -3 f989 (2710|$#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (945|0@5@7&#,)! -3 f989 (945|0@5@7&#,)! -3 f0 (948|0@5@2&#,945|@5|0@5@2&#,)! -3 f945 (948|0@5@2&#,945|@5|0@5@2&#,)! -3 f0 (945|@5|0@5@2&#,2735|0@0@2&#,)! -3 f945 (945|@5|0@5@2&#,2735|0@0@2&#,)! -3 f0 (937|0@5@2&#,2912|0@0@2&#,)! -3 f2925 (937|0@5@2&#,2912|0@0@2&#,)! -3 f0 ()! -3 f2934 ()! -3 f0 ()! -3 f2934 ()! -3 f0 (937|0@5@2&#,2912|0@0@2&#,2|$#,2|$#,)! -3 f2934 (937|0@5@2&#,2912|0@0@2&#,2|$#,2|$#,)! -3 f0 (2710|0@0@2&#,934|0@5@2&#,)! -3 f2902 (2710|0@0@2&#,934|0@5@2&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,2|$#,2|$#,3003|0@0@2&#,)! -3 f3009 (948|0@5@2&#,948|0@5@2&#,2|$#,2|$#,3003|0@0@2&#,)! -3 f0 (3009|$#,)! -3 f989 (3009|$#,)! -3 f0 (937|0@5@7&#,)! -3 f1 (937|0@5@7&#,)! -3 f0 (948|0@5@2&#,937|0@5@2&#,2678|0@0@2&#,)! -3 f2889 (948|0@5@2&#,937|0@5@2&#,2678|0@0@2&#,)! -3 f0 (2889|$#,)! -3 f989 (2889|$#,)! -3 f0 (2710|0@0@2&#,3003|0@0@2&#,)! -3 f2668 (2710|0@0@2&#,3003|0@0@2&#,)! -3 f0 (2668|$#,)! -3 f989 (2668|$#,)! -3 f0 (3003|$#,)! -3 f989 (3003|$#,)! -3 f0 (3003|$#,)! -3 f989 (3003|$#,)! -3 f0 (3042|$#,)! -3 f989 (3042|$#,)! -3 f0 (945|0@5@7&#,)! -3 f2346 (945|0@5@7&#,)! -3 f0 (937|0@5@2&#,2710|0@0@2&#,)! -3 f2968 (937|0@5@2&#,2710|0@0@2&#,)! -3 f0 (948|0@5@2&#,2346|0@5@2&#,)! -3 f2999 (948|0@5@2&#,2346|0@5@2&#,)! -3 f0 (1500|$#,937|0@5@2&#,2710|0@0@2&#,2954|0@5@2&#,2944|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,2827|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,)! -3 f2968 (1500|$#,937|0@5@2&#,2710|0@0@2&#,2954|0@5@2&#,2944|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,2827|0@5@2&#,2885|0@5@2&#,2885|0@5@2&#,)! -3 f0 (948|0@5@2&#,2346|0@5@2&#,2954|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2862|0@5@2&#,2885|0@5@2&#,)! -3 f2962 (948|0@5@2&#,2346|0@5@2&#,2954|0@5@2&#,2841|0@5@2&#,2885|0@5@2&#,2862|0@5@2&#,2885|0@5@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f2885 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,934|0@0@2&#,2882|$#,)! -3 f2885 (948|0@5@2&#,934|0@0@2&#,2882|$#,)! -3 f0 (2749|0@0@2&#,948|0@5@2&#,)! -3 f2764 (2749|0@0@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,934|0@5@2&#,)! -3 f2735 (948|0@5@2&#,934|0@5@2&#,)! -3 f0 (948|0@5@2&#,2|$#,937|0@5@2&#,)! -3 f2739 (948|0@5@2&#,2|$#,937|0@5@2&#,)! -3 f0 (948|0@5@2&#,2978|0@5@2&#,)! -3 f3003 (948|0@5@2&#,2978|0@5@2&#,)! -3 f0 (948|0@5@2&#,2885|0@0@2&#,)! -3 f3003 (948|0@5@2&#,2885|0@0@2&#,)! -3 f0 (948|0@5@2&#,2481|0@5@2&#,)! -3 f3003 (948|0@5@2&#,2481|0@5@2&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,)! -3 f3390 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,)! -3 f0 (2706|$#,)! -3 f989 (2706|$#,)! -3 f0 (937|0@5@2&#,945|0@0@2&#,)! -3 f2328 (937|0@5@2&#,945|0@0@2&#,)! -3 f0 ()! -3 f2328 ()! -3 f0 (945|$#,)! -3 f948 (945|$#,)! -3 f0 (937|0@5@7&#,945|$#,)! -3 f1 (937|0@5@7&#,945|$#,)! -3 f0 (2328|$#,)! -3 f989 (2328|$#,)! -3 f0 (937|0@5@7&#,)! -3 f989 (937|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f989 (937|0@5@7&#,)! -3 f0 (2328|$#,)! -3 f989 (2328|$#,)! -3 f0 (948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f934 (948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f0 (3186|$#,)! -3 f948 (3186|$#,)! -3 f0 (934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f934 (934|0@0@2&#,948|0@5@2&#,934|0@0@2&#,)! -3 f0 (3130|$#,)! -3 f3130 (3130|$#,)! -3 f0 (2774|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,)! -3 f934 (2774|0@0@2&#,948|0@5@2&#,934|0@0@2&#,948|0@5@2&#,)! -3 f0 (934|@5|0@0@2&#,2481|0@5@2&#,)! -3 f934 (934|@5|0@0@2&#,2481|0@5@2&#,)! -3 f0 (934|@5|0@0@2&#,948|0@5@2&#,)! -3 f934 (934|@5|0@0@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,934|0@0@2&#,)! -3 f934 (948|0@5@2&#,934|0@0@2&#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f0 (934|@5|$#,940|$#,)! -3 f934 (934|@5|$#,940|$#,)! -3 f0 (934|$#,948|0@5@7&#,)! -3 f1 (934|$#,948|0@5@7&#,)! -3 f0 (940|@5|$#,948|0@5@2&#,934|0@0@2&#,)! -3 f940 (940|@5|$#,948|0@5@2&#,934|0@0@2&#,)! -3 f0 (934|0@5@2&#,934|@5|$#,934|0@5@2&#,)! -3 f934 (934|0@5@2&#,934|@5|$#,934|0@5@2&#,)! -3 f0 (934|0@5@2&#,934|@5|0@0@2&#,934|0@5@2&#,)! -3 f934 (934|0@5@2&#,934|@5|0@0@2&#,934|0@5@2&#,)! -3 f0 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,940|0@0@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f934 (948|0@5@2&#,)! -3 f0 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f934 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f0 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f934 (934|0@0@2&#,948|0@5@2&#,948|0@5@18&#,)! -3 f0 (948|0@5@2&#,941|$#,)! -3 f934 (948|0@5@2&#,941|$#,)! -3 f0 (948|0@5@2&#,948|0@5@2&#,)! -3 f934 (948|0@5@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,2812|0@0@2&#,)! -3 f934 (948|0@5@2&#,2812|0@0@2&#,)! -3 f0 (948|0@5@2&#,937|0@5@2&#,)! -3 f934 (948|0@5@2&#,937|0@5@2&#,)! -3 f0 (2962|$#,)! -3 f989 (2962|$#,)! -3 f0 (948|0@5@7&#,5|$#,5|$#,)! -3 f1 (948|0@5@7&#,5|$#,5|$#,)! -3 f0 (3125|0@5@7&#,940|$#,941|$#,)! -3 f989 (3125|0@5@7&#,940|$#,941|$#,)! -3 f0 (934|0@5@7&#,)! -3 f989 (934|0@5@7&#,)! -3 f0 (2827|0@5@2&#,)! -3 f1 (2827|0@5@2&#,)! -3 f0 (2827|0@5@7&#,)! -3 f989 (2827|0@5@7&#,)! -3 f0 (2862|$#,)! -3 f989 (2862|$#,)! -3 f0 (3390|$#,)! -3 f989 (3390|$#,)! -3 f0 (3186|0@5@2&#,3136|0@0@18&#,)! -3 f3198 (3186|0@5@2&#,3136|0@0@18&#,)! -3 f0 (3198|$#,)! -3 f989 (3198|$#,)! -3 f0 (3125|0@5@7&#,3125|0@5@7&#,)! -3 f2 (3125|0@5@7&#,3125|0@5@7&#,)! -3 f0 (3186|0@5@7&#,3186|0@5@7&#,)! -3 f2 (3186|0@5@7&#,3186|0@5@7&#,)! -3 f0 (2898|0@5@2&#,)! -3 f1 (2898|0@5@2&#,)! -3 f0 (2898|0@5@7&#,)! -3 f2898 (2898|0@5@7&#,)! -3 f0 (2898|0@5@2&#,948|0@5@2&#,)! -3 f2898 (2898|0@5@2&#,948|0@5@2&#,)! -3 f0 (948|0@5@2&#,)! -3 f2898 (948|0@5@2&#,)! -3 f0 (3136|$#,3136|$#,)! -3 f2 (3136|$#,3136|$#,)! -3 f0 (941|$#,945|0@5@7&#,)! -3 f941 (941|$#,945|0@5@7&#,)! -3 f0 (941|$#,945|0@5@7&#,)! -3 f941 (941|$#,945|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f941 (937|0@5@7&#,)! -3 f0 (2535|$#,948|0@5@2&#,)! -3 f942 (2535|$#,948|0@5@2&#,)! -3 f0 (937|0@5@7&#,2710|$#,)! -3 f941 (937|0@5@7&#,2710|$#,)! -3 f0 (3177|0@0@2&#,)! -3 f1 (3177|0@0@2&#,)! -3 f0 (3177|$#,)! -3 f989 (3177|$#,)! -3 f0 (2954|$#,)! -3 f2651 (2954|$#,)! -3 f0 (937|0@5@7&#,2710|$#,2954|$#,)! -3 f1 (937|0@5@7&#,2710|$#,2954|$#,)! -3 f0 (2346|0@5@7&#,2954|$#,)! -3 f1 (2346|0@5@7&#,2954|$#,)! -3 f0 (945|0@5@7&#,)! -3 f2651 (945|0@5@7&#,)! -3 f0 (3136|$#,)! -3 f941 (3136|$#,)! -3 f0 (3136|$#,)! -3 f2570 (3136|$#,)! -3 f0 (948|0@5@6&#,)! -3 f3123 (948|0@5@6&#,)! +3 f1117 (5|$#,)! +3 f0 (938|0@5@7&#,)! +3 f1117 (938|0@5@7&#,)! +3 f0 (2|$#,956|0@5@2&#,3076|0@0@2&#,)! +3 f3434 (2|$#,956|0@5@2&#,3076|0@0@2&#,)! +3 f0 (938|0@0@2&#,)! +3 f3434 (938|0@0@2&#,)! +3 f0 (3434|0@5@7&#,)! +3 f1117 (3434|0@5@7&#,)! +3 f0 (956|0@5@2&#,956|0@5@2&#,)! +3 f956 (956|0@5@2&#,956|0@5@2&#,)! +3 f0 (3239|0@5@2&#,)! +3 f956 (3239|0@5@2&#,)! +3 f0 (3399|0@5@2&#,)! +3 f956 (3399|0@5@2&#,)! +3 f0 (3405|0@5@2&#,)! +3 f956 (3405|0@5@2&#,)! +3 f0 (956|0@5@2&#,1706|$#,)! +3 f956 (956|0@5@2&#,1706|$#,)! +3 f0 (956|0@5@7&#,)! +3 f1117 (956|0@5@7&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,2837|0@5@17&#,)! +3 f3405 (967|0@5@2&#,967|0@5@2&#,2837|0@5@17&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,)! +3 f3405 (967|0@5@2&#,967|0@5@2&#,)! +3 f0 (3405|0@5@7&#,)! +3 f1117 (3405|0@5@7&#,)! +3 f0 (967|0@5@2&#,3395|$#,967|0@5@2&#,3365|0@0@2&#,)! +3 f3399 (967|0@5@2&#,3395|$#,967|0@5@2&#,3365|0@0@2&#,)! +3 f0 (967|0@5@2&#,3395|$#,967|0@5@2&#,)! +3 f3399 (967|0@5@2&#,3395|$#,967|0@5@2&#,)! +3 f0 (3399|0@5@7&#,)! +3 f1117 (3399|0@5@7&#,)! +3 f0 (956|0@5@2&#,3023|0@0@2&#,)! +3 f3355 (956|0@5@2&#,3023|0@0@2&#,)! +3 f0 (964|0@5@2&#,2702|0@5@2&#,)! +3 f964 (964|0@5@2&#,2702|0@5@2&#,)! +3 f0 (964|0@5@7&#,)! +3 f967 (964|0@5@7&#,)! +3 f0 (967|0@5@2&#,)! +3 f964 (967|0@5@2&#,)! +3 f0 (964|0@0@2&#,)! +3 f3013 (964|0@0@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f3013 (967|0@5@2&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (3013|$#,)! +3 f1117 (3013|$#,)! +3 f0 (3013|$#,)! +3 f3013 (3013|$#,)! +3 f0 (964|0@5@7&#,)! +3 f964 (964|0@5@7&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (964|0@5@2&#,)! +3 f1 (964|0@5@2&#,)! +3 f0 (3013|$#,)! +3 f1117 (3013|$#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (964|0@5@7&#,)! +3 f1117 (964|0@5@7&#,)! +3 f0 (967|0@5@2&#,964|@5|0@5@2&#,)! +3 f964 (967|0@5@2&#,964|@5|0@5@2&#,)! +3 f0 (964|@5|0@5@2&#,3082|0@0@2&#,)! +3 f964 (964|@5|0@5@2&#,3082|0@0@2&#,)! +3 f0 (956|0@5@2&#,3253|0@0@2&#,)! +3 f3266 (956|0@5@2&#,3253|0@0@2&#,)! +3 f0 ()! +3 f3275 ()! +3 f0 ()! +3 f3275 ()! +3 f0 (956|0@5@2&#,3253|0@0@2&#,2|$#,2|$#,)! +3 f3275 (956|0@5@2&#,3253|0@0@2&#,2|$#,2|$#,)! +3 f0 (3013|0@0@2&#,941|0@5@2&#,)! +3 f3243 (3013|0@0@2&#,941|0@5@2&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,2|$#,2|$#,944|0@0@2&#,)! +3 f3349 (967|0@5@2&#,967|0@5@2&#,2|$#,2|$#,944|0@0@2&#,)! +3 f0 (3349|$#,)! +3 f1117 (3349|$#,)! +3 f0 (956|0@5@7&#,)! +3 f1 (956|0@5@7&#,)! +3 f0 (967|0@5@2&#,956|0@5@2&#,3048|0@0@2&#,)! +3 f3230 (967|0@5@2&#,956|0@5@2&#,3048|0@0@2&#,)! +3 f0 (3230|$#,)! +3 f1117 (3230|$#,)! +3 f0 (3013|0@0@2&#,944|0@0@2&#,)! +3 f3038 (3013|0@0@2&#,944|0@0@2&#,)! +3 f0 (3038|$#,)! +3 f1117 (3038|$#,)! +3 f0 (944|$#,)! +3 f1117 (944|$#,)! +3 f0 (944|$#,)! +3 f1117 (944|$#,)! +3 f0 (3382|$#,)! +3 f1117 (3382|$#,)! +3 f0 (964|0@5@7&#,)! +3 f2702 (964|0@5@7&#,)! +3 f0 (956|0@5@2&#,3013|0@0@2&#,)! +3 f3309 (956|0@5@2&#,3013|0@0@2&#,)! +3 f0 (967|0@5@2&#,2702|0@5@2&#,)! +3 f3340 (967|0@5@2&#,2702|0@5@2&#,)! +3 f0 (1706|$#,956|0@5@2&#,3013|0@0@2&#,3295|0@5@2&#,3285|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,947|0@5@2&#,3174|0@5@2&#,947|0@5@2&#,947|0@5@2&#,)! +3 f3309 (1706|$#,956|0@5@2&#,3013|0@0@2&#,3295|0@5@2&#,3285|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,947|0@5@2&#,3174|0@5@2&#,947|0@5@2&#,947|0@5@2&#,)! +3 f0 (967|0@5@2&#,2702|0@5@2&#,3295|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,3206|0@5@2&#,947|0@5@2&#,)! +3 f3303 (967|0@5@2&#,2702|0@5@2&#,3295|0@5@2&#,3188|0@5@2&#,947|0@5@2&#,3206|0@5@2&#,947|0@5@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f947 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,941|0@0@2&#,3225|$#,)! +3 f947 (967|0@5@2&#,941|0@0@2&#,3225|$#,)! +3 f0 (3096|0@0@2&#,967|0@5@2&#,)! +3 f3111 (3096|0@0@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,941|0@5@2&#,)! +3 f3082 (967|0@5@2&#,941|0@5@2&#,)! +3 f0 (967|0@5@2&#,2|$#,956|0@5@2&#,)! +3 f3086 (967|0@5@2&#,2|$#,956|0@5@2&#,)! +3 f0 (967|0@5@2&#,3319|0@5@2&#,)! +3 f944 (967|0@5@2&#,3319|0@5@2&#,)! +3 f0 (967|0@5@2&#,947|0@0@2&#,)! +3 f944 (967|0@5@2&#,947|0@0@2&#,)! +3 f0 (967|0@5@2&#,2837|0@5@2&#,)! +3 f944 (967|0@5@2&#,2837|0@5@2&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,)! +3 f950 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,)! +3 f0 (3076|$#,)! +3 f1117 (3076|$#,)! +3 f0 (956|0@5@2&#,964|0@0@2&#,)! +3 f2684 (956|0@5@2&#,964|0@0@2&#,)! +3 f0 ()! +3 f2684 ()! +3 f0 (964|$#,)! +3 f967 (964|$#,)! +3 f0 (956|0@5@7&#,964|$#,)! +3 f1 (956|0@5@7&#,964|$#,)! +3 f0 (2684|$#,)! +3 f1117 (2684|$#,)! +3 f0 (956|0@5@7&#,)! +3 f1117 (956|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f1117 (956|0@5@7&#,)! +3 f0 (2684|$#,)! +3 f1117 (2684|$#,)! +3 f0 (967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f941 (967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f0 (3528|$#,)! +3 f967 (3528|$#,)! +3 f0 (941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f941 (941|0@0@2&#,967|0@5@2&#,941|0@0@2&#,)! +3 f0 (3470|$#,)! +3 f3470 (3470|$#,)! +3 f0 (3121|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,)! +3 f941 (3121|0@0@2&#,967|0@5@2&#,941|0@0@2&#,967|0@5@2&#,)! +3 f0 (941|@5|0@0@2&#,2837|0@5@2&#,)! +3 f941 (941|@5|0@0@2&#,2837|0@5@2&#,)! +3 f0 (941|@5|0@0@2&#,967|0@5@2&#,)! +3 f941 (941|@5|0@0@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,941|0@0@2&#,)! +3 f941 (967|0@5@2&#,941|0@0@2&#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f0 (941|@5|$#,959|$#,)! +3 f941 (941|@5|$#,959|$#,)! +3 f0 (941|$#,967|0@5@7&#,)! +3 f1 (941|$#,967|0@5@7&#,)! +3 f0 (959|@5|$#,967|0@5@2&#,941|0@0@2&#,)! +3 f959 (959|@5|$#,967|0@5@2&#,941|0@0@2&#,)! +3 f0 (941|0@5@2&#,941|@5|$#,941|0@5@2&#,)! +3 f941 (941|0@5@2&#,941|@5|$#,941|0@5@2&#,)! +3 f0 (941|0@5@2&#,941|@5|0@0@2&#,941|0@5@2&#,)! +3 f941 (941|0@5@2&#,941|@5|0@0@2&#,941|0@5@2&#,)! +3 f0 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,959|0@0@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f941 (967|0@5@2&#,)! +3 f0 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f941 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f0 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f941 (941|0@0@2&#,967|0@5@2&#,967|0@5@18&#,)! +3 f0 (967|0@5@2&#,960|$#,)! +3 f941 (967|0@5@2&#,960|$#,)! +3 f0 (967|0@5@2&#,967|0@5@2&#,)! +3 f941 (967|0@5@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,3159|0@0@2&#,)! +3 f941 (967|0@5@2&#,3159|0@0@2&#,)! +3 f0 (967|0@5@2&#,956|0@5@2&#,)! +3 f941 (967|0@5@2&#,956|0@5@2&#,)! +3 f0 (3303|$#,)! +3 f1117 (3303|$#,)! +3 f0 (967|0@5@7&#,5|$#,5|$#,)! +3 f1 (967|0@5@7&#,5|$#,5|$#,)! +3 f0 (938|0@5@7&#,959|$#,960|$#,)! +3 f1117 (938|0@5@7&#,959|$#,960|$#,)! +3 f0 (941|0@5@7&#,)! +3 f1117 (941|0@5@7&#,)! +3 f0 (3174|0@5@2&#,)! +3 f1 (3174|0@5@2&#,)! +3 f0 (3174|0@5@7&#,)! +3 f1117 (3174|0@5@7&#,)! +3 f0 (3206|$#,)! +3 f1117 (3206|$#,)! +3 f0 (950|$#,)! +3 f1117 (950|$#,)! +3 f0 (3528|0@5@2&#,3477|0@0@18&#,)! +3 f3540 (3528|0@5@2&#,3477|0@0@18&#,)! +3 f0 (3540|$#,)! +3 f1117 (3540|$#,)! +3 f0 (938|0@5@7&#,938|0@5@7&#,)! +3 f2 (938|0@5@7&#,938|0@5@7&#,)! +3 f0 (3528|0@5@7&#,3528|0@5@7&#,)! +3 f2 (3528|0@5@7&#,3528|0@5@7&#,)! +3 f0 (3239|0@5@2&#,)! +3 f1 (3239|0@5@2&#,)! +3 f0 (3239|0@5@7&#,)! +3 f3239 (3239|0@5@7&#,)! +3 f0 (3239|0@5@2&#,967|0@5@2&#,)! +3 f3239 (3239|0@5@2&#,967|0@5@2&#,)! +3 f0 (967|0@5@2&#,)! +3 f3239 (967|0@5@2&#,)! +3 f0 (3477|$#,3477|$#,)! +3 f2 (3477|$#,3477|$#,)! +3 f0 (960|$#,964|0@5@7&#,)! +3 f960 (960|$#,964|0@5@7&#,)! +3 f0 (960|$#,964|0@5@7&#,)! +3 f960 (960|$#,964|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f960 (956|0@5@7&#,)! +3 f0 (2879|$#,967|0@5@2&#,)! +3 f961 (2879|$#,967|0@5@2&#,)! +3 f0 (956|0@5@7&#,3013|$#,)! +3 f960 (956|0@5@7&#,3013|$#,)! +3 f0 (3518|0@0@2&#,)! +3 f1 (3518|0@0@2&#,)! +3 f0 (3518|$#,)! +3 f1117 (3518|$#,)! +3 f0 (3295|$#,)! +3 f2998 (3295|$#,)! +3 f0 (956|0@5@7&#,3013|$#,3295|$#,)! +3 f1 (956|0@5@7&#,3013|$#,3295|$#,)! +3 f0 (2702|0@5@7&#,3295|$#,)! +3 f1 (2702|0@5@7&#,3295|$#,)! +3 f0 (964|0@5@7&#,)! +3 f2998 (964|0@5@7&#,)! +3 f0 (3477|$#,)! +3 f960 (3477|$#,)! +3 f0 (3477|$#,)! +3 f2916 (3477|$#,)! +3 f0 (967|0@5@6&#,)! +3 f3463 (967|0@5@6&#,)! 3 f0 (5|$#,)! -3 f3123 (5|$#,)! -3 f0 (2328|@5|$#,)! -3 f2328 (2328|@5|$#,)! -3 f0 (937|0@5@7&#,)! -3 f937 (937|0@5@7&#,)! -3 f0 (937|0@5@7&#,)! -3 f937 (937|0@5@7&#,)! -3 f0 (937|0@5@2&#,)! -3 f1 (937|0@5@2&#,)! -3 f0 (3125|0@5@7&#,)! -3 f3125 (3125|0@5@7&#,)! -3 f0 (3125|0@5@2&#,)! -3 f1 (3125|0@5@2&#,)! -3 f0 (3186|0@5@2&#,)! -3 f1 (3186|0@5@2&#,)! -3 f0 (3198|$#,3198|$#,)! -3 f2 (3198|$#,3198|$#,)! -3 f0 (3198|0@0@2&#,)! -3 f1 (3198|0@0@2&#,)! -3 f0 (3136|0@5@2&#,)! -3 f1 (3136|0@5@2&#,)! -3 f0 (2710|0@5@2&#,)! -3 f1 (2710|0@5@2&#,)! -3 f0 (3003|0@5@2&#,)! -3 f1 (3003|0@5@2&#,)! -3 f0 (2968|0@5@2&#,)! -3 f1 (2968|0@5@2&#,)! -3 f0 (2668|0@5@2&#,)! -3 f1 (2668|0@5@2&#,)! -3 f0 (3198|$#,)! -3 f3198 (3198|$#,)! -3 f0 (3136|$#,)! -3 f3136 (3136|$#,)! -3 f0 (3186|0@5@7&#,)! -3 f3186 (3186|0@5@7&#,)! -3 f0 (3186|$#,)! -3 f3186 (3186|$#,)! -3 f0 (2902|$#,)! -3 f2 (2902|$#,)! -3 f0 (934|0@5@2&#,)! -3 f1 (934|0@5@2&#,)! -3 f0 (934|$#,)! -3 f934 (934|$#,)! -3 f0 (934|0@5@7&#,)! -3 f934 (934|0@5@7&#,)! -3 f0 (2541|0@5@2&#,)! -3 f1 (2541|0@5@2&#,)! -3 f0 (2902|0@5@2&#,)! -3 f1 (2902|0@5@2&#,)! -3 f0 (2833|0@5@2&#,)! -3 f1 (2833|0@5@2&#,)! -3 f0 (2643|0@5@2&#,)! -3 f1 (2643|0@5@2&#,)! -3 f0 (2328|0@5@7&#,)! -3 f2328 (2328|0@5@7&#,)! -3 f0 (2328|0@5@2&#,)! -3 f1 (2328|0@5@2&#,)! -3 f0 (2862|0@5@2&#,)! -3 f1 (2862|0@5@2&#,)! -3 f0 (2764|$#,)! -3 f2764 (2764|$#,)! -3 f0 (2764|0@5@2&#,)! -3 f1 (2764|0@5@2&#,)! -3 f0 (3231|0@5@2&#,)! -3 f1 (3231|0@5@2&#,)! -3 f0 (2794|$#,)! -3 f2794 (2794|$#,)! -3 f0 (2794|0@5@2&#,)! -3 f1 (2794|0@5@2&#,)! -3 f0 (3015|$#,)! -3 f3015 (3015|$#,)! -3 f0 (3015|0@5@2&#,)! -3 f1 (3015|0@5@2&#,)! -3 f0 (3270|0@5@2&#,)! -3 f1 (3270|0@5@2&#,)! -3 f0 (3094|0@5@2&#,)! -3 f1 (3094|0@5@2&#,)! -3 f0 (2934|0@5@2&#,)! -3 f1 (2934|0@5@2&#,)! -3 f0 (2739|$#,)! -3 f2739 (2739|$#,)! -3 f0 (2739|0@5@2&#,)! -3 f1 (2739|0@5@2&#,)! +3 f3463 (5|$#,)! +3 f0 (2684|@5|$#,)! +3 f2684 (2684|@5|$#,)! +3 f0 (956|0@5@7&#,)! +3 f956 (956|0@5@7&#,)! +3 f0 (956|0@5@7&#,)! +3 f956 (956|0@5@7&#,)! +3 f0 (956|0@5@2&#,)! +3 f1 (956|0@5@2&#,)! +3 f0 (938|0@5@7&#,)! +3 f938 (938|0@5@7&#,)! +3 f0 (938|0@5@2&#,)! +3 f1 (938|0@5@2&#,)! +3 f0 (3528|0@5@2&#,)! +3 f1 (3528|0@5@2&#,)! +3 f0 (3540|$#,3540|$#,)! +3 f2 (3540|$#,3540|$#,)! +3 f0 (3540|0@0@2&#,)! +3 f1 (3540|0@0@2&#,)! +3 f0 (3477|0@5@2&#,)! +3 f1 (3477|0@5@2&#,)! +3 f0 (3013|0@5@2&#,)! +3 f1 (3013|0@5@2&#,)! +3 f0 (944|0@5@2&#,)! +3 f1 (944|0@5@2&#,)! +3 f0 (3309|0@5@2&#,)! +3 f1 (3309|0@5@2&#,)! +3 f0 (3038|0@5@2&#,)! +3 f1 (3038|0@5@2&#,)! +3 f0 (3540|$#,)! +3 f3540 (3540|$#,)! +3 f0 (3477|$#,)! +3 f3477 (3477|$#,)! +3 f0 (3528|0@5@7&#,)! +3 f3528 (3528|0@5@7&#,)! +3 f0 (3528|$#,)! +3 f3528 (3528|$#,)! +3 f0 (3243|$#,)! +3 f2 (3243|$#,)! +3 f0 (941|0@5@2&#,)! +3 f1 (941|0@5@2&#,)! +3 f0 (941|$#,)! +3 f941 (941|$#,)! +3 f0 (941|0@5@7&#,)! +3 f941 (941|0@5@7&#,)! +3 f0 (2886|0@5@2&#,)! +3 f1 (2886|0@5@2&#,)! +3 f0 (3243|0@5@2&#,)! +3 f1 (3243|0@5@2&#,)! +3 f0 (3180|0@5@2&#,)! +3 f1 (3180|0@5@2&#,)! +3 f0 (2990|0@5@2&#,)! +3 f1 (2990|0@5@2&#,)! +3 f0 (2684|0@5@7&#,)! +3 f2684 (2684|0@5@7&#,)! +3 f0 (2684|0@5@2&#,)! +3 f1 (2684|0@5@2&#,)! +3 f0 (3206|0@5@2&#,)! +3 f1 (3206|0@5@2&#,)! +3 f0 (3111|$#,)! +3 f3111 (3111|$#,)! +3 f0 (3111|0@5@2&#,)! +3 f1 (3111|0@5@2&#,)! +3 f0 (3573|0@5@2&#,)! +3 f1 (3573|0@5@2&#,)! +3 f0 (3141|$#,)! +3 f3141 (3141|$#,)! +3 f0 (3141|0@5@2&#,)! +3 f1 (3141|0@5@2&#,)! +3 f0 (3355|$#,)! +3 f3355 (3355|$#,)! +3 f0 (3355|0@5@2&#,)! +3 f1 (3355|0@5@2&#,)! +3 f0 (3612|0@5@2&#,)! +3 f1 (3612|0@5@2&#,)! +3 f0 (3434|0@5@2&#,)! +3 f1 (3434|0@5@2&#,)! +3 f0 (3275|0@5@2&#,)! +3 f1 (3275|0@5@2&#,)! +3 f0 (3086|$#,)! +3 f3086 (3086|$#,)! +3 f0 (3086|0@5@2&#,)! +3 f1 (3086|0@5@2&#,)! +3 f0 (950|0@5@2&#,)! +3 f1 (950|0@5@2&#,)! +3 f0 (3606|0@5@2&#,)! +3 f1 (3606|0@5@2&#,)! +3 f0 (3600|0@5@2&#,)! +3 f1 (3600|0@5@2&#,)! +3 f0 (3430|0@5@2&#,)! +3 f1 (3430|0@5@2&#,)! +3 f0 (3660|$#,)! +3 f1117 (3660|$#,)! +3 f0 (3660|0@5@2&#,)! +3 f1 (3660|0@5@2&#,)! +3 f0 (3638|0@5@2&#,)! +3 f1 (3638|0@5@2&#,)! +3 f0 (3649|0@5@2&#,)! +3 f1 (3649|0@5@2&#,)! +3 f0 (3266|0@5@2&#,)! +3 f1 (3266|0@5@2&#,)! 3 f0 (3390|0@5@2&#,)! 3 f1 (3390|0@5@2&#,)! -3 f0 (3264|0@5@2&#,)! -3 f1 (3264|0@5@2&#,)! -3 f0 (3258|0@5@2&#,)! -3 f1 (3258|0@5@2&#,)! -3 f0 (3089|0@5@2&#,)! -3 f1 (3089|0@5@2&#,)! -3 f0 (3318|$#,)! -3 f989 (3318|$#,)! -3 f0 (3318|0@5@2&#,)! -3 f1 (3318|0@5@2&#,)! -3 f0 (3296|0@5@2&#,)! -3 f1 (3296|0@5@2&#,)! -3 f0 (3307|0@5@2&#,)! -3 f1 (3307|0@5@2&#,)! -3 f0 (2925|0@5@2&#,)! -3 f1 (2925|0@5@2&#,)! -3 f0 (3050|0@5@2&#,)! -3 f1 (3050|0@5@2&#,)! -3 f0 (2962|0@5@2&#,)! -3 f1 (2962|0@5@2&#,)! -3 f0 (2999|0@5@2&#,)! -3 f1 (2999|0@5@2&#,)! -3 f0 (3009|0@5@2&#,)! -3 f1 (3009|0@5@2&#,)! -3 f0 (2889|0@5@2&#,)! -3 f1 (2889|0@5@2&#,)! -3 f0 (3042|0@5@2&#,)! -3 f1 (3042|0@5@2&#,)! -3 f0 (3058|0@5@7&#,)! -3 f3058 (3058|0@5@7&#,)! -3 f0 (3058|0@5@2&#,)! -3 f1 (3058|0@5@2&#,)! -3 f0 (3064|0@5@2&#,)! -3 f1 (3064|0@5@2&#,)! -3 f0 (3064|0@5@7&#,)! -3 f3064 (3064|0@5@7&#,)! -3 f0 (942|$#,)! -3 f1 (942|$#,)! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! +3 f0 (3303|0@5@2&#,)! +3 f1 (3303|0@5@2&#,)! +3 f0 (3340|0@5@2&#,)! +3 f1 (3340|0@5@2&#,)! +3 f0 (3349|0@5@2&#,)! +3 f1 (3349|0@5@2&#,)! +3 f0 (3230|0@5@2&#,)! +3 f1 (3230|0@5@2&#,)! +3 f0 (3382|0@5@2&#,)! +3 f1 (3382|0@5@2&#,)! +3 f0 (3399|0@5@7&#,)! +3 f3399 (3399|0@5@7&#,)! +3 f0 (3399|0@5@2&#,)! +3 f1 (3399|0@5@2&#,)! +3 f0 (3405|0@5@2&#,)! +3 f1 (3405|0@5@2&#,)! +3 f0 (3405|0@5@7&#,)! +3 f3405 (3405|0@5@7&#,)! +3 f0 (961|$#,)! +3 f1 (961|$#,)! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 (2|$#,)! 3 f1 (2|$#,)! 3 f0 ()! @@ -16616,58 +18603,58 @@ 3 f0 ()! 3 f1 ()! 3 f0 (4|$#,)! -3 f15435 (4|$#,)! +3 f17423 (4|$#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -3 f0 (4|$#,15435|$#,)! -3 f1 (4|$#,15435|$#,)! +3 f0 (4|$#,17423|$#,)! +3 f1 (4|$#,17423|$#,)! 3 f0 (4|$#,2|$#,)! 3 f1 (4|$#,2|$#,)! 3 f0 ()! -3 f948 ()! -3 f0 (6|$#,942|$#,)! -3 f948 (6|$#,942|$#,)! -3 f0 (6|$#,942|$#,)! -3 f948 (6|$#,942|$#,)! -3 f0 (6|$#,2396|$#,942|$#,)! -3 f948 (6|$#,2396|$#,942|$#,)! -3 f0 (6|$#,942|$#,989|0@5@7&#,6|$#,6|$#,)! -3 f948 (6|$#,942|$#,989|0@5@7&#,6|$#,6|$#,)! -3 f0 (6|$#,)! -3 f989 (6|$#,)! -3 f0 (948|0@5@7&#,)! -3 f989 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f989 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f948 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f942 (948|0@5@7&#,)! -3 f0 (948|0@5@7&#,)! -3 f989 (948|0@5@7&#,)! -3 f0 (948|0@5@17&#,)! -3 f1 (948|0@5@17&#,)! -3 f0 (948|0@5@2&#,)! -3 f1 (948|0@5@2&#,)! +3 f967 ()! +3 f0 (968|$#,961|$#,)! +3 f967 (968|$#,961|$#,)! +3 f0 (968|$#,961|$#,)! +3 f967 (968|$#,961|$#,)! +3 f0 (968|$#,2752|$#,961|$#,)! +3 f967 (968|$#,2752|$#,961|$#,)! +3 f0 (968|$#,961|$#,1117|0@5@7&#,5|$#,5|$#,)! +3 f967 (968|$#,961|$#,1117|0@5@7&#,5|$#,5|$#,)! +3 f0 (968|$#,)! +3 f1117 (968|$#,)! +3 f0 (967|0@5@7&#,)! +3 f1117 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1117 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f967 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f961 (967|0@5@7&#,)! +3 f0 (967|0@5@7&#,)! +3 f1117 (967|0@5@7&#,)! +3 f0 (967|0@5@17&#,)! +3 f1 (967|0@5@17&#,)! +3 f0 (967|0@5@2&#,)! +3 f1 (967|0@5@2&#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -3 f0 (949|$#,942|$#,942|$#,2|$#,)! -3 f948 (949|$#,942|$#,942|$#,2|$#,)! -3 f0 (949|$#,942|$#,2|$#,)! -3 f1 (949|$#,942|$#,2|$#,)! -3 f0 (942|$#,2|$#,)! -3 f1 (942|$#,2|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (949|$#,23|$#,)! -3 f948 (949|$#,23|$#,)! +3 f0 (968|$#,961|$#,961|$#,2|$#,)! +3 f967 (968|$#,961|$#,961|$#,2|$#,)! +3 f0 (968|$#,961|$#,2|$#,)! +3 f1 (968|$#,961|$#,2|$#,)! +3 f0 (961|$#,2|$#,)! +3 f1 (961|$#,2|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (968|$#,23|$#,)! +3 f967 (968|$#,23|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 e!101{STARTCNUM,STARTCNUMDOT,STARTCSTR,STARTCCHAR,STARTWIDE,STARTSLASH,STARTOTHER}! -0 s7055|& -0 s368|& +3 e!256{STARTCNUM,STARTCNUMDOT,STARTCSTR,STARTCCHAR,STARTWIDE,STARTSLASH,STARTOTHER}! +0 s7835|& +0 s7836|& 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -16681,9 +18668,9 @@ 3 f0 (23|0@0@6&#,)! 3 f1 (23|0@0@6&#,)! 2 F0/0|0& -2 F15438/0|15438& +2 F17426/0|17426& 2 F0/0|0& -2 F16665/0|16665& +2 F18652/0|18652& 2 F0/0|0& 2 F2/0|2& 2 F0/0|0& @@ -16710,12 +18697,12 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (949|$#,)! -3 f2 (949|$#,)! +3 f0 (968|$#,)! +3 f2 (968|$#,)! 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 (2|$#,)! 3 f1 (2|$#,)! 3 f0 (23|0@0@6&#,)! @@ -16729,250 +18716,252 @@ 3 f0 (4|$#,)! 3 f2 (4|$#,)! 3 f0 (4|$#,)! -3 f15435 (4|$#,)! -3 f0 (4|$#,15435|$#,)! -3 f1 (4|$#,15435|$#,)! +3 f17423 (4|$#,)! +3 f0 (4|$#,17423|$#,)! +3 f1 (4|$#,17423|$#,)! 3 f0 (4|$#,2|$#,)! 3 f1 (4|$#,2|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (942|$#,942|$#,)! -3 f1 (942|$#,942|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (942|$#,)! -3 f2 (942|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (949|$#,942|$#,942|$#,2|$#,)! -3 f948 (949|$#,942|$#,942|$#,2|$#,)! -3 f0 (949|$#,942|$#,2|$#,)! -3 f1 (949|$#,942|$#,2|$#,)! -3 f0 (942|$#,2|$#,)! -3 f1 (942|$#,2|$#,)! -3 f0 (942|$#,)! -3 f948 (942|$#,)! -3 f0 (949|$#,23|$#,)! -3 f948 (949|$#,23|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 (941|$#,941|$#,)! -3 f1 (941|$#,941|$#,)! -3 f0 (2218|$#,)! -3 f2 (2218|$#,)! -3 f0 (2218|15@0@1&#,)! -3 f941 (2218|15@0@1&#,)! -3 f0 (2218|$#,)! -3 f941 (2218|$#,)! -3 f0 (2218|15@0@1&#,)! -3 f941 (2218|15@0@1&#,)! -3 f0 (941|$#,941|$#,941|$#,)! -3 f1 (941|$#,941|$#,941|$#,)! -3 f0 (941|$#,941|$#,5|$#,941|$#,)! -3 f1 (941|$#,941|$#,5|$#,941|$#,)! -3 f0 (941|$#,941|$#,5|$#,)! -3 f1 (941|$#,941|$#,5|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,941|$#,)! -3 f1 (941|$#,941|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,5|$#,)! -3 f1 (941|$#,5|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (2210|$#,)! -3 f989 (2210|$#,)! -3 f0 (2218|$#,)! -3 f989 (2218|$#,)! -3 f0 (23|$#,948|0@5@7&#,21|4@0@7&#,)! -3 f942 (23|$#,948|0@5@7&#,21|4@0@7&#,)! -3 f0 (3186|0@0@2&#,941|$#,948|0@5@2&#,)! -3 f1 (3186|0@0@2&#,941|$#,948|0@5@2&#,)! -3 f0 (3186|0@0@2&#,941|$#,941|$#,)! -3 f1 (3186|0@0@2&#,941|$#,941|$#,)! -3 f0 (3186|0@0@2&#,941|$#,948|0@5@2&#,941|$#,)! -3 f1 (3186|0@0@2&#,941|$#,948|0@5@2&#,941|$#,)! -3 f0 (942|$#,)! -3 f3186 (942|$#,)! -3 f0 (942|$#,)! -3 f3186 (942|$#,)! -3 f0 (942|$#,942|$#,)! -3 f942 (942|$#,942|$#,)! -3 f0 (948|0@5@7&#,941|$#,2218|$#,)! -3 f1 (948|0@5@7&#,941|$#,2218|$#,)! -1 t2218|2218& -3 f0 (2215|0@5@2&#,)! -3 f1 (2215|0@5@2&#,)! -3 f0 (2218|15@0@1&#,)! -3 f1 (2218|15@0@1&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f941 ()! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (942|$#,2210|$#,941|$#,942|$#,2|$#,941|$#,2215|0@5@7&#,)! -3 f941 (942|$#,2210|$#,941|$#,942|$#,2|$#,941|$#,2215|0@5@7&#,)! -3 f0 (942|$#,2|$#,941|$#,)! -3 f941 (942|$#,2|$#,941|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,941|$#,942|$#,)! -3 f941 (948|0@5@7&#,941|$#,942|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (941|$#,5|$#,)! -3 f941 (941|$#,5|$#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,942|$#,)! -3 f941 (948|0@5@7&#,942|$#,)! -3 f0 (948|0@5@7&#,)! -3 f941 (948|0@5@7&#,)! -3 f0 (941|$#,2215|0@5@2&#,)! -3 f2 (941|$#,2215|0@5@2&#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 (941|$#,941|$#,)! -3 f1 (941|$#,941|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,941|$#,)! -3 f1 (941|$#,941|$#,)! -3 f0 (948|0@5@7&#,)! -3 f941 (948|0@5@7&#,)! -3 f0 (941|$#,2215|0@5@2&#,)! -3 f2 (941|$#,2215|0@5@2&#,)! -3 f0 (948|0@5@7&#,941|$#,)! -3 f941 (948|0@5@7&#,941|$#,)! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 ()! -3 f942 ()! -3 f0 (948|0@5@7&#,)! -3 f941 (948|0@5@7&#,)! -3 f0 (941|$#,2215|0@5@2&#,)! -3 f2 (941|$#,2215|0@5@2&#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,941|$#,941|$#,)! -3 f1 (941|$#,941|$#,941|$#,)! -3 f0 (941|$#,941|$#,5|$#,941|$#,)! -3 f1 (941|$#,941|$#,5|$#,941|$#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (941|$#,941|$#,5|$#,)! -3 f1 (941|$#,941|$#,5|$#,)! -3 f0 (941|$#,5|$#,)! -3 f1 (941|$#,5|$#,)! -3 f0 (3186|0@0@2&#,941|$#,948|0@5@2&#,)! -3 f1 (3186|0@0@2&#,941|$#,948|0@5@2&#,)! -3 f0 (941|$#,)! -3 f1 (941|$#,)! -3 f0 (3186|0@0@2&#,941|$#,941|$#,)! -3 f1 (3186|0@0@2&#,941|$#,941|$#,)! -3 f0 (3186|0@0@2&#,941|$#,948|0@5@2&#,941|$#,)! -3 f1 (3186|0@0@2&#,941|$#,948|0@5@2&#,941|$#,)! -3 f0 (942|$#,)! -3 f3186 (942|$#,)! -3 f0 (942|$#,)! -3 f3186 (942|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (942|$#,)! -3 f941 (942|$#,)! -3 f0 (2218|$#,)! -3 f2 (2218|$#,)! -3 f0 (2218|$#,)! -3 f941 (2218|$#,)! -3 f0 (2218|15@0@1&#,)! -3 f941 (2218|15@0@1&#,)! -3 f0 (2218|15@0@1&#,)! -3 f941 (2218|15@0@1&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (941|$#,)! -3 f2218 (941|$#,)! -3 f0 (941|$#,)! -3 f2218 (941|$#,)! -3 f0 (2215|0@5@7&#,)! -3 f989 (2215|0@5@7&#,)! -3 f0 (2215|0@5@7&#,)! -3 f989 (2215|0@5@7&#,)! -3 f0 (941|$#,)! -3 f989 (941|$#,)! -3 f0 (942|$#,942|$#,)! -3 f942 (942|$#,942|$#,)! +3 f0 (961|$#,961|$#,)! +3 f1 (961|$#,961|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (961|$#,)! +3 f2 (961|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (968|$#,961|$#,961|$#,2|$#,)! +3 f967 (968|$#,961|$#,961|$#,2|$#,)! +3 f0 (968|$#,961|$#,2|$#,)! +3 f1 (968|$#,961|$#,2|$#,)! +3 f0 (961|$#,2|$#,)! +3 f1 (961|$#,2|$#,)! +3 f0 (961|$#,)! +3 f967 (961|$#,)! +3 f0 (968|$#,23|$#,)! +3 f967 (968|$#,23|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 (960|$#,960|$#,)! +3 f1 (960|$#,960|$#,)! +3 f0 (2575|$#,)! +3 f2 (2575|$#,)! +3 f0 (2575|0@0@2&#,)! +3 f960 (2575|0@0@2&#,)! +3 f0 (2575|0@0@2&#,)! +3 f960 (2575|0@0@2&#,)! +3 f0 (2575|0@0@2&#,)! +3 f960 (2575|0@0@2&#,)! +3 f0 (960|$#,960|$#,960|$#,)! +3 f1 (960|$#,960|$#,960|$#,)! +3 f0 (960|$#,960|$#,5|$#,960|$#,)! +3 f1 (960|$#,960|$#,5|$#,960|$#,)! +3 f0 (960|$#,960|$#,5|$#,)! +3 f1 (960|$#,960|$#,5|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,960|$#,)! +3 f1 (960|$#,960|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,5|$#,)! +3 f1 (960|$#,5|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (2566|$#,)! +3 f1117 (2566|$#,)! +3 f0 (2575|$#,)! +3 f1117 (2575|$#,)! +3 f0 (23|$#,967|0@5@7&#,21|4@0@7&#,)! +3 f961 (23|$#,967|0@5@7&#,21|4@0@7&#,)! +3 f0 (3528|0@0@2&#,960|$#,967|0@5@2&#,)! +3 f1 (3528|0@0@2&#,960|$#,967|0@5@2&#,)! +3 f0 (3528|0@0@2&#,960|$#,960|$#,)! +3 f1 (3528|0@0@2&#,960|$#,960|$#,)! +3 f0 (3528|0@0@2&#,960|$#,967|0@5@2&#,960|$#,)! +3 f1 (3528|0@0@2&#,960|$#,967|0@5@2&#,960|$#,)! +3 f0 (961|$#,)! +3 f3528 (961|$#,)! +3 f0 (961|$#,)! +3 f3528 (961|$#,)! +3 f0 (961|$#,961|$#,)! +3 f961 (961|$#,961|$#,)! +3 f0 (967|0@5@7&#,960|$#,2575|$#,)! +3 f1 (967|0@5@7&#,960|$#,2575|$#,)! +0 s7837|-1 18810 -1 +1 t18809|18809& +1 t2575|2575& +3 f0 (2571|0@5@2&#,)! +3 f1 (2571|0@5@2&#,)! +3 f0 (2575|0@0@2&#,)! +3 f1 (2575|0@0@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f960 ()! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (961|$#,2566|$#,960|$#,961|$#,2|$#,960|$#,2571|0@5@2&#,)! +3 f960 (961|$#,2566|$#,960|$#,961|$#,2|$#,960|$#,2571|0@5@2&#,)! +3 f0 (961|$#,2|$#,960|$#,)! +3 f960 (961|$#,2|$#,960|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,960|$#,961|$#,)! +3 f960 (967|0@5@7&#,960|$#,961|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (960|$#,5|$#,)! +3 f960 (960|$#,5|$#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,961|$#,)! +3 f960 (967|0@5@7&#,961|$#,)! +3 f0 (967|0@5@7&#,)! +3 f960 (967|0@5@7&#,)! +3 f0 (960|$#,2571|0@5@2&#,)! +3 f2 (960|$#,2571|0@5@2&#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 (960|$#,960|$#,)! +3 f1 (960|$#,960|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,960|$#,)! +3 f1 (960|$#,960|$#,)! +3 f0 (967|0@5@7&#,)! +3 f960 (967|0@5@7&#,)! +3 f0 (960|$#,2571|0@5@2&#,)! +3 f2 (960|$#,2571|0@5@2&#,)! +3 f0 (967|0@5@7&#,960|$#,)! +3 f960 (967|0@5@7&#,960|$#,)! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 ()! +3 f961 ()! +3 f0 (967|0@5@7&#,)! +3 f960 (967|0@5@7&#,)! +3 f0 (960|$#,2571|0@5@2&#,)! +3 f2 (960|$#,2571|0@5@2&#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,960|$#,960|$#,)! +3 f1 (960|$#,960|$#,960|$#,)! +3 f0 (960|$#,960|$#,5|$#,960|$#,)! +3 f1 (960|$#,960|$#,5|$#,960|$#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (960|$#,960|$#,5|$#,)! +3 f1 (960|$#,960|$#,5|$#,)! +3 f0 (960|$#,5|$#,)! +3 f1 (960|$#,5|$#,)! +3 f0 (3528|0@0@2&#,960|$#,967|0@5@2&#,)! +3 f1 (3528|0@0@2&#,960|$#,967|0@5@2&#,)! +3 f0 (960|$#,)! +3 f1 (960|$#,)! +3 f0 (3528|0@0@2&#,960|$#,960|$#,)! +3 f1 (3528|0@0@2&#,960|$#,960|$#,)! +3 f0 (3528|0@0@2&#,960|$#,967|0@5@2&#,960|$#,)! +3 f1 (3528|0@0@2&#,960|$#,967|0@5@2&#,960|$#,)! +3 f0 (961|$#,)! +3 f3528 (961|$#,)! +3 f0 (961|$#,)! +3 f3528 (961|$#,)! +3 f0 ()! +3 f1 ()! +3 f0 (961|$#,)! +3 f960 (961|$#,)! +3 f0 (2575|$#,)! +3 f2 (2575|$#,)! +3 f0 (2575|0@0@2&#,)! +3 f960 (2575|0@0@2&#,)! +3 f0 (2575|0@0@2&#,)! +3 f960 (2575|0@0@2&#,)! +3 f0 (2575|0@0@2&#,)! +3 f960 (2575|0@0@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (960|$#,)! +3 f2575 (960|$#,)! +3 f0 (960|$#,)! +3 f2575 (960|$#,)! +3 f0 (2571|0@5@7&#,)! +3 f1117 (2571|0@5@7&#,)! +3 f0 (2571|0@5@7&#,)! +3 f1117 (2571|0@5@7&#,)! +3 f0 (960|$#,)! +3 f1117 (960|$#,)! +3 f0 (961|$#,961|$#,)! +3 f961 (961|$#,961|$#,)! 2 F0/0|0& 2 F4/0|4& -3 f0 (23|$#,948|0@5@7&#,21|4@0@7&#,)! -3 f942 (23|$#,948|0@5@7&#,21|4@0@7&#,)! -3 f0 (941|$#,5|$#,)! -3 f941 (941|$#,5|$#,)! -3 f0 (941|$#,)! -3 f941 (941|$#,)! -3 f0 (2218|$#,)! -3 f942 (2218|$#,)! -3 f0 (2218|$#,)! -3 f2218 (2218|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! +3 f0 (23|$#,967|0@5@7&#,21|4@0@7&#,)! +3 f961 (23|$#,967|0@5@7&#,21|4@0@7&#,)! +3 f0 (960|$#,5|$#,)! +3 f960 (960|$#,5|$#,)! +3 f0 (960|$#,)! +3 f960 (960|$#,)! +3 f0 (2575|$#,)! +3 f961 (2575|$#,)! +3 f0 (2575|$#,)! +3 f2575 (2575|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! 3 f0 (2|$#,)! 3 f2 (2|$#,)! -3 f0 (2210|$#,)! -3 f989 (2210|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! -3 f0 (210|$#,2|$#,)! -3 f1 (210|$#,2|$#,)! -3 f0 (23|$#,942|$#,941|$#,)! -3 f1 (23|$#,942|$#,941|$#,)! -3 f0 (23|$#,948|0@5@7&#,2124|$#,2200|$#,2589|$#,)! -3 f1 (23|$#,948|0@5@7&#,2124|$#,2200|$#,2589|$#,)! +3 f0 (2566|$#,)! +3 f1117 (2566|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! +3 f0 (211|$#,2|$#,)! +3 f1 (211|$#,2|$#,)! +3 f0 (23|$#,961|$#,960|$#,)! +3 f1 (23|$#,961|$#,960|$#,)! +3 f0 (23|$#,967|0@5@7&#,1015|0@5@7&#,2555|$#,2935|$#,)! +3 f1 (23|$#,967|0@5@7&#,1015|0@5@7&#,2555|$#,2935|$#,)! 2 F0/0|0& 2 F4/0|4& 2 F0/10|0& @@ -16981,232 +18970,232 @@ 2 F4/0|4& 2 F0/0|0& 2 F4/0|4& -3 f0 (2124|$#,948|0@5@7&#,2200|$#,)! -3 f1 (2124|$#,948|0@5@7&#,2200|$#,)! -3 f0 (2302|$#,2302|$#,)! -3 f2 (2302|$#,2302|$#,)! -3 f0 (941|$#,941|$#,)! -3 f2 (941|$#,941|$#,)! -3 f0 (941|$#,941|$#,)! -3 f2 (941|$#,941|$#,)! -3 f0 (941|$#,)! -3 f942 (941|$#,)! -3 f0 (941|$#,)! -3 f19 (941|$#,)! -3 f23 (941|$#,)! -3 f0 (941|$#,)! -3 f989 (941|$#,)! -3 f0 (948|0@5@7&#,941|$#,2218|$#,)! -3 f1 (948|0@5@7&#,941|$#,2218|$#,)! -3 f0 (2218|$#,)! -3 f989 (2218|$#,)! -3 f0 (942|$#,)! -3 f941 (942|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! -3 f0 (941|$#,)! -3 f2 (941|$#,)! +3 f0 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 f1 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 f0 (960|$#,960|$#,)! +3 f2 (960|$#,960|$#,)! +3 f0 (960|$#,960|$#,)! +3 f2 (960|$#,960|$#,)! +3 f0 (960|$#,960|$#,)! +3 f2 (960|$#,960|$#,)! +3 f0 (960|$#,)! +3 f961 (960|$#,)! +3 f0 (960|$#,)! +3 f19 (960|$#,)! +3 f23 (960|$#,)! +3 f0 (960|$#,)! +3 f1117 (960|$#,)! +3 f0 (967|0@5@7&#,960|$#,2575|$#,)! +3 f1 (967|0@5@7&#,960|$#,2575|$#,)! +3 f0 (2575|$#,)! +3 f1117 (2575|$#,)! +3 f0 (961|$#,)! +3 f960 (961|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! +3 f0 (960|$#,)! +3 f2 (960|$#,)! 3 f0 (23|$#,)! 3 f2 (23|$#,)! -1 t3748|3748& -3 f0 (17006|$#,210|$#,2|$#,)! -3 f1 (17006|$#,210|$#,2|$#,)! -3 f0 (3721|0@0@2&#,)! -3 f1 (3721|0@0@2&#,)! -3 f0 (3751|$#,)! -3 f3736 (3751|$#,)! -3 f0 (3751|$#,210|$#,2|$#,)! -3 f1 (3751|$#,210|$#,2|$#,)! -3 f0 (3186|$#,)! -3 f942 (3186|$#,)! -3 e!102{SYMK_FCN,SYMK_SCOPE,SYMK_TYPE,SYMK_VAR}! -0 s7056|& -0 s369|& -3 U!103{3700|@1|0@0@2&#fct,3736|@1|0@0@2&#scope,3704|@1|0@0@2&#type,3711|@1|0@0@2&#var,}! -0 s6974|& -3 S!104{17019|@1|^#kind,17020|@1|^#info,}! -0 s6774|& -0 s378|-1 17025 -1 -1 t17024|17024& -3 S_idTable{6|@1|^#size,6|@1|^#allocated,17025|@1|0@3@3&#entries,2|@1|^#exporting,}! -0 s6901|& -0 s370|-1 17029 -1 -1 t17028|17028& -3 S_symtableStruct{17029|@1|0@0@3&#idTable,17006|@1|0@0@3&#hTable,2200|@1|0@0@3&#type2sort,}! -3 f0 (17025|$#,)! -3 f948 (17025|$#,)! -3 f0 (17029|$#,)! -3 f19 (17029|$#,)! -3 f17025 (17029|$#,)! -3 f0 (17029|$#,942|$#,)! -3 f19 (17029|$#,942|$#,)! -3 f17025 (17029|$#,942|$#,)! -3 f0 (17029|$#,942|$#,)! -3 f19 (17029|$#,942|$#,)! -3 f17025 (17029|$#,942|$#,)! +1 t4089|4089& +3 f0 (18995|$#,211|$#,2|$#,)! +3 f1 (18995|$#,211|$#,2|$#,)! +3 f0 (4062|0@0@2&#,)! +3 f1 (4062|0@0@2&#,)! +3 f0 (4092|$#,)! +3 f4077 (4092|$#,)! +3 f0 (4092|$#,211|$#,2|$#,)! +3 f1 (4092|$#,211|$#,2|$#,)! +3 f0 (3528|$#,)! +3 f961 (3528|$#,)! +3 e!257{SYMK_FCN,SYMK_SCOPE,SYMK_TYPE,SYMK_VAR}! +0 s7843|& +0 s7844|& +3 U!258{4041|@1|0@0@2&#fct,4077|@1|0@0@2&#scope,4045|@1|0@0@2&#type,4052|@1|0@0@2&#var,}! +0 s7845|& +3 S!259{19008|@1|^#kind,19009|@1|^#info,}! +0 s7846|& +0 s7847|-1 19014 -1 +1 t19013|19013& +3 S!260{6|@1|^#size,6|@1|^#allocated,19014|@1|0@3@3&#entries,2|@1|^#exporting,}! +0 s7848|& +0 s7849|-1 19018 -1 +1 t19017|19017& +3 Ss_symtableStruct{19018|@1|0@0@3&#idTable,18995|@1|0@0@3&#hTable,2555|@1|0@0@3&#type2sort,}! +3 f0 (19014|$#,)! +3 f967 (19014|$#,)! +3 f0 (19018|$#,)! +3 f19 (19018|$#,)! +3 f19014 (19018|$#,)! +3 f0 (19018|$#,961|$#,)! +3 f19 (19018|$#,961|$#,)! +3 f19014 (19018|$#,961|$#,)! +3 f0 (19018|$#,961|$#,)! +3 f19 (19018|$#,961|$#,)! +3 f19014 (19018|$#,961|$#,)! 3 f0 ()! 3 f19 ()! -3 f17029 ()! -3 f0 (17024|$#,)! -3 f1 (17024|$#,)! -3 f0 (3737|$#,)! -3 f3696 (3737|$#,)! -3 f0 (17006|0@0@2&#,)! -3 f1 (17006|0@0@2&#,)! +3 f19018 ()! +3 f0 (19013|$#,)! +3 f1 (19013|$#,)! +3 f0 (4078|$#,)! +3 f4037 (4078|$#,)! +3 f0 (18995|0@0@2&#,)! +3 f1 (18995|0@0@2&#,)! 3 f0 (6|$#,)! 3 f19 (6|$#,)! -3 f17006 (6|$#,)! -3 f0 (17006|$#,3696|$#,3724|$#,3186|0@5@7&#,)! -3 f19 (17006|$#,3696|$#,3724|$#,3186|0@5@7&#,)! -3 f3737 (17006|$#,3696|$#,3724|$#,3186|0@5@7&#,)! -3 f0 (17006|$#,3737|0@0@2&#,)! -3 f2 (17006|$#,3737|0@0@2&#,)! -3 f0 (17006|$#,3737|0@0@2&#,)! -3 f19 (17006|$#,3737|0@0@2&#,)! -3 f3737 (17006|$#,3737|0@0@2&#,)! -3 f0 (17029|0@0@2&#,)! -3 f1 (17029|0@0@2&#,)! -3 f0 (3711|0@0@2&#,)! -3 f1 (3711|0@0@2&#,)! -3 f0 (3711|$#,)! -3 f3711 (3711|$#,)! -3 f0 (3751|0@0@2&#,)! -3 f1 (3751|0@0@2&#,)! -3 f0 (17029|0@0@2&#,)! -3 f1 (17029|0@0@2&#,)! -3 f0 (3700|0@0@2&#,)! -3 f1 (3700|0@0@2&#,)! -3 f0 (3704|0@0@2&#,)! -3 f1 (3704|0@0@2&#,)! -3 f0 (3736|0@0@2&#,)! -3 f1 (3736|0@0@2&#,)! -3 f0 (17024|$#,)! -3 f1 (17024|$#,)! -3 f0 (17025|$#,)! -3 f948 (17025|$#,)! -3 f0 ()! -3 f3751 ()! +3 f18995 (6|$#,)! +3 f0 (18995|$#,4037|$#,4065|$#,3528|0@5@7&#,)! +3 f19 (18995|$#,4037|$#,4065|$#,3528|0@5@7&#,)! +3 f4078 (18995|$#,4037|$#,4065|$#,3528|0@5@7&#,)! +3 f0 (18995|$#,4078|0@0@2&#,)! +3 f2 (18995|$#,4078|0@0@2&#,)! +3 f0 (18995|$#,4078|0@0@2&#,)! +3 f19 (18995|$#,4078|0@0@2&#,)! +3 f4078 (18995|$#,4078|0@0@2&#,)! +3 f0 (19018|0@0@2&#,)! +3 f1 (19018|0@0@2&#,)! +3 f0 (4052|0@0@2&#,)! +3 f1 (4052|0@0@2&#,)! +3 f0 (4052|$#,)! +3 f4052 (4052|$#,)! +3 f0 (4092|0@0@2&#,)! +3 f1 (4092|0@0@2&#,)! +3 f0 (19018|0@0@2&#,)! +3 f1 (19018|0@0@2&#,)! +3 f0 (4041|0@0@2&#,)! +3 f1 (4041|0@0@2&#,)! +3 f0 (4045|0@0@2&#,)! +3 f1 (4045|0@0@2&#,)! +3 f0 (4077|0@0@2&#,)! +3 f1 (4077|0@0@2&#,)! +3 f0 (19013|$#,)! +3 f1 (19013|$#,)! +3 f0 (19014|$#,)! +3 f967 (19014|$#,)! +3 f0 ()! +3 f4092 ()! 3 f0 ()! 3 f19 ()! -3 f17029 ()! -3 f0 (3186|$#,)! -3 f942 (3186|$#,)! -3 f0 (3737|$#,3136|0@0@17&#,)! -3 f2 (3737|$#,3136|0@0@17&#,)! -3 f0 (3751|$#,3186|0@2@2&#,3136|0@0@17&#,)! -3 f1 (3751|$#,3186|0@2@2&#,3136|0@0@17&#,)! -3 f0 (3751|$#,3721|0@0@2&#,)! -3 f2 (3751|$#,3721|0@0@2&#,)! -3 f0 (3751|$#,3721|0@0@2&#,)! -3 f2 (3751|$#,3721|0@0@2&#,)! -3 f0 (3751|$#,3186|0@2@7&#,)! -3 f3715 (3751|$#,3186|0@2@7&#,)! -3 f0 (3751|$#,942|$#,)! -3 f3721 (3751|$#,942|$#,)! -3 f0 (3751|$#,3736|0@0@4&#,)! -3 f1 (3751|$#,3736|0@0@4&#,)! -3 f0 (3751|$#,)! -3 f1 (3751|$#,)! -3 f0 (3751|$#,3700|0@0@2&#,)! -3 f2 (3751|$#,3700|0@0@2&#,)! -3 f0 (3751|$#,3704|0@0@2&#,)! -3 f1 (3751|$#,3704|0@0@2&#,)! -3 f0 (3751|$#,942|$#,)! -3 f942 (3751|$#,942|$#,)! -3 f0 (3751|$#,3711|0@0@6&#,)! -3 f2 (3751|$#,3711|0@0@6&#,)! -3 f0 (3751|$#,942|$#,)! -3 f2 (3751|$#,942|$#,)! -3 f0 (3751|$#,942|$#,)! -3 f3704 (3751|$#,942|$#,)! -3 f0 (3751|$#,942|$#,)! -3 f3711 (3751|$#,942|$#,)! -3 f0 (3751|$#,942|$#,)! -3 f3711 (3751|$#,942|$#,)! -3 f0 (3751|$#,)! -3 f3736 (3751|$#,)! -3 f0 (3751|$#,2|$#,)! -3 f1 (3751|$#,2|$#,)! -3 f0 (17006|$#,210|$#,2|$#,)! -3 f1 (17006|$#,210|$#,2|$#,)! -1 t3741|3741& -3 f0 (3751|$#,210|$#,2|$#,)! -3 f1 (3751|$#,210|$#,2|$#,)! -3 f0 (2200|$#,942|$#,)! -3 f942 (2200|$#,942|$#,)! -3 f0 (2200|$#,3198|@5|0@5@7&#,)! -3 f3198 (2200|$#,3198|@5|0@5@7&#,)! -3 f0 (3136|$#,)! -3 f3177 (3136|$#,)! -3 f0 (23|$#,2124|$#,)! -3 f2651 (23|$#,2124|$#,)! +3 f19018 ()! +3 f0 (3528|$#,)! +3 f961 (3528|$#,)! +3 f0 (4078|$#,3477|0@0@17&#,)! +3 f2 (4078|$#,3477|0@0@17&#,)! +3 f0 (4092|$#,3528|0@2@2&#,3477|0@0@17&#,)! +3 f1 (4092|$#,3528|0@2@2&#,3477|0@0@17&#,)! +3 f0 (4092|$#,4062|0@0@2&#,)! +3 f2 (4092|$#,4062|0@0@2&#,)! +3 f0 (4092|$#,4062|0@0@2&#,)! +3 f2 (4092|$#,4062|0@0@2&#,)! +3 f0 (4092|$#,3528|0@2@7&#,)! +3 f4056 (4092|$#,3528|0@2@7&#,)! +3 f0 (4092|$#,961|$#,)! +3 f4062 (4092|$#,961|$#,)! +3 f0 (4092|$#,4077|0@0@4&#,)! +3 f1 (4092|$#,4077|0@0@4&#,)! +3 f0 (4092|$#,)! +3 f1 (4092|$#,)! +3 f0 (4092|$#,4041|0@0@2&#,)! +3 f2 (4092|$#,4041|0@0@2&#,)! +3 f0 (4092|$#,4045|0@0@2&#,)! +3 f1 (4092|$#,4045|0@0@2&#,)! +3 f0 (4092|$#,961|$#,)! +3 f961 (4092|$#,961|$#,)! +3 f0 (4092|$#,4052|0@0@6&#,)! +3 f2 (4092|$#,4052|0@0@6&#,)! +3 f0 (4092|$#,961|$#,)! +3 f2 (4092|$#,961|$#,)! +3 f0 (4092|$#,961|$#,)! +3 f4045 (4092|$#,961|$#,)! +3 f0 (4092|$#,961|$#,)! +3 f4052 (4092|$#,961|$#,)! +3 f0 (4092|$#,961|$#,)! +3 f4052 (4092|$#,961|$#,)! +3 f0 (4092|$#,)! +3 f4077 (4092|$#,)! +3 f0 (4092|$#,2|$#,)! +3 f1 (4092|$#,2|$#,)! +3 f0 (18995|$#,211|$#,2|$#,)! +3 f1 (18995|$#,211|$#,2|$#,)! +1 t4082|4082& +3 f0 (4092|$#,211|$#,2|$#,)! +3 f1 (4092|$#,211|$#,2|$#,)! +3 f0 (2555|$#,961|$#,)! +3 f961 (2555|$#,961|$#,)! +3 f0 (2555|$#,3540|@5|0@5@7&#,)! +3 f3540 (2555|$#,3540|@5|0@5@7&#,)! +3 f0 (3477|$#,)! +3 f3518 (3477|$#,)! +3 f0 (23|$#,1015|0@5@7&#,)! +3 f2998 (23|$#,1015|0@5@7&#,)! 2 F0/0|0& 2 F4/0|4& 2 F0/0|0& 2 F4/0|4& 3 f0 (23|$#,)! 3 f2 (23|$#,)! -0 s224|-1 17147 -1 -3 f0 (23|$#,2124|$#,2200|$#,)! -3 f1 (23|$#,2124|$#,2200|$#,)! -1 t17144|17144& +0 s7850|-1 19136 -1 +3 f0 (23|$#,1015|0@5@7&#,2555|$#,)! +3 f1 (23|$#,1015|0@5@7&#,2555|$#,)! +1 t19133|19133& 2 F0/0|0& 2 F4/0|4& 2 F0/20|0& 2 F4/20|4& 2 F0/0|0& 2 F4/0|4& -1 t3700|3700& -3 f0 (2124|$#,948|0@5@7&#,2200|$#,)! -3 f1 (2124|$#,948|0@5@7&#,2200|$#,)! -3 f0 (3751|$#,210|$#,2|$#,)! -3 f1 (3751|$#,210|$#,2|$#,)! -3 f0 (17029|$#,)! -3 f19 (17029|$#,)! -3 f17025 (17029|$#,)! -3 f0 (17029|$#,942|$#,)! -3 f19 (17029|$#,942|$#,)! -3 f17025 (17029|$#,942|$#,)! -3 f0 (17029|$#,942|$#,)! -3 f19 (17029|$#,942|$#,)! -3 f17025 (17029|$#,942|$#,)! -3 f0 (3737|$#,)! -3 f3696 (3737|$#,)! -3 f0 (3737|0@5@2&#,)! -3 f1 (3737|0@5@2&#,)! -3 f0 (3743|0@5@2&#,)! -3 f1 (3743|0@5@2&#,)! -3 f0 (17006|0@0@2&#,)! -3 f1 (17006|0@0@2&#,)! +1 t4041|4041& +3 f0 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 f1 (1015|0@5@7&#,967|0@5@7&#,2555|$#,)! +3 f0 (4092|$#,211|$#,2|$#,)! +3 f1 (4092|$#,211|$#,2|$#,)! +3 f0 (19018|$#,)! +3 f19 (19018|$#,)! +3 f19014 (19018|$#,)! +3 f0 (19018|$#,961|$#,)! +3 f19 (19018|$#,961|$#,)! +3 f19014 (19018|$#,961|$#,)! +3 f0 (19018|$#,961|$#,)! +3 f19 (19018|$#,961|$#,)! +3 f19014 (19018|$#,961|$#,)! +3 f0 (4078|$#,)! +3 f4037 (4078|$#,)! +3 f0 (4078|0@5@2&#,)! +3 f1 (4078|0@5@2&#,)! +3 f0 (4084|0@5@2&#,)! +3 f1 (4084|0@5@2&#,)! +3 f0 (18995|0@0@2&#,)! +3 f1 (18995|0@0@2&#,)! 3 f0 (6|$#,)! 3 f19 (6|$#,)! -3 f17006 (6|$#,)! -1 t3743|3743& -3 f0 (17006|$#,3696|$#,3724|$#,3186|0@5@7&#,)! -3 f19 (17006|$#,3696|$#,3724|$#,3186|0@5@7&#,)! -3 f3737 (17006|$#,3696|$#,3724|$#,3186|0@5@7&#,)! -3 f0 (17006|$#,3737|0@0@2&#,)! -3 f2 (17006|$#,3737|0@0@2&#,)! -3 f0 (17006|$#,3737|0@0@2&#,)! -3 f19 (17006|$#,3737|0@0@2&#,)! -3 f3737 (17006|$#,3737|0@0@2&#,)! -3 f0 (17006|$#,)! -3 f1 (17006|$#,)! -3 f0 (3751|$#,)! -3 f1 (3751|$#,)! -3 f0 (2535|$#,)! -3 f989 (2535|$#,)! -3 f0 (3721|0@0@2&#,)! -3 f1 (3721|0@0@2&#,)! -3 f0 (3751|$#,3186|$#,)! -3 f3150 (3751|$#,3186|$#,)! -3 f0 (3751|$#,3186|$#,5|$#,)! -3 f2 (3751|$#,3186|$#,5|$#,)! -3 f0 (2481|0@5@7&#,3398|$#,)! -3 f2 (2481|0@5@7&#,3398|$#,)! -3 f0 (3751|$#,3186|0@5@6&#,3398|$#,941|$#,)! -3 f3208 (3751|$#,3186|0@5@6&#,3398|$#,941|$#,)! -0 s367|& +3 f18995 (6|$#,)! +1 t4084|4084& +3 f0 (18995|$#,4037|$#,4065|$#,3528|0@5@7&#,)! +3 f19 (18995|$#,4037|$#,4065|$#,3528|0@5@7&#,)! +3 f4078 (18995|$#,4037|$#,4065|$#,3528|0@5@7&#,)! +3 f0 (18995|$#,4078|0@0@2&#,)! +3 f2 (18995|$#,4078|0@0@2&#,)! +3 f0 (18995|$#,4078|0@0@2&#,)! +3 f19 (18995|$#,4078|0@0@2&#,)! +3 f4078 (18995|$#,4078|0@0@2&#,)! +3 f0 (18995|$#,)! +3 f1 (18995|$#,)! +3 f0 (4092|$#,)! +3 f1 (4092|$#,)! +3 f0 (2879|$#,)! +3 f1117 (2879|$#,)! +3 f0 (4062|0@0@2&#,)! +3 f1 (4062|0@0@2&#,)! +3 f0 (4092|$#,3528|$#,)! +3 f3491 (4092|$#,3528|$#,)! +3 f0 (4092|$#,3528|$#,5|$#,)! +3 f2 (4092|$#,3528|$#,5|$#,)! +3 f0 (2837|0@5@7&#,3739|$#,)! +3 f2 (2837|0@5@7&#,3739|$#,)! +3 f0 (4092|$#,3528|0@5@6&#,3739|$#,960|$#,)! +3 f3550 (4092|$#,3528|0@5@6&#,3739|$#,960|$#,)! +0 s7851|& 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -17307,28 +19296,28 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (17204|$#,)! -3 f1 (17204|$#,)! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! +3 f0 (19193|$#,)! +3 f1 (19193|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! -3 f0 (949|$#,)! -3 f1 (949|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! +3 f0 (968|$#,)! +3 f1 (968|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (948|0@5@7&#,23|0@0@6&#,)! -3 f1 (948|0@5@7&#,23|0@0@6&#,)! +3 f0 (967|0@5@7&#,23|0@0@6&#,)! +3 f1 (967|0@5@7&#,23|0@0@6&#,)! 2 F0/0|0& 2 F2/0|2& 3 f0 (23|$#,)! -3 f948 (23|$#,)! -3 f0 (948|0@5@7&#,)! -3 f2 (948|0@5@7&#,)! +3 f967 (23|$#,)! +3 f0 (967|0@5@7&#,)! +3 f2 (967|0@5@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -17423,22 +19412,22 @@ 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (17204|$#,)! -3 f1 (17204|$#,)! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! +3 f0 (19193|$#,)! +3 f1 (19193|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (15435|$#,)! -3 f1 (15435|$#,)! -3 f0 (949|$#,)! -3 f1 (949|$#,)! +3 f0 (17423|$#,)! +3 f1 (17423|$#,)! +3 f0 (968|$#,)! +3 f1 (968|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (948|0@5@7&#,23|0@0@6&#,)! -3 f1 (948|0@5@7&#,23|0@0@6&#,)! +3 f0 (967|0@5@7&#,23|0@0@6&#,)! +3 f1 (967|0@5@7&#,23|0@0@6&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -17446,559 +19435,970 @@ 3 f0 ()! 3 f1 ()! 2 F0/0|0& -2 F2398/0|2398& +2 F2754/0|2754& 3 f0 ()! 3 f2 ()! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (948|0@5@2&#,)! -3 f1 (948|0@5@2&#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (967|0@5@2&#,)! +3 f1 (967|0@5@2&#,)! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 (2|$#,)! 3 f1 (2|$#,)! +3 U!261{967|@1|0@5@3&#ltok,1706|@1|^#typequal,6|@1|^#count,2837|@1|0@5@2&#ltokenList,3076|@1|0@0@2&#abstDecl,3013|@1|0@0@2&#declare,3023|@1|0@0@2&#declarelist,964|@1|0@0@2&#typeexpr,3082|@1|0@0@2&#array,3111|@1|0@0@2&#quantifier,3121|@1|0@0@2&#quantifiers,3086|@1|0@0@2&#var,3096|@1|0@0@2&#vars,3141|@1|0@0@2&#storeref,3159|@1|0@0@2&#storereflist,941|@1|0@0@2&#term,959|@1|0@0@2&#termlist,3206|@1|0@0@2&#program,950|@1|0@0@2&#stmt,3303|@1|0@0@2&#claim,3390|@1|0@0@2&#type,3340|@1|0@0@2&#iter,3309|@1|0@0@2&#fcn,3319|@1|0@5@2&#fcns,3180|@1|0@0@2&#letdecl,3188|@1|0@0@2&#letdecls,947|@1|0@0@2&#lclpredicate,3174|@1|0@0@2&#modify,2684|@1|0@0@2&#param,2702|@1|0@5@2&#paramlist,3048|@1|0@0@2&#declaratorinvs,3038|@1|0@0@2&#declaratorinv,944|@1|0@0@2&#abstbody,3349|@1|0@0@2&#abstract,3230|@1|0@0@2&#exposed,3295|@1|0@0@2&#globals,3266|@1|0@0@2&#constdeclaration,3275|@1|0@0@2&#vardeclaration,3285|@1|0@0@2&#vardeclarationlist,3253|@1|0@0@2&#initdecls,3243|@1|0@0@2&#initdecl,3365|@1|0@0@2&#structdecls,3355|@1|0@0@2&#structdecl,3399|@1|0@0@2&#structorunion,3405|@1|0@0@2&#enumspec,956|@1|0@5@2&#lcltypespec,3434|@1|0@0@2&#typname,938|@1|0@0@2&#opform,3477|@1|0@0@2&#signature,3528|@1|0@0@2&#name,3444|@1|0@0@2&#namelist,3573|@1|0@0@2&#replace,3583|@1|0@0@2&#replacelist,3606|@1|0@0@2&#renaming,3612|@1|0@0@2&#traitref,3620|@1|0@0@2&#traitreflist,2886|@1|0@0@2&#import,2900|@1|0@0@2&#importlist,3660|@1|0@0@2&#iface,3670|@1|0@0@2&#interfacelist,3239|@1|0@0@2&#ctypes,}! +0 s7856|& 2 F0/0|0& -2 F2398/0|2398& +2 F2754/0|2754& 3 f0 ()! -3 f949 ()! +3 f968 ()! 3 f0 ()! -3 f948 ()! +3 f967 ()! 3 f0 ()! -3 f948 ()! -3 f0 (948|0@5@2&#,)! -3 f1 (948|0@5@2&#,)! +3 f967 ()! +3 f0 (967|0@5@2&#,)! +3 f1 (967|0@5@2&#,)! 3 f0 ()! -3 f19 ()! -3 f2124 ()! +3 f1015 ()! 3 f0 ()! 3 f1 ()! -3 f0 (2124|$#,)! -3 f1 (2124|$#,)! +3 f0 (1015|0@5@7&#,)! +3 f1 (1015|0@5@7&#,)! 3 f0 ()! 3 f1 ()! -0 s91|& -3 S!105{942|@1|^#HashNext,17474|@1|^#i,}! -0 s6742|& -0 s372|-1 17486 -1 +0 s7858|& +3 S!262{961|@1|^#HashNext,19464|@1|^#i,}! +0 s7859|& +0 s7860|-1 19476 -1 3 f0 (6|$#,)! 3 f1 (6|$#,)! 3 f0 (23|0@0@9&#,)! -3 f17474 (23|0@0@9&#,)! +3 f19464 (23|0@0@9&#,)! 3 f0 (6|$#,)! 3 f1 (6|$#,)! 3 f0 (23|$#,10|$#,)! -3 f942 (23|$#,10|$#,)! -1 t17477|17477& -3 f0 (989|0@5@6&#,)! -3 f942 (989|0@5@6&#,)! +3 f961 (23|$#,10|$#,)! +1 t19467|19467& +3 f0 (1117|0@5@6&#,)! +3 f961 (1117|0@5@6&#,)! 3 f0 (23|0@0@6&#,)! -3 f942 (23|0@0@6&#,)! -3 f0 (942|$#,)! -3 f989 (942|$#,)! -3 f0 (942|$#,)! -3 f19 (942|$#,)! -3 f23 (942|$#,)! -3 f0 (942|$#,)! -3 f19 (942|$#,)! -3 f23 (942|$#,)! +3 f961 (23|0@0@6&#,)! +3 f0 (961|$#,)! +3 f1117 (961|$#,)! +3 f0 (961|$#,)! +3 f19 (961|$#,)! +3 f23 (961|$#,)! +3 f0 (961|$#,)! +3 f19 (961|$#,)! +3 f23 (961|$#,)! 3 f0 (6|$#,)! 3 f1 (6|$#,)! 3 f0 (23|0@0@9&#,)! -3 f17474 (23|0@0@9&#,)! +3 f19464 (23|0@0@9&#,)! 3 f0 (6|$#,)! 3 f1 (6|$#,)! 3 f0 (23|$#,10|$#,)! -3 f942 (23|$#,10|$#,)! +3 f961 (23|$#,10|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (2192|0@5@2&#,)! -3 f1 (2192|0@5@2&#,)! -3 f0 (2200|0@0@2&#,)! -3 f1 (2200|0@0@2&#,)! +3 f0 (0|$#,)! +3 f0 (2549|0@5@2&#,)! +3 f1 (2549|0@5@2&#,)! +3 f0 (2555|0@0@2&#,)! +3 f1 (2555|0@0@2&#,)! 3 f0 ()! -3 f19 ()! -3 f2200 ()! -1 t2192|2192& -3 f0 (2200|$#,942|$#,)! -3 f942 (2200|$#,942|$#,)! -3 f0 (2200|$#,942|$#,942|$#,)! -3 f1 (2200|$#,942|$#,942|$#,)! +3 f2555 ()! +1 t2549|2549& +3 f0 (2555|$#,961|$#,)! +3 f961 (2555|$#,961|$#,)! +3 f0 (2555|$#,961|$#,961|$#,)! +3 f1 (2555|$#,961|$#,961|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 (23|$#,)! 3 f1 (23|$#,)! -3 f0 (23|^#,23|^#,6|^#,)! -3 f1 (23|^#,23|^#,6|^#,)! +3 U!263{967|@1|0@5@3&#ltok,1706|@1|^#typequal,6|@1|^#count,2837|@1|0@5@2&#ltokenList,3076|@1|0@0@2&#abstDecl,3013|@1|0@0@2&#declare,3023|@1|0@0@2&#declarelist,964|@1|0@0@2&#typeexpr,3082|@1|0@0@2&#array,3111|@1|0@0@2&#quantifier,3121|@1|0@0@2&#quantifiers,3086|@1|0@0@2&#var,3096|@1|0@0@2&#vars,3141|@1|0@0@2&#storeref,3159|@1|0@0@2&#storereflist,941|@1|0@0@2&#term,959|@1|0@0@2&#termlist,3206|@1|0@0@2&#program,950|@1|0@0@2&#stmt,3303|@1|0@0@2&#claim,3390|@1|0@0@2&#type,3340|@1|0@0@2&#iter,3309|@1|0@0@2&#fcn,3319|@1|0@5@2&#fcns,3180|@1|0@0@2&#letdecl,3188|@1|0@0@2&#letdecls,947|@1|0@0@2&#lclpredicate,3174|@1|0@0@2&#modify,2684|@1|0@0@2&#param,2702|@1|0@5@2&#paramlist,3048|@1|0@0@2&#declaratorinvs,3038|@1|0@0@2&#declaratorinv,944|@1|0@0@2&#abstbody,3349|@1|0@0@2&#abstract,3230|@1|0@0@2&#exposed,3295|@1|0@0@2&#globals,3266|@1|0@0@2&#constdeclaration,3275|@1|0@0@2&#vardeclaration,3285|@1|0@0@2&#vardeclarationlist,3253|@1|0@0@2&#initdecls,3243|@1|0@0@2&#initdecl,3365|@1|0@0@2&#structdecls,3355|@1|0@0@2&#structdecl,3399|@1|0@0@2&#structorunion,3405|@1|0@0@2&#enumspec,956|@1|0@5@2&#lcltypespec,3434|@1|0@0@2&#typname,938|@1|0@0@2&#opform,3477|@1|0@0@2&#signature,3528|@1|0@0@2&#name,3444|@1|0@0@2&#namelist,3573|@1|0@0@2&#replace,3583|@1|0@0@2&#replacelist,3606|@1|0@0@2&#renaming,3612|@1|0@0@2&#traitref,3620|@1|0@0@2&#traitreflist,2886|@1|0@0@2&#import,2900|@1|0@0@2&#importlist,3660|@1|0@0@2&#iface,3670|@1|0@0@2&#interfacelist,3239|@1|0@0@2&#ctypes,}! +0 s7862|& +3 f0 (5|^#,5|^#,5|^#,)! +3 f1 (5|^#,5|^#,5|^#,)! 3 f1 (23|^#,23|^#,6|^#,)! 3 f0 ()! 3 f5 ()! 2 F0/200|0& 2 F7/200|7& 2 F0/200|0& -2 F10321/200|10321& +2 F8854/200|8854& 3 f0 (23|$#,)! 3 f1 (23|$#,)! -3 f0 (210|$#,5|$#,10321|$#,)! -3 f1 (210|$#,5|$#,10321|$#,)! +3 f0 (211|$#,5|$#,8854|$#,)! +3 f1 (211|$#,5|$#,8854|$#,)! 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (23|^#,23|^#,6|^#,)! -3 f1 (23|^#,23|^#,6|^#,)! +3 U!264{967|@1|0@5@3&#ltok,6|@1|^#count,2837|@1|0@5@2&#ltokenList,938|@1|0@0@2&#opform,3477|@1|0@0@17&#signature,3528|@1|0@0@2&#name,3540|@1|0@0@17&#operator,3764|@1|0@0@2&#operators,}! +0 s7865|& +3 f0 (5|^#,5|^#,5|^#,)! +3 f1 (5|^#,5|^#,5|^#,)! 3 f1 (23|^#,23|^#,6|^#,)! 3 f0 ()! 3 f5 ()! 2 F0/200|0& 2 F7/200|7& 2 F0/200|0& -2 F10321/200|10321& +2 F8854/200|8854& 3 f0 (23|$#,)! 3 f1 (23|$#,)! -3 f0 (210|$#,5|$#,10321|$#,)! -3 f1 (210|$#,5|$#,10321|$#,)! -3 f0 (948|0@5@7&#,)! -3 f1 (948|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (955|0@5@7&#,2|$#,966|0@2@7&#,)! -3 f1 (955|0@5@7&#,2|$#,966|0@2@7&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (991|$#,966|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f2 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@2@7&#,3819|$#,5|$#,955|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@2@7&#,3819|$#,5|$#,955|0@5@7&#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,)! -3 f1 (966|0@2@7&#,966|0@2@7&#,)! -3 f0 (991|$#,991|$#,1779|$#,966|0@2@7&#,966|0@2@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f1 (991|$#,991|$#,1779|$#,966|0@2@7&#,966|0@2@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f0 (991|$#,991|$#,991|$#,991|$#,966|0@2@7&#,966|0@2@7&#,1779|$#,)! -3 f991 (991|$#,991|$#,991|$#,991|$#,966|0@2@7&#,966|0@2@7&#,1779|$#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,2|$#,)! -3 f1 (966|0@2@7&#,966|0@2@7&#,2|$#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (966|0@2@7&#,2|$#,)! -3 f1 (966|0@2@7&#,2|$#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@18&#,)! -3 f10834 (966|0@5@18&#,)! -3 f0 (966|0@5@7&#,989|0@5@18&#,)! -3 f1 (966|0@5@7&#,989|0@5@18&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (966|0@2@18&#,989|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,972|0@5@7&#,2|$#,5|$#,)! -3 f1 (966|0@2@18&#,989|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,972|0@5@7&#,2|$#,5|$#,)! -3 f0 (955|0@5@7&#,966|0@2@7&#,966|0@5@18&#,2|$#,5|$#,5|$#,)! -3 f1 (955|0@5@7&#,966|0@2@7&#,966|0@5@18&#,2|$#,5|$#,5|$#,)! -3 f0 (966|0@2@18&#,4297|0@5@7&#,3819|$#,)! -3 f1 (966|0@2@18&#,4297|0@5@7&#,3819|$#,)! -3 f0 (966|0@5@7&#,)! -3 f966 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (955|0@5@7&#,966|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,966|0@5@7&#,)! -3 f5 (955|0@5@7&#,966|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,966|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 (966|0@2@7&#,)! -3 f1 (966|0@2@7&#,)! +3 f0 (211|$#,5|$#,8854|$#,)! +3 f1 (211|$#,5|$#,8854|$#,)! +3 f0 (967|0@5@7&#,)! +3 f1 (967|0@5@7&#,)! +3 f0 (6236|0@5@2&#,)! +3 f1 (6236|0@5@2&#,)! +3 f0 (6236|0@5@2&#,6236|0@5@7&#,)! +3 f6236 (6236|0@5@2&#,6236|0@5@7&#,)! +3 f0 (6236|0@5@2&#,1003|0@5@7&#,)! +3 f6236 (6236|0@5@2&#,1003|0@5@7&#,)! +3 f0 (6236|0@5@2&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f6236 (6236|0@5@2&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (6236|0@5@7&#,)! +3 f6236 (6236|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f6236 (1003|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f6236 (971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (6236|0@5@7&#,)! +3 f1117 (6236|0@5@7&#,)! +3 f0 (6236|0@5@7&#,)! +3 f1003 (6236|0@5@7&#,)! +3 f0 ()! +3 f8217 ()! +3 f0 (8217|$#,)! +3 f1117 (8217|$#,)! +3 f0 (5|$#,)! +3 f8227 (5|$#,)! +3 f0 (8227|$#,)! +3 f1117 (8227|$#,)! +3 f0 (8217|0@0@2&#,)! +3 f1 (8217|0@0@2&#,)! +3 f0 (8222|0@0@2&#,)! +3 f1 (8222|0@0@2&#,)! +3 f0 (8227|0@0@2&#,)! +3 f1 (8227|0@0@2&#,)! +3 f0 (8227|$#,5|$#,5|$#,)! +3 f8217 (8227|$#,5|$#,5|$#,)! +3 f0 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f1 (8227|$#,5|$#,5|$#,5|$#,1117|0@5@2&#,)! +3 f0 (8227|$#,5|$#,5|$#,1287|4@0@19@3@0#,)! +3 f5 (8227|$#,5|$#,5|$#,1287|4@0@19@3@0#,)! +3 f0 (8227|$#,5|$#,1287|4@0@19@3@0#,)! +3 f5 (8227|$#,5|$#,1287|4@0@19@3@0#,)! +3 f0 (1020|0@5@7&#,1117|0@5@2&#,1024|0@5@2&#,)! +3 f1 (1020|0@5@7&#,1117|0@5@2&#,1024|0@5@2&#,)! +3 f0 (1020|0@5@7&#,)! +3 f1117 (1020|0@5@7&#,)! +3 f0 (1117|0@5@2&#,2243|0@5@2&#,1057|0@5@2&#,8227|0@0@2&#,8227|0@0@2&#,1003|0@5@2&#,)! +3 f1024 (1117|0@5@2&#,2243|0@5@2&#,1057|0@5@2&#,8227|0@0@2&#,8227|0@0@2&#,1003|0@5@2&#,)! +3 f0 (1024|0@5@2&#,)! +3 f1 (1024|0@5@2&#,)! +3 f0 (1024|0@5@7&#,)! +3 f1117 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,5|$#,)! +3 f1117 (1024|0@5@7&#,5|$#,)! +3 f0 (1024|0@5@7&#,)! +3 f1057 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f1117 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f1003 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f8227 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f8227 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,971|0@5@7&#,)! +3 f5 (1024|0@5@7&#,971|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f5 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,5|$#,)! +3 f1 (1024|0@5@7&#,5|$#,)! +3 f0 (1024|0@5@7&#,5|$#,)! +3 f1 (1024|0@5@7&#,5|$#,)! +3 f0 (1024|0@5@7&#,)! +3 f5 (1024|0@5@7&#,)! +3 f0 (1024|0@5@7&#,)! +3 f5 (1024|0@5@7&#,)! +3 f0 (1021|0@5@7&#,)! +3 f1117 (1021|0@5@7&#,)! +3 f0 (1021|0@5@7&#,1012|0@5@2&#,)! +3 f1 (1021|0@5@7&#,1012|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1024|0@5@18@2@0#,1057|0@5@2&#,5|$#,1003|0@5@2&#,)! +3 f1012 (1117|0@5@2&#,1024|0@5@18@2@0#,1057|0@5@2&#,5|$#,1003|0@5@2&#,)! +3 f0 (1012|0@5@2&#,)! +3 f1 (1012|0@5@2&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1117 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1117 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1024 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1003 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f5 (1012|0@5@7&#,)! +3 f0 (1012|0@5@7&#,974|0@5@7&#,)! +3 f2 (1012|0@5@7&#,974|0@5@7&#,)! +3 f0 (1012|0@5@7&#,971|0@5@7&#,)! +3 f2 (1012|0@5@7&#,971|0@5@7&#,)! +3 f0 (1012|0@5@7&#,)! +3 f1117 (1012|0@5@7&#,)! +3 f0 (313|$#,)! +3 f1012 (313|$#,)! +3 f0 (979|$#,)! +3 f1117 (979|$#,)! +3 f0 (5|$#,1117|0@5@2&#,1003|0@5@2&#,)! +3 f979 (5|$#,1117|0@5@2&#,1003|0@5@2&#,)! +3 f0 (979|$#,)! +3 f1003 (979|$#,)! +3 f0 (979|0@0@2&#,)! +3 f1 (979|0@0@2&#,)! +3 f0 (979|$#,)! +3 f2 (979|$#,)! +3 f0 (979|0@0@2&#,1054|0@5@2&#,)! +3 f1048 (979|0@0@2&#,1054|0@5@2&#,)! +3 f0 (1048|$#,)! +3 f1117 (1048|$#,)! +3 f0 (1048|$#,2|$#,)! +3 f1 (1048|$#,2|$#,)! +3 f0 (1048|0@0@2&#,)! +3 f1 (1048|0@0@2&#,)! +3 f0 (1048|$#,)! +3 f1003 (1048|$#,)! +3 f0 (1048|$#,)! +3 f1117 (1048|$#,)! +3 f0 ()! +3 f1054 ()! +3 f0 (1054|0@5@2&#,1051|0@5@2&#,)! +3 f1054 (1054|0@5@2&#,1051|0@5@2&#,)! +3 f0 (1054|0@5@7&#,)! +3 f1117 (1054|0@5@7&#,)! +3 f0 (1054|0@5@7&#,9170|$#,)! +3 f1051 (1054|0@5@7&#,9170|$#,)! +3 f0 (1054|0@5@2&#,)! +3 f1 (1054|0@5@2&#,)! +3 f0 (9170|$#,20|0@5@2&#,)! +3 f1051 (9170|$#,20|0@5@2&#,)! +3 f0 (1057|0@5@2&#,)! +3 f1051 (1057|0@5@2&#,)! +3 f0 (1060|0@0@2&#,)! +3 f1051 (1060|0@0@2&#,)! +3 f0 (1063|0@0@2&#,)! +3 f1051 (1063|0@0@2&#,)! +3 f0 (979|0@0@2&#,)! +3 f1051 (979|0@0@2&#,)! +3 f0 (1072|0@0@2&#,)! +3 f1051 (1072|0@0@2&#,)! +3 f0 (1081|0@0@2&#,)! +3 f1051 (1081|0@0@2&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1051 (1093|0@5@2&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1051 (1093|0@5@2&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1051 (1093|0@5@2&#,)! +3 f0 (1099|0@5@2&#,)! +3 f1051 (1099|0@5@2&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1117 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,9170|$#,)! +3 f2 (1051|0@5@7&#,9170|$#,)! +3 f0 (1051|0@5@7&#,)! +3 f1057 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1057 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1063 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1117 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1072 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1081 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1093 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1093 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1093 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1099 (1051|0@5@7&#,)! +3 f0 (1051|0@5@7&#,)! +3 f1060 (1051|0@5@7&#,)! +3 f0 (1051|0@5@2&#,)! +3 f1 (1051|0@5@2&#,)! +3 f0 (1057|0@5@7&#,1119|$#,)! +3 f2 (1057|0@5@7&#,1119|$#,)! +3 f0 (9241|$#,)! +3 f1117 (9241|$#,)! +3 f0 (9241|$#,1119|$#,)! +3 f1057 (9241|$#,1119|$#,)! +3 f0 ()! +3 f1057 ()! +3 f0 (1119|$#,)! +3 f1057 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1057 (1119|$#,)! +3 f0 (1119|$#,)! +3 f1057 (1119|$#,)! +3 f0 (1057|0@5@2&#,)! +3 f1 (1057|0@5@2&#,)! +3 f0 (1057|0@5@7&#,974|0@5@7&#,)! +3 f2 (1057|0@5@7&#,974|0@5@7&#,)! +3 f0 (1057|0@5@7&#,971|0@5@7&#,)! +3 f2 (1057|0@5@7&#,971|0@5@7&#,)! +3 f0 (1057|0@5@7&#,971|0@5@7&#,)! +3 f2 (1057|0@5@7&#,971|0@5@7&#,)! +3 f0 (1057|0@5@7&#,1119|$#,)! +3 f2 (1057|0@5@7&#,1119|$#,)! +3 f0 (1057|0@5@7&#,)! +3 f1117 (1057|0@5@7&#,)! +3 f0 (1057|0@5@7&#,)! +3 f2 (1057|0@5@7&#,)! +3 f0 (1057|0@5@7&#,)! +3 f2 (1057|0@5@7&#,)! +3 f0 (1057|0@5@7&#,)! +3 f2 (1057|0@5@7&#,)! +3 f0 (2243|0@5@2&#,)! +3 f1060 (2243|0@5@2&#,)! +3 f0 (1060|0@0@2&#,)! +3 f1 (1060|0@0@2&#,)! +3 f0 (1060|$#,)! +3 f1117 (1060|$#,)! +3 f0 (979|0@0@2&#,1066|0@5@2&#,)! +3 f1063 (979|0@0@2&#,1066|0@5@2&#,)! +3 f0 (1063|0@0@2&#,)! +3 f1 (1063|0@0@2&#,)! +3 f0 (1063|$#,)! +3 f1117 (1063|$#,)! +3 f0 (1075|0@5@2&#,)! +3 f1072 (1075|0@5@2&#,)! +3 f0 (1072|0@0@2&#,)! +3 f1 (1072|0@0@2&#,)! +3 f0 (1072|$#,)! +3 f1117 (1072|$#,)! +3 f0 (1087|0@5@2&#,)! +3 f1081 (1087|0@5@2&#,)! +3 f0 (1081|0@0@2&#,)! +3 f1 (1081|0@0@2&#,)! +3 f0 (1081|$#,)! +3 f1117 (1081|$#,)! +3 f0 ()! +3 f1075 ()! +3 f0 ()! +3 f1075 ()! +3 f0 (1075|0@2@7&#,)! +3 f1 (1075|0@2@7&#,)! +3 f0 (1078|0@0@4&#,)! +3 f1075 (1078|0@0@4&#,)! +3 f0 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f1075 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f0 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f1075 (1075|@5|0@5@7&#,1078|0@0@4&#,)! +3 f0 (1075|0@5@7&#,)! +3 f1117 (1075|0@5@7&#,)! +3 f0 (1075|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1075|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1075|0@5@2&#,)! +3 f1 (1075|0@5@2&#,)! +3 f0 (979|0@0@2&#,1057|0@5@2&#,979|0@0@2&#,)! +3 f1078 (979|0@0@2&#,1057|0@5@2&#,979|0@0@2&#,)! +3 f0 (1078|$#,)! +3 f1057 (1078|$#,)! +3 f0 (1078|$#,)! +3 f1117 (1078|$#,)! +3 f0 ()! +3 f1093 ()! +3 f0 ()! +3 f1093 ()! +1 t1096|1096& +3 f0 (1093|0@2@7&#,)! +3 f1 (1093|0@2@7&#,)! +3 f0 (1096|0@0@4&#,)! +3 f1093 (1096|0@0@4&#,)! +3 f0 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f1093 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f0 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f1093 (1093|@5|0@5@7&#,1096|0@0@4&#,)! +3 f0 (1093|0@5@7&#,)! +3 f1117 (1093|0@5@7&#,)! +3 f0 (1093|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1093|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1093|0@5@2&#,)! +3 f1 (1093|0@5@2&#,)! +3 f0 (979|0@0@2&#,979|0@0@2&#,1105|0@0@2&#,)! +3 f1096 (979|0@0@2&#,979|0@0@2&#,1105|0@0@2&#,)! +3 f0 (1096|0@0@2&#,)! +3 f1 (1096|0@0@2&#,)! +3 f0 (1096|$#,)! +3 f1117 (1096|$#,)! +3 f0 (979|0@0@2&#,)! +3 f1105 (979|0@0@2&#,)! +3 f0 (979|0@0@2&#,)! +3 f1105 (979|0@0@2&#,)! +3 f0 (979|0@0@2&#,)! +3 f1105 (979|0@0@2&#,)! +3 f0 (1105|$#,)! +3 f1117 (1105|$#,)! +3 f0 (1105|$#,)! +3 f1117 (1105|$#,)! +3 f0 (1105|0@0@2&#,)! +3 f1 (1105|0@0@2&#,)! +3 f0 ()! +3 f1099 ()! +3 f0 ()! +3 f1099 ()! +1 t1102|1102& +3 f0 (1099|0@2@7&#,)! +3 f1 (1099|0@2@7&#,)! +3 f0 (1102|0@0@4&#,)! +3 f1099 (1102|0@0@4&#,)! +3 f0 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f1099 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f0 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f1099 (1099|@5|0@5@7&#,1102|0@0@4&#,)! +3 f0 (1099|0@5@7&#,)! +3 f1117 (1099|0@5@7&#,)! +3 f0 (1099|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1099|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1099|0@5@2&#,)! +3 f1 (1099|0@5@2&#,)! +3 f0 (979|0@0@2&#,1105|0@0@2&#,)! +3 f1102 (979|0@0@2&#,1105|0@0@2&#,)! +3 f0 (1102|0@0@2&#,)! +3 f1 (1102|0@0@2&#,)! +3 f0 (1102|$#,)! +3 f1117 (1102|$#,)! +3 f0 ()! +3 f1066 ()! +3 f0 ()! +3 f1066 ()! +1 t1069|1069& +3 f0 (1066|0@2@7&#,)! +3 f1 (1066|0@2@7&#,)! +3 f0 (1069|0@0@4&#,)! +3 f1066 (1069|0@0@4&#,)! +3 f0 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f1066 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f0 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f1066 (1066|@5|0@5@7&#,1069|0@0@4&#,)! +3 f0 (1066|0@5@7&#,)! +3 f1117 (1066|0@5@7&#,)! +3 f0 (1066|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1066|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1066|0@5@2&#,)! +3 f1 (1066|0@5@2&#,)! +3 f0 (1057|0@5@2&#,979|0@0@2&#,)! +3 f1069 (1057|0@5@2&#,979|0@0@2&#,)! +3 f0 (1069|0@0@2&#,)! +3 f1 (1069|0@0@2&#,)! +3 f0 (1069|$#,)! +3 f1117 (1069|$#,)! +3 f0 (979|0@0@2&#,)! +3 f1084 (979|0@0@2&#,)! +3 f0 (979|0@0@2&#,)! +3 f1084 (979|0@0@2&#,)! +3 f0 (1084|$#,)! +3 f1117 (1084|$#,)! +3 f0 (1084|0@0@2&#,)! +3 f1 (1084|0@0@2&#,)! +3 f0 (1084|0@0@2&#,1084|0@0@2&#,1105|0@0@2&#,)! +3 f1090 (1084|0@0@2&#,1084|0@0@2&#,1105|0@0@2&#,)! +3 f0 (1090|0@0@2&#,)! +3 f1 (1090|0@0@2&#,)! +3 f0 (1090|$#,)! +3 f1117 (1090|$#,)! +3 f0 ()! +3 f1087 ()! +3 f0 ()! +3 f1087 ()! +1 t1090|1090& +3 f0 (1087|0@2@7&#,)! +3 f1 (1087|0@2@7&#,)! +3 f0 (1090|0@0@4&#,)! +3 f1087 (1090|0@0@4&#,)! +3 f0 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f1087 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f0 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f1087 (1087|@5|0@5@7&#,1090|0@0@4&#,)! +3 f0 (1087|0@5@7&#,)! +3 f1117 (1087|0@5@7&#,)! +3 f0 (1087|0@5@7&#,1117|0@5@7&#,)! +3 f1117 (1087|0@5@7&#,1117|0@5@7&#,)! +3 f0 (1087|0@5@2&#,)! +3 f1 (1087|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (974|0@5@7&#,2|$#,988|0@2@7&#,)! +3 f1 (974|0@5@7&#,2|$#,988|0@2@7&#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (1119|$#,988|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f988 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f2 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@2@7&#,4160|$#,5|$#,974|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@2@7&#,4160|$#,5|$#,974|0@5@7&#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,)! +3 f1 (988|0@2@7&#,988|0@2@7&#,)! +3 f0 (1119|$#,1119|$#,2013|$#,988|0@2@7&#,988|0@2@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f1 (1119|$#,1119|$#,2013|$#,988|0@2@7&#,988|0@2@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (1119|$#,1119|$#,1119|$#,1119|$#,988|0@2@7&#,988|0@2@7&#,2013|$#,)! +3 f1119 (1119|$#,1119|$#,1119|$#,1119|$#,988|0@2@7&#,988|0@2@7&#,2013|$#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,2|$#,)! +3 f1 (988|0@2@7&#,988|0@2@7&#,2|$#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (988|0@2@7&#,2|$#,)! +3 f1 (988|0@2@7&#,2|$#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@18&#,)! +3 f9586 (988|0@5@18&#,)! +3 f0 (988|0@5@7&#,1117|0@5@18&#,)! +3 f1 (988|0@5@7&#,1117|0@5@18&#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (988|0@2@18&#,1117|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,994|0@5@7&#,2|$#,5|$#,)! +3 f1 (988|0@2@18&#,1117|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,994|0@5@7&#,2|$#,5|$#,)! +3 f0 (974|0@5@7&#,988|0@2@7&#,988|0@5@18&#,2|$#,5|$#,5|$#,)! +3 f1 (974|0@5@7&#,988|0@2@7&#,988|0@5@18&#,2|$#,5|$#,5|$#,)! +3 f0 (988|0@2@18&#,4717|0@5@7&#,4160|$#,)! +3 f1 (988|0@2@18&#,4717|0@5@7&#,4160|$#,)! +3 f0 (988|0@5@7&#,)! +3 f988 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1117 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1117 (988|0@5@7&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (974|0@5@7&#,988|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,988|0@5@7&#,)! +3 f5 (974|0@5@7&#,988|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,988|0@5@7&#,)! +3 f0 (988|@7|15@2@1&#,)! +3 f1 (988|@7|15@2@1&#,)! +3 f0 ()! +3 f1 ()! +3 f0 ()! +3 f1 ()! +3 f0 (988|0@2@7&#,)! +3 f1 (988|0@2@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f988 (988|0@5@7&#,)! 3 f0 (4|$#,)! 3 f2 (4|$#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,966|0@2@7&#,)! -3 f1 (966|0@2@7&#,966|0@2@7&#,966|0@2@7&#,)! -3 f0 (6793|$#,)! -3 f2 (6793|$#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 ()! -3 f966 ()! -3 f0 ()! -3 f966 ()! -3 f0 (991|$#,)! -3 f966 (991|$#,)! -3 f0 ()! -3 f966 ()! -3 f0 (991|$#,)! -3 f966 (991|$#,)! -3 f0 ()! -3 f966 ()! -3 f0 (991|$#,978|0@5@4&#,)! -3 f966 (991|$#,978|0@5@4&#,)! -3 f0 (966|15@2@1&#,966|0@5@7&#,)! -3 f1 (966|15@2@1&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,978|0@5@2&#,)! -3 f966 (966|0@5@7&#,978|0@5@2&#,)! -3 f0 (966|0@5@7&#,)! -3 f966 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f966 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f966 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@2@7&#,)! -3 f2 (966|0@2@7&#,)! -3 f0 (991|$#,989|0@5@6&#,978|0@5@2&#,9|$#,)! -3 f966 (991|$#,989|0@5@6&#,978|0@5@2&#,9|$#,)! -3 f0 (4|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f966 (4|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f0 (17|$#,991|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f966 (17|$#,991|$#,989|0@5@7&#,978|0@5@2&#,)! -3 f0 (966|0@5@7&#,)! -3 f5075 (966|0@5@7&#,)! -3 f0 (989|0@5@2&#,978|0@5@2&#,)! -3 f966 (989|0@5@2&#,978|0@5@2&#,)! -3 f0 (989|0@5@7&#,)! -3 f966 (989|0@5@7&#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (955|0@5@7&#,966|0@5@18&#,991|$#,3819|$#,966|0@5@7&#,)! -3 f5 (955|0@5@7&#,966|0@5@18&#,991|$#,3819|$#,966|0@5@7&#,)! -3 f0 (966|0@2@18&#,955|0@5@7&#,3819|$#,966|0@5@7&#,5|$#,)! -3 f1 (966|0@2@18&#,955|0@5@7&#,3819|$#,966|0@5@7&#,5|$#,)! -3 f0 (966|0@2@18&#,955|0@5@7&#,3819|$#,966|0@5@7&#,5|$#,)! -3 f1 (966|0@2@18&#,955|0@5@7&#,3819|$#,966|0@5@7&#,5|$#,)! -3 f0 (966|0@2@18&#,955|0@5@7&#,3819|$#,5|$#,)! -3 f1 (966|0@2@18&#,955|0@5@7&#,3819|$#,5|$#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,972|0@5@7&#,972|0@5@7&#,1779|$#,1910|$#,)! -3 f1 (966|0@2@7&#,966|0@2@7&#,972|0@5@7&#,972|0@5@7&#,1779|$#,1910|$#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,1779|$#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,1779|$#,)! -3 f0 (966|0@5@7&#,3819|$#,)! -3 f1 (966|0@5@7&#,3819|$#,)! -3 f0 (955|0@5@7&#,966|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,966|0@5@7&#,)! -3 f5 (955|0@5@7&#,966|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,3819|$#,966|0@2@7&#,5|$#,)! -3 f1 (966|0@5@7&#,3819|$#,966|0@2@7&#,5|$#,)! -3 f0 (966|0@5@7&#,3819|$#,)! -3 f1 (966|0@5@7&#,3819|$#,)! -3 f0 (966|0@2@18&#,955|0@5@7&#,3819|$#,966|0@2@7&#,5|$#,)! -3 f1 (966|0@2@18&#,955|0@5@7&#,3819|$#,966|0@2@7&#,5|$#,)! -3 f0 (955|0@5@7&#,2|$#,966|0@2@7&#,)! -3 f1 (955|0@5@7&#,2|$#,966|0@2@7&#,)! -3 f0 (966|0@2@2&#,991|$#,3819|0@0@4&#,)! -3 f966 (966|0@2@2&#,991|$#,3819|0@0@4&#,)! -3 f0 (966|0@5@7&#,)! -3 f955 (966|0@5@7&#,)! -3 f0 (1779|$#,3819|0@0@2&#,)! -3 f966 (1779|$#,3819|0@0@2&#,)! -3 f0 (966|0@5@2&#,3819|0@0@2&#,)! -3 f966 (966|0@5@2&#,3819|0@0@2&#,)! -3 f0 (966|0@5@2&#,989|0@5@2&#,)! -3 f966 (966|0@5@2&#,989|0@5@2&#,)! -3 f0 (1779|0@0@2&#,966|0@5@2&#,)! -3 f966 (1779|0@0@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@2&#,989|0@5@2&#,)! -3 f966 (966|0@5@2&#,989|0@5@2&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 ()! -3 f991 ()! -3 f0 (4997|0@5@2&#,)! -3 f966 (4997|0@5@2&#,)! -3 f0 (4997|0@5@2&#,)! -3 f966 (4997|0@5@2&#,)! -3 f0 (4997|0@5@2&#,1882|0@5@2&#,)! -3 f966 (4997|0@5@2&#,1882|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f966 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f0 (1779|$#,)! -3 f2 (1779|$#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,966|0@2@7&#,1779|$#,)! -3 f2 (966|0@2@7&#,966|0@2@7&#,966|0@2@7&#,1779|$#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,1779|0@0@4&#,)! -3 f966 (966|0@5@4&#,966|0@5@4&#,1779|0@0@4&#,)! -3 f0 (966|0@5@2&#,966|0@5@4&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@4&#,1779|0@0@2&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f966 (966|0@5@4&#,966|0@5@4&#,966|0@5@4&#,)! -3 f0 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f966 (1779|0@0@2&#,966|0@5@2&#,4997|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f966 (989|0@5@2&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,2|$#,)! -3 f966 (966|0@5@2&#,2|$#,)! -3 f0 (1779|0@0@2&#,2|$#,)! -3 f966 (1779|0@0@2&#,2|$#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (1779|0@0@2&#,)! -3 f966 (1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,1779|0@0@2&#,)! -3 f966 (966|0@5@2&#,1779|0@0@2&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@7&#,966|0@5@18&#,21|4@0@7&#,)! -3 f2 (966|0@5@7&#,966|0@5@18&#,21|4@0@7&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,)! -3 f1 (966|0@2@7&#,966|0@2@7&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,)! -3 f966 (966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@5@4&#,966|0@5@4&#,)! -3 f966 (966|0@5@4&#,966|0@5@4&#,)! -3 f0 (966|0@5@7&#,)! -3 f969 (966|0@5@7&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,966|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f966 (989|0@5@2&#,)! -3 f0 (1779|0@0@2&#,5|$#,)! -3 f966 (1779|0@0@2&#,5|$#,)! -3 f0 (1779|0@0@2&#,5|$#,)! -3 f966 (1779|0@0@2&#,5|$#,)! -3 f0 (1779|0@0@2&#,)! -3 f966 (1779|0@0@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f966 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,966|0@5@2&#,)! -3 f966 (966|0@5@2&#,966|0@5@2&#,)! -3 f0 (966|0@2@7&#,966|0@5@7&#,)! -3 f2 (966|0@2@7&#,966|0@5@7&#,)! -3 f0 (960|0@5@2&#,966|0@5@2&#,)! -3 f966 (960|0@5@2&#,966|0@5@2&#,)! -3 f0 (955|0@5@19@3@0#,3819|0@0@2&#,966|0@5@2&#,955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,3819|0@0@2&#,966|0@5@2&#,955|0@5@19@3@0#,)! -3 f0 (989|0@5@2&#,)! -3 f966 (989|0@5@2&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (955|0@5@19@3@0#,)! -3 f966 (955|0@5@19@3@0#,)! -3 f0 (955|0@5@19@3@0#,3819|0@0@2&#,)! -3 f966 (955|0@5@19@3@0#,3819|0@0@2&#,)! -3 f0 (966|0@5@7&#,)! -3 f952 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f978 (966|0@5@7&#,)! -3 f0 (3819|$#,)! -3 f3819 (3819|$#,)! -3 f0 (966|0@5@7&#,)! -3 f966 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f989 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f2 (966|0@5@7&#,)! -3 f0 (991|$#,966|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,)! -3 f0 (991|$#,966|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f2 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (991|$#,966|0@5@7&#,)! -3 f2 (991|$#,966|0@5@7&#,)! -3 f0 (966|0@5@18&#,)! -3 f10834 (966|0@5@18&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,978|0@5@7&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (966|0@5@7&#,989|0@5@18&#,)! -3 f1 (966|0@5@7&#,989|0@5@18&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (966|0@5@7&#,952|0@5@18&#,)! -3 f1 (966|0@5@7&#,952|0@5@18&#,)! -3 f0 (966|0@2@18&#,4297|0@5@7&#,3819|$#,)! -3 f1 (966|0@2@18&#,4297|0@5@7&#,3819|$#,)! -3 f0 (955|0@5@7&#,966|0@2@7&#,966|0@5@18&#,2|$#,5|$#,5|$#,)! -3 f1 (955|0@5@7&#,966|0@2@7&#,966|0@5@18&#,2|$#,5|$#,5|$#,)! -3 f0 (966|0@2@18&#,989|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,972|0@5@7&#,2|$#,5|$#,)! -3 f1 (966|0@2@18&#,989|0@5@18&#,4297|0@5@7&#,3819|$#,2|$#,972|0@5@7&#,2|$#,5|$#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (991|$#,991|$#,991|$#,991|$#,966|0@2@7&#,966|0@2@7&#,1779|$#,)! -3 f991 (991|$#,991|$#,991|$#,991|$#,966|0@2@7&#,966|0@2@7&#,1779|$#,)! -3 f0 (991|$#,991|$#,1779|$#,966|0@2@7&#,966|0@2@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f1 (991|$#,991|$#,1779|$#,966|0@2@7&#,966|0@2@7&#,978|0@5@7&#,978|0@5@7&#,)! -3 f0 (952|0@5@18&#,952|0@5@18&#,966|0@2@7&#,966|0@2@7&#,991|$#,952|0@5@18&#,)! -3 f1 (952|0@5@18&#,952|0@5@18&#,966|0@2@7&#,966|0@2@7&#,991|$#,952|0@5@18&#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,2|$#,)! -3 f1 (966|0@2@7&#,966|0@2@7&#,2|$#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (966|0@2@7&#,2|$#,)! -3 f1 (966|0@2@7&#,2|$#,)! -3 f0 (966|0@2@7&#,966|0@2@7&#,)! -3 f1 (966|0@2@7&#,966|0@2@7&#,)! -3 f0 (966|@5|0@5@7&#,978|0@5@6&#,)! -3 f966 (966|@5|0@5@7&#,978|0@5@6&#,)! -3 f0 (966|0@5@7&#,966|0@2@7&#,3819|$#,5|$#,955|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@2@7&#,3819|$#,5|$#,955|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f9 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f978 (966|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f978 (966|0@5@7&#,)! -3 f0 (966|@5|0@5@7&#,)! -3 f966 (966|@5|0@5@7&#,)! -3 f0 (991|$#,)! -3 f966 (991|$#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (966|0@2@7&#,)! -3 f1 (966|0@2@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@2@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@2@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@2@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@2@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (966|0@5@7&#,966|0@5@7&#,)! -3 f1 (966|0@5@7&#,966|0@5@7&#,)! -3 f0 (978|0@5@7&#,)! -3 f1 (978|0@5@7&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (989|0@5@7&#,966|0@5@7&#,)! -3 f1 (989|0@5@7&#,966|0@5@7&#,)! -3 f0 (4379|0@5@7&#,4379|0@5@7&#,)! -3 f1 (4379|0@5@7&#,4379|0@5@7&#,)! -3 f0 (972|0@5@7&#,955|0@5@7&#,)! -3 f1 (972|0@5@7&#,955|0@5@7&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (966|0@5@7&#,)! -3 f1 (966|0@5@7&#,)! -3 f0 (955|0@5@7&#,966|0@5@2&#,)! -3 f1 (955|0@5@7&#,966|0@5@2&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (966|0@5@2&#,)! -3 f1 (966|0@5@2&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f2 (952|0@5@18&#,966|0@5@7&#,952|0@5@18&#,966|0@5@7&#,)! -3 f0 (952|0@5@18&#,3819|$#,966|0@5@7&#,966|0@5@7&#,)! -3 f1 (952|0@5@18&#,3819|$#,966|0@5@7&#,966|0@5@7&#,)! -3 f0 (955|0@5@7&#,)! -3 f1 (955|0@5@7&#,)! -3 f0 (966|0@2@7&#,)! -3 f1 (966|0@2@7&#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,988|0@2@7&#,)! +3 f1 (988|0@2@7&#,988|0@2@7&#,988|0@2@7&#,)! +3 f0 (7419|$#,)! +3 f2 (7419|$#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 ()! +3 f988 ()! +3 f0 ()! +3 f988 ()! +3 f0 (1119|$#,)! +3 f988 (1119|$#,)! +3 f0 ()! +3 f988 ()! +3 f0 (1119|$#,)! +3 f988 (1119|$#,)! +3 f0 ()! +3 f988 ()! +3 f0 (1119|$#,1003|0@5@4&#,)! +3 f988 (1119|$#,1003|0@5@4&#,)! +3 f0 (988|15@2@1&#,988|0@5@7&#,)! +3 f1 (988|15@2@1&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,1003|0@5@2&#,)! +3 f988 (988|0@5@7&#,1003|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f988 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f988 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f988 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@2@7&#,)! +3 f2 (988|0@2@7&#,)! +3 f0 (1119|$#,1117|0@5@6&#,1003|0@5@2&#,9|$#,)! +3 f988 (1119|$#,1117|0@5@6&#,1003|0@5@2&#,9|$#,)! +3 f0 (4|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f988 (4|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f0 (17|$#,1119|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f988 (17|$#,1119|$#,1117|0@5@7&#,1003|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f5547 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f988 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f988 (1117|0@5@2&#,1003|0@5@2&#,)! +3 f0 (1117|0@5@7&#,)! +3 f988 (1117|0@5@7&#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (974|0@5@7&#,988|0@5@18&#,1119|$#,4160|$#,988|0@5@7&#,)! +3 f5 (974|0@5@7&#,988|0@5@18&#,1119|$#,4160|$#,988|0@5@7&#,)! +3 f0 (988|0@2@18&#,974|0@5@7&#,4160|$#,988|0@5@7&#,5|$#,)! +3 f1 (988|0@2@18&#,974|0@5@7&#,4160|$#,988|0@5@7&#,5|$#,)! +3 f0 (988|0@2@18&#,974|0@5@7&#,4160|$#,988|0@5@7&#,5|$#,)! +3 f1 (988|0@2@18&#,974|0@5@7&#,4160|$#,988|0@5@7&#,5|$#,)! +3 f0 (988|0@2@18&#,974|0@5@7&#,4160|$#,5|$#,)! +3 f1 (988|0@2@18&#,974|0@5@7&#,4160|$#,5|$#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,994|0@5@7&#,994|0@5@7&#,2013|$#,1597|$#,)! +3 f1 (988|0@2@7&#,988|0@2@7&#,994|0@5@7&#,994|0@5@7&#,2013|$#,1597|$#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,2013|$#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,2013|$#,)! +3 f0 (988|0@5@7&#,4160|$#,)! +3 f1 (988|0@5@7&#,4160|$#,)! +3 f0 (974|0@5@7&#,988|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,988|0@5@7&#,)! +3 f5 (974|0@5@7&#,988|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,4160|$#,988|0@2@7&#,5|$#,)! +3 f1 (988|0@5@7&#,4160|$#,988|0@2@7&#,5|$#,)! +3 f0 (988|0@5@7&#,4160|$#,)! +3 f1 (988|0@5@7&#,4160|$#,)! +3 f0 (988|0@2@18&#,974|0@5@7&#,4160|$#,988|0@2@7&#,5|$#,)! +3 f1 (988|0@2@18&#,974|0@5@7&#,4160|$#,988|0@2@7&#,5|$#,)! +3 f0 (974|0@5@7&#,2|$#,988|0@2@7&#,)! +3 f1 (974|0@5@7&#,2|$#,988|0@2@7&#,)! +3 f0 (974|0@5@7&#,988|0@5@7&#,4160|$#,)! +3 f1 (974|0@5@7&#,988|0@5@7&#,4160|$#,)! +3 f0 (974|0@5@7&#,988|0@5@7&#,4160|$#,)! +3 f1 (974|0@5@7&#,988|0@5@7&#,4160|$#,)! +3 f0 (988|0@2@2&#,1119|$#,4160|0@0@4&#,)! +3 f988 (988|0@2@2&#,1119|$#,4160|0@0@4&#,)! +3 f0 (988|0@5@7&#,)! +3 f974 (988|0@5@7&#,)! +3 f0 (2013|$#,4160|0@0@2&#,)! +3 f988 (2013|$#,4160|0@0@2&#,)! +3 f0 (988|0@5@2&#,4160|0@0@2&#,)! +3 f988 (988|0@5@2&#,4160|0@0@2&#,)! +3 f0 (988|0@5@2&#,1003|0@5@19@3@0#,1117|0@5@2&#,)! +3 f988 (988|0@5@2&#,1003|0@5@19@3@0#,1117|0@5@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f0 (2013|0@0@2&#,988|0@5@2&#,)! +3 f988 (2013|0@0@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@2&#,1003|0@5@19@3@0#,1117|0@5@2&#,)! +3 f988 (988|0@5@2&#,1003|0@5@19@3@0#,1117|0@5@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,1117|0@5@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 ()! +3 f1119 ()! +3 f0 (5461|0@5@2&#,)! +3 f988 (5461|0@5@2&#,)! +3 f0 (5461|0@5@2&#,)! +3 f988 (5461|0@5@2&#,)! +3 f0 (5461|0@5@2&#,2243|0@5@2&#,)! +3 f988 (5461|0@5@2&#,2243|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f988 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f0 (2013|$#,)! +3 f2 (2013|$#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,988|0@2@7&#,2013|$#,)! +3 f2 (988|0@2@7&#,988|0@2@7&#,988|0@2@7&#,2013|$#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,2013|0@0@4&#,)! +3 f988 (988|0@5@4&#,988|0@5@4&#,2013|0@0@4&#,)! +3 f0 (988|0@5@2&#,988|0@5@4&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@4&#,2013|0@0@2&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f988 (988|0@5@4&#,988|0@5@4&#,988|0@5@4&#,)! +3 f0 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f988 (2013|0@0@2&#,988|0@5@2&#,5461|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f988 (1117|0@5@2&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,2|$#,)! +3 f988 (988|0@5@2&#,2|$#,)! +3 f0 (2013|0@0@2&#,2|$#,)! +3 f988 (2013|0@0@2&#,2|$#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (2013|0@0@2&#,)! +3 f988 (2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,2013|0@0@2&#,)! +3 f988 (988|0@5@2&#,2013|0@0@2&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@7&#,988|0@5@18&#,21|4@0@7&#,)! +3 f2 (988|0@5@7&#,988|0@5@18&#,21|4@0@7&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,)! +3 f1 (988|0@2@7&#,988|0@2@7&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,)! +3 f988 (988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@5@4&#,988|0@5@4&#,)! +3 f988 (988|0@5@4&#,988|0@5@4&#,)! +3 f0 (988|0@5@7&#,)! +3 f991 (988|0@5@7&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,988|0@5@2&#,)! +3 f0 (1117|0@5@2&#,)! +3 f988 (1117|0@5@2&#,)! +3 f0 (2013|0@0@2&#,5|$#,)! +3 f988 (2013|0@0@2&#,5|$#,)! +3 f0 (2013|0@0@2&#,5|$#,)! +3 f988 (2013|0@0@2&#,5|$#,)! +3 f0 (2013|0@0@2&#,)! +3 f988 (2013|0@0@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f988 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,988|0@5@2&#,)! +3 f988 (988|0@5@2&#,988|0@5@2&#,)! +3 f0 (988|0@2@7&#,988|0@5@7&#,)! +3 f2 (988|0@2@7&#,988|0@5@7&#,)! +3 f0 (982|0@5@6&#,)! +3 f988 (982|0@5@6&#,)! +3 f0 (982|0@5@2&#,)! +3 f988 (982|0@5@2&#,)! +3 f0 (982|0@5@2&#,988|0@5@2&#,)! +3 f988 (982|0@5@2&#,988|0@5@2&#,)! +3 f0 (974|0@5@19@3@0#,4160|0@0@2&#,988|0@5@2&#,974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,4160|0@0@2&#,988|0@5@2&#,974|0@5@19@3@0#,)! +3 f0 (1117|0@5@2&#,)! +3 f988 (1117|0@5@2&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (974|0@5@19@3@0#,)! +3 f988 (974|0@5@19@3@0#,)! +3 f0 (974|0@5@19@3@0#,4160|0@0@2&#,)! +3 f988 (974|0@5@19@3@0#,4160|0@0@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f971 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1117 (988|0@5@7&#,)! +3 f0 (988|0@5@6&#,)! +3 f1117 (988|0@5@6&#,)! +3 f0 (988|0@5@7&#,)! +3 f1003 (988|0@5@7&#,)! +3 f0 (4160|$#,)! +3 f4160 (4160|$#,)! +3 f0 (988|0@5@7&#,)! +3 f988 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1117 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1117 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f2 (988|0@5@7&#,)! +3 f0 (1119|$#,988|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,)! +3 f0 (1119|$#,988|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f2 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (1119|$#,988|0@5@7&#,)! +3 f2 (1119|$#,988|0@5@7&#,)! +3 f0 (988|0@5@18&#,)! +3 f9586 (988|0@5@18&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|@5|0@5@7&#,)! +3 f988 (988|@5|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (988|0@5@7&#,1117|0@5@18&#,)! +3 f1 (988|0@5@7&#,1117|0@5@18&#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f1 (988|0@5@7&#,971|0@5@19@2@0#,)! +3 f0 (988|0@2@18&#,4717|0@5@7&#,4160|$#,)! +3 f1 (988|0@2@18&#,4717|0@5@7&#,4160|$#,)! +3 f0 (974|0@5@7&#,988|0@2@7&#,988|0@5@18&#,2|$#,5|$#,5|$#,)! +3 f1 (974|0@5@7&#,988|0@2@7&#,988|0@5@18&#,2|$#,5|$#,5|$#,)! +3 f0 (988|0@2@18&#,1117|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,994|0@5@7&#,2|$#,5|$#,)! +3 f1 (988|0@2@18&#,1117|0@5@18&#,4717|0@5@7&#,4160|$#,2|$#,994|0@5@7&#,2|$#,5|$#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (1119|$#,1119|$#,1119|$#,1119|$#,988|0@2@7&#,988|0@2@7&#,2013|$#,)! +3 f1119 (1119|$#,1119|$#,1119|$#,1119|$#,988|0@2@7&#,988|0@2@7&#,2013|$#,)! +3 f0 (1119|$#,1119|$#,2013|$#,988|0@2@7&#,988|0@2@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f1 (1119|$#,1119|$#,2013|$#,988|0@2@7&#,988|0@2@7&#,1003|0@5@7&#,1003|0@5@7&#,)! +3 f0 (971|0@5@7&#,971|0@5@7&#,988|0@2@7&#,988|0@2@7&#,1119|$#,971|0@5@7&#,)! +3 f1 (971|0@5@7&#,971|0@5@7&#,988|0@2@7&#,988|0@2@7&#,1119|$#,971|0@5@7&#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,2|$#,)! +3 f1 (988|0@2@7&#,988|0@2@7&#,2|$#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (988|0@2@7&#,2|$#,)! +3 f1 (988|0@2@7&#,2|$#,)! +3 f0 (988|0@2@7&#,988|0@2@7&#,)! +3 f1 (988|0@2@7&#,988|0@2@7&#,)! +3 f0 (988|@5|0@5@7&#,1003|0@5@6&#,)! +3 f988 (988|@5|0@5@7&#,1003|0@5@6&#,)! +3 f0 (988|0@5@7&#,988|0@2@7&#,4160|$#,5|$#,974|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@2@7&#,4160|$#,5|$#,974|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f9 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1003 (988|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1003 (988|0@5@7&#,)! +3 f0 (1119|$#,)! +3 f988 (1119|$#,)! +3 f0 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@2@7&#,)! +3 f1 (988|0@2@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (971|0@5@7&#,988|0@2@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@7&#,988|0@2@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@7&#,988|0@2@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@7&#,988|0@2@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (988|0@5@7&#,988|0@5@7&#,)! +3 f1 (988|0@5@7&#,988|0@5@7&#,)! +3 f0 (1003|0@5@7&#,)! +3 f1 (1003|0@5@7&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (1117|0@5@7&#,988|0@5@7&#,)! +3 f1 (1117|0@5@7&#,988|0@5@7&#,)! +3 f0 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f1 (1106|0@5@7&#,1106|0@5@7&#,)! +3 f0 (994|0@5@7&#,974|0@5@7&#,)! +3 f1 (994|0@5@7&#,974|0@5@7&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (988|0@5@7&#,)! +3 f1 (988|0@5@7&#,)! +3 f0 (974|0@5@7&#,988|0@5@2&#,)! +3 f1 (974|0@5@7&#,988|0@5@2&#,)! +3 f0 ()! +3 f1 ()! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (988|0@5@2&#,)! +3 f1 (988|0@5@2&#,)! +3 f0 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f2 (971|0@5@19@2@0#,988|0@5@7&#,971|0@5@7&#,988|0@5@7&#,)! +3 f0 (971|0@5@7&#,4160|$#,988|0@5@7&#,988|0@5@7&#,)! +3 f1 (971|0@5@7&#,4160|$#,988|0@5@7&#,988|0@5@7&#,)! +3 f0 (974|0@5@7&#,)! +3 f1 (974|0@5@7&#,)! +3 f0 (988|0@2@7&#,)! +3 f1 (988|0@2@7&#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! @@ -18021,29 +20421,34 @@ 3 f1 ()! 3 f0 (5|$#,)! 3 f1 (5|$#,)! -1 t1852|1852& -3 f0 (210|$#,18019|$#,)! -3 f1 (210|$#,18019|$#,)! +1 t2211|2211& +3 f0 (211|$#,20419|$#,)! +3 f1 (211|$#,20419|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 (23|$#,)! 3 f2 (23|$#,)! -3 f0 (11624|0@5@7&#,)! -3 f11624 (11624|0@5@7&#,)! +3 f0 (23|$#,313|4@0@7&#,)! +3 f19 (23|$#,313|4@0@7&#,)! +3 f23 (23|$#,313|4@0@7&#,)! +3 f0 (8932|0@5@7&#,2|$#,)! +3 f8932 (8932|0@5@7&#,2|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 ()! 3 f1 ()! -3 f0 (11624|0@5@7&#,)! -3 f1 (11624|0@5@7&#,)! +3 f0 (8932|0@5@7&#,)! +3 f1 (8932|0@5@7&#,)! 3 f0 (23|$#,)! 3 f1 (23|$#,)! 3 f0 ()! 3 f1 ()! -3 f0 (11624|0@5@7&#,989|0@5@2&#,)! -3 f1 (11624|0@5@7&#,989|0@5@2&#,)! -3 f0 (5|$#,853|$#,)! -3 f5 (5|$#,853|$#,)! +3 f0 (8932|0@5@7&#,1117|0@5@2&#,)! +3 f1 (8932|0@5@7&#,1117|0@5@2&#,)! +3 f0 (8932|0@5@7&#,1117|0@5@2&#,)! +3 f1 (8932|0@5@7&#,1117|0@5@2&#,)! +3 f0 (5|$#,854|$#,)! +3 f5 (5|$#,854|$#,)! 3 f0 ()! 3 f1 ()! 3 f0 (23|$#,)! @@ -18072,3666 +20477,8476 @@ 3 f1 ()! 3 f0 (5|$#,)! 3 f1 (5|$#,)! -3 f0 (210|$#,18019|$#,)! -3 f1 (210|$#,18019|$#,)! -3 C0.4/3|! -3 f0 (11624|0@5@7&#,)! -3 f11624 (11624|0@5@7&#,)! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f1 ()! -3 f0 (23|$#,)! -3 f1 (23|$#,)! -3 f0 (23|^#,23|^#,6|^#,)! -3 f1 (23|^#,23|^#,6|^#,)! -3 f1 (23|^#,23|^#,6|^#,)! -3 f0 ()! -3 f5 ()! -2 F0/200|0& -2 F7/200|7& -2 F0/200|0& -2 F10321/200|10321& -3 f0 (23|$#,)! -3 f1 (23|$#,)! -3 f0 (960|0@5@7&#,)! -3 f1 (960|0@5@7&#,)! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f5 ()! -0 s6942|-1 18099 -1 -1 t18098|18098& -0 s371|& -0 s14|& -3 Syy_buffer_state{210|@1|0@0@3&#yy_input_file,23|@1|0@0@3&#yy_ch_buf,23|@1|0@0@3&#yy_buf_pos,18101|@1|^#yy_buf_size,5|@1|^#yy_n_chars,5|@1|^#yy_is_our_buffer,5|@1|^#yy_is_interactive,5|@1|^#yy_at_bol,5|@1|^#yy_fill_buffer,5|@1|^#yy_buffer_status,}! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f18100 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f18100 ()! -3 f0 ()! -3 f18100 ()! -3 f0 ()! -3 f18100 ()! -3 f0 ()! -3 f19 ()! -3 f20 ()! -3 f0 ()! -3 f19 ()! -3 f20 ()! -3 f0 ()! -3 f1 ()! -0 s4|& -0 s10|& -3 f0 ()! -3 f18132 ()! -3 f0 ()! -3 f18132 ()! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f1 ()! -2 F0/530|0& -2 F7/530|7& -2 F0/256|0& -2 F5/256|5& -2 F0/79|0& -2 F5/79|5& -2 F0/537|0& -2 F7/537|7& -2 F0/537|0& -2 F7/537|7& -2 F0/759|0& -2 F7/759|7& -2 F0/759|0& -2 F7/759|7& -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f4 ()! -3 f0 ()! -3 f17 ()! -3 f0 ()! -3 f966 ()! -3 f0 ()! -3 f9 ()! -3 f0 ()! -3 f9 ()! -3 f0 ()! -3 f9 ()! -3 f0 (989|0@5@2&#,)! -3 f5 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f2 (989|0@5@2&#,)! -3 f0 (5|$#,)! -3 f5 (5|$#,)! -3 f0 (23|$#,)! -3 f2 (23|$#,)! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f2 ()! -3 f0 (23|$#,)! -3 f989 (23|$#,)! -3 f0 (991|$#,9|$#,)! -3 f5 (991|$#,9|$#,)! -3 f0 (991|$#,17|$#,)! -3 f5 (991|$#,17|$#,)! -3 f0 (4|$#,)! -3 f5 (4|$#,)! -3 f0 (5|$#,)! -3 f1 (5|$#,)! -3 f0 (63|$#,)! -3 f1 (63|$#,)! -3 f0 ()! -3 f1 ()! -3 f0 (5|$#,)! -3 f1 (5|$#,)! -3 f0 (63|$#,)! -3 f1 (63|$#,)! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f18132 ()! -3 f0 (18132|^#,)! -3 f18132 (18132|^#,)! -3 f18132 (18132|^#,)! -3 f0 (5|^#,23|^#,)! -3 f1 (5|^#,23|^#,)! -3 f1 (5|^#,23|^#,)! -3 f0 ()! -3 f5 ()! -3 f0 (210|^#,)! -3 f1 (210|^#,)! -3 f1 (210|^#,)! -3 f0 (18100|^#,)! -3 f1 (18100|^#,)! -3 f1 (18100|^#,)! -3 f0 ()! -3 f1 ()! -3 f0 (210|^#,5|^#,)! -3 f18100 (210|^#,5|^#,)! -3 f18100 (210|^#,5|^#,)! -3 f0 (18100|^#,)! -3 f1 (18100|^#,)! -3 f1 (18100|^#,)! -3 f0 ()! -3 f5 ()! -3 f0 (18100|^#,210|^#,)! -3 f1 (18100|^#,210|^#,)! -3 f1 (18100|^#,210|^#,)! -3 f0 (18100|^#,)! -3 f1 (18100|^#,)! -3 f1 (18100|^#,)! -3 f0 (23|^#,18101|^#,)! -3 f18100 (23|^#,18101|^#,)! -3 f18100 (23|^#,18101|^#,)! -3 f0 (23|^#,)! -3 f18100 (23|^#,)! -3 f18100 (23|^#,)! -3 f0 (23|^#,5|^#,)! -3 f18100 (23|^#,5|^#,)! -3 f18100 (23|^#,5|^#,)! -3 f0 (42|^#,)! -3 f1 (42|^#,)! -3 f1 (42|^#,)! -3 f0 (18101|^#,)! -3 f19 (5|$#,)! -3 f20 (5|$#,)! -3 f20 (18101|^#,)! -3 f0 (20|^#,18101|^#,)! -3 f19 (5|$#,5|$#,)! -3 f20 (5|$#,5|$#,)! -3 f20 (20|^#,18101|^#,)! -3 f0 (20|^#,)! -3 f1 (20|^#,)! -3 f1 (20|^#,)! -3 Sskeyword{23|@1|0@5@18@3@0#name,5|@1|^#token,}! -0 s6779|-1 -1 18274 -2 y18273|18273& -3 f0 (989|0@5@7&#,)! -3 f2 (989|0@5@7&#,)! -3 f0 ()! -3 f1 ()! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f5 (989|0@5@7&#,)! -3 f0 ()! -3 f5 ()! -3 f0 (4|$#,)! -3 f1 (4|$#,)! -3 f0 (991|$#,17|$#,)! -3 f5 (991|$#,17|$#,)! -3 f0 (991|$#,9|$#,)! -3 f5 (991|$#,9|$#,)! -3 f0 (4|$#,)! -3 f5 (4|$#,)! -3 f0 ()! -3 f5 ()! -3 f0 ()! -3 f4 ()! -3 f0 ()! -3 f4 ()! -3 f0 ()! -3 f4 ()! -3 f0 ()! -3 f1 ()! -3 f0 ()! -3 f2 ()! -3 f0 (23|$#,)! -3 f2 (23|$#,)! -3 f0 ()! -3 f5 ()! -3 f0 (23|$#,)! -3 f989 (23|$#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 (989|0@5@7&#,)! -3 f955 (989|0@5@7&#,)! -3 f0 ()! -3 f989 ()! -3 f0 (989|0@5@2&#,)! -3 f5 (989|0@5@2&#,)! -3 f0 (989|0@5@2&#,)! -3 f2 (989|0@5@2&#,)! -3 f0 ()! -3 f966 ()! -3 f0 ()! -3 f4 ()! -3 f0 ()! -3 f17 ()! -3 f0 ()! -3 f9 ()! -3 f0 ()! -3 f9 ()! -3 f0 ()! -3 f9 ()! -3 f0 (5|$#,)! -3 f5 (5|$#,)! +3 f0 (211|$#,20419|$#,)! +3 f1 (211|$#,20419|$#,)! +3 f0 (8932|0@5@7&#,2|$#,)! +3 f8932 (8932|0@5@7&#,2|$#,)! +3 f0 (23|$#,313|4@0@7&#,)! +3 f19 (23|$#,313|4@0@7&#,)! +3 f23 (23|$#,313|4@0@7&#,)! 3 f0 (0|$#,0|$#,)! -3 f0 ()! 3 f0 (0|$#,)! -1 t1322|1322& +1 t1417|1417& ;;tistable -2 0 -0,40 -40 -0,40,41 -41 -0,40,41,42 -42 -0,40,41,42,43 -43 -44 -44,45 -45 -44,45,1 -1 -56 -56,59 -59 -61 -61,64 -64 -61,64,5 -5 -61,64,5,66 -66 -61,64,5,66,68 -68 -61,64,5,66,68,69 -69 -61,64,5,66,68,69,72 -72 -61,64,5,66,68,69,72,73 -73 -61,64,5,66,68,69,72,73,77 -77 -61,64,5,66,68,69,72,73,77,78 -78 -61,64,5,66,68,69,72,73,77,78,80 -80 -61,64,5,66,68,69,72,73,77,78,80,82 -82 -61,64,5,66,68,69,72,73,77,78,80,82,83 -83 -61,64,5,66,68,69,72,73,77,78,80,82,83,47 -47 -61,64,5,66,68,69,72,73,77,78,80,82,83,47,6 -6 -3 -7 -98 -99 -102 -11 -113 -15 -115 -120 -121 +28 +28,123 123 -124 -125 -129 -134 -57 -137 +28,123,138 +138 +28,123,138,141 141 -144 -148 -152 -155 -165 -170 -175 -180 -54 -192 -198 -204 -207 -212 -220 -52 -221 -222 -237 -8 -242 -244 -245 -252 -254 -256 -74 -257 -6,8 -265 -270 -270,272 -272 -294 -314 -315 -316 -320 -327 -330 -331 -64,252 -64,252,47 -252,47 -64,252,9 -252,47,9 -9 -47,9 -64,252,47,9 -323 -323,47 -95 -272,270 -8,47 -347 -347,6 -347,6,47 -6,47 -347,6,344 -6,47,344 -344 -47,344 -347,6,8 -6,47,344,8 -47,344,8 -97 -357 -294,69 -294,69,386 -386 -294,69,386,47 -299 -83,69 -83,69,47 -69,47 -80,69 -80,69,47 -82,47 -80,69,83 -80,69,83,47 -83,47 -6,7 -6,7,257 -6,7,257,258 -258 -7,257,258 -257,258 -78,7 -327,7 -238 -318 -93 -359 -68,252 -68,252,9 -252,9 -68,252,9,64 -252,9,64 -68,252,9,47 -252,9,64,47 -64,47 -68,252,9,61 -252,9,64,47,61 -64,47,61 -267 -96 -61,47 -360 -361 -78,47 -78,47,74 -245,244 -258,6,7,257 -5,254 -236 -374 -69,237 -47,237 -69,61 -47,237,61 -111 -146 -171 -68,252,9,64,47,61 -69,47,237,61 -344,8,47 -347,6,47,344,8 -347,6,47,344 -258,7,257 -258,257 +28,123,138,141,142 +142 +350 +350,462 +462 +350,462,465 +465 +2207 +2207,2211 +2211 +2207,2211,2217 +2217 +2220 +2220,2222 +2222 +2220,2222,2223 +2223 +2220,2222,2223,2226 +2226 +2220,2222,2223,2226,2228 +2228 +2220,2222,2223,2226,2228,2230 +2230 +2220,2222,2223,2226,2228,2230,2232 +2232 +2220,2222,2223,2226,2228,2230,2232,2234 +2234 +2220,2222,2223,2226,2228,2230,2232,2234,2236 +2236 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238 +2238 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240 +2240 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242 +2242 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244 +2244 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246 +2246 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248 +2248 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250 +2250 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252 +2252 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253 +2253 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254 +2254 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255 +2255 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257 +2257 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259 +2259 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261 +2261 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263 +2263 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265 +2265 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267 +2267 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269 +2269 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271 +2271 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273 +2273 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275 +2275 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277 +2277 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279 +2279 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281 +2281 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283 +2283 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285 +2285 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287 +2287 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289 +2289 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291 +2291 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293 +2293 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295 +2295 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297 +2297 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299 +2299 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301 +2301 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303 +2303 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305 +2305 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307 +2307 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309 +2309 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311 +2311 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2312 +2312 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2312,2314 +2314 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2312,2314,2316 +2316 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2312,2314,2316,2318 +2318 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2312,2314,2316,2318,2320 +2320 +2220,2222,2223,2226,2228,2230,2232,2234,2236,2238,2240,2242,2244,2246,2248,2250,2252,2253,2254,2255,2257,2259,2261,2263,2265,2267,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287,2289,2291,2293,2295,2297,2299,2301,2303,2305,2307,2309,2311,2312,2314,2316,2318,2320,2322 +2322 +2319 +2468 +3082 +3162 +3276 +3292 +3391 +3413 +2212 +3545 +2213 +3620 +3659 +3669 +3679 +3687 +3698 +3717 +3732 +3747 +2215 +3776 +3791 +3813 +3830 +2203 +3882 +3904 +3922 +2201 +3944 +2209 +3992 +2197 +4043 +4072 +4090 +4109 +4152 +2199 +2205 +4190 +4204 +4421 +4438 +4503 +4520 +4537 +4718 +4732 +4762 +4822 +2322,4438 +5177 +2253,2252 +5950 +6235 +6406 +6485 +6517 +6553 +6588 +6596 +6615 +2254,2246 +2322,2468 +2322,2468,4822 +2322,2468,4822,6979 +6979 +2468,4822,6979 +4822,6979 +7181 +5950,2232 +5950,2232,2320 +5990 +2318,2232 +2232,2318 +2318,2232,2320 +2232,2318,2320 +2314,2232 +2314,2232,2320 +2232,2320 +2316,2320 +2314,2232,2316 +2314,2232,2316,2320 +2314,2232,2242 +2232,2316 +2232,2316,2320 +2314,2232,2318 +2314,2232,2318,2320 +2318,2320 +2222,4718 +2222,4718,2320 +4718,2320 +2222,4718,2220 +4718,2320,2220 +2320,2220 +2222,4718,2320,2220 +6530 +6530,2320 +2269,2320 +2271,2320 +4438,7461 +7461 +4438,7461,2320 +7466 +7466,2322 +7466,2322,2320 +2322,2320 +7466,2322,7461 +2322,2320,7461 +2320,7461 +7466,2322,4438 +2322,2320,7461,4438 +2320,7461,4438 +7466,2322,7461,2320 +2322,7461 +3209 +2267,2320 +2242,2468 +2250,2320 +6553,2468 +6553,2468,2320 +2253,2252,2320 +2252,2320 +6588,2320 +6502 +6502,2320 +2240,2320 +2464 +7549 +7549,2320 +2246,2320 +2230,4718 +2230,4718,2222 +4718,2222 +2230,4718,2320 +4718,2222,2320 +2222,2320 +2230,4718,2220 +4718,2222,2320,2220 +2222,2320,2220 +5219 +3172 +2220,2320 +7576 +7588 +2320,2242 +2320,2242,2312 +3292,2320 +4537,4520 +4762,2320 +6979,2322,2468,4822 +6517,2320 +2223,4732 +4391 +5579 +6615,2320 +2257,2320 +2226,2320 +2273,2320 +2275,2279 +2275,2281 +2279,2281 +2275,2283 +2279,2281,2283 +2275,2226 +2279,2281,2283,2226 +2275,2289 +2279,2281,2283,2226,2289 +2275,2295 +2279,2281,2283,2226,2289,2295 +2275,2303 +2279,2281,2283,2226,2289,2295,2303 +2275,2307 +2279,2281,2283,2226,2289,2295,2303,2307 +2279,2320 +2281,2320 +2295,2320 +2297,2320 +2232,4421 +2320,4421 +2232,2220 +2320,4421,2220 +3538 +3808 +3912 +4727 +2230,4718,2222,2320,2220 +2253,2320 +2253,2320,2252 +2232,2320,4421,2220 +2254,2246,2257 +2246,2257 +2257,2246 +6979,2468,4822 +6979,4822 +2275,2279,2281,2283,2226,2289,2295,2303,2307 +7461,4438,2320 +7466,2322,2320,7461,4438 +7466,2322,2320,7461 ;;symTable *0 (Datatype) -0@+@=@0@7@0@0@67#mbstate_t -0@+@=@0@7@0@0@707#sigset_t -2@+@-@0@0@0@0@2#lltX_bool -2@-@-@0@0@0@0@2#bool -3@-@-@0@0@0@0@18131#YY_CHAR -5@+@-@0@0@0@0@956#typeIdSet -5@+@-@0@0@0@0@991#ctype -5@+@-@0@0@0@0@1322#fileId -5@+@-@0@0@0@0@3851#cprim -5@-@-@0@0@0@0@4255#usymId -5@-@-@0@0@0@0@18132#yy_state_type -6@-@-@0@0@0@0@941#sort -6@-@-@0@0@0@0@949#ltokenCode -6@-@-@0@0@0@0@1009#bits -6@-@-@0@0@0@0@18101#yy_size_t -10@-@-@0@0@0@0@942#lsymbol -10@-@-@0@0@0@0@1010#Handle -10@-@-@0@0@0@0@3696#symbolKey -13@-@-@0@0@0@0@59#__SIZE_TYPE__ -13@-@-@0@0@0@0@60#__PTRDIFF_TYPE__ -13@-@-@0@0@0@0@61#__WCHAR_TYPE__ -13@-@-@0@0@0@0@62#ptrdiff_t -13@-@-@0@0@0@0@65#wchar_t -13@-@-@0@0@0@0@66#wint_t -13@-@-@0@0@0@0@175#sig_atomic_t -13@-@-@0@0@0@0@501#wctype_t -13@-@-@0@0@0@0@502#wctrans_t -13@-@-@0@0@0@0@627#clock_t -13@-@-@0@0@0@0@628#time_t -13@-@-@0@0@0@0@653#dev_t -13@-@-@0@0@0@0@654#gid_t -13@-@-@0@0@0@0@655#ino_t -13@-@-@0@0@0@0@656#mode_t -13@-@-@0@0@0@0@657#nlink_t -13@-@-@0@0@0@0@658#off_t -13@-@-@0@0@0@0@659#pid_t -13@-@-@0@0@0@0@660#uid_t -13@-@-@0@0@0@0@931#__PTRDIFF_TYPE__ -14@-@-@0@0@0@0@63#size_t -15@-@-@0@0@0@0@64#ssize_t -20@+@+@0@0@0@0@170#jmp_buf -20@+@+@0@0@0@0@203#va_list -20@+@+@0@0@0@0@208#FILE -20@+@+@0@0@0@0@209#fpos_t -20@+@+@0@0@0@0@661#DIR -20@+@+@0@0@0@0@702#sigjmp_buf -23@-@+@0@0@0@0@1066#mstring -23@+@=@0@5@0@0@989#cstring -23@-@+@0@0@18@0@1296#d_char -23@-@+@0@5@18@0@11936#nd_charp -23@-@+@0@0@19@3@1067#ob_mstring -23@-@+@0@5@19@3@1068#bn_mstring -933@-@+@0@0@0@0@934#termNode -934@-@+@0@0@2@0@3347#o_termNode -936@-@+@0@5@0@0@937#lclTypeSpecNode -937@-@+@0@5@0@0@3070#lcltsp -939@+@=@0@0@0@0@940#termNodeList -944@-@+@0@0@0@0@945#typeExpr -945@-@+@0@0@0@0@2706#abstDeclaratorNode -947@+@=@0@5@0@0@948#ltoken -948@-@+@0@5@2@0@2398#o_ltoken -951@+@=@0@5@18@0@952#sRef -952@-@+@0@5@17@0@12140#ow_sRef -952@-@+@0@5@18@2@4435#e_sRef -954@+@=@0@5@0@0@955#uentry -955@-@+@0@5@2@0@957#o_uentry -959@+@=@0@5@0@0@960#idDecl -960@-@+@0@5@2@0@7186#o_idDecl -962@+@=@0@5@0@0@963#usymtab -965@+@=@0@5@0@0@966#exprNode -966@-@+@0@5@2@0@3814#o_exprNode -966@-@+@0@5@18@0@10829#d_exprNode -968@+@=@0@5@0@0@969#guardSet -971@+@=@0@5@0@0@972#sRefSet -972@+@=@0@5@0@0@4379#globSet -972@-@+@0@5@2@0@4434#o_sRefSet -972@-@+@0@5@18@0@7341#d_sRefSet -974@+@=@0@5@0@0@975#aliasTable -977@+@=@0@5@0@0@978#fileloc -978@-@+@0@5@2@0@1335#o_fileloc -980@+@=@0@0@0@0@981#constraint -981@-@+@0@2@2@0@6735#o_constraint -983@+@=@0@0@0@0@984#constraintList -986@+@=@0@5@0@0@987#constraintExpr -989@-@+@0@5@0@0@3934#enumName -989@-@+@0@5@2@0@990#o_cstring -989@-@+@0@5@19@3@1847#ob_cstring -995@-@+@0@0@0@0@996#sRefTest -1000@-@+@0@0@0@0@1001#sRefMod -1005@-@+@0@0@0@0@1006#sRefShower -1009@-@-@0@0@0@0@2315#lclctype -1010@-@-@0@0@0@0@17474#CharIndex -1153@-@-@0@0@0@0@1154#cmpcode -1298@-@-@0@0@0@0@1299#ynm -1332@-@-@0@0@0@0@1333#flkind -1499@-@-@0@0@0@0@1500#qual -1778@-@+@0@0@0@0@1779#lltok -1825@-@-@0@0@0@0@1826#clause -1851@+@=@0@5@0@0@1852#cstringSList -1881@+@=@0@5@0@0@1882#cstringList -1909@-@-@0@0@0@0@1910#flagcode -1913@-@-@0@0@0@0@1914#flagkind -2155@+@=@0@5@0@0@2156#qualList -2188@-@+@0@0@0@0@2191#mappair -2192@-@+@0@3@2@0@2193#o_mappair -2209@-@-@0@0@0@0@2210#sortKind -2211@-@+@0@0@0@0@2214#smemberInfo -2217@-@+@0@0@0@0@2218#sortNode -2310@-@-@0@0@0@0@2311#TypeSpecification -2313@-@-@0@0@0@0@2314#TypeSpec -2323@-@-@0@0@0@0@2324#paramkind -2327@-@+@0@0@0@0@2328#paramNode -2328@-@+@0@5@2@0@2341#o_paramNode -2345@+@=@0@5@0@0@2346#paramNodeList -2395@-@-@0@0@0@0@2396#SimpleIdCode -2480@+@=@0@5@0@0@2481#ltokenList -2534@-@-@0@0@0@0@2535#tagKind -2537@-@-@0@0@0@0@2538#impkind -2540@-@+@0@0@0@0@2541#importNode -2541@-@+@0@0@2@0@2550#o_importNode -2554@+@=@0@0@0@0@2555#importNodeList -2569@+@=@0@0@0@0@2570#sortList -2585@-@+@0@0@0@0@15910#lsymbolTable -2588@+@=@0@0@0@0@2589#lsymbolList -2599@+@=@0@5@0@0@2600#lsymbolSet -2616@+@=@0@5@0@0@2617#sortSet -2617@-@+@0@5@18@0@3393#o_sortSet -2642@-@+@0@0@0@0@2643#pairNode -2643@-@+@0@0@2@0@2646#o_pairNode -2650@+@=@0@5@0@0@2651#pairNodeList -2663@-@+@0@0@0@0@2710#declaratorNode -2664@-@+@0@0@0@0@3003#abstBodyNode -2667@-@+@0@0@0@0@2668#declaratorInvNode -2668@-@+@0@0@2@0@2673#o_declaratorInvNode -2677@+@=@0@0@0@0@2678#declaratorInvNodeList -2691@-@-@0@0@0@0@2692#typeExprKind -2710@-@+@0@0@2@0@2715#o_declaratorNode -2719@+@=@0@0@0@0@2720#declaratorNodeList -2734@-@+@0@0@0@0@2735#arrayQualNode -2738@-@+@0@0@0@0@2739#varNode -2739@-@+@0@0@2@0@2744#o_varNode -2748@+@=@0@0@0@0@2749#varNodeList -2763@-@+@0@0@0@0@2764#quantifierNode -2764@-@+@0@0@2@0@2769#o_quantifierNode -2773@+@=@0@0@0@0@2774#quantifierNodeList -2787@-@-@0@0@0@0@2788#storeRefNodeKind -2793@-@+@0@0@0@0@2794#storeRefNode -2794@-@+@0@0@2@0@2807#o_storeRefNode -2811@+@=@0@0@0@0@2812#storeRefNodeList -2826@-@+@0@0@0@0@2827#modifyNode -2832@-@+@0@0@0@0@2833#letDeclNode -2833@-@+@0@0@2@0@2836#o_letDeclNode -2840@+@=@0@0@0@0@2841#letDeclNodeList -2852@-@-@0@0@0@0@2853#actionKind -2854@-@+@0@0@0@0@3390#stmtNode -2856@+@=@0@0@0@0@2870#programNodeList -2861@-@+@0@0@0@0@2862#programNode -2862@-@+@0@0@2@0@2867#o_programNode -2881@-@-@0@0@0@0@2882#lclPredicateKind -2884@-@+@0@0@0@0@2885#lclPredicateNode -2888@-@+@0@0@0@0@2889#exposedNode -2893@-@-@0@0@0@0@2894#typeKind -2897@-@+@0@0@0@0@2898#CTypesNode -2901@-@+@0@0@0@0@2902#initDeclNode -2902@-@+@0@0@2@0@2907#o_initDeclNode -2911@+@=@0@0@0@0@2912#initDeclNodeList -2924@-@+@0@0@0@0@2925#constDeclarationNode -2929@-@-@0@0@0@0@2930#qualifierKind -2933@-@+@0@0@0@0@2934#varDeclarationNode -2934@-@+@0@0@2@0@2939#o_varDeclarationNode -2943@+@=@0@0@0@0@2944#varDeclarationNodeList -2944@-@+@0@0@0@0@2954#globalList -2961@-@+@0@0@0@0@2962#claimNode -2967@-@+@0@0@0@0@2968#fcnNode -2968@-@+@0@0@2@0@2973#o_fcnNode -2977@+@=@0@5@0@0@2978#fcnNodeList -2998@-@+@0@0@0@0@2999#iterNode -3008@-@+@0@0@0@0@3009#abstractNode -3014@-@+@0@0@0@0@3015#stDeclNode -3015@-@+@0@0@2@0@3020#o_stDeclNode -3024@+@=@0@0@0@0@3025#stDeclNodeList -3041@-@+@0@0@0@0@3042#taggedUnionNode -3049@-@+@0@0@0@0@3050#typeNode -3054@-@-@0@0@0@0@3055#suKind -3057@-@+@0@0@0@0@3058#strOrUnionNode -3063@-@+@0@0@0@0@3064#enumSpecNode -3068@-@-@0@0@0@0@3069#lclTypeSpecKind -3073@-@+@0@0@0@0@3074#lclconj -3088@-@+@0@0@0@0@3089#typeNamePack -3090@-@+@0@0@0@0@3125#opFormNode -3093@-@+@0@0@0@0@3094#typeNameNode -3094@-@+@0@0@2@0@3099#o_typeNameNode -3103@+@=@0@0@0@0@3104#typeNameNodeList -3119@-@-@0@0@0@0@3120#opFormKind -3129@-@+@0@0@0@0@3130#quantifiedTermNode -3132@-@-@0@0@0@0@3133#termKIND -3135@-@+@0@0@0@0@3136#sigNode -3136@-@+@0@0@17@0@3145#o_sigNode -3149@+@=@0@5@0@0@3150#sigNodeSet -3176@-@+@0@0@0@0@3177#signNode -3185@-@+@0@0@0@0@3186#nameNode -3197@-@+@0@0@0@0@3198#lslOp -3198@-@+@0@0@2@0@3199#o_lslOp -3198@-@+@0@0@19@2@3418#e_lslOp -3207@+@=@0@5@0@0@3208#lslOpSet -3230@-@+@0@0@0@0@3231#replaceNode -3231@-@+@0@0@2@0@3236#o_replaceNode -3240@+@=@0@0@0@0@3241#replaceNodeList -3257@-@+@0@0@0@0@3258#nameAndReplaceNode -3263@-@+@0@0@0@0@3264#renamingNode -3269@-@+@0@0@0@0@3270#traitRefNode -3270@-@+@0@0@2@0@3273#o_traitRefNode -3277@+@=@0@0@0@0@3278#traitRefNodeList -3289@-@-@0@0@0@0@3290#exportKind -3295@-@+@0@0@0@0@3296#exportNode -3300@-@-@0@0@0@0@3301#privateKind -3306@-@+@0@0@0@0@3307#privateNode -3311@-@-@0@0@0@0@3312#interfaceNodeKind -3317@-@+@0@0@0@0@3318#interfaceNode -3318@-@+@0@0@2@0@3323#o_interfaceNode -3327@+@=@0@0@0@0@3328#interfaceNodeList -3397@+@=@0@0@0@0@3398#sortSetList -3422@+@=@0@0@0@0@3423#lslOpList -3699@-@+@0@0@0@0@3700#fctInfo -3700@-@+@0@0@2@0@17144#o_fctInfo -3703@-@+@0@0@0@0@3704#typeInfo -3706@-@-@0@0@0@0@3707#varKind -3710@-@+@0@0@0@0@3711#varInfo -3714@-@+@0@0@0@0@3715#opInfo -3720@-@+@0@0@0@0@3721#tagInfo -3723@-@-@0@0@0@0@3724#infoKind -3731@-@-@0@0@0@0@3732#scopeKind -3735@-@+@0@0@0@0@3736#scopeInfo -3738@-@+@0@0@0@0@3741#htEntry -3741@-@+@0@0@0@0@3742#bucket -3743@-@+@0@3@2@0@3744#o_bucket -3750@-@+@0@0@0@0@3751#symtable -3818@+@=@0@0@0@0@3819#exprNodeList -3875@-@+@0@0@0@0@3876#hashTable -3878@-@+@0@0@0@0@3879#hentry -3883@-@+@0@5@0@0@3884#hbucket -3884@-@+@0@5@2@0@3885#o_hbucket -3905@+@=@0@5@0@0@3906#filelocList -3934@-@+@0@5@2@0@3937#o_enumName -3941@+@=@0@0@0@0@3942#enumNameList -3942@+@=@0@0@0@0@3972#enumNameSList -3988@-@-@0@0@0@0@3989#sstate -3991@-@-@0@0@0@0@3992#storageClassCode -3994@-@-@0@0@0@0@3995#nstate -3999@-@-@0@0@0@0@4000#alkind -4002@-@-@0@0@0@0@4003#exkind -4095@-@-@0@0@0@0@4096#exitkind -4231@+@-@0@0@0@0@4232#ekind -4255@-@-@0@0@0@0@4256#typeId -4262@+@=@0@5@0@0@4263#usymIdSet -4263@-@+@0@5@2@0@14739#o_usymIdSet -4296@+@=@0@5@0@0@4297#uentryList -4418@+@=@0@5@0@0@4419#ctypeList -4419@+@=@0@5@0@0@11624#fileIdList -4475@-@-@0@0@0@0@4476#uskind -4479@-@+@0@0@0@0@4480#refentry -4480@-@+@0@0@2@0@4481#o_refentry -4482@-@+@0@0@0@0@4483#refTable -4723@-@-@0@0@0@0@4724#ctuid -4726@-@-@0@0@0@0@4727#ctkind -4996@+@=@0@5@0@0@4997#qtype -5068@-@-@0@0@0@0@5069#mvkind -5074@-@+@0@5@0@0@5075#multiVal -5125@-@-@0@0@0@0@5126#specialClauseKind -5128@-@-@0@0@0@0@5129#stateConstraint -5132@+@=@0@0@0@0@5133#specialClause -5133@-@+@0@0@2@0@5134#o_specialClause -5152@+@=@0@5@0@0@5153#specialClauses -5209@-@+@0@0@0@0@5210#ucinfo -5212@-@-@0@0@0@0@5213#vkind -5215@-@-@0@0@0@0@5216#chkind -5218@-@-@0@0@0@0@5219#bbufstate -5222@-@+@0@0@0@0@5223#bbufinfo -5226@-@+@0@0@0@0@5227#uvinfo -5230@-@+@0@0@0@0@5231#udinfo -5233@-@-@0@0@0@0@5234#specCode -5237@-@+@0@0@0@0@5238#ufinfo -5241@-@+@0@0@0@0@5242#uiinfo -5245@-@+@0@0@0@0@5246#ueinfo -5249@-@+@0@0@0@0@5250#uinfo -5714@-@-@0@0@0@0@5715#speckind -5717@-@-@0@0@0@0@5718#skind -5721@-@+@0@0@0@0@5722#cref -5725@-@+@0@0@0@0@5726#ainfo -5729@-@+@0@0@0@0@5730#fldinfo -5733@-@+@0@0@0@0@5734#cjinfo -5737@-@+@0@0@0@0@5738#sinfo -5741@-@+@0@5@0@0@5742#alinfo -6387@-@-@0@0@0@0@6388#constraintTermType -6391@+@=@0@0@0@0@6392#constraintTerm -6442@-@-@0@0@0@0@6443#constraintExprBinaryOpKind -6445@-@-@0@0@0@0@6446#constraintExprUnaryOpKind -6448@-@+@0@0@0@0@6449#constraintExprBinaryOp -6451@-@+@0@0@0@0@6452#constraintExprUnaryOp -6455@-@+@0@0@0@0@6456#constraintExprData -6500@-@-@0@0@0@0@6501#constraintExprKind -6586@-@-@0@0@0@0@6587#arithType -6792@-@-@0@0@0@0@6793#exprKind -6796@-@+@0@0@0@0@6797#exprOffsetof -6800@-@+@0@0@0@0@6801#exprPair -6804@-@+@0@0@0@0@6805#exprTriple -6808@-@+@0@0@0@0@6809#exprIter -6812@-@+@0@0@0@0@6813#exprCall -6816@-@+@0@0@0@0@6817#exprIterCall -6820@-@+@0@0@0@0@6821#exprOp -6824@-@+@0@0@0@0@6825#exprField -6828@-@+@0@0@0@0@6829#exprUop -6832@-@+@0@0@0@0@6833#exprCast -6836@-@+@0@0@0@0@6837#exprInit -6841@-@+@0@5@0@0@6842#exprData -7190@+@=@0@0@0@0@7191#idDeclList -7345@+@=@0@5@0@0@7346#sRefSetList -7359@-@-@0@0@0@0@7360#flagMarkerKind -7365@-@+@0@0@0@0@7366#flagMarker -7366@-@+@0@0@2@0@7403#o_flagMarker -7407@+@=@0@0@0@0@7408#flagMarkerList -7425@-@+@0@0@0@0@7426#mce -7426@-@+@0@0@2@0@7427#o_mce -7431@-@+@0@0@0@0@7432#macrocache -7450@-@-@0@0@0@0@7451#fileType -7454@-@+@0@0@0@0@7455#ftentry -7455@-@+@0@0@2@0@7456#o_ftentry -7460@+@=@0@5@0@0@7461#fileTable -7528@-@+@0@0@0@0@7529#msgentry -7529@-@+@0@0@2@0@7530#o_msgentry -7534@+@=@0@5@0@0@7535#messageLog -7549@+@=@0@0@0@0@7550#clauseStack -8003@-@+@0@0@0@0@8004#cppBuffer -8005@-@+@0@0@0@0@8006#cppOptions -8007@-@+@0@0@0@0@8008#cppHashNode -8007@-@+@0@0@0@0@8027#HASHNODE -8011@-@+@0@0@0@0@8012#cppReader -8032@-@+@0@0@0@0@8033#parseUnderflow -8038@-@+@0@0@0@0@8039#parseCleanup -8056@-@+@0@0@2@0@8704#o_HASHNODE -8057@-@+@0@0@0@0@8116#cppIfStackFrame -8103@-@+@0@0@0@0@8104#MACRODEF -8105@-@+@0@0@0@0@8108#DEFINITION -8246@-@-@0@0@0@0@8247#filestatus -9632@-@+@0@5@0@0@9633#ctbase -9636@-@+@0@0@0@0@9637#ctentry -9637@-@+@0@0@2@0@9638#o_ctentry -9641@-@+@0@0@0@0@9642#cttable -9743@-@+@0@0@0@0@9744#cfcn -9747@-@+@0@0@0@0@9748#tsu -9751@-@+@0@0@0@0@9752#tconj -9755@-@+@0@0@0@0@9756#tenum -9759@-@+@0@0@0@0@9760#tfixed -9762@-@+@0@0@0@0@9763#uconts -10320@-@+@0@0@0@0@10321#YYSTYPE -10591@-@-@0@0@0@0@10592#transferKind -10630@-@-@0@0@0@0@10631#dscCode -10833@+@=@0@0@0@0@10834#exprNodeSList -11745@-@-@0@0@0@0@11746#ccode -12144@+@=@0@5@0@0@12145#sRefTable -13514@+@=@0@5@0@0@13515#filelocStack -13538@+@=@0@0@0@0@13539#intSet -13561@-@-@0@0@0@0@13562#kcontext -14098@-@-@0@0@0@0@14099#argcode -14103@-@-@0@0@0@0@14104#flaglist -15434@-@-@0@0@0@0@15435#charCode -15522@-@-@0@0@0@0@15523#LSLInitRuleCode -15523@-@-@0@0@0@0@17204#LCLInitRuleCode -16664@-@-@0@0@0@0@16665#StartCharType -17018@-@-@0@0@0@0@17019#symKind -17027@-@+@0@0@0@0@17028#idTable -18099@-@+@0@0@0@0@18100#YY_BUFFER_STATE -17475@-@-@0@0@0@0@17477#StringEntry -15436@-@-@0@0@0@0@15438#charClassData -2195@-@-@0@0@0@0@2197#mapping -15584@-@-@0@0@0@0@15586#outFile -13557@-@-@0@0@0@0@13559#maccesst -3727@-@-@0@0@0@0@3729#htData -17022@-@-@0@0@0@0@17024#idTableEntry -15650@-@-@0@0@0@0@15652#Lclctype2sortType -364@-@-@0@0@0@0@366#div_t -371@-@-@0@0@0@0@373#ldiv_t -3746@-@-@0@0@0@0@3748#symHashTable -14093@-@-@0@0@0@0@14095#flagcatinfo -2121@-@-@0@0@0@0@2123#tsource -14100@-@-@0@0@0@0@14102#fflag -6381@-@-@0@0@0@0@6383#constraintTermValue -3121@-@-@0@0@0@0@3123#opFormUnion -793@-@-@0@0@0@0@794#cc_t -796@-@-@0@0@0@0@797#speed_t -796@-@-@0@0@0@0@798#tcflag_t -*1 (Constant) -0$#ABSTRACT_H#BASIC_H#BOOL_H#CENTRY_H#CLABSTRACT_H#CONSTANTS_H#CONTEXT_H#CPPERROR_H#CPPHASH_H#CPP_H#CPRIM_H#CSTRING_H#CTYPE_H#CVAR_H#DECLARATORINVNODELIST_H#DECLARATORNODELIST_H#EKIND_H#EXPRNODE_H#FATAL_EXIT_CODE#FCNNODELIST_H#FILELOC_H#FILETABLE_H#FLAGCODES_H#FLAGMARKER_H#FLAGS_H#FORWARDTYPES_H#GENERAL_H#GLOBALS_H#GUARDSET_H#HTABLE_H#IMPORTNODELIST_H#INITDECLNODELIST_H#LCLCTYPESX_H#LCLINTMACROS_H#LCLLIB_H#LCLMISC_H#LCL_CONSTANTS_H#LCL_FORWARDTYPES_H#LETDECLNODELIST_H#LLBASIC_H#LLERROR_H#LLGLOBALS_H#LLGRAMMAR_H#LLMAIN_H#LLTOK_H#LSYMBOLLIST_H#LSYMBOLSET_H#LSYMBOL_H#LTOKENLIST_H#LTOKEN_H#MACROCACHE_H#MAPPING_H#MESSAGE_H#MISC_H#MULTIVAL_H#NAMECHECKS_H#NO_SHORTNAMES#OSD_H#PAIRNODELIST_H#PARAMNODEH#PORTAB_H#PROGRAMNODELIST_H#QTYPEH#QUALH#QUALLIST_H#QUANTIFIERNODELIST_H#SIGNATURE2_H#SIGNATURE_H#SIGNODESET_H#SORTLIST_H#SORTSET_H#SPECIALCLAUSES_H#STOREREFNODELIST_H#STOREREF_H#STRUCTDECLNODELIST_H#STRUCTNAMES#SYMTABLE_H#SYSTEM_CONSTANTS_H#TSOURCE_H#TYPENAMENODELIST_H#TYPENODE_H#UENTRY_H#USYMIDSET_H#USYMID_H#USYMTAB_H#USYMTAB_INTERFACE_H#VARDECLARATIONNODELIST_H#VARDECLNODE_H#VARKINDSH#VARNODELIST_H#VARNODE_H#VERSION_H#YNM_H#__constraintExprData_h__#__constraintExpr_h__#__constraintTerm_h__#__constraint_h__#aliasTable_H#clauseStack_H#constraintLIST_H#cstringList_H#cstringSList_H#ctypeLIST_H#enumNameLIST_H#enumNameSLIST_H#exprNodeList_H#fileId_H#filelocLIST_H#flagMarkerList_H#globSet_H#idDeclLIST_H#idDecl_H#interfaceNodeLIST_H#lslOpLIST_H#lslOpSET_H#messageLog_H#paramNodeLIST_H#replaceNodeLIST_H#sRefSET_H#sRefSetLIST_H#sRefTABLE_H#sortSetLIST_H#sort_H#termNodeLIST_H#traitRefNodeLIST_H#typeIdSET_H#uentryLIST_H -0@i0@0@6#NULL -2@i1@0@0#TRUE -2$#NDEBUG -2@i0@0@6#FALSE -3$#UCHAR_MAX#UCHAR_MIN -4$#CHAREXTENDER#CHAR_MAX#CHAR_MIN#CONNECTCHAR#DEFAULT_COMMENTCHAR#MARKCHAR_ENUM#MARKCHAR_PARAM#MARKCHAR_STRUCT#MARKCHAR_UNION#PATH_SEPARATOR#PFX_ANY#PFX_ANYLETTER#PFX_ANYLETTERDIGIT#PFX_DIGIT#PFX_LOWERCASE#PFX_NOTLOWER#PFX_NOTUPPER#PFX_UPPERCASE#SCHAR_MAX#SCHAR_MIN#SEPCHAR#TARGET_BELL#TARGET_BS#TARGET_CR#TARGET_FF#TARGET_NEWLINE#TARGET_TAB#TARGET_VT -5$#ALIASSEARCHLIMIT#ANDAND#ANDAND_PRIO#AND_PRIO#ATINVALID#B0#B110#B1200#B134#B150#B1800#B19200#B200#B2400#B300#B38400#B4800#B50#B600#B75#B9600#BIGBASESIZE#BITS_PER_UNIT#BRKINT#BUFLEN#BUFSIZ#CALL_SUCCESS#CBASESIZE#CGLOBBASESIZE#CGLOBHASHSIZE#CHARSIZE#CHAR_BIT#CLK_TCK#CLOCAL#CLOCKS_PER_SEC#COMMA_PRIO#COND_PRIO#CPP_EQUALTOK#CPP_EQUAL_PRIO#CPP_HASHSIZE#CPP_STACK_MAX#CREAD#CS5#CS6#CS7#CS8#CSIZE#CSTOPB#CTK_BASESIZE#CTK_ELIPS#CTK_MISSINGPARAMS#CTK_PREDEFINED#CTK_PREDEFINED2#CTP_CHAR#CTP_VOID#CTX_ANYINTEGRAL#CTX_BOOL#CTX_CHAR#CTX_DOUBLE#CTX_FLOAT#CTX_INT#CTX_LAST#CTX_LDOUBLE#CTX_LINT#CTX_LLINT#CTX_SIGNEDINTEGRAL#CTX_SINT#CTX_UCHAR#CTX_UINT#CTX_ULINT#CTX_ULLINT#CTX_UNKNOWN#CTX_UNSIGNEDINTEGRAL#CTX_USINT#CTX_VOID#CT_FIRST#DEFAULTMAXMODS#DEFAULT_CONTROLNESTDEPTH#DEFAULT_EXTERNALNAMELEN#DEFAULT_INCLUDENEST#DEFAULT_INTERNALNAMELEN#DEFAULT_LIMIT#DEFAULT_LINELEN#DEFAULT_NUMENUMMEMBERS#DEFAULT_NUMSTRUCTFIELDS#DEFAULT_OPTLEVEL#DEFAULT_STRINGLITERALLEN#DELTACHARSTRING#DELTASTRINGENTRY#DNE#E2BIG#EACCES#EAGAIN#EBADF#EBUSY#ECHILD#ECHO#ECHOE#ECHOK#ECHONL#EDEADLK#EDOM#EEXIST#EFAULT#EFBIG#EILSEQ#EINTR#EINVAL#EIO#EISDIR#EMFILE#EMLINK#ENAMETOOLONG#ENFILE#ENODEV#ENOENT#ENOEXEC#ENOLCK#ENOMEM#ENOSPC#ENOSYS#ENOTDIR#ENOTEMPTY#ENOTTY#ENXIO#EOF#EPERM#EPIPE#ERANGE#EROFS#ESPIPE#ESRCH#EXDEV#EXIT_FAILURE#EXIT_SUCCESS#FD_CLOEXEC#FILENAME_MAX#FLT_RADIX#FNAME_HASHSIZE#FOPEN_MAX#FTBASESIZE#FTHASHSIZE#F_DUPFD#F_GETFD#F_GETFL#F_GETLK#F_OK#F_RDLCK#F_SETFD#F_SETFL#F_SETLK#F_SETLKW#F_UNLCK#F_WRLCK#GEQ#GIVEUPPARSE#HASHMASK#HASHSIZE#HAVE_VALUE#HBUCKET_BASESIZE#HBUCKET_DNE#HT_MAXINDEX#HUGEBASESIZE#HUPCL#ICANON#ICRNL#IEXTEN#IGNBRK#IGNCR#IGNLCR#IGNPAR#IMPORT_FOUND#IMPORT_NOT_FOUND#INCLUDE_LEN_FUDGE#INITCHARSTRING#INITSTRINGENTRY#INIT_STACK_SIZE#INPCK#INT_MAX#INT_MIN#ISIG#ISTRIP#IXOFF#IXON#LARGEBASESIZE#LASTCHAR#LAST_PREDEFINED#LC_ALL#LC_COLLATE#LC_CTYPE#LC_MONETARY#LC_NUMERIC#LC_TIME#LEFT_OPERAND_REQUIRED#LEQ#LESS_PRIO#LLFAILURE#LLGIVEUP#LLHASHSIZE#LLINTERRUPT#LLSUCCESS#LSH#L_ctermid#L_cuserid#L_tmpnam#MAPPING_SIZE#MAXBASEDEPTH#MAXDEPTH#MAXLINE#MAXPATHLEN#MAXSEARCH#MAX_DUMP_LINE_LENGTH#MAX_LINE_LENGTH#MAX_NAME_LENGTH#MAX_PRAGMA_LEN#MAX_SORT_DEPTH#MCEBASESIZE#MIDBASESIZE#MINLINE#MINLINELEN#MUL_PRIO#NAME#NCCS#NCPPNAMES#NOFLSH#NOTEQUAL#NOT_FOUND#NRESERVEDNAMES#NULLFACTOR#NUMLIBS#NUMPOSIXLIBS#NUMSTRINGFLAGS#NUMVALUEFLAGS#OPOST#OROR#OROR_PRIO#OR_PRIO#O_ACCMODE#O_APPEND#O_CREAT#O_EXCL#O_NOCTTY#O_NONBLOCK#O_RDONLY#O_RDWR#O_TRUNC#O_WRONLY#PARAMUNKNOWN#PARENB#PAREN_INNER_PRIO#PAREN_OUTER_PRIO#PARMRK#PARODD#PLUS_PRIO#PRAGMA_LEN_EXPAND#PRINTBREADTH#RAND_MAX#RIGHT_OPERAND_REQUIRED#RSH#R_OK#SA_NOCLDSTOP#SEEK_CUR#SEEK_END#SEEK_SET#SHIFT_PRIO#SIGABRT#SIGALRM#SIGCHLD#SIGCONT#SIGFPE#SIGHUP#SIGILL#SIGINT#SIGKILL#SIGPIPE#SIGQUIT#SIGSEGV#SIGSTOP#SIGTERM#SIGTSTP#SIGTTIN#SIGTTOU#SIGUSR1#SIGUSR2#SIG_BLOCK#SIG_SETMASK#SIG_UNBLOCK#SKIP_INCLUDE#SMALLBASESIZE#STDC_VALUE#STDERR_FILENO#STDIN_FILENO#STDOUT_FILENO#STUBMAXRECORDSIZE#SYNTABLE_BASESIZE#S_IRGRP#S_IROTH#S_ISGID#S_ISUID#S_IUSR#S_IWGRP#S_IWOTH#S_IWUSR#S_IWXG#S_IWXO#S_IWXU#S_IXGRP#S_IXOTH#S_IXUSR#TCIFLUSH#TCIOFF#TCIOFLUSH#TCION#TCOFLUSH#TCSADRAIN#TCSAFLUSH#TCSANOW#TISTABLEBASESIZE#TMP_MAX#TOSTOP#UNARY_PRIO#UNKNOWN_COLUMN#UNKNOWN_LINE#VEOF#VEOL#VERASE#VINTR#VKILL#VMIN#VQUIT#VSTART#VSTOP#VSUSP#VTIME#WCHAR_MAX#WCHAR_MIN#WUNTRACED#W_OK#XOR_PRIO#X_OK#YYDEBUG#_IOFBF#_IOLBF#_IONBF#_PC_CHOWN_RESTRUCTED#_PC_MAX_CANON#_PC_MAX_INPUT#_PC_NAME_MAX#_PC_NO_TRUNC#_PC_PATH_MAX#_PC_PIPE_BUF#_PC_VDISABLE#_POSIX_CHOWN_RESTRICTED#_POSIX_JOB_CONTROL#_POSIX_NO_TRUNC#_POSIX_SAVED_IDS#_POSIX_VDISABLE#_POSIX_VERSION#_SC_ARG_MAX#_SC_CHILD_MAX#_SC_CLK_TCK#_SC_JOB_CONTROL#_SC_NGROUPS_MAX#_SC_OPEN_MAX#_SC_SAVED_IDS#_SC_STREAM_MAX#_SC_TZNAME_MAX#_SC_VERSION#__INCLUDE_LEVEL__#__LCLINT__#__LINE__#aliasTableBASESIZE#clauseStackBASESIZE#constraintListBASESIZE#cppReader_fatalErrorLimit#cstringListBASESIZE#cstringSListBASESIZE#ctypeListBASESIZE#declaratorInvNodeListBASESIZE#declaratorNodeListBASESIZE#enumNameListBASESIZE#exprNodeListBASESIZE#exprNodeSListBASESIZE#fcnNodeListBASESIZE#fileScope#filelocListBASESIZE#filelocStackBASESIZE#flagMarkerListBASESIZE#functionScope#globScope#idDeclListBASESIZE#importNodeListBASESIZE#initDeclNodeListBASESIZE#intSetBASESIZE#interfaceNodeListBASESIZE#interfaceNodeListGROWHI#interfaceNodeListGROWLOW#letDeclNodeListBASESIZE#lslOpListBASESIZE#lslOpSetBASESIZE#lsymbolListBASESIZE#lsymbolSetBASESIZE#ltokenListBASESIZE#messageLogBASESIZE#pairNodeListBASESIZE#paramNodeListBASESIZE#paramsScope#programNodeListBASESIZE#qualListBASESIZE#quantifierNodeListBASESIZE#replaceNodeListBASESIZE#sRefSetBASESIZE#sRefSetListBASESIZE#sRefTableBASESIZE#sigNodeSetBASESIZE#sortListBASESIZE#sortSetBASESIZE#sortSetListBASESIZE#specialClausesBASESIZE#stDeclNodeListBASESIZE#storeRefNodeListBASESIZE#termNodeListBASESIZE#termNodeListGROWHI#termNodeListGROWLOW#traitRefNodeListBASESIZE#typeNameNodeListBASESIZE#uentryListBASESIZE#usymIdSetBASESIZE#varDeclarationNodeListBASESIZE#varNodeListBASESIZE -6$#UINT_MAX -7$#CPPEXP_CHAR#CPPEXP_INT#CPPREADER_ERRORTOK#SHRT_MAX#SHRT_MIN -8$#USHRT_MAX -9$#ARG_MAX#CHILD_MAX#LINK_MAX#LONG_MAX#LONG_MIN#MAX_CANON#MAX_INPUT#MB_LEN_MAX#NAME_MAX#NGROUPS_MAX#OPEN_MAX#PIPE_BUF#SSIZE_MAX#STREAM_MAX#TZNAME_MAX#_POSIX_ARG_MAX#_POSIX_CHILD_MAX#_POSIX_LINK_MAX#_POSIX_MAX_CANON#_POSIX_MAX_INPUT#_POSIX_NAME_MAX#_POSIX_NGROUPS_MAX#_POSIX_OPEN_MAX#_POSIX_PATH_MAX#_POSIX_PIPE_BUF#_POSIX_SSIZE#_POSIX_STREAM#_POSIX_TZNAME_MAX -10$#INITSYNTABLE#INITTOKENTABLE#ULONG_MAX -16$#LCL_MIN_VERSION -17$#DELTASYNTABLE#DELTATOKENTABLE#HUGE_VAL -23$#__BASE_FILE__#__DATE__#__FILE__#__REGISTER_PREFIX__#__TIME__#__USER_LABEL_PREFIX__#__VERSION__ -23$#AFTER_COMMENT_MARKER#BEFORE_COMMENT_MARKER#BEGINSORTTABLE#BEGINSYMTABLE#CONNECTSTR#CPP_VERSION#CTRAITFILENAMEN#CTRAITSPECNAME#CTRAITSYMSNAME#C_SUFFIX#DEFAULT_BOOLTYPE#DEFAULT_LARCHPATH#DEFAULT_LCLIMPORTDIR#DEFAULT_SYSTEMDIR#DEFAULT_TMPDIR#DUMP_SUFFIX#FILE_NAME_MAP_FILE#GCC_INCLUDE_DIR#GCC_INCLUDE_DIR2#INCLUDE_VAR#INITFILENAME#IO_SUFFIX#LARCH_PATH#LCLIMPORTDIR#LCLINIT_SUFFIX#LCLINT_MAINTAINER#LCL_COMPILE#LCL_PARSE_VERSION#LCL_SUFFIX#LCL_VERSION#LH_SUFFIX#LLMRCODE#LLPOSIXLIBS_NAME#LLPOSIXSTRICTLIBS_NAME#LLSTDLIBS_NAME#LLSTRICTLIBS_NAME#LLUNIXLIBS_NAME#LLUNIXSTRICTLIBS_NAME#PPMRCODE#PRAGMA_EXPAND#PTRDIFF_TYPE#RCFILE#REGISTER_PREFIX#SIZE_TYPE#SORTTABLEEND#SYMTABLEEND#SYSTEM_LIBDIR#USER_LABEL_PREFIX#WCHAR_TYPE -63$#BITS_PER_CHAR#BITS_PER_WORD#CHAR_TYPE_SIZE#HOST_BITS_PER_INT#HOST_BITS_PER_LONG#INT_TYPE_SIZE#LONG_TYPE_SIZE#MAX_CHAR_TYPE_SIZE#MAX_LONG_TYPE_SIZE#MAX_WCHAR_TYPE_SIZE#MB_CUR_MAX#WCHAR_TYPE_SIZE -66$#WEOF -179$#SIG_DFL -183$#SIG_ERR -187$#SIG_IGN -937@i0@0@6#lclTypeSpecNode_undefined -942@@0@6#lsymbol_undefined -948@i0@0@4#ltoken_undefined -949$#LEOFTOKEN#NOTTOKEN -952@i0@0@4#sRef_undefined -955@i0@0@4#uentry_undefined -956$#typeIdSet_empty#typeIdSet_undefined -960@i0@0@4#idDecl_undefined -963@@0@4#GLOBAL_ENV -963@i0@0@4#usymtab_undefined -966@i0@0@4#exprNode_undefined -969@i0@0@4#guardSet_undefined -972@i0@0@4#sRefSet_undefined -975@i0@0@4#aliasTable_undefined -978@i0@0@4#fileloc_undefined -981@i0@0@4#constraint_undefined -984@i0@0@4#constraintList_undefined -987@i0@0@4#constraintExpr_undefined -989@i0@0@4#cstring_undefined -989@@0@5#DEFAULT_MODE#REFSNAME -991$#ctype_anyintegral#ctype_bool#ctype_char#ctype_dne#ctype_double#ctype_elipsMarker#ctype_float#ctype_int#ctype_ldouble#ctype_lint#ctype_llint#ctype_missingParamsMarker#ctype_signedintegral#ctype_sint#ctype_string#ctype_uchar#ctype_uint#ctype_ulint#ctype_ullint#ctype_undefined#ctype_unknown#ctype_unsignedintegral#ctype_usint#ctype_void#ctype_voidPointer -1322$#fileId_invalid -1852@i0@0@4#cstringSList_undefined -1882@i0@0@4#cstringList_undefined -1910$#NUMFLAGS -2156@i0@0@4#qualList_undefined -2215@@0@6#smemberInfo_undefined -2346@i0@0@4#paramNodeList_undefined -2481@i0@0@4#ltokenList_undefined -2600@i0@0@4#lsymbolSet_undefined -2617@i0@0@4#sortSet_undefined -2651@i0@0@4#pairNodeList_undefined -2978@i0@0@4#fcnNodeList_undefined -3150@i0@0@4#sigNodeSet_undefined -3208@i0@0@4#lslOpSet_undefined -3851$#cprim_int -3884@i0@0@6#hbucket_undefined -3906@i0@0@4#filelocList_undefined -4096$#XK_LAST -4232$#KELAST#ekind_function#ekind_variable -4255$#USYMIDINVALID -4256$#typeId_invalid -4263@i0@0@4#usymIdSet_undefined -4297@@0@4#uentryList_missingParams -4297@i0@0@4#uentryList_undefined -4379@@0@4#globSet_undefined -4419@i0@0@4#ctypeList_undefined -4997@i0@0@4#qtype_undefined -5075@i0@0@6#multiVal_undefined -5153@i0@0@4#specialClauses_undefined -5213$#VKFIRST#VKLAST -5742@i0@0@6#alinfo_undefined -6392@i0@0@4#constraintTerm_undefined -6456@i0@0@6#constraintExprData_undefined -6842@i0@0@6#exprData_undefined -7346@i0@0@4#sRefSetList_undefined -7461@i0@0@4#fileTable_undefined -7535@i0@0@4#messageLog_undefined -8055$#SELF_DIR_DUMMY -9633@i0@0@6#ctbase_undefined -12145@i0@0@4#sRefTable_undefined -13515@i0@0@4#filelocStack_undefined -*2 (Enum member) -1908$#FLG_ABSTRACT#FLG_ABSTVOIDP#FLG_ACCESSALL#FLG_ACCESSCZECH#FLG_ACCESSCZECHOSLOVAK#FLG_ACCESSFILE#FLG_ACCESSMODULE#FLG_ACCESSSLOVAK#FLG_ALIASUNIQUE#FLG_ALLBLOCK#FLG_ALLEMPTY#FLG_ALLGLOBALS#FLG_ALLIMPONLY#FLG_ALLMACROS#FLG_ANSILIB#FLG_ANSILIMITS#FLG_ANSIRESERVED#FLG_ANSIRESERVEDLOCAL#FLG_ARRAYREAD#FLG_ARRAYWRITE#FLG_ASSIGNEXPOSE#FLG_BADFLAG#FLG_BITWISEOPS#FLG_BOOLCOMPARE#FLG_BOOLFALSE#FLG_BOOLINT#FLG_BOOLOPS#FLG_BOOLTRUE#FLG_BOOLTYPE#FLG_BRANCHSTATE#FLG_BUFFEROVERFLOW#FLG_CASEBREAK#FLG_CASTEXPOSE#FLG_CASTFCNPTR#FLG_CHARINDEX#FLG_CHARINT#FLG_CHARINTLITERAL#FLG_CHARUNSIGNEDCHAR#FLG_CHECKEDGLOBALIAS#FLG_CHECKMODGLOBALIAS#FLG_CHECKPOST#FLG_CHECKSTRICTGLOBALIAS#FLG_CHECKSTRICTGLOBALS#FLG_CODEIMPONLY#FLG_COMMENTCHAR#FLG_COMPDEF#FLG_COMPDESTROY#FLG_COMPMEMPASS#FLG_CONSTMACROS#FLG_CONSTPREFIX#FLG_CONSTPREFIXEXCLUDE#FLG_CONSTRAINTLOCATION#FLG_CONSTUNUSED#FLG_CONTINUECOMMENT#FLG_CONTROL#FLG_CONTROLNESTDEPTH#FLG_CPPNAMES#FLG_CZECH#FLG_CZECHCONSTANTS#FLG_CZECHFUNCTIONS#FLG_CZECHMACROS#FLG_CZECHOSLOVAK#FLG_CZECHOSLOVAKCONSTANTS#FLG_CZECHOSLOVAKFUNCTIONS#FLG_CZECHOSLOVAKMACROS#FLG_CZECHOSLOVAKTYPES#FLG_CZECHOSLOVAKVARS#FLG_CZECHTYPES#FLG_CZECHVARS#FLG_DECLPARAMMATCH#FLG_DECLPARAMNAME#FLG_DECLPARAMPREFIX#FLG_DECLPARAMPREFIXEXCLUDE#FLG_DECLUNDEF#FLG_DEEPBREAK#FLG_DEFINE#FLG_DEPARRAYS#FLG_DEPENDENTTRANS#FLG_DISTINCTEXTERNALNAMES#FLG_DISTINCTINTERNALNAMES#FLG_DOLCS#FLG_DOLH#FLG_DUMP#FLG_DUPLICATEQUALS#FLG_ELSEIFCOMPLETE#FLG_ENUMINDEX#FLG_ENUMINT#FLG_ENUMMEMBERS#FLG_ENUMMEMUNUSED#FLG_ENUMPREFIX#FLG_ENUMPREFIXEXCLUDE#FLG_EVALORDER#FLG_EVALORDERUNCON#FLG_EXITARG#FLG_EXPECT#FLG_EXPORTANY#FLG_EXPORTCONST#FLG_EXPORTFCN#FLG_EXPORTHEADER#FLG_EXPORTHEADERVAR#FLG_EXPORTITER#FLG_EXPORTLOCAL#FLG_EXPORTMACRO#FLG_EXPORTTYPE#FLG_EXPORTVAR#FLG_EXPOSETRANS#FLG_EXTERNALNAMECASEINSENSITIVE#FLG_EXTERNALNAMELEN#FLG_EXTERNALPREFIX#FLG_EXTERNALPREFIXEXCLUDE#FLG_FCNDEREF#FLG_FCNMACROS#FLG_FIELDUNUSED#FLG_FILESTATICPREFIX#FLG_FILESTATICPREFIXEXCLUDE#FLG_FIRSTCASE#FLG_FIXEDFORMALARRAY#FLG_FLOATDOUBLE#FLG_FORBLOCK#FLG_FORCEHINTS#FLG_FOREMPTY#FLG_FORMALARRAY#FLG_FORMATCODE#FLG_FORMATTYPE#FLG_FORWARDDECL#FLG_FRESHTRANS#FLG_FULLINITBLOCK#FLG_FUNCTIONCONSTRAINT#FLG_FUNCTIONPOST#FLG_FUNCUNUSED#FLG_GLOBALIAS#FLG_GLOBALS#FLG_GLOBALSIMPMODIFIESNOTHING#FLG_GLOBIMPONLY#FLG_GLOBPREFIX#FLG_GLOBPREFIXEXCLUDE#FLG_GLOBSTATE#FLG_GLOBUNSPEC#FLG_GNUEXTENSIONS#FLG_GRAMMAR#FLG_HASYIELD#FLG_HELP#FLG_HINTS#FLG_IFBLOCK#FLG_IFEMPTY#FLG_IGNOREQUALS#FLG_IGNORESIGNS#FLG_IMMEDIATETRANS#FLG_IMPABSTRACT#FLG_IMPCHECKEDGLOBALS#FLG_IMPCHECKEDSPECGLOBALS#FLG_IMPCHECKEDSTATICS#FLG_IMPCHECKEDSTRICTGLOBALS#FLG_IMPCHECKEDSTRICTSPECGLOBALS#FLG_IMPCHECKEDSTRICTSTATICS#FLG_IMPCHECKMODGLOBALS#FLG_IMPCHECKMODINTERNALS#FLG_IMPCHECKMODSPECGLOBALS#FLG_IMPCHECKMODSTATICS#FLG_IMPCONJ#FLG_IMPLICTCONSTRAINT#FLG_IMPOUTS#FLG_IMPTYPE#FLG_INCLUDENEST#FLG_INCLUDEPATH#FLG_INCOMPLETETYPE#FLG_INCONDEFS#FLG_INCONDEFSLIB#FLG_INFLOOPS#FLG_INFLOOPSUNCON#FLG_INIT#FLG_INTERNALGLOBS#FLG_INTERNALGLOBSNOGLOBS#FLG_INTERNALNAMECASEINSENSITIVE#FLG_INTERNALNAMELEN#FLG_INTERNALNAMELOOKALIKE#FLG_ITER#FLG_ITERPREFIX#FLG_ITERPREFIXEXCLUDE#FLG_KEEP#FLG_KEEPTRANS#FLG_KEPTTRANS#FLG_LARCHPATH#FLG_LCLEXPECT#FLG_LCLIMPORTDIR#FLG_LIBMACROS#FLG_LIKELYBOOL#FLG_LIMIT#FLG_LINELEN#FLG_LINTCOMMENTS#FLG_LOCALPREFIX#FLG_LOCALPREFIXEXCLUDE#FLG_LONGINTEGRAL#FLG_LONGSIGNEDINTEGRAL#FLG_LONGUNSIGNEDINTEGRAL#FLG_LONGUNSIGNEDUNSIGNEDINTEGRAL#FLG_LOOPEXEC#FLG_LOOPLOOPBREAK#FLG_LOOPLOOPCONTINUE#FLG_LOOPSWITCHBREAK#FLG_MACROASSIGN#FLG_MACROCONSTDECL#FLG_MACRODECL#FLG_MACROEMPTY#FLG_MACROFCNDECL#FLG_MACROMATCHNAME#FLG_MACRONEXTLINE#FLG_MACROPARAMS#FLG_MACROPARENS#FLG_MACROREDEF#FLG_MACROSTMT#FLG_MACROUNDEF#FLG_MACROVARPREFIX#FLG_MACROVARPREFIXEXCLUDE#FLG_MAINTYPE#FLG_MATCHANYINTEGRAL#FLG_MATCHFIELDS#FLG_MAYALIASUNIQUE#FLG_MEMCHECKS#FLG_MEMIMPLICIT#FLG_MEMTRANS#FLG_MERGE#FLG_MISSCASE#FLG_MODFILESYSTEM#FLG_MODGLOBS#FLG_MODGLOBSUNCHECKED#FLG_MODGLOBSUNSPEC#FLG_MODIFIES#FLG_MODIFIESIMPNOGLOBALS#FLG_MODINTERNALSTRICT#FLG_MODNOMODS#FLG_MODOBSERVER#FLG_MODOBSERVERUNCON#FLG_MODSTRICTGLOBSUNSPEC#FLG_MODUNCON#FLG_MODUNCONNOMODS#FLG_MODUNSPEC#FLG_MUSTDEFINE#FLG_MUSTFREE#FLG_MUSTMOD#FLG_MUSTNOTALIAS#FLG_MUTREP#FLG_NAME#FLG_NAMECHECKS#FLG_NEEDSPEC#FLG_NESTCOMMENT#FLG_NESTEDEXTERN#FLG_NEVERINCLUDE#FLG_NEWDECL#FLG_NEWREFTRANS#FLG_NOACCESS#FLG_NOCOMMENTS#FLG_NOEFFECT#FLG_NOEFFECTUNCON#FLG_NOF#FLG_NOLIB#FLG_NOPARAMS#FLG_NOPP#FLG_NORETURN#FLG_NULL#FLG_NULLASSIGN#FLG_NULLDEREF#FLG_NULLPASS#FLG_NULLPOINTERARITH#FLG_NULLRET#FLG_NULLSTATE#FLG_NULLTERMINATED#FLG_NULLTERMINATEDWARNING#FLG_NUMENUMMEMBERS#FLG_NUMLITERAL#FLG_NUMSTRUCTFIELDS#FLG_OBSERVERTRANS#FLG_OLDSTYLE#FLG_ONLYTRANS#FLG_ONLYUNQGLOBALTRANS#FLG_OPTF#FLG_ORCONSTRAINT#FLG_OWNEDTRANS#FLG_PARAMIMPTEMP#FLG_PARAMUNUSED#FLG_PARENFILEFORMAT#FLG_PARTIAL#FLG_PASSUNKNOWN#FLG_POINTERARITH#FLG_POSIXLIB#FLG_POSIXSTRICTLIB#FLG_PREDASSIGN#FLG_PREDBOOL#FLG_PREDBOOLINT#FLG_PREDBOOLOTHERS#FLG_PREDBOOLPTR#FLG_PREPROC#FLG_PTRNEGATE#FLG_PTRNUMCOMPARE#FLG_QUIET#FLG_READONLYSTRINGS#FLG_READONLYTRANS#FLG_REALCOMPARE#FLG_REDECL#FLG_REDEF#FLG_REFCOUNTTRANS#FLG_RELAXQUALS#FLG_RELAXTYPES#FLG_REPEATUNRECOG#FLG_REPEXPOSE#FLG_RETALIAS#FLG_RETEXPOSE#FLG_RETIMPONLY#FLG_RETSTACK#FLG_RETVAL#FLG_RETVALBOOL#FLG_RETVALINT#FLG_RETVALOTHER#FLG_SEFPARAMS#FLG_SEFUNSPEC#FLG_SHADOW#FLG_SHAREDTRANS#FLG_SHIFTSIGNED#FLG_SHOWALLCONJS#FLG_SHOWCOL#FLG_SHOWFUNC#FLG_SHOWSCAN#FLG_SHOWSUMMARY#FLG_SHOWUSES#FLG_SINGLEINCLUDE#FLG_SIZEOFFORMALARRAY#FLG_SIZEOFTYPE#FLG_SKIPANSIHEADERS#FLG_SKIPPOSIXHEADERS#FLG_SKIPSYSHEADERS#FLG_SLOVAK#FLG_SLOVAKCONSTANTS#FLG_SLOVAKFUNCTIONS#FLG_SLOVAKMACROS#FLG_SLOVAKTYPES#FLG_SLOVAKVARS#FLG_SPECALLIMPONLY#FLG_SPECGLOBIMPONLY#FLG_SPECIAL#FLG_SPECMACROS#FLG_SPECPATH#FLG_SPECRETIMPONLY#FLG_SPECSTRUCTIMPONLY#FLG_SPECUNDECL#FLG_SPECUNDEF#FLG_STATICINITTRANS#FLG_STATICTRANS#FLG_STATS#FLG_STRICTBRANCHSTATE#FLG_STRICTDESTROY#FLG_STRICTLIB#FLG_STRICTOPS#FLG_STRICTUSERELEASED#FLG_STRINGLITERALLEN#FLG_STRUCTIMPONLY#FLG_SUPCOUNTS#FLG_SWITCHLOOPBREAK#FLG_SWITCHSWITCHBREAK#FLG_SYNTAX#FLG_SYSTEMDIRERRORS#FLG_SYSTEMDIREXPAND#FLG_SYSTEMDIRS#FLG_SYSTEMUNRECOG#FLG_TAGPREFIX#FLG_TAGPREFIXEXCLUDE#FLG_TEMPTRANS#FLG_TIMEDIST#FLG_TMPCOMMENTS#FLG_TMPDIR#FLG_TOPUNUSED#FLG_TRYTORECOVER#FLG_TYPE#FLG_TYPEPREFIX#FLG_TYPEPREFIXEXCLUDE#FLG_TYPEUNUSED#FLG_UNCHECKEDGLOBALIAS#FLG_UNCHECKEDMACROPREFIX#FLG_UNCHECKEDMACROPREFIXEXCLUDE#FLG_UNDEFINE#FLG_UNIONDEF#FLG_UNIXLIB#FLG_UNIXSTRICTLIB#FLG_UNKNOWNINITTRANS#FLG_UNKNOWNTRANS#FLG_UNREACHABLE#FLG_UNRECOG#FLG_UNRECOGCOMMENTS#FLG_UNUSEDSPECIAL#FLG_USEALLGLOBS#FLG_USEDEF#FLG_USERELEASED#FLG_USESTDERR#FLG_USEVARARGS#FLG_VARUNUSED#FLG_WARNFLAGS#FLG_WARNLINTCOMMENTS#FLG_WARNMISSINGGLOBALS#FLG_WARNMISSINGGLOBALSNOGLOBS#FLG_WARNOVERLOAD#FLG_WARNPOSIX#FLG_WARNUNIXLIB#FLG_WHICHLIB#FLG_WHILEBLOCK#FLG_WHILEEMPTY#FLG_ZEROBOOL#FLG_ZEROPTR#INVALID_FLAG#LAST_FLAG#SKIP_FLAG -15433$#CHC_EXTENSION#CHC_NULL#IDCHAR#OPCHAR#PERMCHAR#SINGLECHAR#SLASHCHAR#WHITECHAR -1152$#CGE_CASE#CGE_DISTINCT#CGE_LOOKALIKE#CGE_SAME -1297$#MAYBE#NO#YES -1331$#FL_BUILTIN#FL_EXTERNAL#FL_IMPORT#FL_LIB#FL_NORMAL#FL_PREPROC#FL_RC#FL_SPEC#FL_STDHDR#FL_STDLIB -1498$#QU_ABSTRACT#QU_AUTO#QU_CHECKED#QU_CHECKEDSTRICT#QU_CHECKMOD#QU_CONCRETE#QU_CONST#QU_DEPENDENT#QU_EXITS#QU_EXPOSED#QU_EXTERN#QU_EXTERNAL#QU_FALSEEXIT#QU_FALSENULL#QU_IMMUTABLE#QU_IMPONLY#QU_IN#QU_INLINE#QU_KEEP#QU_KEPT#QU_KILLED#QU_KILLREF#QU_LAST#QU_LONG#QU_MAYEXIT#QU_MESSAGELIKE#QU_MUTABLE#QU_NEVEREXIT#QU_NEWREF#QU_NOTNULL#QU_NULL#QU_NULLTERMINATED#QU_OBSERVER#QU_ONLY#QU_OUT#QU_OWNED#QU_PARTIAL#QU_PRINTFLIKE#QU_REFCOUNTED#QU_REFS#QU_REGISTER#QU_RELDEF#QU_RELNULL#QU_RETURNED#QU_SCANFLIKE#QU_SEF#QU_SETBUFFERSIZE#QU_SHARED#QU_SHORT#QU_SIGNED#QU_SPECIAL#QU_STATIC#QU_TEMP#QU_TEMPREF#QU_TRUEEXIT#QU_TRUENULL#QU_UNCHECKED#QU_UNDEF#QU_UNIQUE#QU_UNKNOWN#QU_UNSIGNED#QU_UNUSED#QU_VOLATILE#QU_YIELD -1824$#ANDCLAUSE#CASECLAUSE#CONDCLAUSE#DOWHILECLAUSE#FALSECLAUSE#FALSEEXITCLAUSE#FORCLAUSE#ITERCLAUSE#NOCLAUSE#ORCLAUSE#SWITCHCLAUSE#TRUECLAUSE#TRUEEXITCLAUSE#WHILECLAUSE -1912$#FK_ABSTRACT#FK_ALIAS#FK_ANSI#FK_ARRAY#FK_BEHAVIOR#FK_BOOL#FK_COMMENTS#FK_COMPLETE#FK_CONTROL#FK_DEAD#FK_DEBUG#FK_DECL#FK_DEF#FK_DIRECT#FK_DISPLAY#FK_EFFECT#FK_ERRORS#FK_EXPORT#FK_EXPOSURE#FK_FILES#FK_FORMAT#FK_GLOBAL#FK_GLOBALS#FK_HEADERS#FK_HELP#FK_IGNORERET#FK_IMPLICIT#FK_INIT#FK_ITER#FK_LEAK#FK_LIBS#FK_LIMITS#FK_MACROS#FK_MEMORY#FK_MODIFIES#FK_NAMES#FK_NONE#FK_NT#FK_NULL#FK_NUMBERS#FK_OBSOLETE#FK_OPS#FK_PARAMS#FK_POINTER#FK_PRED#FK_PREFIX#FK_PREPROC#FK_PROTOS#FK_SECRET#FK_SPEC#FK_SPEED#FK_SUPPRESS#FK_SYNTAX#FK_TYPE#FK_TYPEEQ#FK_UNRECOG#FK_UNSPEC#FK_USE -2208$#SRT_ARRAY#SRT_ENUM#SRT_FIRST#SRT_HOF#SRT_LAST#SRT_NONE#SRT_OBJ#SRT_PRIM#SRT_PTR#SRT_STRUCT#SRT_SYN#SRT_TUPLE#SRT_UNION#SRT_UNIONVAL#SRT_VECTOR -2309$#TS_CHAR#TS_DOUBLE#TS_ENUM#TS_FLOAT#TS_INT#TS_LONG#TS_SHORT#TS_SIGNED#TS_STRUCT#TS_TYPEDEF#TS_UNION#TS_UNKNOWN#TS_UNSIGNED#TS_VOID -2312$#TYS_CHAR#TYS_DOUBLE#TYS_ENUM#TYS_FLOAT#TYS_INT#TYS_LDOUBLE#TYS_NONE#TYS_SCHAR#TYS_SINT#TYS_SLINT#TYS_SSINT#TYS_STRUCT#TYS_TYPENAME#TYS_UCHAR#TYS_UINT#TYS_ULINT#TYS_UNION#TYS_USINT#TYS_VOID -2322$#PELIPSIS#PNORMAL#PYIELD -2394$#SID_OP#SID_SORT#SID_TYPE#SID_VAR -2533$#TAG_ENUM#TAG_FWDSTRUCT#TAG_FWDUNION#TAG_STRUCT#TAG_UNION -2536$#IMPBRACKET#IMPPLAIN#IMPQUOTE -2690$#TEXPR_ARRAY#TEXPR_BASE#TEXPR_FCN#TEXPR_PTR -2786$#SRN_OBJ#SRN_SPECIAL#SRN_TERM#SRN_TYPE -2851$#ACT_ALTERNATE#ACT_ITER#ACT_SELF#ACT_SEQUENCE -2880$#LPD_CHECKS#LPD_CONSTRAINT#LPD_ENSURES#LPD_INITIALLY#LPD_INTRACLAIM#LPD_PLAIN#LPD_REQUIRES -2892$#TK_ABSTRACT#TK_EXPOSED#TK_UNION -2928$#QLF_CONST#QLF_NONE#QLF_VOLATILE -3053$#SU_STRUCT#SU_UNION -3067$#LTS_CONJ#LTS_ENUM#LTS_STRUCTUNION#LTS_TYPE -3118$#OPF_ANYOP#OPF_ANYOPM#OPF_BMIDDLE#OPF_BMIDDLEM#OPF_BMMIDDLE#OPF_BMMIDDLEM#OPF_IF#OPF_MANYOP#OPF_MANYOPM#OPF_MAP#OPF_MIDDLE#OPF_MIDDLEM#OPF_MMAP#OPF_MMIDDLE#OPF_MMIDDLEM#OPF_MSELECT#OPF_SELECT -3131$#TRM_APPLICATION#TRM_CONST#TRM_LITERAL#TRM_QUANTIFIER#TRM_SIZEOF#TRM_UNCHANGEDALL#TRM_UNCHANGEDOTHERS#TRM_VAR#TRM_ZEROARY -3288$#XPK_CLAIM#XPK_CONST#XPK_FCN#XPK_ITER#XPK_TYPE#XPK_VAR -3299$#PRIV_CONST#PRIV_FUNCTION#PRIV_TYPE#PRIV_VAR -3310$#INF_EXPORT#INF_IMPORTS#INF_PRIVATE#INF_USES -3705$#VRK_CONST#VRK_ENUM#VRK_GLOBAL#VRK_LET#VRK_PARAM#VRK_PRIVATE#VRK_QUANT#VRK_VAR -3722$#IK_OP#IK_SORT#IK_TAG -3730$#SPE_ABSTRACT#SPE_CLAIM#SPE_FCN#SPE_GLOBAL#SPE_INVALID#SPE_QUANT -3987$#SS_ALLOCATED#SS_DEAD#SS_DEFINED#SS_FIXED#SS_HOFFA#SS_KILLED#SS_LAST#SS_MUNDEFINED#SS_PARTIAL#SS_PDEFINED#SS_RELDEF#SS_SPECIAL#SS_UNDEFGLOB#SS_UNDEFINED#SS_UNDEFKILLED#SS_UNKNOWN#SS_UNUSEABLE -3990$#SCEXTERN#SCNONE#SCSTATIC -3998$#AK_DEPENDENT#AK_ERROR#AK_FRESH#AK_IMPDEPENDENT#AK_IMPONLY#AK_IMPTEMP#AK_KEEP#AK_KEPT#AK_KILLREF#AK_LOCAL#AK_NEWREF#AK_ONLY#AK_OWNED#AK_REFCOUNTED#AK_REFS#AK_RETURNED#AK_SHARED#AK_STACK#AK_STATIC#AK_TEMP#AK_UNIQUE#AK_UNKNOWN -4001$#XO_EXPOSED#XO_NORMAL#XO_OBSERVER#XO_UNKNOWN -3993$#NS_ABSNULL#NS_CONSTNULL#NS_DEFNULL#NS_ERROR#NS_MNOTNULL#NS_NOTNULL#NS_POSNULL#NS_RELNULL#NS_UNKNOWN -4094$#XK_ERROR#XK_FALSEEXIT#XK_GOTO#XK_MAYEXIT#XK_MAYGOTO#XK_MAYRETURN#XK_MAYRETURNEXIT#XK_MUSTEXIT#XK_MUSTRETURN#XK_MUSTRETURNEXIT#XK_NEVERESCAPE#XK_TRUEEXIT#XK_UNKNOWN -4230$#KCONST#KDATATYPE#KELIPSMARKER#KENDITER#KENUMCONST#KENUMTAG#KFCN#KINVALID#KITER#KSTRUCTTAG#KUNIONTAG#KVAR -4474$#US_CBRANCH#US_FBRANCH#US_GLOBAL#US_NORMAL#US_SWITCH#US_TBRANCH -4722$#CT_ABST#CT_ARRAY#CT_BOOL#CT_CONJ#CT_ENUM#CT_ENUMLIST#CT_EXPFCN#CT_FCN#CT_FIXEDARRAY#CT_PRIM#CT_PTR#CT_STRUCT#CT_UNION#CT_UNKNOWN#CT_USER -4725$#CTK_ARRAY#CTK_COMPLEX#CTK_DNE#CTK_INVALID#CTK_PLAIN#CTK_PTR#CTK_UNKNOWN -5067$#MVCHAR#MVDOUBLE#MVLONG#MVSTRING -5124$#SP_ALLOCATES#SP_DEFINES#SP_ISDEPENDENT#SP_ISEXPOSED#SP_ISNOTNULL#SP_ISNULL#SP_ISOBSERVER#SP_ISONLY#SP_ISOWNED#SP_ISSHARED#SP_RELEASES#SP_SETS#SP_USES -5127$#TK_AFTER#TK_BEFORE#TK_BOTH -5211$#VKEXPMACRO#VKNORMAL#VKPARAM#VKREFPARAM#VKREFSEFPARAM#VKREFSEFRETPARAM#VKREFYIELDPARAM#VKRETPARAM#VKSEFPARAM#VKSEFRETPARAM#VKSPEC#VKYIELDPARAM -5214$#CH_CHECKED#CH_CHECKEDSTRICT#CH_CHECKMOD#CH_UNCHECKED#CH_UNKNOWN -5217$#BB_NOTNULLTERMINATED#BB_NULLTERMINATED#BB_POSSIBLYNULLTERMINATED -5232$#SPC_LAST#SPC_MESSAGELIKE#SPC_NONE#SPC_PRINTFLIKE#SPC_SCANFLIKE -5713$#SR_INTERNAL#SR_NOTHING#SR_SPECSTATE#SR_SYSTEM -5716$#SK_ADR#SK_ARRAYFETCH#SK_CONJ#SK_CONST#SK_CVAR#SK_DERIVED#SK_EXTERNAL#SK_FIELD#SK_NEW#SK_OBJECT#SK_PARAM#SK_PTR#SK_RESULT#SK_SPECIAL#SK_TYPE#SK_UNCONSTRAINED#SK_UNKNOWN -6386$#ERRORBADCONSTRAINTTERMTYPE#EXPRNODE#INTLITERAL#SREF -6499$#binaryexpr#term#unaryExpr -6441$#BINARYOP_UNDEFINED#MINUS#PLUS -6444$#MAXREAD#MAXSET#MINREAD#MINSET#UNARYOP_UNDEFINED -6585$#EQ#GT#GTE#LT#LTE#NONNEGATIVE#POSITIVE -6791$#XPR_ALIGNOF#XPR_ALIGNOFT#XPR_ARROW#XPR_ASSIGN#XPR_BLOCK#XPR_BODY#XPR_BREAK#XPR_CALL#XPR_CASE#XPR_CAST#XPR_COMMA#XPR_COND#XPR_CONST#XPR_CONTINUE#XPR_DEFAULT#XPR_DOWHILE#XPR_EMPTY#XPR_FACCESS#XPR_FETCH#XPR_FOR#XPR_FORPRED#XPR_FTCASE#XPR_FTDEFAULT#XPR_GOTO#XPR_IF#XPR_IFELSE#XPR_INIT#XPR_INITBLOCK#XPR_ITER#XPR_ITERCALL#XPR_LABEL#XPR_NODE#XPR_NULLRETURN#XPR_NUMLIT#XPR_OFFSETOF#XPR_OP#XPR_PARENS#XPR_POSTOP#XPR_PREOP#XPR_RETURN#XPR_SIZEOF#XPR_SIZEOFT#XPR_STMT#XPR_STMTLIST#XPR_STRINGLITERAL#XPR_SWITCH#XPR_TOK#XPR_VAARG#XPR_VAR#XPR_WHILE#XPR_WHILEPRED -7358$#FMK_IGNORECOUNT#FMK_IGNOREOFF#FMK_IGNOREON#FMK_LOCALSET#FMK_SUPPRESS -7449$#FILE_HEADER#FILE_LSLTEMP#FILE_MACROS#FILE_NODELETE#FILE_NORMAL -8009$#CPP_3DOTS#CPP_CHAR#CPP_COMMA#CPP_COMMENT#CPP_DIRECTIVE#CPP_EOF#CPP_HSPACE#CPP_LBRACE#CPP_LPAREN#CPP_NAME#CPP_NUMBER#CPP_OTHER#CPP_POP#CPP_RBRACE#CPP_RPAREN#CPP_SEMICOLON#CPP_STRING#CPP_VSPACE -8245$#OSD_FILEFOUND#OSD_FILENOTFOUND#OSD_PATHTOOLONG -8094$#DUMP_DEFINITIONS#DUMP_NAMES#DUMP_NONE -8101$#T_BASE_FILE#T_CONST#T_DATE#T_DEFINE#T_DISABLED#T_ELIF#T_ELSE#T_ENDIF#T_ERROR#T_FILE#T_IDENT#T_IF#T_IFDEF#T_IFNDEF#T_INCLUDE#T_INCLUDE_LEVEL#T_INCLUDE_NEXT#T_LINE#T_MACRO#T_NONE#T_PCSTRING#T_PRAGMA#T_PTRDIFF_TYPE#T_REGISTER_PREFIX_TYPE#T_SIZE_TYPE#T_SPECLINE#T_SPEC_DEFINED#T_TIME#T_UNDEF#T_UNUSED#T_USER_LABEL_PREFIX_TYPE#T_VERSION#T_WARNING#T_WCHAR_TYPE -8401$#enter_file#leave_file#same_file -10590$#TT_DOASSIGN#TT_FCNPASS#TT_FCNRETURN#TT_FIELDASSIGN#TT_GLOBINIT#TT_GLOBPASS#TT_GLOBRETURN#TT_LEAVETRANS#TT_PARAMRETURN -10629$#DSC_GLOB#DSC_LOCAL#DSC_PARAM#DSC_STRUCT -11744$#XBOOL#XCHAR#XCTYPE#XFILELOC#XFLOAT#XINT#XINVALID#XPERCENT#XPLURAL#XREPREFIX#XSTRING#XSTRINGFREE#XTSTRINGFREE#XUENTRY -13560$#CX_FCNDECL#CX_FUNCTION#CX_GLOBAL#CX_INNER#CX_ITERDEF#CX_ITEREND#CX_LCL#CX_LCLLIB#CX_MACROCONST#CX_MACROFCN#CX_UNKNOWNMACRO -14097$#ARG_NONE#ARG_SPECIAL#ARG_STRING#ARG_VALUE -15521$#CHARCLASS1#CHARCLASS2#CHARCLASS3#CHARCLASS4#CHARCLASS5#CHARCLASS6#CLASSIFICATION1#CLASSIFICATION2#CLASSIFICATION3#CLOSESYMTOK1#CLOSESYMTOKS1#CLOSESYMTOKS2#COMMENTSYMTOK1#COMMENTSYMTOKS1#COMMENTSYMTOKS2#IDCHAR1#IDCHARS1#IDCHARS2#INITFILE1#INITLINE1#INITLINE2#INITLINES1#INITLINES2#INITLINES3#LOGICALOPTOK1#LOGICALOPTOKS1#LOGICALOPTOKS2#LRC_ENDCOMMENT1#LRC_ENDCOMMENT2#LRC_ENDCOMMENTCHAR1#LRC_EQOPTOK1#LRC_EQOPTOKS1#LRC_EQOPTOKS2#LRC_EQSEPSYMTOK1#LRC_EQSEPSYMTOKS1#LRC_EQSEPSYMTOKS2#LRC_EQUATIONSYMTOK1#LRC_EQUATIONSYMTOKS1#LRC_EQUATIONSYMTOKS2#LRC_EXTENSIONCHAR1#MAPSYMTOK1#MAPSYMTOKS1#MAPSYMTOKS2#MARKERSYMTOK1#MARKERSYMTOKS1#MARKERSYMTOKS2#NEWTOKEN1#OLDTOKEN1#OPCHAR1#OPCHARS1#OPCHARS2#OPENSYMTOK1#OPENSYMTOKS1#OPENSYMTOKS2#QUANTIFIERSYMTOK1#QUANTIFIERSYMTOKS1#QUANTIFIERSYMTOKS2#SELECTSYMTOK1#SELECTSYMTOKS1#SELECTSYMTOKS2#SEPSYMTOK1#SEPSYMTOKS1#SEPSYMTOKS2#SIMPLEIDTOK1#SIMPLEIDTOKS1#SIMPLEIDTOKS2#SINGCHAR1#SINGCHARS1#SINGCHARS2#SYNCLASS1#TOKENCLASS1#TOKENCLASS10#TOKENCLASS11#TOKENCLASS12#TOKENCLASS13#TOKENCLASS2#TOKENCLASS3#TOKENCLASS4#TOKENCLASS5#TOKENCLASS6#TOKENCLASS7#TOKENCLASS8#TOKENCLASS9#WHITECHAR1#WHITECHARS1#WHITECHARS2 -16663$#STARTCCHAR#STARTCNUM#STARTCNUMDOT#STARTCSTR#STARTOTHER#STARTSLASH#STARTWIDE -17017$#SYMK_FCN#SYMK_SCOPE#SYMK_TYPE#SYMK_VAR +^0 2@+@-@0@0@0@0@2#lltX_bool +*1 (Constant) +^1 2@i0@0@6#FALSE +^2 2@i1@0@0#TRUE +*11 (GlobalMarker) +*1 (Constant) +^4 5$#__LINE__ +^5 23$#__DATE__#__FILE__#__BASE_FILE__ +^8 5$#__INCLUDE_LEVEL__ +^9 23$#__VERSION__ +*0 (Datatype) +^10 13@-@-@0@0@0@0@59#__SIZE_TYPE__ +^11 13@-@-@0@0@0@0@60#__PTRDIFF_TYPE__ +^12 13@-@-@0@0@0@0@61#__WCHAR_TYPE__ +*1 (Constant) +^13 23$#__USER_LABEL_PREFIX__#__REGISTER_PREFIX__#__TIME__ +^16 5$#__LCLINT__ *3 (Variable) -0|@11|^#ADD_ASSIGN#AND#AND_ASSIGN#AND_OP#ARG_BASE#ARROW_OP#BADBRANCH#BADBRANCHCONT#BADDEFAULT#BADEXIT#BADTOK#BEGIN#BOOLBITS#BREAK#CALIGNOF#CASE#CBOOL#CCONSTANT#CDOUBLE#CELSE#CENUM#CFOR#CGCHAR#CGFLOAT#CIF#CINT#COFFSETOF#COMPARE#COMPARERETURN#CONTINUE#CPPBUFFER#CPP_OUT_BUFFER#CSIZEOF#CSTRUCT#CTOK_ELIPSIS#CTYPEDEF#CUNION#CVOID#DEC_OP#DEFAULT#DEFFILENO#DIV_ASSIGN#DO#DOSET#DPRINTF#EOB_ACT_CONTINUE_SCAN#EOB_ACT_END_OF_FILE#EOB_ACT_LAST_MATCH#EQ_OP#FILEIDLIST_H#FILELOCSTACK_H#FLEX_SCANNER#GET#GETPRINTF#GE_OP#GOTO#HOST_BITS_PER_WIDE_INT#HOST_WIDE_INT#IDENTIFIER#INC_OP#INITIAL#INTCOMPARERETURN#ISTR#ITERATION_OP#ITER_ENDNAME#ITER_NAME#LCLMOVECHAR#LCLSCANLINE_H#LCLSCAN_H#LEFT_ASSIGN#LEFT_OP#LE_OP#LLGRAMMAR2_H#LLMACRO#LLMACROEND#LLMACROITER#LLT_ALL#LLT_ANYTHING#LLT_BE#LLT_BODY#LLT_CCHAR#LLT_CFLOAT#LLT_CHAR#LLT_CHECKED#LLT_CHECKEDSTRICT#LLT_CHECKMOD#LLT_CHECKS#LLT_CINTEGER#LLT_CLAIMS#LLT_COLON#LLT_COMMA#LLT_CONST#LLT_CONSTANT#LLT_CONSTRAINT#LLT_DEPENDENT#LLT_DOUBLE#LLT_ELSE#LLT_ENSURES#LLT_ENUM#LLT_EOL#LLT_EQUALS#LLT_EXITS#LLT_EXPOSED#LLT_FALSEEXIT#LLT_FALSENULL#LLT_FILESYS#LLT_FLOAT#LLT_FOR#LLT_FRESH#LLT_IF#LLT_IF_THEN_ELSE#LLT_IMMUTABLE#LLT_IMPORTS#LLT_INT#LLT_INTERNAL#LLT_ISSUB#LLT_ITER#LLT_KEEP#LLT_KEPT#LLT_KILLED#LLT_KILLREF#LLT_LBRACE#LLT_LBRACKET#LLT_LCSTRING#LLT_LET#LLT_LNOTNULL#LLT_LNULL#LLT_LONG#LLT_LPAR#LLT_MAYEXIT#LLT_MESSAGELIKE#LLT_MODIFIES#LLT_MULOP#LLT_MUTABLE#LLT_NEVEREXIT#LLT_NEWREF#LLT_NOTHING#LLT_NULLTERMINATED#LLT_OBJ#LLT_OBSERVER#LLT_ONLY#LLT_OUT#LLT_OWNED#LLT_PARTIAL#LLT_PRINTFLIKE#LLT_PRIVATE#LLT_QUOTE#LLT_RBRACE#LLT_RBRACKET#LLT_REFCOUNTED#LLT_REFS#LLT_RELDEF#LLT_RELNULL#LLT_REQUIRES#LLT_RESULT#LLT_RETURNED#LLT_RPAR#LLT_SCANFLIKE#LLT_SEF#LLT_SEMI#LLT_SHARED#LLT_SHORT#LLT_SIGNED#LLT_SIZEOF#LLT_SPEC#LLT_STRUCT#LLT_TAGGEDUNION#LLT_TELIPSIS#LLT_TEMP#LLT_TEMPREF#LLT_THEN#LLT_TRUEEXIT#LLT_TRUENULL#LLT_TYPE#LLT_TYPEDEF#LLT_TYPEDEF_NAME#LLT_UNCHANGED#LLT_UNCHECKED#LLT_UNDEF#LLT_UNION#LLT_UNIQUE#LLT_UNKNOWN#LLT_UNSIGNED#LLT_UNUSED#LLT_USES#LLT_VERTICALBAR#LLT_VOID#LLT_VOLATILE#LLT_WHITESPACE#LLT_YIELD#LOGICAL#LOOKAHEADCHAR#LOOKAHEADTWICECHAR#LST_BADTOKEN#LST_CLOSESYM#LST_COLON#LST_COMMA#LST_COMMENTSYM#LST_COMPOSESYM#LST_EOL#LST_EQOP#LST_EQSEPSYM#LST_EQUATIONSYM#LST_FIELDMAPSYM#LST_LBRACKET#LST_LOGICALOP#LST_LPAR#LST_MAPSYM#LST_MARKERSYM#LST_OPENSYM#LST_QUANTIFIERSYM#LST_RBRACKET#LST_RPAR#LST_SELECTSYM#LST_SEPSYM#LST_SIMPLEID#LST_SIMPLEOP#LST_WHITESPACE#LST_assertsTOKEN#LST_assumesTOKEN#LST_byTOKEN#LST_convertsTOKEN#LST_elseTOKEN#LST_enumerationTOKEN#LST_equationsTOKEN#LST_exemptingTOKEN#LST_forTOKEN#LST_generatedTOKEN#LST_ifTOKEN#LST_impliesTOKEN#LST_includesTOKEN#LST_introducesTOKEN#LST_ofTOKEN#LST_partitionedTOKEN#LST_thenTOKEN#LST_traitTOKEN#LST_tupleTOKEN#LST_unionTOKEN#LTRACE#MASH#MMASH#MOD_ASSIGN#MOVECHAR#MUL_ASSIGN#NEWLINE_FIX#NEWLINE_FIX1#NEW_IDENTIFIER#NE_OP#NOALIAS#OR#OR_ASSIGN#OR_OP#PARAMS#PASTE#POSTFIX_OP#PREDTEST#PREFIX_OP#QABSTRACT#QALLOCATES#QALT#QANYTYPE#QARGSUSED#QAUTO#QBUFFERCONSTRAINT#QCHECKED#QCHECKEDSTRICT#QCHECKMOD#QCONCRETE#QCONST#QCONSTANT#QDEFINES#QDEPENDENT#QENDMACRO#QENSURESCONSTRAINT#QEXITS#QEXPOSED#QEXTENSION#QEXTERN#QEXTERNAL#QFALLTHROUGH#QFALSEEXIT#QFALSENULL#QFUNCTION#QGLOBALS#QIMMUTABLE#QIN#QINLINE#QINNERBREAK#QINNERCONTINUE#QINTEGRALTYPE#QISNULL#QITER#QKEEP#QKEPT#QKILLED#QKILLREF#QLINTFALLTHROUGH#QLINTFALLTHRU#QLINTNOTREACHED#QLINTPRINTFLIKE#QLONG#QLOOPBREAK#QMAXREAD#QMAXSET#QMAYEXIT#QMESSAGELIKE#QMODIFIES#QMUTABLE#QNEVEREXIT#QNEWREF#QNOMODS#QNOTNULL#QNOTREACHED#QNULL#QNULLTERMINATED#QOBSERVER#QONLY#QOUT#QOWNED#QPARTIAL#QPOSTCLAUSE#QPRECLAUSE#QPRINTFLIKE#QREF#QREFCOUNTED#QREFS#QREGISTER#QRELDEF#QRELEASES#QRELNULL#QRETURNED#QSAFEBREAK#QSCANFLIKE#QSEF#QSETBUFFERSIZE#QSETS#QSETSTRINGLENGTH#QSHARED#QSHORT#QSIGNED#QSIGNEDINTEGRALTYPE#QSPECIAL#QSTATIC#QSWITCHBREAK#QTEMP#QTEMPREF#QTESTINRANGE#QTRUEEXIT#QTRUENULL#QUNCHECKED#QUNDEF#QUNIQUE#QUNSIGNED#QUNSIGNEDINTEGRALTYPE#QUNUSED#QUSES#QVOLATILE#QYIELD#REJECT#REST_EXTENSION_LENGTH#RETURN#RETURN_CHAR#RETURN_EXPR#RETURN_FLOAT#RETURN_INT#RETURN_STRING#RETURN_TOK#RETURN_TYPE#RIGHT_ASSIGN#RIGHT_OP#SCANLINE_H#SETFLAGS#SHOWCSYM#SKIPTOK#SKIP_ALL_WHITE_SPACE#SKIP_WHITE_SPACE#STR#SUB_ASSIGN#SWITCH#TAMPERSAND#TASSIGN#TBAR#TCAND#TCIRC#TCOLON#TCOMMA#TDIV#TDOT#TENDMACRO#TEXCL#TGT#TLBRACE#TLPAREN#TLSQBR#TLT#TMINUS#TMULT#TPERCENT#TPLUS#TPRINTF#TQUEST#TRACE#TRBRACE#TRPAREN#TRSQBR#TSEMI#TTILDE#TYPE_NAME#TYPE_NAME_OR_ID#VA_ARG#VA_DCL#WHILE#XOR_ASSIGN#YYABORT#YYACCEPT#YYBACKUP#YYBISON#YYEMPTY#YYEOF#YYERRCODE#YYERROR#YYFAIL#YYFINAL#YYFLAG#YYINITDEPTH#YYLAST#YYLEX#YYMAXDEPTH#YYNTBASE#YYPARSE_PARAM_ARG#YYPARSE_PARAM_DECL#YYPOPSTACK#YYPRINT#YYPURE#YYRECOVERING#YYSTACK_ALLOC#YYSTATE#YYTERROR#YYTRANSLATE#YY_AT_BOL#YY_BREAK#YY_BUFFER_EOF_PENDING#YY_BUFFER_NEW#YY_BUFFER_NORMAL#YY_BUF_SIZE#YY_CURRENT_BUFFER#YY_DECL#YY_DO_BEFORE_ACTION#YY_END_OF_BUFFER#YY_END_OF_BUFFER_CHAR#YY_EXIT_FAILURE#YY_FATAL_ERROR#YY_FLEX_MAJOR_VERSION#YY_FLEX_MINOR_VERSION#YY_FLUSH_BUFFER#YY_INPUT#YY_MORE_ADJ#YY_NEW_FILE#YY_NO_POP_STATE#YY_NO_PUSH_STATE#YY_NO_TOP_STATE#YY_NULL#YY_NUM_RULES#YY_PROTO#YY_READ_BUF_SIZE#YY_RESTORE_YY_MORE_OFFSET#YY_RULE_SETUP#YY_SC_TO_UI#YY_START#YY_START_STACK_INCR#YY_STATE_EOF#YY_USER_ACTION#abst_typedef#anySym#closeSym#commentSym#const#ctbase_fixUser#ctentry_getArray#ctentry_getBase#ctentry_getKind#ctentry_getPtr#ctentry_isArray#ctentry_isComplex#ctentry_isPlain#ctentry_isPointer#ctentry_setArray#ctentry_setPtr#debugFlag#eqOp#eqSepSym#equationSym#exprNodeSList_H#exprNode_defineConstraints#extraArgFlag#globalExtraArgFlag#globalFlag#globalStringFlag#globalValueFlag#idemGlobalFlag#idemSpecialFlag#idemStringFlag#immut_typedef#intSET_H#llassertprint#llassertprintret#logicalOp#mapSym#markerSym#modeFlag#modeValueFlag#openSym#plainFlag#plainSpecialFlag#postSym#preSym#quantifierSym#regStringFlag#selectSym#sepSym#simpleId#simpleOp#specialDebugFlag#specialFlag#specialValueFlag#testingFlag#unput#valueFlag#yy_new_buffer#yy_set_bol#yy_set_interactive#yychar#yyclearin#yyconst#yyerrok#yyerror#yyinput#yyless#yylex#yymore#yynerrs#yyterminate#yytext_ptr -2|@1|^#g_expectingTypeName#g_inTypeDef#g_lslParsingTraits -5|@1|^#g_codeLine#g_prevCodeLine#lsldebug#ylchar#ylnerrs#yyleng -5|@1|0@0@0@0@1#DBL_DIG#DBL_MANT_DIG#DBL_MAX_10_EXP#DBL_MAX_EXP#DBL_MIN_10_EXP#DBL_MIN_EXP#FLT_DIG#FLT_MANT_DIG#FLT_MAX_10_EXP#FLT_MAX_EXP#FLT_MIN_10_EXP#FLT_MIN_EXP#FLT_ROUNDS#LDBL_DIG#LDBL_MANT_DIG#LDBL_MAX_10_EXP#LDBL_MAX_EXP#LDBL_MIN_10_EXP#LDBL_MIN_EXP#errno -5|@11|^#yydebug -16|@1|0@0@0@0@1#FLT_EPSILON#FLT_MAX#FLT_MIN -17|@1|0@0@0@0@1#DBL_EPSILON#DBL_MAX#DBL_MIN -18|@1|0@0@0@0@1#LDBL_EPSILON#LDBL_MAX#LDBL_MIN -23|@1|^#yytext -23|@1|0@5@2&#g_currentSpecName -23|@1|0@0@19@3@0#g_localSpecPath -210|@1|^#g_msgstream -210|@1|0@0@0@0@1#stderr#stdin#stdout -210|@1|0@0@18&#yyin#yyout -312|@1|0@0@0@0@1#environ -941|@1|^#sort_bool#sort_capBool#sort_char#sort_cstring#sort_double#sort_float#sort_int -948|@1|0@5@18&#ltoken_and#ltoken_any#ltoken_arrow#ltoken_bool#ltoken_close#ltoken_comment#ltoken_compose#ltoken_eq#ltoken_eqsep#ltoken_equals#ltoken_exists#ltoken_false#ltoken_farrow#ltoken_forall#ltoken_id#ltoken_if#ltoken_implies#ltoken_lbracked#ltoken_marker#ltoken_neq#ltoken_not#ltoken_open#ltoken_or#ltoken_post#ltoken_pre#ltoken_rbracket#ltoken_result#ltoken_select#ltoken_sep#ltoken_true#ltoken_typename -978|@1|0@5@17&#g_currentloc -989|@1|0@5@2&#g_currentSpec -989|@1|0@5@19@3@0#g_codeFile#g_prevCodeFile -2600|@1|0@5@2&#g_currentImports -3198|@1|0@5@18&#g_importedlslOp#importedlslOp -3751|@1|0@0@2&#g_symtab -8012|@1|^#g_cppState -10321|@1|^#lsllval#yllval -10321|@11|^#yylval -18274|@1|^#s_keytable#s_parsetable -*4 (Function) -0$$$@0#cppBuffer_get#cppReader_adjustWritten#cppReader_forward#cppReader_getC#cppReader_isC89#cppReader_nullTerminate#cppReader_nullTerminateQ#cppReader_peekC#cppReader_putChar#cppReader_putCharQ#cppReader_puts#cppReader_wcharType#hashStep#makePositive#possibleSumSign -18335$$$@0#generic_compare -18337$$$@0#qualList_hasBufQualifiers -18336$$$@0#qual_createSetBufferSize -9420$@0@@1@p0,p1$@0#uentry_mergeState -10649$$$@0#checkPassTransfer -12380$@0@s1@1@s1$@0#usymtab_popBranches -13350$$$@0#sRef_aliasCheckPred -361$@0@g2937@0@0@1@tp0,g2937$@0#qsort -14247$@0@@1@tp0$@0#docheckChar -12958$@0@@1@p0,p1$@0#sRef_mergeOptState#sRef_mergeState -17992$$$@0#exprNode_checkCallModifyVal -9378$@0@g2951@0@0@1@g2951$@0#uentry_checkMatchParam -11376$$$@0#exprNode_exprTraverse -10351$$$@0#setFunctionStateSpecialClause -14440$$$@0#cstringSList_printSpaced -14414$$$@0#cstringList_printSpaced -2082$$$@0#vgenhinterror -2074$$$@0#voptgenerror2#voptgenerror2n -15990$$$@0#doDeclareFcn -8780$$$@0#cppReader_pedwarnWithLine -8776$$$@0#cppReader_errorWithLine -15665$$$@0#outputLCSFile -16458$$$@0#enteringFcnScope -15669$$$@0#processImport -16753$@0@s1@1@s1$@0#LCLUpdateToken#LSLUpdateToken -13100$$$@0#sRef_setLastReference -13338$@0@@1@p0$@0#sRef_setDerivNullState -13034$$$@0#sRef_setDefState -13106$$$@0#sRef_setNullState#sRef_setNullStateInnerComplete -13042$@0@@1@p0$@0#sRef_setAliasKind -13040$$$@0#sRef_setAliasKindComplete -13058$@0@@1@p0$@0#sRef_setExKind -13108$$$@0#sRef_setNullTerminatedStateInnerComplete -13816$$$@0#context_exitClause#forLoopHeuristics#mergeResolve -12364$@0@s1@1@s1$@0#usymtab_popTrueBranch#usymtab_popTrueExecBranch -11255$@0@@1@p0$@0#checkArgumentList -12033$@0@g2951@0@0@1@tg2951$@0#llquietbugaux -11536$$$@0#cstring_setChar -11981@6@0@6@0@0@1@g2951@0@0,g2996@0@5@1@tg2951$@0#llbugaux -11546$$$@0#cstring_replaceLit -10353$$$@0#setFunctionSpecialClause -11965$@0@g2951@0@0@1@g2951$@0#llforceerror -12009$$$@0#genppllerrorhint -2078$$$@0#noptgenerror#vnoptgenerror -2072$@0@g2951@0@0,s1@1@tg2951,s1$@0#voptgenerror -16980$@0@s1@1@tp0,s1$@0#sort_import -17156$$$@0#symtable_import -17524$$$@0#mapping_bind -17129$$$@0#symtable_dump -17092$$$@0#symtable_enterOp -11892$$$@0#hashTable_insert -11896$$$@0#hashTable_replaceKey -10445$$$@0#checkValueConstant -9489$$$@0#macrocache_addComment#macrocache_addEntry -8078$@0@@1@tp0$@0#cppReader_putStrN -8519$$$@0#cppBuffer_lineAndColumn -14151$$$@0#printAllFlags -16731$@0@s1@1@s1$@0#LCLSetEndCommentChar -15520$$$@0#lsetEndCommentChar -16729$@0@s1@1@s1$@0#LCLSetCharClass -15518$$$@0#lsetCharClass -14301$@0@@1@tp1$@0#checkUngetc -9537$$$@0#qtype_adjustPointers -15559$$$@0#callLSL -174@6@0@5@0@0@1@@1@s0$@0#longjmp -205$@0@@1@p0$@0#va_start -16966$@0@@1@p0$@0#sort_dump -14273$@0@@1@p0$@0#fputline -232$@0@s3@1@s3,tp0,tp1$@0#setbuf -1048$@0@@1@tp0$@0#checkChar -704@6@0@5@0@0@1@@1@s0$@0#siglongjmp -15188$$$@0#termNodeList_addh#termNodeList_addl -16755$@0@s1@1@s1$@0#LCLSetTokenHasSyn#LSLSetTokenHasSyn -15914$@0@s1@1@s1$@0#LSLAddSyn -16735$$$@0#LCLAddSyn -16172$$$@0#checkBrackets -11997$$$@0#lclerror#lclfatalerror -15639$$$@0#checkLclPredicate -2406$$$@0#ltoken_setDefined#ltoken_setHasSyn -2439$$$@0#ltoken_setCode#ltoken_setIntField -2416$$$@0#ltoken_setLine -2420$@0@@1@p0$@0#ltoken_setCol -2460$$$@0#ltoken_setFileName -2441$$$@0#ltoken_setRawText#ltoken_setText -2443$$$@0#ltoken_setIdType -12920$@0@@1@p0$@0#sRef_setParamNo -13464$$$@0#sRef_setLen#sRef_setSize -12524$@0@s1@1@s1$@0#usymtab_addForceMustAlias#usymtab_addMustAlias -13062$@0@@1@p0$@0#sRef_copyRealDerivedComplete#sRef_copyState#sRef_mergeStateQuiet#sRef_mergeStateQuietReverse -13228$@0@@1@p0$@0#sRef_setStateFromUentry -10639$@0@g2951@0@0@1@g2951$@0#checkLocalDestroyed -13038$@0@@1@p0$@0#sRef_clearAliasState#sRef_kill#sRef_killComplete#sRef_maybeKill#sRef_setAllocated#sRef_setAllocatedComplete#sRef_setAllocatedShallowComplete#sRef_setDefined#sRef_setDependent#sRef_setExposed#sRef_setFresh#sRef_setKept#sRef_setKeptComplete#sRef_setObserver#sRef_setOnly#sRef_setOwned#sRef_setPartial#sRef_setPdefined#sRef_setShared#sRef_setUndefined -10641$$$@0#checkStructDestroyed#sRef_clearExKindComplete#sRef_setDefNull#sRef_setDefinedComplete#sRef_setDefinedNCComplete#sRef_setDependentComplete#sRef_setNotNull#sRef_setNullUnknown#sRef_setPartialDefinedComplete#sRef_setPosNull -12766$@0@@1@p0$@0#sRef_setStateFromType -13198$$$@0#sRef_setType#sRef_setTypeFull -10367$$$@0#globListAdd -13308$$$@0#sRef_mergeNullState -13044$$$@0#sRef_setOrigAliasKind -13846$$$@0#context_setAliasAnnote -12556$@1@s1,g2951@0@0@1@tg2951,p0$@0#usymtab_checkDistinctName -8918$@0@@1@p0$@0#uentry_setParamNo -9448$$$@0#uentry_setLen#uentry_setSize -9276$$$@0#uentry_setSref -9398$$$@0#uentry_mergeDefinition#uentry_mergeEntries -9628$@0@g2951@0@0@1@g2951$@0#specialClauses_checkEqual -9408$@0@@1@p0,p1$@0#uentry_setState -9430$$$@0#uentry_checkYieldParam#uentry_copyState#uentry_mergeUses -17976$$$@0#exprNode_checkFunction -8928$@0@@1@p0,p1$@0#uentry_setModifies -9248$$$@0#uentry_setDeclaredForceOnly#uentry_setDeclaredOnly -9246$@0@@1@p0$@0#uentry_setDeclaredForce -9252$$$@0#uentry_setDeclared#uentry_setFunctionDefined#uentry_setUsed#uentry_showDefSpecInfo -8932$$$@0#uentry_setPostconditions#uentry_setPreconditions -9332$@0@g2951@0@0@1@g2951$@0#uentry_showWhereLastExtra#uentry_showWhereSpecifiedExtra -9266$$$@0#uentry_setName -9268$$$@0#uentry_setType -8948$@0@@1@p0$@0#uentry_reflectQualifiers -8994$$$@0#uentry_setDefState -9286$$$@0#uentry_setDatatype -9028$@0@@1@p0$@0#uentry_addAccessType -9270$@0@@1@p0$@0#uentry_resetParams -9026$@0@@1@p0$@0#uentry_setGlobals -9382$$$@0#uentry_mergeConstantValue -8926$@0@@1@p0$@0#uentry_setSpecialClauses -9256$@0@@1@p0$@0@2.0.fwhereDefined.tp0,fukind.tp0,funame.tp0,finfo.tp0$#uentry_setDefined -10517$$$@0#idDecl_addQual -10519$$$@0#idDecl_setTyp -12376$@0@s1@1@s1$@0#usymtab_exitSwitch -13738$$$@0#context_exitSwitch -17906$$$@0#exprNode_checkMSet#exprNode_checkSet -10645$$$@0#checkReturnTransfer -12374$@0@s1@1@s1$@0#usymtab_popAndBranch#usymtab_popOrBranch -10667$$$@0#checkAssignTransfer#checkInitTransfer#context_exitAndClause#context_exitForClause#context_exitOrClause#context_exitTrueClause#context_exitWhileClause#exprNode_checkModify#exprNode_checkModifyVal -14795$@0@@1@p0$@0#guardSet_delete -14895$@0@@1@p0$@0#sRefSet_levelPrune -17970$$$@0#exprNode_checkAllMods -12103$@0@@1@p0,p1$@0#aliasTable_clearAliases -11647$@0@@1@p0$@0#fileloc_subColumn -1447$@0@@1@p0$@0#fileloc_addColumn#fileloc_addLine#fileloc_setColumn#fileloc_setLineno -11155$$$@0#constraint_printErrorPostCondition -11093$@0@@1@p0$@0#constraint_overWrite -11185$$$@0#constraint_dump -11157$$$@0#constraint_printError -11207$$$@0#constraintList_printError#constraintList_printErrorPostConditions -11233$$$@0#constraintList_dump -11075$$$@0#constraintExpr_dump -11947$@0@g2951@0@0@1@g2951$@0#llgenindentmsg#llgenmsg -11548$@0@@1@p0$@0#cstring_stripChars -17966$$$@0#exprNode_checkPred -10369$$$@0#declareCIter -13956$@1@g2996@0@5@1@g2996$@0#context_setFilename#setFileLine -13944$$$@0#context_setFlagTemp#context_userSetFlag -13864$@0@s1@1@s1$@0#context_setValueAndFlag -2086$$$@0#llerrorlit -2012$@1@g2951@0@0,g2996@0@5@1@g2951$@0#llerror -13876$@0@s1@1@s1$@0#context_setString -12007$$$@0#genppllerror#setStringFlag -14167$$$@0#setValueFlag -13938$$$@0#context_fileSetFlag -16460$$$@0#enteringClaimScope -15227$@0@@1@p0$@0#ltokenList_addh -15062$$$@0#sortList_addh -15179$$$@0#lsymbolList_addh -15265$@0@@1@p0$@0#pairNodeList_addh -15317$$$@0#programNodeList_addh -15972$$$@0#doDeclareConstant -15976$$$@0#doDeclareVar -15328$@0@@1@p0$@0#varDeclarationNodeList_addh -10310$$$@0#declareFcn#declarePrivFcn -15984$$$@0#doDeclareType -15092$$$@0#interfaceNodeList_addl -15101$$$@0#sortSetList_addh -15156$$$@0#lslOpList_add -17124$$$@0#symtable_export -17108$$$@0#symtable_enterType -17102$$$@0#symtable_enterScope -14508$$$@0#exprNodeList_addh -11898$@0@@1@p0$@0#hashTable_remove -14481$@0@@1@p0$@0#enumNameList_addh -3982$$$@0#enumNameSList_addh -14614$$$@0#uentryList_showFieldDifference -17968$$$@0#exprChecks_checkUsedGlobs -14466$@0@@1@p0$@0#ctypeList_addh -10443$$$@0#checkConstant -5007$$$@0#qtype_setType -6385$$$@0#constraintTermValue_copy -10897$$$@0#constraintTerm_dump -11414$$$@0#exprData_free#exprData_freeShallow -14673$@0@@1@p0$@0#flagMarkerList_add -11798$$$@0#fileTable_noDelete -14359$@0@@1@p0$@0#clauseStack_push#clauseStack_removeFirst#clauseStack_switchTop -8453$$$@0#cppReader_define -8451$$$@0#cppReader_growBuffer -8766$$$@0#cppReader_error#cppReader_fatalError#cppReader_pedwarn#cppReader_warning -8782$$$@0#cppReader_perrorWithName#cppReader_pfatalWithName -8764$$$@0#cppReader_errorLit#cppReader_pedwarnLit#cppReader_warningLit -8076$$$@0#cppReader_reserve -8459$@0@@1@p0,p1$@0@2.0.fopts.tp0,fmax_include_len.tp0$#cppReader_addIncludeChain -8080$@0@@1@tp0$@0@2.0.p0,tp0,ftoken_buffer.tp0$2.4.flimit.tp0$#cppReader_setWritten -14536$$$@0#exprNodeSList_addh -11633$@0@@1@p0$@0#fileIdList_add -18245$$$@0#yy_init_buffer -12396$@1@s1,g2951@0@0@1@tg2951$@0#usymtab_checkFinalScope -16715$@0@s1@1@s1$@0#LCLReportEolTokens -17454$$$@0#LSLGenInit#LSLReportEolTokens -1992@6@0@8@0@0$$@0#llassert#llassertfatal -13858$$$@0#context_setCommentMarkerChar -1489$@1@g2996@0@5@1@g2996$@0#addColumn#setColumn#setLine -13643$$$@0#context_enterSuppressLine#llexit -825@6@0@6@0@0@1@@1@s0$@0#_exit#exit -10561$$$@0#setTagNo -322$@0@s1@1@s1$@0#srand -14195$@0@s1@1@s1$@0#sfreeEventually -14193$@0@@1@tp0$@0#sfree -1017$$$@0@2.4.p0,tp0$#assertSet -333$@0@@1@tp0$@0#free -11977@6@0@6@0@0@0@g2951@0@0@1@g2951$@0#lclfatalbug -17539$@0@g2951@0@0@1@tg2951$@0#ylerror -16711$@0@s1@1@s1,p0$@0#LCLScanLine -2090@6@0@6@0@0$$@0#llbugexitlit#llbuglit#llcontbuglit#llmsglit#lscanLine#lslerror -14228$@0@@1@tp0$@0#mstring_markFree -1109$$$@0#mstring_free -304$@1@g2937@0@0,g2952@0@0,s3@1@s3,tg2952$@0#perror -207$@0@@1@p0$@0#va_end -18229$$$@0#yyrestart -12346$@1@s1@1@p0,s1,tp0$@0#usymtab_load -14753$@0@s1@1@tp0,s1$@0#typeIdSet_loadTable -12344$@1@s1@1@tp0$@0#usymtab_dump -14749$@0@@1@tp0$@0#typeIdSet_dumpTable -13659$$$@0#context_dumpModuleAccess#context_loadModuleAccess#ctype_dumpTable#ctype_loadTable -298$@0@@1@tp0$@0#clearerr#rewind -675$@1@@1@s0$@0#rewinddir -16510$$$@0#termNode_free -16294$$$@0#setExposedType -15216$$$@0#termNodeList_free -15198$@0@@1@p0$@0#termNodeList_advance#termNodeList_finish#termNodeList_reset -16592$@0@s1@1@s1$@0#lsymbol_setbool -16266$$$@0#typeExpr_free -17464$@0@s1@1@s1$@0#LCLScanFreshToken -17450$$$@0#LSLGenShiftOnly#ltoken_free -15470$@0@s1@1@s1$@0#LSLScanFreshToken#lhForwardStruct#lhForwardUnion -17448$$$@0#LSLGenShift#PrintToken#lclRedeclarationError -16644$$$@0#ltoken_markOwned -13196$$$@0#sRef_free -12526$@0@s1@1@s1,p0$@0#usymtab_clearAlias -12496$@0@s1@1@s1$@0#usymtab_unguard -13306$@0@g2951@0@0@1@g2951$@0#sRef_showAliasInfo#sRef_showExpInfo#sRef_showNotReallyDefined#sRef_showNullInfo#sRef_showStateInfo -13004$@0@@1@p0$@0#sRef_makeSafe#sRef_makeUnsafe#sRef_resetLen -13774$$$@0#context_usedGlobal#sRef_clearDerived#sRef_clearDerivedComplete#sRef_hasBufStateInfo#sRef_resetState#sRef_resetStateComplete#sRef_setModified#sRef_setNotNullTerminatedState#sRef_setNullError#sRef_setNullTerminatedState#sRef_setPossiblyNullTerminatedState#sRef_showRefKilled#sRef_showRefLost#sRef_showStateInconsistent#sRef_storeState -5801$@0@@1@p0$@0#sRef_clearAliasKind -12270$@0@s1@1@s1,p0$@0#usymtab_addGlobalEntry#usymtab_replaceEntry#usymtab_supEntry#usymtab_supEntrySref#usymtab_supGlobalEntry -9322$$$@0#uentry_free#uentry_freeComplete -9024$@0@@1@p0$@0#uentry_makeVarFunction -12356$@1@s1@1@s1$@0#usymtab_enterFunctionScope -9626$@0@g2951@0@0@1@p0,g2951$@0#specialClauses_checkAll#uentry_checkName -10794$@0@g2951@0@0@1@g2951$@0#checkParamNames#uentry_showWhereAny#uentry_showWhereDeclared#uentry_showWhereLast#uentry_showWhereLastPlain#uentry_showWhereSpecified -9254$@0@@1@p0$@0#uentry_clearDefined#uentry_fixupSref#uentry_setAbstract#uentry_setCheckMod#uentry_setChecked#uentry_setCheckedStrict#uentry_setConcrete#uentry_setHasNameError#uentry_setMessageLike#uentry_setMutable#uentry_setPrintfLike#uentry_setRefParam#uentry_setScanfLike#uentry_setUnchecked -10651$$$@0#checkGlobReturn#checkGlobalName#checkLocalName#checkLoseRef#checkModifiesId#checkParamReturn#checkPrefix#exprChecks_checkExport#setProcessingIterVars#uentry_checkParams#uentry_setExtern#uentry_setNullTerminatedState#uentry_setParam#uentry_setPossiblyNullTerminatedState#uentry_setRefCounted#uentry_setStatic#uentry_showWhereDefined -5297$$$@0#uentry_setLset#uentry_setNotUsed -9128$$$@0#uentry_markFree#uentry_markOwned -13746$$$@0#context_enterConstantMacro -13700$$$@0#context_enterUnknownMacro -13752$$$@0#context_enterFunction -13958$$$@0#context_enterIterDef#context_enterIterEnd#context_enterMacro -10403$@1@s1@1@$@0#declareFunction#declareStaticFunction -10505$$$@0#idDecl_free -10447$$$@0#processNamedDecl -18093$$$@0#printState -17980$$$@0#exprNode_checkIterBody#exprNode_checkIterEnd#exprNode_checkMacroBody#exprNode_free#exprNode_freeShallow -12402$@1@s1@1@s1$@0#usymtab_exitScope#usymtab_switchBranch -17798$@0@@1@p0$@0#exprNode_produceGuards -13702$$$@0#context_enterAndClause#context_enterCaseClause#context_enterFalseClause#context_enterForClause#context_enterOrClause#context_enterSwitch#context_enterTrueClause#context_enterWhileClause#context_exitDoWhileClause#context_exitInner#context_exitIterClause#exprNode_checkFunctionBody#exprNode_checkReturn#exprNode_checkStatement#exprNode_checkUseParam -12384$@0@s1@1@s1$@0#usymtab_altBranch#usymtab_trueBranch -14821$$$@0#guardSet_free -12492$@0@s1@1@s1$@0#usymtab_addGuards -14809$$$@0#guardSet_flip -14947$@0@@1@p0$@0#sRefSet_free -10363$$$@0#setFunctionModifies -14871$@0@@1@p0$@0#sRefSet_clear#sRefSet_clearStatics -14945$$$@0#sRefSet_fixSrefs -13854$$$@0#context_recordFileModifies -12133$$$@0#aliasTable_free -12135$@0@g2951@0@0@1@g2951$@0#aliasTable_checkGlobs -12131$$$@0#aliasTable_fixSrefs -11655$$$@0#fileloc_free#fileloc_reallyFree -12398$@1@s1@1@s1$@0#usymtab_quietExitScope -13750$$$@0#context_setFunctionDefined#exprChecks_checkNullReturn -1449$@0@@1@p0$@0#fileloc_incColumn#fileloc_nextLine#fileloc_setColumnUndefined -11151$$$@0#constraint_free -11213$$$@0#constraintList_free -10359$$$@0#setEnsuresConstraints#setFunctionConstraints -10945$$$@0#constraintExpr_free -2046@6@0@6@0@0@1@g2951@0@0,g2996@0@5@1@tg2951$@0#llbug -11929$@1@g2996@0@5,g2951@0@0@1@g2951$@0#llhint#llparseerror -2052$@0@g2951@0@0@1@tg2951$@0#llcontbug#llquietbug -12003@6@0@6@0@0@0@g2951@0@0@1@g2951$@0#lclplainfatalerror#llfatalerror#llmsg -11987@6@0@6@0@0@1@g2996@0@5,g2952@0@0@1@g2952$@0#llfatalerrorLoc -11921$@0@g2952@0@0@1@g2952$@0#lldiagmsg -11923$@0@g2951@0@0@1@g2951$@0#llmsgplain -11975@6@0@6@0@0@1@g2996@0@5,g2952@0@0@1@g2952$@0#llfatalbug -11989$@0@g2951@0@0@1@g2951$@0#llgloberror -15619$@0@s1@1@s1$@0#lhOutLine -13625$$$@0#context_addComment#context_addMacroCache#context_setMessageAnnote#cstring_free#lclbug#lclplainerror#llgenindentmsgnoloc#loadllmsg#pplldiagmsg#ppllerror -13682$$$@0#context_setMode#cppAddIncludeDir#cppDoDefine#cppDoUndefine#dumpState#loadState#resetImports -11574$@0@@1@p0$@0#cstring_markOwned -11925$@0@g2951@0@0@1@g2951$@0#flagWarning -1495$@1@g2996@0@5@1@g2996$@0#setSpecFileId -14062$$$@0#context_setFileId -10337$@0@s1@1@s1$@0#setSpecialFunction -12638$$$@0@2.3.floc.p0$#lltok_release -14444$$$@0#cstringSList_free -14446$$$@0#cstringSList_alphabetize -14418$$$@0#cstringList_free -14420$$$@0#cstringList_alphabetize -13872$@0@s1@1@s1$@0#context_decCounter#context_incCounter#context_setLibrary -14131$$$@0#flagcode_recordError#flagcode_recordSuppressed -14147$@0@g2951@0@0@1@g2951$@0#printCategory -11754$$$@0#tsource_free -15617$@1@s1,s3@1@s1,s3$@0#lhInit -17471$@0@s1@1@s1$@0#LCLScanReset#LSLScanReset -14664$$$@0#qualList_free -14646$$$@0#qualList_clear -17516$$$@0#mapping_free -16526$$$@0#paramNode_free -15310$$$@0#paramNodeList_free -15247$$$@0#ltokenList_free -15233$@0@@1@p0$@0#ltokenList_advance#ltokenList_removeCurrent#ltokenList_reset -16516$$$@0#importNode_free -15380$$$@0#importNodeList_free -15072$$$@0#sortList_free -15066$$$@0#sortList_advance#sortList_reset -15181$$$@0#lsymbolList_free -14977$$$@0#lsymbolSet_free -15043$$$@0#sortSet_free -16522$$$@0#pairNode_free -15269$$$@0#pairNodeList_free -16498$$$@0#declaratorInvNode_free -15083$$$@0#declaratorInvNodeList_free -2708$$$@0#abstDeclaratorNode_free -16492$$$@0#declaratorNode_free -16080$$$@0#declareForwardType -15126$$$@0#declaratorNodeList_free -16552$$$@0#varNode_free -15343$$$@0#varNodeList_free -16532$$$@0#quantifierNode_free -15358$$$@0#quantifierNodeList_free -16538$$$@0#storeRefNode_free -15173$$$@0#storeRefNodeList_free -16520$$$@0#letDeclNode_free -15137$$$@0#letDeclNodeList_free -16528$$$@0#programNode_free -15321$$$@0#programNodeList_free -16518$$$@0#initDeclNode_free -15056$$$@0#initDeclNodeList_free -10304$$$@0#declareConstant#declarePrivConstant -16548$$$@0#varDeclarationNode_free -10314$$$@0#declarePrivVar#declareVar -15332$$$@0#varDeclarationNodeList_free -2958$$$@0#globalList_free -16496$$$@0#fcnNode_free -15293$$$@0#fcnNodeList_free -15986$$$@0#declareIter -16542$$$@0#stDeclNode_free -15150$$$@0#stDeclNodeList_free -10316$$$@0#declarePrivType#declareType -16546$$$@0#typeNameNode_free -15280$$$@0#typeNameNodeList_free -16490$$$@0#sigNode_free -16202$$$@0#sigNode_markOwned -14998$$$@0#sigNodeSet_free -16452$$$@0#signNode_free -16484$$$@0#nameNode_free -16488$$$@0#lslOp_free -15023$$$@0#lslOpSet_free -16534$$$@0#replaceNode_free -15369$$$@0#replaceNodeList_free -16544$$$@0#traitRefNode_free -15258$$$@0#traitRefNodeList_free -16564$$$@0#interfaceNode_free -15563$$$@0#readlsignatures -15094$$$@0#interfaceNodeList_free -15621$@0@s1@1@s1$@0#lhExternals -15113$$$@0#sortSetList_free -15105$$$@0#sortSetList_advance#sortSetList_reset -15160$$$@0#lslOpList_free -17065$$$@0#varInfo_free -17069$$$@0#symtable_free -17104$$$@0#symtable_exitScope#symtable_printStats -14528$$$@0#exprNodeList_free#exprNodeList_freeShallow -14512$$$@0#exprNodeList_advance#exprNodeList_reset -11871$$$@0#hashTable_free -14640$$$@0#filelocList_free -14499$$$@0#enumNameList_free -14501$$$@0#enumNameSList_free -10413$$$@0#setStorageClass -12243$@0@s1@1@s1$@0#usymtab_setExitCode -13688$$$@0#context_addFileAccessType#context_removeFileAccessType -14851$$$@0#usymIdSet_free -14572$$$@0#uentryList_free -14602$@0@@1@p0$@0#uentryList_advanceSafe#uentryList_clear#uentryList_fixMissingNames#uentryList_reset -14580$$$@0#uentryList_fixImpParams -10387$$$@0#setCurrentParams -14716$$$@0#globSet_free -14702$$$@0#globSet_clear -13856$$$@0#context_recordFileGlobals -14470$@0@@1@p0$@0#ctypeList_free -9513$$$@0#qtype_free#setProcessingTypedef#setProcessingVars -12598$$$@0#multiVal_free -9618$$$@0#specialClauses_free -10851$$$@0#constraintTerm_free -10901$$$@0#constraintExprData_freeBinaryExpr#constraintExprData_freeTerm#constraintExprData_freeUnaryExpr -14698$$$@0#idDeclList_free -14460$$$@0#sRefSetList_free -14458$$$@0#sRefSetList_clear -12076$$$@0#flagMarker_free -14681$$$@0#flagMarkerList_free -14675$@0@g2951@0@0@1@g2951$@0#flagMarkerList_checkSuppressCounts -9481$$$@0#macrocache_free -9499$$$@0#macrocache_processUndefinedElements -11842$$$@0#fileTable_free -11840$@0@s3@1@s3$@0#fileTable_cleanup -11785$@0@g2951@0@0@1@g2951$@0#fileTable_printTemps -12056$$$@0#messageLog_free -14375$$$@0#clauseStack_free -14373$@0@@1@p0$@0#clauseStack_clear#clauseStack_pop -8636$@0@@1@p0$@0#cppReader_initializeReader -8621$$$@0#cppCleanup#cppReader_finish#cppReader_skipRestOfLine -8617$$$@0#cppReader_init -8738$@0@s1@1@s1,tp0$@0#cppReader_deleteMacro -8463$$$@0#cppOptions_init -14544$$$@0#exprNodeSList_free -11637$@0@@1@p0$@0#fileIdList_free -12173$@0@@1@p0$@0#sRefTable_free -12167$@0@@1@p0$@0#sRefTable_clear -14398$$$@0#filelocStack_free -14396$@0@g2951@0@0@1@g2951$@0#filelocStack_printIncludes -14388$@0@@1@p0$@0#filelocStack_clear -14738$$$@0#intSet_free -18240$$$@0#yy_delete_buffer#yy_flush_buffer#yy_switch_to_buffer -71@6@0@8@0@0@1@@1@s0$@0#assert -2054$@1@g2951@0@0,g2996@0@5,s1@1@g2951,s1$@0#cleanupMessages -1487$@1@g2996@0@5@1@g2996$@0#beginLine#decColumn#decLine#incColumn#incLine -11917$@0@s1,g2951@0@0@1@s1,g2951$@0#closeMessage#prepareMessage -12035$@0@s3@1@s3$@0#llflush -4486$@1@s1,g2951@0@0@1@g2951$@0#usymtab_printTypes -12386$@1@s1,g2951@0@0@1@tg2951$@0#usymtab_allDefined#usymtab_allUsed -12550$@1@s1,g2954@6@0@1@g2954$@0#usymtab_printLocal -4603$@1@s1,g2951@0@0@1@tg2951$@0#usymtab_displayAllUses#usymtab_printAll#usymtab_printGuards#usymtab_printOut -4665$@1@s1,g2954@6@0@1@tg2954$@0#usymtab_printComplete -15613$@0@s1,s3@1@s1,s3$@0#lhCleanup -17473$@0@s1@1@s1$@0#LCLScanCleanup#LCLScanInit#LCLScanLineCleanup#LCLScanLineInit#LCLScanLineReset#LSLScanCleanup#LSLScanInit#context_clearInCommandLine#context_clearPreprocessing#context_destroyMod#context_enterDoWhileClause#context_exitInnerPlain#context_hasError#context_initMod#context_processedSpecLine#context_resetSpecLines#context_setInCommandLine#context_setPreprocessing#exprNode_destroyMod#exprNode_initMod#lsymbol_destroyMod#lsymbol_initMod#macrocache_finalize#sRef_clearGlobalScope#sRef_clearProtectDerivs#sRef_destroyMod#sRef_protectDerivs#setArgsUsed#sort_destroyMod#sort_init -16932$@0@g2951@0@0@1@g2951$@0#sort_printStats -14747$@1@s1@1@s1$@0#typeIdSet_destroyMod#typeIdSet_initMod#uentry_destroyMod#usymtab_enterFile#usymtab_enterScope#usymtab_exitFile#usymtab_exportHeader#usymtab_exportLocal#usymtab_free#usymtab_initBool#usymtab_initMod#usymtab_popCaseBranch#usymtab_prepareDump#usymtab_quietPlainExitScope#usymtab_setMustBreak -13645$@0@g2951@0@0@1@g2951$@0#context_checkSuppressCounts -13692$@0@s1@1@s1$@0#context_enterFunctionDecl#context_exitFunctionDecl#lhIncludeBool#lsynTableCleanup#lsynTableInit#lsynTableReset#ltokenTableCleanup#ltokenTableInit -16082$$$@0#LCLBuiltins#LCLProcessInitFile#LCLProcessInitFileCleanup#LCLProcessInitFileInit#LCLProcessInitFileReset#LCLSynTableCleanup#LCLSynTableInit#LCLSynTableReset#LCLTokenTableCleanup#LCLTokenTableInit#LSLProcessInitFile#LSLProcessInitFileInit#abstract_init#checkDoneParams#checkParseError#clearCurrentParams#clearProcessingGlobMods#context_addBoolAccess#context_clearAliasAnnote#context_clearJustPopped#context_clearMessageAnnote#context_enterFile#context_enterImport#context_enterInnerContext#context_enterIterClause#context_enterLCLfile#context_enterMacroFile#context_enterStructInnerContext#context_enterSuppressRegion#context_exitAllClauses#context_exitFile#context_exitFunction#context_exitInnerSafe#context_exitLCLfile#context_exitMacroCache#context_exitStructInnerContext#context_exitSuppressRegion#context_hideShowscan#context_incLineno#context_leaveImport#context_popLoc#context_processAllMacros#context_pushLoc#context_quietExitFunction#context_releaseVars#context_resetAllFlags#context_resetErrors#context_resetMacroMissingParams#context_resetModeFlags#context_returnFunction#context_saveLocation#context_setMacroMissingParams#context_setNeednl#context_setProtectVars#context_setShownFunction#context_showFilelocStack#context_sizeofReleaseVars#context_unhideShowscan#cppReader_hashCleanup#cppReader_initMod#cppReader_initialize#cppReader_restoreHashtab#cppReader_saveDefinitions#cppReader_saveHashtab#ctype_destroyMod#ctype_initTable#ctype_printTable#doVaDcl#doneParams#enterParamsTemp#exitParamsTemp#exprChecks_checkEmptyMacroBody#flags_initMod#importCTrait#listAllCategories#lscanLineCleanup#lscanLineInit#lscanLineReset#lsymbol_printStats#nextIterParam#printAlphaFlags#printCodePoint#sRef_clearGlobalScopeSafe#sRef_enterFunctionScope#sRef_exitFunctionScope#sRef_setGlobalScope#sRef_setGlobalScopeSafe#setCodePoint#setFlipOldStyle#setFunctionNoGlobals#setImplictfcnConstraints#setNewStyle#setProcessingGlobMods#setProcessingGlobalsList#showHerald#storeLoc#summarizeErrors#swallowMacro#uentry_checkDecl#uentry_clearDecl#unsetProcessingGlobals#unsetProcessingTypedef#unsetProcessingVars -823$@1@g2957@0@0,s1@1@s1$@0#tzset -335@6@0@6@0@0@1@@1@s0$@0#abort -9993$$$@0#cttable_print -18108$$$@0#yy_load_buffer_state -11955$@0@g2951@0@0,s1@1@tg2951,s1$@0#llgenformattypeerror#llgentypeerror -10184$$$@0#ctype_genMatch -2068$@0@g2951@0@0,s1@1@tg2951,s1$@0#gentypeerror -12029$$$@0#doCheck -11959$@0@g2951@0@0@1@g2951$@0#llgenhinterror -12021$@0@g2951@0@0,s1@1@tg2951,s1$@0#optgenerror2#optgenerror2n -14562$$$@0#uentryList_matchParams -11665$@1@@1@s0$@0#fileloc_withinLines -11325$@1@@1@s0$@0#fileloc_closer -11560$@1@@1@s0$@0#cstring_equalLen#cstring_equalLenCaseInsensitive -12025$@0@g2951@0@0,s1@1@tg2951,s1$@0#llnoptgenerror#lloptgenerror -11957$@0@g2951@0@0@1@g2951$@0#llgenerror -2070$@0@g2951@0@0,s1@1@tg2951,s1$@0#optgenerror -17199$$$@0#symtable_opExistsWithArity -11838$$$@0#fileTable_sameBase -12052$@0@@1@p0$@0#messageLog_add -1272$@1@@1@s0$@0#bool_equal -14291$@1@@1@s0$@0#mstring_equalPrefix -14220$$$@0#firstWord -11767$@0@@1@tp1$@0#tsource_getPath -14293$@1@@1@s0$@0#mstring_equal -14245$@0@@1@tp0$@0#optCheckChar -16984$@1@@1@s0$@0#sort_compatible#sort_compatible_modulo_cstring -16894$@0@s1@1@s1$@0#sort_updateEnum#sort_updateStr#sort_updateUnion -2387$@1@@1@s0$@0#lsymbol_equal -16120$@1@@1@s0$@0#ltoken_similar -12870$@1@@1@s0$@0#sRef_includedBy#sRef_realSame#sRef_same#sRef_sameName#sRef_similar#sRef_similarRelaxed -13274$$$@0#sRef_sameObject -12842$@0@@1@p0$@0#sRef_canModify#sRef_canModifyVal -10637$@0@g2951@0@0@1@g2951$@0#checkGlobalDestroyed -10687$$$@0#canLoseReference -5315$$$@0#uentry_sameObject -9086$@1@@1@s0$@0#uentry_equiv -9402$$$@0#uentry_sameKind -14765$@1@@1@s0$@0#typeIdSet_member -12372$@0@s1@1@s1$@0#usymtab_newCase -14823$@1@@1@s0$@0#guardSet_isGuarded#guardSet_isProbableNull -14919$@1@@1@s0$@0#sRefSet_isSameMember#sRefSet_isSameNameMember#sRefSet_member -14933$@0@@1@p1$@0#sRefSet_modifyMember -14881$@0@@1@p0$@0#sRefSet_deleteBase -14875$$$@0#sRefSet_delete -14961$@1@@1@s0$@0#sRefSet_equal -11681$@1@@1@s0$@0#fileloc_almostSameFile#fileloc_equal#fileloc_lessthan#fileloc_notAfter#fileloc_sameBaseFile#fileloc_sameFile#fileloc_sameModule -11087$$$@0#constraint_same -11303$@1@@1@s0$@0#constraint_search -11293$$$@0#resolve -11023$@1@@1@s0$@0#constraintExpr_same#constraintExpr_similar -11025$$$@0#constraintExpr_search -11556$$$@0#cstring_equalFree -11544$@1@@1@s0$@0#cstring_containsChar -1191$@1@@1@s0$@0#cstring_equalLit -11568$@1@@1@s0$@0#cstring_equalCanonicalPrefix#cstring_equalPrefix -10785$@0@g2951@0@0@1@g2951$@0#checkCppName -10790$$$@0#checkAnsiName -1208$@1@@1@s0$@0#cstring_lessthan -11558$@1@@1@s0$@0#cstring_equal#cstring_equalCaseInsensitive -1264$@1@@1@s0$@0#cstring_containsLit -11550$@1@@1@s0$@0#cstring_contains -17878$$$@0#exprNode_matchLiteral#exprNode_matchType -4953$$$@0#ctype_equal -10796$$$@0#anyAbstract -10192$@1@@1@s0$@0#ctype_match#ctype_matchArg#ctype_matchDef#ctype_sameAltTypes#ctype_sameName -10188$$$@0#ctype_almostEqual#ctype_forceMatch -13352$$$@0#sRef_aliasCheckSimplePred -1328$@1@@1@s0$@0#fileId_equal -7525$@1@@1@s0$@0#fileId_baseEqual -1506$@1@@1@s0$@0#qual_equal -13631$$$@0#context_suppressFlagMsg#context_suppressNotFlagMsg -16982$@1@@1@s0$@0#sort_equal -15237$@1@@1@s0$@0#ltokenList_equal -14971$@0@@1@p0$@0#lsymbolSet_insert -14973$@1@@1@s0$@0#lsymbolSet_member -15031$$$@0#sortSet_insert#sortSet_member -16440$$$@0#sigNode_equal -14988$@0@@1@p0$@0#sigNodeSet_insert -16430$$$@0#sameNameNode -16486$$$@0#lslOp_equal -15015$@0@@1@p0$@0#lslOpSet_insert -17114$$$@0#symtable_exists -17106$$$@0#symtable_enterFct -17112$$$@0#symtable_enterVar -17094$$$@0#symtable_enterTag#symtable_enterTagForce -3863$$$@0#cprim_equal -9460$@1@@1@s0$@0#cprim_closeEnough#cprim_closeEnoughDeep -14487$$$@0#enumNameList_member -14477$@1@@1@s0$@0#enumNameList_match -3980$$$@0#enumNameSList_member -10733$@1@@1@s0$@0#alkind_compatible#alkind_equal -4102$@1@@1@s0$@0#exitkind_equal -4234$@1@@1@s0$@0#ekind_equal -4258$@1@@1@s0$@0#usymId_equal -12490$@1@s1@1@$@0#usymtab_matchForwardStruct -4598$@1@@1@s0$@0#typeId_equal -14849$@1@@1@s0$@0#usymIdSet_member -4374$$$@0#uentryList_sameObject -14616$$$@0#uentryList_matchFields -14710$@1@@1@s0$@0#globSet_member -5123$@1@@1@s0$@0#multiVal_equiv -10893$@1@@1@s0$@0#constraintTerm_probSame#constraintTerm_similar -12080$@1@@1@s0$@0#flagMarker_beforeMarker#flagMarker_sameFile -14687$@1@@1@s0$@0#flagMarkerList_inIgnore -11826$@1@@1@s0$@0#fileTable_exists -11808$@1@@1@s0$@0#fileTable_isHeader#fileTable_isSpecialFile#fileTable_isSystemFile -12762$$$@0#sRef_deepPred -13358$$$@0#sRef_aliasCompleteSimplePred -14390$@0@@1@p0$@0#filelocStack_popPushFile -14730$$$@0#intSet_insert#intSet_member -16960$@0@s1@1@s1$@0#sort_setExporting -1270$@1@@1@s0$@0#bool_not -16725$@1@@1@s0$@0#LCLIsEndComment#isIdentifierChar#ltoken_isSingleChar#osd_isConnectChar -15516$$$@0#LSLIsEndComment -1276$@1@@1@s0$@0#bool_fromInt -14213$@1@@1@s0$@0#isCext#osd_fileExists -14351$$$@0#osd_fileIsReadable -1099@6@0@1@0@50@1@@1@s0$@0#mstring_isEmpty -1097@6@0@1@0@51@1@@1@s0$@0#mstring_isDefined -744$@1@@1@s0$@0#S_ISBLK#S_ISCHR#S_ISDIR#S_ISFIFO#S_ISREG -3340@6@0@1@0@51@1@@1@s0$@0#termNode_isDefined -3079@6@0@1@0@51@1@@1@s0$@0#lclTypeSpecNode_isDefined -3356@6@0@1@0@51$$@0#termNodeList_isDefined -3354$$$@0#termNodeList_empty -17001$@1@@1@s0$@0#sort_isHOFSortKind#sort_isNoSort#sort_isValidSort#sort_mutable -15918$@1@s1@1@$@0#LSLIsSyn -16739$$$@0#LCLIsSyn#lsymbol_isDefined#lsymbol_isUndefined -2462$$$@0#ltoken_isChar -2402@6@0@1@0@50$$@0#ltoken_isUndefined -2400@6@0@1@0@51$$@0#ltoken_isValid -2431$@1@@1@s0$@0#ltoken_hasSyn#ltoken_isStateDefined -2433$$$@0#ltoken_wasSyn -12245$@1@s1@1@$@0#usymtab_isAltProbablyDeepNull#usymtab_isGuarded#usymtab_isProbableDeepNull#usymtab_isProbableNull -13772$@1@@1@s0$@0#context_checkGlobMod#sRef_hasAliasInfoRef#sRef_hasDerived#sRef_hasLastReference#sRef_hasName#sRef_hasNoStorage#sRef_isAliasCheckedGlobal#sRef_isAllocIndexRef#sRef_isAnyParam#sRef_isDefinitelyNull#sRef_isDependent#sRef_isDirectParam#sRef_isExposed#sRef_isExternal#sRef_isExternallyVisible#sRef_isFixedArray#sRef_isFresh#sRef_isGlobal#sRef_isIReference#sRef_isIndexKnown#sRef_isInternalState#sRef_isJustAllocated#sRef_isLocalState#sRef_isMacroParamRef#sRef_isModified#sRef_isNotNull#sRef_isNotUndefined#sRef_isNothing#sRef_isObject#sRef_isObserver#sRef_isOnly#sRef_isReallyDefined#sRef_isRecursiveField#sRef_isReference#sRef_isResult#sRef_isShared#sRef_isSpecInternalState#sRef_isSpecState#sRef_isStack#sRef_isStackAllocated#sRef_isStateLive#sRef_isStrictReadable#sRef_isSystemState#sRef_isTemp#sRef_isThroughArrayFetch#sRef_isUnique#sRef_isUnknownArrayFetch#sRef_isUnuseable -13778$$$@0#context_globAccess#sRef_definitelyNull#sRef_isUnionField#sRef_perhapsNull#sRef_possiblyNull -5765@6@0@1@0@50@1@@1@s0$@0#sRef_isInvalid#sRef_isStateUndefined -13154@6@0@1@0@51@1@@1@s0$@0#sRef_isAddress#sRef_isAllocated#sRef_isArrayFetch#sRef_isConst#sRef_isCvar#sRef_isDead#sRef_isDeadStorage#sRef_isField#sRef_isFileStatic#sRef_isLocalParamVar#sRef_isLocalVar#sRef_isNSLocalVar#sRef_isParam#sRef_isPointer#sRef_isPossiblyDead#sRef_isRealGlobal#sRef_isRealLocalVar#sRef_isUnconstrained#sRef_isValid -6155$@1@@1@s0$@0#sRef_isAnyDefined#sRef_isKeep#sRef_isKept#sRef_isKilledGlob#sRef_isMeaningful#sRef_isNew#sRef_isOwned#sRef_isPartial#sRef_isRefsField#sRef_isRelDef#sRef_isSafe#sRef_isStateDefined#sRef_isStateSpecial#sRef_isStateUnknown#sRef_isType#sRef_isUndefGlob#sRef_isUnsafe#sRef_stateKnown -6331$$$@0#sRef_isNotNullTerminated#sRef_isNullTerminated#sRef_isPossiblyNullTerminated -5809@6@0@1@0@51@1@@1@s0$@0#sRef_isConj#sRef_isKillRef#sRef_isKindSpecial#sRef_isKnown#sRef_isNewRef#sRef_isPdefined#sRef_isRefCounted -13764$@1@@1@s0$@0#context_checkExport#uentry_hasGlobs#uentry_hasMods#uentry_hasSpecialClauses#uentry_isCheckMod#uentry_isChecked#uentry_isCheckedModify#uentry_isCheckedStrict#uentry_isCheckedUnknown#uentry_isForward#uentry_isGlobal#uentry_isMaybeAbstract#uentry_isMessageLike#uentry_isNonLocal#uentry_isOnly#uentry_isOut#uentry_isPartial#uentry_isPrintfLike#uentry_isRefParam#uentry_isScanfLike#uentry_isSpecialFunction#uentry_isStateSpecial#uentry_isUnchecked#uentry_isUnique#uentry_isYield#uentry_possiblyNull -13768$$$@0#context_checkAliasGlob#context_checkGlobUse#uentry_hasAccessType#uentry_hasBufStateInfo#uentry_isRefCountedDatatype#uentry_isReturned -9206@6@0@1@0@51@1@@1@s0$@0#uentry_hasName#uentry_hasRealName#uentry_isAbstractDatatype#uentry_isAbstractType#uentry_isCodeDefined#uentry_isDatatype#uentry_isEndIter#uentry_isExpandedMacro#uentry_isExported#uentry_isFakeTag#uentry_isFileStatic#uentry_isIter#uentry_isMutableDatatype#uentry_isParam#uentry_isRealFunction#uentry_isSefParam#uentry_isSpecified -5469$@1@@1@s0$@0#uentry_isElipsisMarker -5704$$$@0#uentry_isNotNullTerminated#uentry_isNullTerminated#uentry_isPossiblyNullTerminated#uentry_wasUsed -5275@6@0@1@0@51@1@@1@s0$@0#uentry_isConstant#uentry_isEitherConstant#uentry_isEnumConstant#uentry_isExtern#uentry_isExternal#uentry_isFunction#uentry_isPriv#uentry_isStatic -5269@6@0@1@0@51$$@0#uentry_isLset#uentry_isUsed -5255@6@0@1@0@50@1@@1@s0$@0#uentry_isInvalid#uentry_isUndefined -9180@6@0@1@0@51@1@@1@s0$@0@2.0.fukind.tp0,finfo.tp0$#uentry_isAnyParam#uentry_isAnyTag#uentry_isDeclared#uentry_isEnumTag#uentry_isStructTag#uentry_isUnionTag#uentry_isValid#uentry_isVar#uentry_isVariable -14767$@1@@1@s0$@0#typeIdSet_isEmpty -5038@6@0@1@0@51@1@@1@s0$@0#idDecl_isDefined -4719@6@0@1@0@51@1@@1@s0$@0#usymtab_isDefined -17804$@1@@1@s0$@0#exprNode_isAssign#exprNode_isCaseMarker#exprNode_isCharLit#exprNode_isDefaultMarker#exprNode_isLabelMarker#exprNode_isNullValue#exprNode_isNumLit -17786$$$@0#exprNode_errorEscape#exprNode_mayEscape#exprNode_mustEscape -6849@6@0@1@0@50@1@@1@s0$@0#exprNode_isError#exprNode_isUndefined -6845@6@0@1@0@51@1@@1@s0$@0#exprNode_isDefined -6863$@1@@1@s0$@0#exprNode_hasValue#exprNode_knownIntValue#exprNode_knownStringValue -6857$$$@0#exprNode_isStringLiteral -6855@6@0@1@0@51@1@@1@s0$@0#exprNode_isInParens -6342@6@0@1@0@51@1@@1@s0$@0#guardSet_isDefined -14827@6@0@1@0@51$$@0#guardSet_isEmpty -14917$@1@@1@s0$@0#sRefSet_hasRealElement#sRefSet_hasStatic#sRefSet_hasUnconstrained -4133@6@0@1@0@50@1@@1@s0$@0#sRefSet_isUndefined -4137@6@0@1@0@51@1@@1@s0$@0#sRefSet_isDefined -4135@6@0@1@0@50@1@@1@s0$@0#sRefSet_isEmpty -4440@6@0@1@0@50$$@0#aliasTable_isUndefined -4444@6@0@1@0@51$$@0#aliasTable_isDefined -4442@6@0@1@0@50$$@0#aliasTable_isEmpty -13635$@1@@1@s0$@0#context_inSuppressZone#fileloc_isHeader#fileloc_isLib#fileloc_isRealLib#fileloc_isRealSpec#fileloc_isSpec#fileloc_isSpecialFile#fileloc_isStandardLib#fileloc_isStandardLibrary#fileloc_isSystemFile#fileloc_isUser -1415@6@0@1@0@50@1@@1@s0$@0#fileloc_isUndefined -1413@6@0@1@0@51@1@@1@s0$@0#fileloc_isDefined -1427$@1@@1@s0$@0#fileloc_columnDefined#fileloc_isBuiltin#fileloc_isExternal#fileloc_isInvalid#fileloc_linenoDefined -1433$$$@0#fileloc_isImport#fileloc_isPreproc -1431@6@0@1@0@51$$@0#fileloc_isValid -11181$$$@0#constraint_hasOrig -11107$$$@0#constraint_hasMaxSet -6594@6@0@1@0@50@1@@1@s0$@0#constraint_isError#constraint_isUndefined -6590@6@0@1@0@51@1@@1@s0$@0#constraint_isDefined -11297$$$@0#constraint_isAlwaysTrue -6743@6@0@1@0@50@1@@1@s0$@0#constraintList_isError#constraintList_isUndefined -6739@6@0@1@0@51@1@@1@s0$@0#constraintList_isDefined -11057$@1@@1@s0$@0#constraintExpr_canGetValue -10947$$$@0#constraintExpr_isLit -6508@6@0@1@0@50@1@@1@s0$@0#constraintExpr_isError#constraintExpr_isUndefined -6504@6@0@1@0@51@1@@1@s0$@0#constraintExpr_isDefined -11051$@1@@1@s0$@0#constraintExpr_hasMaxSet -11065$$$@0#constraintExpr_isBinaryExpr -12450$@1@s1@1@$@0#usymtab_exists#usymtab_existsEither#usymtab_existsEnumTag#usymtab_existsGlob#usymtab_existsGlobEither#usymtab_existsReal#usymtab_existsStructTag#usymtab_existsType#usymtab_existsTypeEither#usymtab_existsUnionTag#usymtab_existsVar -13686$@1@@1@s0$@0#context_isSystemDir#cstring_hasNonAlphaNumBar#isHeaderFile#isLCLfile -13684$$$@0#context_isSpecialFile#isFakeTag#isMode#lcllib_isSkipHeader -1227@6@0@1@0@50@1@@1@s0$@0#cstring_isEmpty#cstring_isUndefined -1223@6@0@1@0@51@1@@1@s0$@0#cstring_isDefined#cstring_isNonEmpty -4959$@1@@1@s0$@0#ctype_isAP#ctype_isAbstract#ctype_isArbitraryIntegral#ctype_isArray#ctype_isArrayPtr#ctype_isBool#ctype_isChar#ctype_isConj#ctype_isDefined#ctype_isDirectBool#ctype_isDirectInt#ctype_isDouble#ctype_isElips#ctype_isEnum#ctype_isExpFcn#ctype_isFirstVoid#ctype_isFixedArray#ctype_isFloat#ctype_isFunction#ctype_isIncompleteArray#ctype_isInt#ctype_isKnown#ctype_isManifestBool#ctype_isMissingParamsMarker#ctype_isMutable#ctype_isNumeric#ctype_isPointer#ctype_isReal#ctype_isRealAP#ctype_isRealAbstract#ctype_isRealArray#ctype_isRealBool#ctype_isRealFunction#ctype_isRealInt#ctype_isRealNumeric#ctype_isRealPointer#ctype_isRealSU#ctype_isRealVoid#ctype_isRefCounted#ctype_isRegularInt#ctype_isSU#ctype_isSigned#ctype_isSignedChar#ctype_isSignedIntegral#ctype_isSimple#ctype_isString#ctype_isStruct#ctype_isStructorUnion#ctype_isUA#ctype_isUndefined#ctype_isUnion#ctype_isUnknown#ctype_isUnsigned#ctype_isUnsignedChar#ctype_isUnsignedIntegral#ctype_isUser#ctype_isUserBool#ctype_isVisiblySharable#ctype_isVoid#ctype_isVoidPointer -10270$$$@0#ctype_isAnyFloat#ctype_isStackAllocated -4971$@1@@1@s0$@0#ctype_isBogus -1315$@1@@1@s0$@0#ynm_isMaybe#ynm_isOff#ynm_isOn#ynm_toBoolRelaxed#ynm_toBoolStrict -7497$@1@@1@s0$@0#fileId_isHeader#fileId_isInvalid#fileId_isValid -1612$@1@@1@s0$@0#qual_isAbstract#qual_isAuto#qual_isBufQualifier#qual_isCheckMod#qual_isChecked#qual_isCheckedStrict#qual_isConcrete#qual_isConst#qual_isDependent#qual_isExits#qual_isExposed#qual_isExtern#qual_isExternal#qual_isFalseExit#qual_isFalseNull#qual_isImmutable#qual_isImpOnly#qual_isIn#qual_isInline#qual_isKeep#qual_isKept#qual_isKillRef#qual_isLong#qual_isMayExit#qual_isMutable#qual_isNeverExit#qual_isNewRef#qual_isNotNull#qual_isNull#qual_isNullTerminated#qual_isObserver#qual_isOnly#qual_isOut#qual_isOwned#qual_isPartial#qual_isRefCounted#qual_isRefs#qual_isRegister#qual_isRelDef#qual_isRelNull#qual_isReturned#qual_isSef#qual_isShared#qual_isShort#qual_isSigned#qual_isSpecial#qual_isStatic#qual_isTemp#qual_isTempRef#qual_isTrueExit#qual_isTrueNull#qual_isUnchecked#qual_isUnique#qual_isUnknown#qual_isUnsigned#qual_isUnused#qual_isVolatile#qual_isYield -1644$@1@@1@s0$@0#qual_isAliasQual#qual_isAllocQual#qual_isCQual#qual_isControlQual#qual_isExQual#qual_isExitQual#qual_isGlobCheck#qual_isGlobalQual#qual_isImplied#qual_isKilled#qual_isNullPred#qual_isRefQual#qual_isStorageClass#qual_isTypeQual#qual_isUndef -12628$$$@0#lltok_isAmpersand_Op#lltok_isAnd_Op#lltok_isDec_Op#lltok_isEq_Op#lltok_isExcl_Op#lltok_isGe_Op#lltok_isGt_Op#lltok_isInc_Op#lltok_isLe_Op#lltok_isLt_Op#lltok_isMinus_Op#lltok_isMult#lltok_isNot_Op#lltok_isOr_Op#lltok_isPlus_Op#lltok_isSemi#lltok_isTilde_Op -10537$@1@@1@s0$@0#clause_isBreakable#clause_isCase#clause_isConditional#clause_isLoop#clause_isNone#clause_isSwitch -1854@6@0@1@0@51@1@@1@s0$@0#cstringSList_isDefined -1858@6@0@1@0@51@1@@1@s0$@0#cstringSList_empty -1884@6@0@1@0@51@1@@1@s0$@0#cstringList_isDefined -1888@6@0@1@0@51@1@@1@s0$@0#cstringList_empty -13950$@1@@1@s0$@0#context_getFlag#context_maybeSet -7792$$$@0#context_getDebug#flagcode_hasArgument#flagcode_hasString#flagcode_hasValue#flagcode_isGlobalFlag#flagcode_isIdemFlag#flagcode_isInvalid#flagcode_isModeFlag#flagcode_isNameChecksFlag#flagcode_isNamePrefixFlag#flagcode_isSkip#flagcode_isSpecialFlag#flagcode_isValid -1960$$$@0#flagcode_isLibraryFlag#flagcode_isPassThrough -11752$@0@s3@1@tp0,s3$@0#tsource_close -11765$@0@s3@1@p0,s3$@0#tsource_open -2146$@1@@1@s0$@0#tsource_isOpen -14660$$$@0#qualList_hasAliasQualifier#qualList_hasExposureQualifier#qualList_hasNullTerminatedQualifier -2160@6@0@1@0@50$$@0#qualList_isUndefined -2158@6@0@1@0@51$$@0#qualList_isDefined -2165$$$@0#qualList_isEmpty -2338$$$@0#paramNode_isElipsis#paramNode_isYield -2369@6@0@1@0@50$$@0#paramNodeList_isNull -2355@6@0@1@0@51@1@@1@s0$@0#paramNodeList_isDefined -2351$$$@0#paramNodeList_empty -15231$@1@@1@s0$@0#ltokenList_isFinished -2486@6@0@1@0@50@1@@1@s0$@0#ltokenList_isUndefined -2484@6@0@1@0@51@1@@1@s0$@0#ltokenList_isDefined -2490$@1@@1@s0$@0#ltokenList_empty#ltokenList_isEmpty -2602@6@0@1@0@51@1@@1@s0$@0#lsymbolSet_isDefined -2620@6@0@1@0@51@1@@1@s0$@0#sortSet_isDefined -2654@6@0@1@0@51@1@@1@s0$@0#pairNodeList_isDefined -2800$$$@0#storeRefNode_isObj#storeRefNode_isSpecial#storeRefNode_isTerm#storeRefNode_isType -16508$$$@0#initDeclNode_isRedeclaration -2983@6@0@1@0@50$$@0#fcnNodeList_isUndefined -2981@6@0@1@0@51$$@0#fcnNodeList_isDefined -2987$$$@0#fcnNodeList_isEmpty -3109$$$@0#typeNameNodeList_empty -3155@6@0@1@0@50@1@@1@s0$@0#sigNodeSet_isUndefined -3153@6@0@1@0@51@1@@1@s0$@0#sigNodeSet_isDefined -3157$@1@@1@s0$@0#sigNodeSet_isEmpty -3211@6@0@1@0@51@1@@1@s0$@0#lslOpSet_isDefined -3246$$$@0#replaceNodeList_isDefined -3753@6@0@1@0@51$$@0#typeInfo_exists -3755@6@0@1@0@51$$@0#varInfo_exists -3759@6@0@1@0@51$$@0#opInfo_exists -3757@6@0@1@0@51$$@0#tagInfo_exists -3824$@1@@1@s0$@0#exprNodeList_isEmpty -9466$$$@0#cprim_isInt -3857$$$@0#cprim_isAnyChar#cprim_isAnyInt#cprim_isAnyReal#cprim_isSignedChar#cprim_isUnsignedChar -3908@6@0@1@0@50@1@@1@s0$@0#filelocList_isUndefined -3910@6@0@1@0@51$$@0#filelocList_isDefined -3917$$$@0#filelocList_isEmpty -4005$@1@@1@s0$@0#sstate_isKnown#sstate_isUnknown -3997$@1@@1@s0$@0#nstate_isKnown#nstate_perhapsNull#nstate_possiblyNull -4035$@1@@1@s0$@0#alkind_isError#alkind_isFresh#alkind_isKeep#alkind_isKept#alkind_isKillRef#alkind_isKnown#alkind_isLocal#alkind_isNewRef#alkind_isOwned#alkind_isRefCounted#alkind_isRefs#alkind_isShared#alkind_isStack#alkind_isStatic#alkind_isUnique#alkind_isUnknown -4015$@1@@1@s0$@0#alkind_isDependent#alkind_isImplicit#alkind_isOnly#alkind_isTemp -4009$@1@@1@s0$@0#exkind_isUnknown -4011$@1@@1@s0$@0#exkind_isKnown -10751$@1@@1@s0$@0#exitkind_couldEscape#exitkind_couldExit#exitkind_isKnown#exitkind_isMustExit#exitkind_isTrueExit -4116$@1@@1@s0$@0#exitkind_isConditionalExit#exitkind_isError#exitkind_mustEscape#exitkind_mustExit -4246$@1@@1@s0$@0#ekind_isConst#ekind_isElipsis#ekind_isEnumConst#ekind_isFunction#ekind_isVariable -12326$@1@s1@1@$@0#usymtab_isBoolType -4590$@1@@1@s0$@0#usymId_isInvalid#usymId_isValid -4594$@1@@1@s0$@0#typeId_isInvalid#typeId_isValid -13788$$$@0#context_couldHaveAccess#context_hasAccess#context_hasFileAccess -4291@6@0@1@0@50@1@@1@s0$@0#usymIdSet_isUndefined -4289@6@0@1@0@51@1@@1@s0$@0#usymIdSet_isDefined -14608$@1@@1@s0$@0#uentryList_hasReturned#uentryList_isFinished#uentryList_isVoid -4312@6@0@1@0@50@1@@1@s0$@0#uentryList_isEmpty#uentryList_isMissingParams#uentryList_isUndefined -4314@6@0@1@0@51@1@@1@s0$@0#uentryList_isDefined -14714$@1@@1@s0$@0#globSet_hasStatic -4414@6@0@1@0@50@1@@1@s0$@0#globSet_isUndefined -4412@6@0@1@0@51@1@@1@s0$@0#globSet_isDefined -4384$$$@0#globSet_isEmpty -10158$@1@@1@s0$@0#ctype_isForceRealBool#ctype_isForceRealInt#ctype_isForceRealNumeric -4433@6@0@1@0@50@1@@1@s0$@0#ctypeList_isUndefined -4431@6@0@1@0@51@1@@1@s0$@0#ctypeList_isDefined -4999@6@0@1@0@50$$@0#qtype_isUndefined -5001@6@0@1@0@51$$@0#qtype_isDefined -5079@6@0@1@0@50@1@@1@s0$@0#multiVal_isUndefined#multiVal_isUnknown -12584@6@0@1@0@51@1@@1@s0$@0#multiVal_isChar#multiVal_isDefined#multiVal_isDouble#multiVal_isInt#multiVal_isString -9557$@1@@1@s0$@0#specialClause_isAfter#specialClause_isBefore -5188@6@0@1@0@50@1@@1@s0$@0#specialClauses_isUndefined -5186@6@0@1@0@51@1@@1@s0$@0#specialClauses_isDefined -10885$@1@@1@s0$@0#constraintTerm_canGetValue#constraintTerm_isIntLiteral#constraintTerm_isStringLiteral -6402@6@0@1@0@50@1@@1@s0$@0#constraintTerm_isError#constraintTerm_isUndefined -6398@6@0@1@0@51@1@@1@s0$@0#constraintTerm_isDefined -6460@6@0@1@0@50@1@@1@s0$@0#constraintExprData_isUndefined -6462@6@0@1@0@50@1@@1@s0$@0#constraintExprData_isError -6458@6@0@1@0@51@1@@1@s0$@0#constraintExprData_isDefined -7351@6@0@1@0@50$$@0#sRefSetList_isUndefined -7349@6@0@1@0@51$$@0#sRefSetList_isDefined -7376$@1@@1@s0$@0#flagMarker_isIgnoreCount#flagMarker_isIgnoreOff#flagMarker_isIgnoreOn#flagMarker_isLocalSet#flagMarker_isSuppress -7463@6@0@1@0@50@1@@1@s0$@0#fileTable_isUndefined -7465@6@0@1@0@51@1@@1@s0$@0#fileTable_isDefined -7537@6@0@1@0@51@1@@1@s0$@0#messageLog_isDefined -7555$@1@@1@s0$@0#clauseStack_isEmpty -8067$@1@@1@s0$@0#cppFatalErrors#cppReader_isPedantic -8098$@0@@1@s0$@0@2.0.fopts.tp0$#cppReader_isTraditional -9644$@1@@1@s0$@0#ctentry_isBogus -11626@6@0@1@0@51$$@0#fileIdList_isDefined -11631$@1@@1@s0$@0#fileIdList_isEmpty -12147@6@0@1@0@50@1@@1@s0$@0#sRefTable_isNull -12151@6@0@1@0@51@1@@1@s0$@0#sRefTable_isDefined -12149@6@0@1@0@50@1@@1@s0$@0#sRefTable_isEmpty -13517@6@0@1@0@51@1@@1@s0$@0#filelocStack_isDefined -13544$$$@0#intSet_isEmpty -11993$@0@s1@1@s1$@0#lclHadNewError -13986$@1@s1@1@$@0#context_anyErrors#context_inConditional#context_inDeepLoop#context_inDeepLoopSwitch#context_inDeepSwitch#context_inFunctionDecl#context_inGlobalContext#context_inImport#context_inLCLLib#context_inMacroFunction#usymtab_inDeepScope#usymtab_inFileScope#usymtab_inFunctionScope#usymtab_inGlobalScope -13914$@1@@1@s0$@0#context_inFunction#context_inFunctionLike#context_inIterDef#context_inIterEnd#context_inMacro#context_inMacroConstant#context_inMacroUnknown#context_inRealFunction#context_inSuppressRegion#context_isInCommandLine#context_isMacroMissingParams#context_isPreprocessing#context_msgBoolInt#context_msgCharInt#context_msgEnumInt#context_msgLh#context_msgPointerArith#context_msgStrictOps#context_setBoolName#context_unlimitedMessages#context_usingAnsiLibrary#context_usingPosixLibrary#isFlipOldStyle#isNewStyle#processingIterVars#sRef_modInFunction -13836$$$@0#context_canAccessBool#context_checkInternalUse#context_doDump#context_doMerge#context_hasAliasAnnote#context_hasMessageAnnote#context_hasMods#context_inGlobalScope#context_inHeader#context_inInnerScope#context_inProtectVars#context_justPopped#context_neednl#context_processingMacros#context_showFunction#isProcessingGlobMods#lclHadError#loadStandardState -11526$$$@0#cstring_getChar -14285$@1@@1@s0$@0#char_fromInt -14238$@0@@1@tp0$@0#loadChar -11538$@1@@1@s0$@0#cstring_lastChar -11524$$$@0#cstring_firstChar#cstring_secondChar -12576$@1@@1@s0$@0#multiVal_forceChar -13860$$$@0#context_getCommentMarkerChar -234$@0@s3@1@s3,tp0,tp1$@0#setvbuf -420$@0@@1@tp0$@0#vswprintf -412@6@0@1@1@0@0@@1@tp0$@0#swprintf -821$@0@g2937@0@0@1@g2937$@0#tcsetattr -681$@0@g2937@0@0@1@g2937$@0#fcntl -718$@0@g2937@0@0,s1@1@tp2,g2937,s1$@0#sigaction -733$@0@g2937@0@0,s1@1@tp2,g2937,s1$@0#sigprocmask -587$@1@@1@s0$@0#memcmp -8730$$$@0#hashf -683$@0@g2937@0@0@1@g2937$@0#open -593$@1@@1@s0$@0#strncmp -847@6@0@5@0@0@0@g2937@0@0@1@g2937$@0#execl#execle#execlp -833$@0@s3,g2937@0@0@1@s3,g2937$@0#chown -857@6@0@5@0@0@0@g2937@0@0@1@g2937$@0#execve -256$@0@@1@tp0,p2$@0#vsprintf -250@6@0@1@2@0@1@@1@s0$@0#sscanf -290$@0@s3,g2937@0@0@1@s3,tp0,g2937$@0#fseek -252$@0@s3,g2937@0@0@1@s3,tp0,p2,g2937$@0#vfprintf -240@6@0@1@2@0@0@s3@1@s3,tp0$@0#fscanf -418$@0@s3@1@s3,tp0$@0#vfwprintf -391@6@0@1@1@0@0@s3@1@tp0,s3$@0#fwprintf -393@6@0@1@2@0@0@s3@1@tp0,s3$@0#fwscanf -452$@1@@1@s0$@0#wcsncmp#wmemcmp -414@6@0@1@2@0@0@g2953@0@0@1@tg2953$@0#swscanf -559$@0@@1@tp0$@0#mbtowc -8493$$$@0#cppReader_checkMacroName -1274$@1@@1@s0$@0#bool_compare -18041$@1@g2996@14@5,g2950@13@0,g2997@14@5,g2949@14@5,g2955@14@0,g2951@12@0,s1,s3@1@g2996,g2950,g2997,g2949,g2955,s1,s3$@0#main -1111$@1@@1@s0$@0#int_compare -843$@0@g2937@0@0,s3@1@g2937,s3$@0#dup2 -813$@0@g2937@0@0@1@g2937$@0#tcflow#tcflush#tcsendbreak -918$@0@g2937@0@0,s1@1@g2937,s1$@0#tcsetpgrp -757$@0@g2937@0@0@1@g2937,tp1$@0#fstat -817$@0@g2937@0@0@1@g2937,tp1$@0#tcgetattr -875$@0@g2937@0@0@1@g2937,ap1$@0#getgroups -14305$@0@g2937@0@0@1@g2937,tp1$@0#stat -827$@0@g2937@0@0@1@g2937$@0#access -890$@0@g2937@0@0,s3@1@g2937,s3$@0#link#rename -589$@1@@1@s0$@0#strcmp#strcoll -557$@1@@1@s0$@0#mblen -254$@1@g2954@0@0,s3@1@s3,p1,tg2954$@0#vprintf -266$@0@s3@1@s3,tp1$@0#fputs -754$@0@s3,g2937@0@0@1@s3,g2937$@0#chmod#mkdir#mkfifo -679$@0@g2937@0@0@1@g2937$@0#creat -855@6@0@5@0@0@0@g2937@0@0@1@g2937$@0#execv#execvp -930$@0@s3,g2937@0@0@1@s3,g2937$@0#utime -245@6@0@1@2@0@1@g2953@0@0,s3@1@s3,tg2953$@0#scanf -561$@0@@1@tp0$@0#wctomb -389$@1@@1@s0$@0#fwide -292$@0@s3,g2937@0@0@1@s3,tp0,g2937$@0#fsetpos -288$@0@g2937@0@0@1@tp1,g2937$@0#fgetpos -422$@0@s3,g2954@0@0@1@s3,tg2954$@0#vwprintf -387$@0@s3@1@s3,tp1$@0#fputws -433$@1@@1@s0$@0#wcscmp#wcscoll -498@6@0@1@1@0@1@g2954@0@0,g2937@0@0@1@g2937,tg2954$@0#wprintf -500@6@0@1@2@0@1@g2953@0@0,g2937@0@0@1@g2937,tg2953$@0#wscanf -715@6@0@5@0@0@0@g2937@0@0@1@g2937$@0#kill -906$@0@g2937@0@0,s1@1@g2937,s1$@0#setpgid -706$@0@@1@p0$@0#sigsetjmp -721$@0@g2937@0@0@1@tp0,g2937$@0#sigaddset#sigdelset -729$@0@g2937@0@0@1@g2937$@0#sigismember -12858$@1@@1@s0$@0#sRef_compare -9094$$$@0#uentry_compare#uentry_compareStrict -14779$$$@0#typeIdSet_compare -14959$@1@@1@s0$@0#sRefSet_compare -11663$@1@@1@s0$@0#fileloc_compare -11053$@1@@1@s0$@0#constraintExpr_compare -11572$@1@@1@s0$@0#cstring_compare -8226$$$@0#cppProcess -10076$@1@@1@s0$@0#ctype_compare -11570$@1@@1@s0$@0#cstring_xcompare -12139$@1@@1@s0$@0#ynm_compare -1330$@1@@1@s0$@0#fileId_compare -11894$$$@0#hashTable_lookup -10709$@1@@1@s0$@0#nstate_compare -14859$$$@0#usymIdSet_compare -14568$@1@@1@s0$@0#uentryList_lookupRealName -14586$@1@@1@s0$@0#uentryList_compareFields#uentryList_compareParams#uentryList_compareStrict -14724$$$@0#globSet_compare -12596$@1@@1@s0$@0#multiVal_compare -9088$@1@@1@s0$@0#uentry_xcomparealpha#uentry_xcompareuses -8692$$$@0#cppReader_parseEscape -8639$$$@0#cppReader_startProcess -264$@0@s3,g2937@0@0@1@s3,tp1,g2937$@0#fputc#ungetc -275$@0@s3@1@s3,tp1$@0#putc -1278$@1@@1@s0$@0#bool_toInt -14275$@1@@1@s0$@0#int_log#isatty -835$@0@s3,g2937@0@0,s1@1@s3,g2937,s1$@0#close -845$@0@g2937@0@0,s3@1@g2937,s3$@0#dup -811$@0@g2937@0@0@1@g2937$@0#tcdrain -777$@1@@1@s0$@0#WEXITSTATUS#WIFEXITED#WIFSIGNALED#WIFSTOPPED#WSTOPSIG#WTERMSIG#abs -202@6@0@5@0@0$$@0#raise -14289$@1@@1@s0$@0#long_toInt -14287$@1@@1@s0$@0#longUnsigned_toInt -14343$@0@s3,g2937@0@0@1@s3,g2937$@0#unlink -14341$@0@s3@1@s3$@0#osd_system#osd_unlink -14339$@0@s3@1@s3$@0#system -1095$@1@@1@s0$@0#mstring_length -212$@0@s3,g2937@0@0@1@s3,g2937$@0#remove#rmdir -831$@0@g2937@0@0@1@g2937$@0#chdir -279$@1@g2954@0@0,s3@1@s3,tg2954$@0#puts -308$@1@@1@s0$@0#atoi -898$@0@g2937@0@0@1@g2937$@0#pipe -14281$@1@@1@s0$@0#size_toInt -482$@1@@1@s0$@0#wctob -172$@0@@1@p0$@0#setjmp -300$@0@g2937@0@0@1@g2937$@0#fileno -222$@0@g2937@0@0,s3@1@tp0,g2937,s3$@0#fclose#fgetc -300$@0@g2937@0@0@1@g2937$@0#feof#ferror -268$@0@s3@1@s3,tp0$@0#getc -224$@0@g2937@0@0,s3@1@tp0,g2937,s3$@0#fflush -14236$@0@@1@tp0$@0#getInt -343$@0@s1@1@s1$@0#atexit -404$@1@@1@s0$@0#mbsinit -904$@0@g2937@0@0,s1@1@g2937,s1$@0#setgid -765$@0@s1@1@s1$@0#umask -910$@0@g2937@0@0,s1@1@g2937,s1$@0#setuid -666$@0@g2937@0@0@1@g2937$@0#closedir -735$@0@g2937@0@0,s1@1@g2937,s1$@0#sigsuspend -725$@0@g2937@0@0@1@tp0,g2937$@0#sigemptyset#sigfillset#sigpending -775$@0@g2937@0@0@1@tp0,g2937$@0#uname -807$@0@@1@tp0$@0#cfsetispeed#cfsetospeed -3352$$$@0#termNodeList_size -12926$@1@@1@s0$@0#sRef_getIndex#sRef_getParam#sRef_getScope#sRef_lexLevel -6323$$$@0#sRef_getLen#sRef_getSize -12404$@1@s1@1@$@0#uentry_directParamNo -14937$@1@@1@s0$@0#sRefSet_size -4446$$$@0#aliasTable_size -11717$@1@@1@s0$@0#fileloc_column#fileloc_lineno -11055$@1@@1@s0$@0#constraintExpr_getValue -11583$@1@@1@s0$@0#cstring_length#cstring_toPosInt -15541$$$@0#parseSignatures -1789$@1@@1@s0$@0#lltok_getTok -1856$@1@@1@s0$@0#cstringSList_size -1886$@1@@1@s0$@0#cstringList_size -13868$@1@@1@s0$@0#context_getCounter#context_getValue#flagcode_stringIndex#flagcode_valueIndex -14135$$$@0#flagcode_numReported -2163$$$@0#qualList_size -2349$$$@0#paramNodeList_size -2488$@1@@1@s0$@0#ltokenList_size -2622$$$@0#sortSet_size -2681$$$@0#declaratorInvNodeList_size -2985$$$@0#fcnNodeList_size -3028$$$@0#stDeclNodeList_size -3107$$$@0#typeNameNodeList_size -3159$@1@@1@s0$@0#sigNodeSet_size -3213$@1@@1@s0$@0#lslOpSet_size -3244$$$@0#replaceNodeList_size -3401$$$@0#sortSetList_size -3822$@1@@1@s0$@0#exprNodeList_size -14636$@1@@1@s0$@0#filelocList_realSize -3915$@1@@1@s0$@0#filelocList_size -3945$$$@0#enumNameList_size -3974$@1@@1@s0$@0#enumNameSList_size -4238$@1@@1@s0$@0#ekind_toInt -4294$$$@0#usymIdSet_size -14604$@1@@1@s0$@0#uentryList_size -4382$$$@0#globSet_size -4421$@1@@1@s0$@0#ctypeList_size -4729$$$@0#ctkind_toInt -5190$@1@@1@s0$@0#specialClauses_size -10887$@1@@1@s0$@0#constraintTerm_getValue -12072$@1@@1@s0$@0#flagMarker_getCount -14369$@1@@1@s0$@0#clauseStack_controlDepth#clauseStack_size -8650$@1@@1@s0$@0#cppBufPeek -11635$$$@0#fileIdList_size -14394$$$@0#filelocStack_includeDepth -13519$@1@@1@s0$@0#filelocStack_size -13546$$$@0#intSet_size -277$@1@g2954@0@0,s3@1@s3,tg2954$@0#putchar -1477$@1@g2996@0@5@1@$@0#currentColumn -13990$@1@s1@1@$@0#context_numErrors -13996$@1@@1@s0$@0#context_getExpect#context_getLCLExpect#context_getLimit#context_getLineLen#context_getLinesProcessed#context_getSpecLinesProcessed#lclNumberErrors -10042$$$@0#ctype_count#iterParamNo#lsllex#lslparse#osd_getPid#ylparse#yyparse#yywrap -896$@0@g2937@0@0@1@g2937$@0#pause -320$@0@s1@1@s1$@0#rand -270$@1@g2953@0@0,s3@1@s3,tg2953$@0#getchar -9740$$$@0#cttable_lastIndex -829$@0@s1@1@s1$@0#alarm -912$@1@@1@s0$@0#sleep -2422$@1@@1@s0$@0#ltoken_getCode#ltoken_getIntField -2418$$$@0#ltoken_getCol#ltoken_getLine -2148$@1@@1@s0$@0#tsource_thisLineNumber -316$@0@g2937@0@0@1@tp1,g2937$@0#strtol -476$@0@@1@tp1$@0#wcstol -863$@0@g2937@0@0@1@g2937$@0#fpathconf -894$@0@g2937@0@0@1@g2937$@0#pathconf -914$@0@g2937@0@0@1@g2937$@0#sysconf -370$@1@@1@s0$@0#labs -310$@1@@1@s0$@0#atol -14283$@1@@1@s0$@0#size_toLong -294$@0@g2937@0@0@1@g2937$@0#ftell -13472$@1@@1@s0$@0#sRef_getArraySize -17934$@1@@1@s0$@0#exprNode_getLongValue -10286$$$@0#ctype_getArraySize -12574$@1@@1@s0$@0#multiVal_forceInt -8700$$$@0#cppReader_parseExpression -318$@0@g2937@0@0@1@tp1,g2937$@0#strtoul -478$@0@@1@tp1$@0#wcstoul -14277$@1@@1@s0$@0#longUnsigned_fromInt -149$@0@g2937@0@0@1@g2937$@0#ldexp -157$@0@g2937@0@0@1@g2937$@0#pow -139$@1@@1@s0$@0#atan2#fmod -151$@0@@1@tp1$@0#frexp -167$@0@@1@tp1$@0#modf -314$@0@g2937@0@0@1@tp1,g2937$@0#strtod -471$@0@@1@tp1$@0#wcstod -633$@1@@1@s0$@0#difftime -135$@0@g2937@0@0@1@g2937$@0#acos#asin#cosh#exp#log#log10#sqrt -137$@1@@1@s0$@0#atan#ceil#cos#fabs#floor#sin#sinh#tan#tanh -306$@1@@1@s0$@0#atof -14240$@0@@1@tp0$@0#getDouble -12578$@1@@1@s0$@0#multiVal_forceDouble -355@6@5@1@0@0@1@@1@s0@18@0@0#bsearch -14206@4@2@1@0@0$@2@0@0#direalloc -14203$$@2@0@0#dicalloc -598@6@5@1@0@0@1@@1@s0@3@0@0#memchr -14200@4@0@1@0@0$@2@0@0#dimalloc -1290$@0@@1@tp0@2@0@0@2.3.p0$#drealloc -331@6@5@1@0@0@0@@1@tp0@2@0@0#realloc -325@6@5@1@0@0@1@@1@s0@2@0@0#calloc -1293@4@0@1@0@0@1@@1@s0@2@0@0#dmalloc -328@4@5@1@0@0@1@@1@s0@2@0@0#malloc -261@6@5@1@0@0@0@s3,g2937@0@0@1@s3,tp0,tp2,g2937$@0#fgets -121@6@5@1@0@0@0@s1,g2937@0@0@1@s1,g2937@19@3@0#setlocale -14262$$@3@0@0#mstring_append -14256$@0@@1@tp0,tp1@3@0@0#mstring_concatFree -14259$$@3@0@0#mstring_concatFree1 -14218$@1@@1@s0@3@0@0#removeExtension -14253$@1@@1@s0@3@0@0#mstring_concat -14234$$@3@0@0#addExtension -14315$@1@@1@s0@19@3@0#osd_getEnvironment -11770$@0@@1@tp1@3@0@0#specFullName -606@6@5@1@0@0@1@@1@s0@19@2@0#strpbrk -601@6@5@1@0@0@1@@1@s0@19@2@0#strchr#strrchr -617@6@5@1@0@0@0@s1,g2937@0@0@1@tp0,s1,g2937@19@2@0#strtok -614@6@5@1@0@0@1@@1@s0@19@2@0#strstr -866$@0@g2937@0@0@1@g2937,tp0$@0#getcwd -14271@6@2@1@0@0@1@@1@s0@2@0@0#mstring_create -14209$@1@@1@s0@3@0@0#FormatInt#mstring_spaces -624$@1@@1@s0@19@3@0#strerror -921@6@5@1@0@0@0@g2937@0@0@1@g2937@19@3@0#ttyname -14226$@1@@1@s0@3@0@0#removePathFree -14312$@1@@1@s0@2@0@0#LSLRootName -14231$@1@@1@s0@3@0@0#removeAnyExtension#removePath -14299$$@19@2@0#removePreDirs -14337@6@5@1@0@0$@19@3@0#osd_getEnvironmentVariable -14296@6@5@1@0@0@1@@1@s0@19@3@0#filenameExtension -14265$@1@@1@s0@3@0@0#mstring_copy -14268@6@2@1@0@0@1@@1@s0@19@3@0#mstring_safePrint -346@6@5@1@0@0@1@@1@s0@19@3@0#getenv -273@6@5@1@0@0@1@g2953@0@0,s3,g2937@0@0@1@s3,tp0,tg2953,g2937@3@0@0#gets -841$@0@@1@tp0@3@0@0#cuserid -838$@0@s1@1@tp0,s1$@0#ctermid -220$@0@s1@1@tp0,s1@19@3@0#tmpnam -14243@6@5@1@0@0@0@@1@tp0@2@0@0#getWord -641$@0@g2937@0@0@1@g2937@19@3@0#asctime -644$@1@@1@s0@19@3@0#ctime -16991$@1@@1@s0@19@3@0#sort_getName -17495$@1@@1@s0@19@2@0#lsymbol_toCharsSafe -17498@6@5@1@0@0@1@@1@s0@19@2@0#lsymbol_toChars -2452$@1@@1@s0@19@3@0#ltoken_getRawTextChars -2429$@1@@1@s0@19@2@0#ltoken_getTextChars -1219@6@2@1@0@0$@19@2@0#cstring_toCharsSafeO -11581@6@2@1@0@0@1@@1@s0@19@2@0#cstring_toCharsSafe -11763@6@5@1@0@0@0@@1@tp0@18@0@0#tsource_nextLine -2144$@1@@1@s0@19@3@0#tsource_fileName -8074$@1@@1@s0@19@2@0#cppReader_getPWritten -1107@6@2@1@0@0@1@@1@s0@2@0@0#mstring_createEmpty -7596$@1@@1@s0@19@3@0#context_selectedLibrary -8264@6@5@1@0@0@1@@1@s0@19@3@0#osd_getHomeDir -878$@1@@1@s0@19@3@0#getlogin -285$@0@s3,g2937@0@0@1@s3,tp3,g2937$@0#fwrite -283$@0@s3,g2937@0@0@1@s3,tp0,tp3,g2937$@0#fread -464$@0@@1@tp1$@0#wcsrtombs -652$@0@@1@tp0$@0#strftime -402$@0@@1@tp0$@0#mbrtowc -406$@0@@1@tp0$@0#mbsrtowcs -444$@0@@1@tp0$@0#wcsftime -400$@1@@1@s0$@0#mbrlen -565$@0@@1@tp0$@0#wcstombs -595$@0@@1@tp0$@0#strxfrm -424$@0@@1@tp0$@0#wcrtomb -480$@0@@1@tp0$@0#wcsxfrm -563$@0@@1@tp0$@0#mbstowcs -603$@1@@1@s0$@0#strcspn#strspn -440$@1@@1@s0$@0#wcscspn#wcsspn -14279$@1@@1@s0$@0#size_fromInt -626$@1@@1@s0$@0#strlen -446$@1@@1@s0$@0#wcslen -8071$@1@@1@s0$@0#cppReader_getWritten -925$@0@g2937@0@0@1@g2937$@0#write -900$@0@g2937@0@0@1@g2937,tp1$@0#read -385$@0@s3@1@s3,tp1$@0#fputwc -408$@0@s3@1@s3,tp1$@0#putwc -416$@0@s3@1@s3,tp1$@0#ungetwc -377$@1@@1@s0$@0#btowc -410$@0@s3,g2954@0@0@1@s3,tg2954$@0#putwchar -379$@0@s3@1@s3,tp0$@0#fgetwc -395$@0@s3@1@s3,tp0$@0#getwc -397$@0@s3,g2953@0@0@1@s3,tg2953$@0#getwchar -125$@1@@1@s0@3@0@0#localeconv -230@6@5@1@0@0@0@s3,g2937@0@0@1@tp2,s3,g2937@3@0@0#freopen -738@6@5@1@0@0@0@g2937@0@0,s3@1@g2937,s3@18@0@0#fdopen -227@6@5@1@0@0@0@s3@1@s3@18@0@0#fopen -217@6@5@1@0@0@0@s3@1@s3@3@0@0#tmpfile -368$@1@@1@s0$@0#div -375$@1@@1@s0$@0#ldiv -485@6@5@1@0@0@1@@1@s0@3@0@0#wmemchr -383@6@5@1@0@0@0@s3@1@s3,tp0,tp2$@0#fgetws -496$@0@@1@tp0$@0#wmemset -490$@0@@1@tp0$@0#wmemcpy#wmemmove -474@6@5@1@0@0@0@@1@tp2@3@0@0#wcstok -469@6@5@1@0@0@1@@1@s0@3@0@0#wcsstr -461@6@5@1@0@0@1@@1@s0$@0#wcsrchr -431@6@5@1@0@0@1@@1@s0@19@2@0#wcschr -458@6@5@1@0@0@1@@1@s0$@0#wcspbrk -650@6@5@1@0@0@0@g2937@0@0@1@g2937@19@3@0#localtime -647@6@5@1@0@0@1@@1@s0@19@3@0#gmtime -555$@1@@1@s0$@0#wctype -553$@1@@1@s0$@0#wctrans -770$@0@@1@tp0$@0#times -631$@0@s1@1@s1$@0#clock -635$@1@@1@s0$@0#mktime -638$@0@@1@tp0$@0#time -868$@1@@1@s0$@0#getegid#getgid -892$@0@g2937@0@0@1@g2937$@0#lseek -791$@0@g2937@0@0@1@tp1,g2937$@0#waitpid -916$@0@g2937@0@0@1@g2937$@0#tcgetpgrp -789$@0@g2937@0@0@1@tp0,g2937$@0#wait -861$@0@s3,g2937@0@0@1@s3,g2937$@0#fork -880$@1@@1@s0$@0#getpgrp#getpid#getppid#setsid -870$@1@@1@s0$@0#geteuid#getuid -669@6@5@1@0@0@0@g2937@0@0@1@g2937@3@0@0#opendir -673@6@5@1@0@0@0@g2937@0@0@1@g2937@3@0@0#readdir -692@6@5@1@0@0@0@g2937@0@0@1@g2937@3@0@0#getgrnam -689@6@5@1@0@0@0@g2937@0@0@1@g2937@3@0@0#getgrgid -698@6@5@1@0@0@0@g2937@0@0@1@g2937@19@3@0#getpwnam -701@6@5@1@0@0@0@g2937@0@0@1@g2937@19@3@0#getpwuid -803$@1@@1@s0$@0#cfgetispeed#cfgetospeed -16362$$@2@0@0#makeIfTermNode -16378$$@2@0@0#makeOpCallTermNode -16370$$@2@0@0#makeQuantifiedTermNode -16366$$@2@0@0#makeInfixTermNode -16398$$@2@0@0#makeMapTermNode#makeSelectTermNode -16388$$@2@0@0#updateSqBracketedNode -16386$$$@0#updateMatchedNode -16392$$@2@0@0#makeMatchedNode#makeSqBracketedNode -16374$$@2@0@0#makePostfixTermNode2 -16372$$@2@0@0#makePostfixTermNode -16380$$@19@2@0#CollapseInfixTermNode -15206$@1@@1@s0@19@2@0#termNodeList_getN -16376$$@2@0@0#makePrefixTermNode -16406$$@2@0@0#makeSizeofTermNode -16400$$@2@0@0#makeLiteralTermNode -16402$$@2@0@0#makeUnchangedTermNode1 -16404$$@2@0@0#makeUnchangedTermNode2 -16512$@1@@1@s0@3@0@0#termNode_copySafe -15635$$$@0#checkSort -15631@6@5@1@0@0$$@0#computePossibleSorts -15204$$@19@2@0#termNodeList_current#termNodeList_head -16394$$@2@0@0#makeSimpleTermNode -16220@6@5@1@0@0@1@@1@s0@2@0@0#makeLclTypeSpecNodeConj -16228@6@5@1@0@0@0@@1@p0@2@0@0#lclTypeSpecNode_addQual -16476@6@5@1@0@0@1@@1@s0@2@0@0#lclTypeSpecNode_copy -16222@6@5@1@0@0@1@@1@s0@2@0@0#makeLclTypeSpecNodeType -16224@6@5@1@0@0@1@@1@s0@2@0@0#makeLclTypeSpecNodeSU -16226@6@5@1@0@0@1@@1@s0@2@0@0#makeLclTypeSpecNodeEnum -16384$$$@0#pushInfixOpPartNode -15190$$$@0#termNodeList_push -15202$$@2@0@0#termNodeList_copy -3358$$@2@0@0#termNodeList_new -16844$@1@@1@s0$@0#sort_makeSyn -16854$@1@@1@s0$@0#sort_makePtrN -16442$$$@0#typeExpr2ptrSort -16870$@0@s1@1@s1$@0#sort_makeTuple#sort_makeUnionVal -16856$@1@@1@s0$@0#sort_makeArr#sort_makePtr#sort_makeVec -16862$@1@@1@s0$@0#sort_makeImmutable#sort_makeMutable#sort_makeSort -16446$$$@0#lclTypeSpecNode2sort -16952$@1@@1@s0$@0#sort_getUnderlying#sort_makeFormal#sort_makeGlobal#sort_makeHOFSort#sort_makeObj#sort_makeVal -16999$@0@s1@1@s1$@0#sort_fromLsymbol -16922$@1@@1@s0$@0#sort_lookupName -16892$@1@@1@s0$@0#sort_makeEnum#sort_makeStr#sort_makeUnion -15068$$$@0#sortList_current -15033$$$@0#sortSet_choose -16464$$$@0#sigNode_rangeSort -16830$@0@s1@1@s1$@0#sort_makeNoSort -17131$$$@0#lsymbol_translateSort#mapping_find -16448$$$@0#checkAndEnterTag -17110$$$@0#lsymbol_sortFromType -17490$@1@@1@s0$@0#lsymbol_fromChars -16988$@1@@1@s0$@0#sort_getLsymbol -15545$$$@0#processTraitSortId -16640$@1@@1@s0$@0#ltoken_getRawText -2426$@1@@1@s0$@0#ltoken_getText -11619$@1@@1@s0$@0#cstring_toSymbol -17488$@1@@1@s0$@0#lsymbol_fromString -15657$$$@0#lclctype_toSort#lclctype_toSortDebug -3691$$$@0#lsymbol_getBool#lsymbol_getFALSE#lsymbol_getTRUE#lsymbol_getbool -16246$$@2@0@0#makeFunctionNode -16278$$@2@0@0#makeArrayNode -16276$$@2@0@0#makePointerNode -16250$$@2@0@0#makeTypeExpr -16630@6@5@1@0@0@1@@1@s0@3@0@0#ltoken_createFull -16751@6@5@1@0@0@0@s1@1@s1@19@2@0#LCLInsertToken#LSLInsertToken -16628@6@5@1@0@0@1@@1@s0@3@0@0#ltoken_createType -16624@6@5@1@0@0@1@@1@s0@3@0@0#ltoken_create#ltoken_createRaw -16759@6@5@1@0@0@0@s1@1@s1@19@2@0#LCLReserveToken#LSLReserveToken -16144@6@5@1@0@0$@19@3@0#termNode_errorToken -16148@6@5@1@0@0$@19@3@0#lclTypeSpecNode_errorToken -15916@6@5@1@0@0@1@s1@1@@19@2@0#LSLGetTokenForSyn -16757@6@5@1@0@0@1@@1@s0@19@2@0#LCLGetToken#LSLGetToken -16737@6@5@1@0@0$@19@2@0#LCLGetTokenForSyn -16638@6@5@1@0@0@1@@1@s0@3@0@0#ltoken_copy -15243@6@5@1@0@0@1@@1@s0@19@3@0#ltokenList_current#ltokenList_head -16146@6@5@1@0@0$@19@3@0#nameNode_errorToken -17452@6@5@1@0@0$@2@0@0#LSLGenTopPopShiftStack -15466@6@5@1@0@0@0@s1@1@s1@3@0@0#LSLScanNextToken -15502@6@5@1@0@0$@3@0@0#LSLScanEofToken -17460@6@5@1@0@0@0@s1@1@s1@18@2@0#LCLScanNextToken -16713@6@5@1@0@0@1@@1@s0@19@2@0#LCLScanEofToken -17458$@1@s1@1@s1$@0#yllex -12914@6@2@1@0@0$@18@0@0#sRef_makeCvar -13424@6@5@1@0@0@0@@1@p0@18@2@0#sRef_fixResultType -13266@6@2@1@0@0$@18@0@0#sRef_makeNew -12922@6@2@1@0@0@1@@1@s0@18@0@0#sRef_makeParam -13254@6@2@1@0@0$@18@2@0#sRef_makeArrayFetchKnown -10501@6@5@1@0@0$@18@2@0#modListArrayFetch -10489@6@5@1@0@0$@18@2@0#modListArrowAccess#modListFieldAccess -13202@6@5@1@0@0@0@@1@p0@18@2@0#sRef_buildField -13258@6@5@1@0@0@1@@1@s0@18@2@0#sRef_makeNCField -13398@6@5@1@0@0$@18@2@0#sRef_buildArrow#sRef_makeArrow#sRef_makeField -13222@6@2@1@0@0$@18@2@0#sRef_buildArrayFetchKnown -13288@6@5@1@0@0@0@@1@p0,p1@18@2@0#sRef_fixBase -12880@6@5@1@0@0@0@@1@p0@18@2@0#sRef_fixBaseParam -12972@6@2@1@0@0$@18@0@0#sRef_makeConj -9426@6@5@1@0@0$@18@2@0#uentry_returnedRef -14935@6@5@1@0@0$@18@2@0#sRefSet_lookupMember -12918@6@2@1@0@0$@18@0@0#sRef_makeGlobal -14712@6@5@1@0@0@1@@1@s0@18@2@0#globSet_lookup -12884@6@5@1@0@0@0@@1@tp0@18@2@0#sRef_undump#sRef_undumpGlobal -13150@6@5@1@0@0$@2@0@0#sRef_saveCopy -13392@6@2@1@0@0@1@@1@s0@18@2@0#sRef_getConjA#sRef_getConjB#sRef_makeArrayFetch -13238@6@5@1@0@0@0@@1@p0@18@2@0#sRef_constructDeadDeref#sRef_constructDeref#sRef_constructPointer#sRef_makePointer -12934@6@5@1@0@0@1@@1@s0@18@2@0#sRef_getBase#sRef_getRootBase -10483@6@5@1@0@0$@18@2@0#modListPointer#sRef_copy#sRef_getBaseSafe#sRef_updateSref -13220@6@2@1@0@0$@18@2@0#sRef_buildArrayFetch -13230@6@5@1@0@0@0@@1@p0@18@2@0#sRef_buildPointer -12798@6@5@1@0@0@1@@1@s0@18@3@0#sRef_getAliasInfoRef#sRef_makeExternal -12930@6@5@1@0@0$@18@2@0#sRef_makeAddress#sRef_makeAnyArrayFetch#sRef_makeDerived -13278@6@5@1@0@0$@18@0@0#sRef_fixOuterRef -9262@6@5@1@0@0@1@@1@s0@18@2@0#uentry_getSref -10491@6@5@1@0@0$@18@2@0#checkSpecClausesId#checkbufferConstraintClausesId#uentry_getOrigSref -17856@6@5@1@0@0@1@@1@s0@18@2@0#exprNode_getSref -14877@6@5@1@0@0@1@@1@s0@18@2@0#sRefSet_choose#sRefSet_mergeIntoOne -10497@6@5@1@0@0$@18@2@0#fixModifiesId#fixSpecClausesId#globListUnrecognized -12906@6@2@1@0@0@1@@1@s0@18@0@0#sRef_makeUnconstrained -12946@6@2@1@0@0@1@@1@s0@18@0@0#sRef_makeObject#sRef_makeType -13270@6@2@1@0@0$@18@0@0#sRef_makeConst -10867@6@5@1@0@0$@18@2@0#constraintTerm_getSRef -6023@6@2@1@0@0@1@@1@s0@18@0@0#sRef_makeResult -12980@6@5@1@0@0@1@@1@s0@18@0@0#sRef_makeInternalState#sRef_makeNothing#sRef_makeSpecState#sRef_makeSystemState#sRef_makeUnknown -9046@6@2@1@0@0@1@@1@s0@2@0@0#uentry_makeDatatypeAux -9032@6@2@1@0@0$@3@0@0#uentry_makePrivFunction2#uentry_makeSpecFunction -9030@6@2@1@0@0$@3@0@0#uentry_makeFunction -8988@6@2@1@0@0@1@@1@s0@2@0@0#uentry_makeConstantAux -9048@6@2@1@0@0@1@@1@s0@2@0@0#uentry_makeDatatype -9044@6@2@1@0@0$@3@0@0#uentry_makeUnspecFunction -9022@6@2@1@0@0$@3@0@0#uentry_makeVariable -8990@6@2@1@0@0@1@@1@s0@2@0@0#uentry_makeConstant -9042@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeTypeListFunction -8922@6@2@1@0@0$@2@0@0#uentry_makeVariableSrefParam -8890@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeEnumInitializedConstant -9068@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeEnumTag#uentry_makeIter -9064@6@2@1@0@0$@3@0@0#uentry_makeStructTag#uentry_makeUnionTag -8892@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeSpecEnumConstant -9038@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeForwardFunction -9130@6@5@1@0@0$@3@0@0#uentry_undump -12412@6@5@1@0@0@1@s1@1@@18@2@0#usymtab_getRefQuiet -8982@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeParam -9284@6@5@1@0@0$@3@0@0#uentry_nameCopy -9058@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeEndIter -9438@6@5@1@0@0$@19@2@0#uentry_makeUnrecognized -9036@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeExpandedMacro -8894@6@2@1@0@0$@2@0@0#uentry_makeVariableLoc#uentry_makeVariableParam -8888@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeEnumConstant#uentry_makeEnumTagLoc -9062@6@2@1@0@0$@3@0@0#uentry_makeStructTagLoc#uentry_makeUnionTagLoc -14576@6@5@1@0@0@1@@1@s0@19@2@0#uentryList_getN -14610@6@5@1@0@0@1@@1@s0@19@2@0#uentryList_lookupField -12406@6@5@1@0@0@1@s1@1@@18@2@0#usymtab_getParam -12828@6@5@1@0@0$@19@2@0#sRef_getBaseUentry#sRef_getUentry -12280@6@5@1@0@0@1@s1@1@s1,p0@19@2@0#usymtab_supEntryReturn#usymtab_supEntrySrefReturn#usymtab_supGlobalEntryReturn#usymtab_supReturnFileEntry -12288@6@5@1@0@0@1@s1@1@s1@19@2@0#usymtab_supReturnTypeEntry -9406@6@5@1@0@0@1@@1@s0@3@0@0#uentry_copy -8984@6@2@1@0@0@1@@1@s0@2@0@0#uentry_makeIdVariable -8898@6@2@1@0@0$@2@0@0#uentry_makeIdDatatype#uentry_makeIdFunction -10375@6@5@1@0@0$@2@0@0#makeCurrentParam -8992@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeIdConstant -17720@6@5@1@0@0@1@s1@1@@19@3@0#exprNode_getUentry -18312@6@5@1@0@0$@18@3@0#coerceId -4520@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookup#usymtab_lookupEither#usymtab_lookupEnumTag#usymtab_lookupExpose#usymtab_lookupExposeGlob#usymtab_lookupGlob#usymtab_lookupGlobSafe#usymtab_lookupSafe#usymtab_lookupStructTag#usymtab_lookupUnionTag -18314@6@5@1@0@0$@19@3@0#coerceIterId -8896@6@2@1@0@0$@2@0@0#uentry_makeUnnamedVariable -9050@6@2@1@0@0$@2@0@0#uentry_makeBoolDatatype -12320@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_getGlobalEntry#usymtab_getTypeEntry#usymtab_getTypeEntrySafe -14588@6@5@1@0@0@1@@1@s0@19@2@0#uentryList_current -11444@6@5@1@0@0@1@@1@s0@19@2@0#exprData_getIterCallIter#exprData_getIterEname#exprData_getIterSname -9084@6@2@1@0@0@1@@1@s0@3@0@0#uentry_makeElipsisMarker -13748@6@5@1@0@0@1@@1@s0@19@2@0#context_getHeader -10467@6@5@1@0@0$@19@2@0#getCurrentIter -14781$@0@s1@1@s1$@0#typeIdSet_subtract -14787$@1@@1@s0$@0#typeIdSet_union -14773$@0@s1@1@s1$@0#typeIdSet_insert#typeIdSet_removeFresh -14785$@0@s1@1@s1,tp0$@0#typeIdSet_undump -9146$@1@@1@s0$@0#uentry_accessType -14769$@0@s1@1@s1$@0#typeIdSet_single#typeIdSet_singleOpt -14763$@0@s1@1@s1$@0#typeIdSet_emptySet -13674$$$@0#context_fileAccessTypes -10521@6@5@1@0@0$$@0#idDecl_replaceCtype -10523@6@5@1@0@0$$@0#idDecl_fixBase#idDecl_fixParamBase -10503@6@5@1@0@0$@2@0@0#idDecl_create -10527@6@5@1@0@0$$@0#idDecl_expectFunction -11418@6@5@1@0@0@1@@1@s0@19@2@0#exprData_getInitId -17674@6@5@1@0@0$@3@0@0#exprNode_floatLiteral -17846@6@5@1@0@0$@3@0@0#exprNode_iter -17670@6@5@1@0@0$@3@0@0#exprNode_numLiteral -17672@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_charLiteral -17828@6@5@1@0@0$@3@0@0#exprNode_forPred#exprNode_ifelse -17760@6@5@1@0@0$@3@0@0#exprNode_assign -17756@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_op -17762@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_cond -17764@6@5@1@0@0@1@s1@1@@3@0@0#exprNode_vaArg -17748@6@5@1@0@0$@3@0@0#exprNode_cast -17854@6@5@1@0@0$@3@0@0#exprNode_iterStart -17844@6@5@1@0@0$@3@0@0#exprNode_makeInitialization -17776@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_caseMarker -17692@6@5@1@0@0@0@@1@p0,p1@3@0@0#exprNode_arrayFetch -17840@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_comma -17788@6@5@1@0@0$@3@0@0#exprNode_concat#exprNode_doWhile#exprNode_if#exprNode_switch -17730@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_arrowAccess#exprNode_fieldAccess -17732@6@5@1@0@0@0@@1@p0@3@0@0#exprNode_postOp -17734@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_preOp -17792@6@5@1@0@0$@3@0@0#exprNode_statement -17724@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_functionCall -17822@6@5@1@0@0$@3@0@0#exprNode_for#exprNode_while -11141@6@5@1@0@0@0@@1@p0$@0#exprNode_copyConstraints -17930@6@5@1@0@0$$@0#exprNode_updateLocation -17678@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_stringLiteral -17778@6@2@1@0@0$@2@0@0#exprNode_defaultMarker -17834@6@5@1@0@0$@3@0@0#exprNode_break#exprNode_continue -17728@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_addParens -17722@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_makeInitBlock -14518@6@5@1@0@0@1@@1@s0@19@2@0#exprNodeList_getN#exprNodeList_nth -17742@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_offsetof -17684@6@2@1@0@0@1@s1@1@@3@0@0#exprNode_fromIdentifier -17682@6@2@1@0@0$@3@0@0#exprNode_createId -17852@6@5@1@0@0$@3@0@0#exprNode_iterId -17746@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_alignofExpr#exprNode_sizeofExpr -17800@6@5@1@0@0$@3@0@0#exprNode_makeBlock#exprNode_return#exprNode_whilePred -17796@6@5@1@0@0$$@0#exprNode_checkExpr#exprNode_fakeCopy#exprNode_iterExpr#exprNode_notReached#makeDataTypeConstraints -17830@6@2@1@0@0$@2@0@0#exprNode_goto -17848@6@5@1@0@0$@3@0@0#exprNode_iterNewId#exprNode_labelMarker -17680@6@5@1@0@0@1@s1@1@@3@0@0#exprNode_fromUIO -17942@6@5@1@0@0$@3@0@0#exprNode_createNew -17790@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_createTok -17836@6@5@1@0@0$@3@0@0#exprNode_nullReturn -14516@6@5@1@0@0@1@@1@s0@19@3@0#exprNodeList_current -14514@6@5@1@0@0$@19@3@0#exprNodeList_head -17740@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_alignofType#exprNode_sizeofType -11466@6@5@1@0@0@1@@1@s0@19@2@0#exprData_getCastNode#exprData_getFcn#exprData_getFieldNode#exprData_getInitNode#exprData_getIterBody#exprData_getOpA#exprData_getOpB#exprData_getPairA#exprData_getPairB#exprData_getTripleFalse#exprData_getTripleInc#exprData_getTripleInit#exprData_getTriplePred#exprData_getTripleTest#exprData_getTripleTrue#exprData_getUopNode -11484@6@5@1@0@0$@19@2@0#exprData_getSingle -6889@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_makeError -17648@6@5@1@0@0@1@@1@s0@19@3@0#exprNode_makeMustExit -14805@6@5@1@0@0@0@@1@p0@3@0@0#guardSet_levelUnion -14807@6@5@1@0@0@0@@1@p1,p0$@0#guardSet_levelUnionFree -14803@6@5@1@0@0@0@@1@p0@3@0@0#guardSet_union -14817@6@5@1@0@0$$@0#guardSet_addFalseGuard#guardSet_addTrueGuard -14801@6@5@1@0@0$$@0#guardSet_and#guardSet_or -17824@6@5@1@0@0@1@@1@s0@19@3@0#exprNode_getForGuards -6851@6@5@1@0@0@1@@1@s0@18@2@0#exprNode_getGuards -14813@6@5@1@0@0@1@@1@s0@2@0@0#guardSet_copy#guardSet_invert -6346@6@5@1@0@0$@2@0@0#guardSet_new -14893@6@5@1@0@0$$@0#sRefSet_levelUnion -14887@6@5@1@0@0@0@@1@p0$@0#sRefSet_unionExcept -14957@6@5@1@0@0$@2@0@0#sRefSet_fetchKnown -14891@6@5@1@0@0$@2@0@0#sRefSet_intersect#sRefSet_realNewUnion -14953@6@5@1@0@0$@2@0@0#sRefSet_accessField -14869@6@5@1@0@0$$@0#sRefSet_insert -14883@6@5@1@0@0$$@0#sRefSet_unionFree -14897@6@5@1@0@0@0@@1@p0$@0#sRefSet_copy -14885@6@5@1@0@0$$@0#sRefSet_union -14901@6@5@1@0@0@1@@1@s0@2@0@0#sRefSet_levelCopy -12111@6@5@1@0@0@1@@1@s0@2@0@0#aliasTable_aliasedBy#aliasTable_canAlias -14963@6@5@1@0@0@0@@1@tp0@2@0@0#sRefSet_undump -12532@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_aliasedBy#usymtab_allAliases#usymtab_canAlias -13206@6@5@1@0@0@1@@1@s0@19@3@0#sRef_derivedFields -14865@6@5@1@0@0$@2@0@0#sRefSet_single -9212@6@5@1@0@0@1@@1@s0@19@3@0#uentry_getMods -14797@6@5@1@0@0@1@@1@s0@18@2@0#guardSet_getFalseGuards#guardSet_getTrueGuards -14899@6@5@1@0@0$@2@0@0#sRefSet_newCopy -14951@6@5@1@0@0@1@@1@s0@2@0@0#sRefSet_addIndirection#sRefSet_removeIndirection -14955@6@5@1@0@0$@2@0@0#sRefSet_fetchUnknown#sRefSet_newDeepCopy -5148@6@5@1@0@0@1@@1@s0@19@3@0#specialClause_getRefs -4171@6@5@1@0@0@1@@1@s0@2@0@0#sRefSet_new -13776@6@5@1@0@0$@19@3@0#context_modList -12127@6@5@1@0@0@0@@1@s0@3@0@0#aliasTable_levelUnionNew -12097@6@5@1@0@0@0@@1@p0$@0#aliasTable_addMustAlias -12123@6@5@1@0@0$$@0#aliasTable_levelUnionSeq -12125@6@5@1@0@0@0@@1@p0$@0#aliasTable_levelUnion -12119@6@5@1@0@0@1@@1@s0@3@0@0#aliasTable_copy -4449@6@5@1@0@0@1@@1@s0@3@0@0#aliasTable_new -11709@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_create#fileloc_createSpec -11651@6@5@1@0@0@0@@1@p0@3@0@0#fileloc_update -11653@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_updateFileId -11643@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_decColumn -11703@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_createImport -9501@6@5@1@0@0$@19@3@0#macrocache_processFileElements -11683@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_fromTok -9238@6@5@1@0@0@1@@1@s0@19@3@0#uentry_whereDeclared#uentry_whereDefined#uentry_whereEarliest#uentry_whereEither#uentry_whereLast#uentry_whereSpecified -17938@6@5@1@0@0@1@@1@s0@3@0@0#exprNode_getNextSequencePoint -17862@6@5@1@0@0@1@@1@s0@19@3@0#exprNode_loc -17936@6@5@1@0@0$@19@3@0#exprNode_getfileloc -11649@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_copy#fileloc_makePreproc#fileloc_makePreprocPrevious#fileloc_noColumn -11103@6@5@1@0@0$@2@0@0#constraint_getFileloc -11059@6@5@1@0@0$@2@0@0#constraintExpr_getFileloc -11685@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_createLib#fileloc_createRc -1787@6@5@1@0@0@1@@1@s0@18@2@0#lltok_getLoc -10863@6@5@1@0@0@1@@1@s0@3@0@0#constraintTerm_getFileloc -7402@6@5@1@0@0@1@@1@s0@19@3@0#flagMarker_getLoc -14386@6@5@1@0@0@1@@1@s0@19@3@0#filelocStack_nextTop -13932@6@5@1@0@0$@2@0@0#context_getSaveLocation -1357@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_createBuiltin#fileloc_createExternal#fileloc_getBuiltin -11691@6@5@1@0@0@1@@1@s0@19@3@0#fileloc_getExternal#fileloc_observeBuiltin -11131$$@2@0@0#constraint_makeEnsureEqual#constraint_makeEnsureGreaterThan#constraint_makeEnsureGreaterThanEqual#constraint_makeEnsureLessThan#constraint_makeEnsureLessThanEqual#constraint_makeEnsureMaxReadAtLeast -11143$$@3@0@0#constraint_makeAddAssign#constraint_makeSubtractAssign -11085$$@3@0@0#makeConstraintParse2 -11089$$@2@0@0#makeConstraintParse3 -11123$$@2@0@0#constraint_makeSRefReadSafeInt#constraint_makeSRefWriteSafeInt -11113$$@2@0@0#constraint_makeSRefSetBufferSize -11121$$@2@0@0#constraint_makeReadSafeInt#constraint_makeWriteSafeInt -11117$$@2@0@0#constraint_makeEnsureLteMaxRead#constraint_makeWriteSafeExprNode -11109@6@3@1@0@0$@3@0@0#constraint_makeReadSafeExprNode -11147$$@2@0@0#constraint_makeMaxSetSideEffectPostDecrement#constraint_makeMaxSetSideEffectPostIncrement -11169$$@2@0@0#constraint_doSRefFixBaseParam -11171$$@2@0@0#constraint_doFixResult -11173$$@2@0@0#constraint_doSRefFixConstraintParam -11097$$$@0#constraint_addGeneratingExpr#constraint_origAddGeneratingExpr -11307$$$@0#inequalitySubstitute -11311$$@2@0@0#substitute -11183$$@2@0@0#constraint_undump -11175$@0@@1@p0$@0#constraint_preserveOrig -11101$$$@0#constraint_setFcnPre#constraint_simplify#constraint_togglePost#constraint_togglePostOrig -11317$$$@0#constraint_solve -11091$$@2@0@0#constraint_copy -11259$@1@@1@s0@3@0@0#getPostConditions -11257$$@3@0@0#checkCall -11223$@0@@1@p0@2@0@0#constraintList_doFixResult -11199$$@2@0@0#constraintList_addListFree -11247$$@2@0@0#constraintList_mergeEnsuresFreeFirst#constraintList_mergeRequiresFreeFirst#constraintList_substituteFreeTarget#reflectChangesFreePre -11225$@0@@1@p0@2@0@0#constraintList_doSRefFixConstraintParam -11289$$@2@0@0#constraintList_fixConflicts#constraintList_substitute -11263$$@3@0@0#constraintList_subsumeEnsures#reflectChangesOr -11249$$@3@0@0#constraintList_mergeEnsures -11221$@0@@1@p0$@0#constraintList_addGeneratingExpr -11219$$$@0#constraintList_preserveCallInfo -11193$@0@@1@p0$@0#constraintList_add -11197$@0@@1@p0@2@0@0#constraintList_addList -11211$$@2@0@0#constraintList_logicalOr#constraintList_mergeRequires#reflectChanges -11227$@0@@1@p0@2@0@0#constraintList_doSRefFixBaseParam -11231$$@2@0@0#constraintList_undump -8884$$@3@0@0#uentry_getFcnPostconditions#uentry_getFcnPreconditions -11384$$@2@0@0#exprNode_traversEnsuresConstraints#exprNode_traversRequiresConstraints -11362$$@2@0@0#constraintList_makeFixedArrayConstraints -11229$@0@@1@p0$@0#constraintList_togglePost -11217$$$@0#constraintList_preserveOrig -11215$@1@@1@s0@3@0@0#constraintList_copy -6750$@1@@1@s0@2@0@0#constraintList_makeNew -10357$$@3@0@0#getEnsuresConstraints#getFunctionConstraints -10385$$@19@3@0#getImplicitFcnConstraints -10949@6@5@1@0@0$@2@0@0#constraintExpr_propagateConstants -11027@6@5@1@0@0@0@@1@p0@2@0@0#constraintExpr_searchandreplace -11003@6@5@1@0@0$@3@0@0#constraintExpr_parseMakeBinaryOp -12878@6@5@1@0@0$@2@0@0#sRef_fixConstraintParam -11005@6@5@1@0@0$@2@0@0#constraintExpr_makeBinaryOpExprNode -11047@6@5@1@0@0$@2@0@0#constraintExpr_doFixResult -11013@6@5@1@0@0$@2@0@0#constraintExpr_makeAddExpr#constraintExpr_makeSubtractExpr -11045@6@5@1@0@0@0@@1@p0@2@0@0#constraintExpr_doSRefFixConstraintParam -11035@6@5@1@0@0@0@@1@p0,p1@2@0@0#constraintExpr_solveBinaryExpr -11031@6@5@1@0@0@0@@1@p0,fdata.tp0$@0#constraintExpr_setFileloc -11043@6@5@1@0@0$$@0#constraintExpr_doSRefFixBaseParam -10985@6@5@1@0@0$@2@0@0#constraintExpr_parseMakeUnaryOp -10997@6@5@1@0@0$@2@0@0#constraintExpr_makeIntLiteral -11077@6@5@1@0@0$@2@0@0#constraintExpr_undump -10981@6@5@1@0@0$@2@0@0#constraintExpr_makeSRefMaxRead#constraintExpr_makeSRefMaxset#constraintExpr_makeTermsRef -10961@6@5@1@0@0$@2@0@0#constraintExpr_makeExprNode#constraintExpr_makeMaxReadExpr#constraintExpr_makeMaxSetExpr#constraintExpr_makeValueExpr -10993@6@5@1@0@0$@2@0@0#constraintExpr_makeMinReadExpr#constraintExpr_makeMinSetExpr -11009@6@5@1@0@0$@2@0@0#constraintExpr_makeDecConstraintExpr#constraintExpr_makeIncConstraintExpr#constraintExpr_simplify -10957@6@5@1@0@0@1@@1@s0@3@0@0#constraintExpr_copy -10965@6@5@1@0@0$@3@0@0#constraintExpr_makeTerm -10927@6@5@1@0@0@1@@1@s0@19@3@0#constraintExprData_binaryExprGetExpr1#constraintExprData_binaryExprGetExpr2#constraintExprData_unaryExprGetExpr -15611@6@5@1@0@0$@3@0@0#lhVarDecl -11605@6@5@1@0@0@1@@1@s0@3@0@0#cstring_concatLength -11617@6@2@1@0@0@1@@1@s0@2@0@0#cstring_copySegment -11723@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_unparseRawCol -11621@6@5@1@0@0$@18@0@0#cstring_bsearch -11609@6@2@1@0@0$@3@0@0#cstring_prependCharO -11611@6@2@1@0@0$@3@0@0#cstring_prependChar -11750@6@5@1@3@0@1@@1@s0@2@0@0#message -11542@6@5@1@0@0@1@@1@s0@3@0@0#cstring_copyLength -15597@6@5@1@0@0$@3@0@0#lhFunction -11597@6@2@1@0@0$@3@0@0#cstring_appendChar -11603@6@5@1@0@0@0@@1@p0@3@0@0#cstring_concatChars -11599@6@5@1@0@0@0@@1@p0,p1@3@0@0#cstring_concatFree -11601@6@5@1@0@0@0@@1@p0@3@0@0#cstring_concatFree1 -11534@6@5@1@0@0@1@@1@s0@3@0@0#cstring_beforeChar -11591@6@5@1@0@0@1@@1@s0@3@0@0#cstring_elide#cstring_fill#cstring_prefix#fileloc_unparseRaw -11528@6@5@1@0@0@1@@1@s0@19@3@0#cstring_suffix -11607@6@5@1@0@0@1@@1@s0@3@0@0#cstring_concat -11589@6@5@1@0@0@0@@1@p0$@0#cstring_clip -10212@6@5@1@0@0$@3@0@0#ctype_unparseDeclaration -10535@6@5@1@0@0@1@@1@s0@19@3@0#clause_nameFlip -14438@6@5@1@0@0@1@@1@s0@3@0@0#cstringSList_unparseSep -14412@6@5@1@0@0@1@@1@s0@3@0@0#cstringList_unparseSep -9579@6@5@1@0@0@1@@1@s0@19@3@0#specialClause_postErrorString#specialClause_preErrorString -11832@6@5@1@0@0@1@@1@s0@19@3@0#fileTable_getName#fileTable_getRootName -11836@6@5@1@0@0$@19@3@0#fileTable_getNameBase -1268@6@5@1@0@0@1@@1@s0@19@3@0#bool_dump#bool_unparse -11615@6@2@1@0@0@1@@1@s0@3@0@0#cstring_create -12031@6@5@1@0@0@1@@1@s0@19@3@0#lldecodeerror -1214@6@5@1@0@0@1@@1@s0@3@0@0#cstring_fromCharsO -11578@6@5@1@0@0@1@@1@s0$@0#cstring_fromChars -1231@6@5@1@0@0@1@@1@s0@3@0@0#cstring_makeLiteral -14349@6@5@1@0@0$@3@0@0#osd_fixDefine -1233@6@5@1@0@0@1@@1@s0@18@3@0#cstring_makeLiteralTemp -1216@6@5@1@0@0@1@@1@s0@3@0@0#cstring_fromCharsNew -1053@6@5@1@0@0@0@@1@tp0@3@0@0#getStringWord -16414@6@5@1@0@0@1@@1@s0@3@0@0#termNode_unparse -16230@6@5@1@0@0@1@@1@s0@2@0@0#lclTypeSpecNode_unparse#lclTypeSpecNode_unparseComments -15208@6@5@1@0@0$@2@0@0#termNodeList_unparse#termNodeList_unparseSecondToCurrent#termNodeList_unparseTail#termNodeList_unparseToCurrent -16942@6@5@1@0@0@1@@1@s0@3@0@0#sort_unparse -16993@6@5@1@0@0@1@@1@s0@19@2@0#sort_unparseName -17492@6@5@1@0@0@1@@1@s0@19@3@0#lsymbol_toString -16274@6@5@1@0@0$@2@0@0#typeExpr_name#typeExpr_unparse#typeExpr_unparseNoBase -16634@6@5@1@0@0@1@@1@s0@3@0@0#ltoken_unparseCodeName#ltoken_unparseLoc -2454@6@5@1@0@0@1@@1@s0@19@3@0#ltoken_getRawString -16636@6@5@1@0@0$@19@3@0#ltoken_unparse -2458@6@5@1@0@0$@19@3@0#ltoken_fileName -12898@6@5@1@0@0@1@@1@s0@2@0@0#sRef_unparse#sRef_unparseDebug#sRef_unparseKindName#sRef_unparseKindNamePlain#sRef_unparseOpt#sRef_unparsePreOpt -12886@6@5@1@0@0@1@@1@s0@3@0@0#sRef_dump#sRef_dumpGlobal#sRef_unparseDeep#sRef_unparseFull#sRef_unparseState -12932@6@5@1@0@0@1@@1@s0@19@3@0#sRef_getField#sRef_getScopeName#sRef_nullMessage#sRef_stateAltVerb#sRef_stateVerb#sRef_unconstrainedName#sRef_unparseScope -13422@6@5@1@0@0$@19@3@0#sRef_ntMessage -9140@6@5@1@0@0@1@@1@s0@3@0@0#uentry_unparse#uentry_unparseAbbrev#uentry_unparseFull -9132@6@5@1@0@0$@3@0@0#uentry_dump#uentry_dumpParam -9432@6@5@1@0@0@1@@1@s0@19@3@0#uentry_ekindName#uentry_getRealName#uentry_rawName#uentry_specDeclName#uentry_specOrDefName -9362@6@5@1@0@0$@19@3@0#uentry_checkedName -9224@6@5@1@0@0@1@@1@s0@3@0@0@2.0.fukind.tp0,finfo.tp0,funame.tp0$#uentry_getName -14777@6@5@1@0@0@1@@1@s0@3@0@0#typeIdSet_unparse -14783@6@5@1@0@0$@3@0@0#typeIdSet_dump -10507@6@5@1@0@0$@2@0@0#idDecl_unparse -5062@6@5@1@0@0@1@@1@s0@18@3@0#idDecl_getName -10509@6@5@1@0@0@1@@1@s0@19@3@0#idDecl_observeId -17860@6@5@1@0@0@1@@1@s0@18@3@0#exprNode_unparse -17858@6@5@1@0@0@1@@1@s0@19@3@0#exprNode_unparseFirst -14819@6@5@1@0@0$@2@0@0#guardSet_unparse -14965@6@5@1@0@0@1@@1@s0@2@0@0#sRefSet_dump#sRefSet_unparse#sRefSet_unparseDebug -4209@6@5@1@0@0@1@@1@s0@3@0@0#sRefSet_unparseFull#sRefSet_unparsePlain#sRefSet_unparseUnconstrained#sRefSet_unparseUnconstrainedPlain -12129@6@5@1@0@0@1@@1@s0@2@0@0#aliasTable_unparse -11719@6@5@1@0@0@1@@1@s0@2@0@0#fileloc_unparse -11739@6@5@1@0@0@1@@1@s0@3@0@0#fileloc_unparseDirect#fileloc_unparseFilename -11711@6@5@1@0@0@1@@1@s0@19@3@0#fileloc_filename#fileloc_getBase -11165@6@5@1@0@0@1@@1@s0@2@0@0#constraint_print#constraint_printOr -11163@6@5@1@0@0$@2@0@0#constraint_printDetailed -11159@6@5@1@0@0$@3@0@0#constraint_printDeep -11203@6@5@1@0@0@1@@1@s0@2@0@0#constraintList_print#constraintList_unparse -11209@6@5@1@0@0@1@@1@s0@3@0@0#constraintList_printDetailed -11041@6@5@1@0@0@1@@1@s0@2@0@0#constraintExpr_unparse -11049@6@5@1@0@0@1@@1@s0@3@0@0#constraintExpr_print -11587@6@5@1@0@0@0@@1@p0@3@0@0#cstring_capitalizeFree -14155@6@5@1@0@0$@2@0@0#describeFlag#fixTagName#makeEnum#makeParam#makeStruct#makeUnion -11585@6@5@1@0@0@1@@1@s0@3@0@0#cstring_capitalize#cstring_copy#cstring_downcase -11623@6@5@1@0@0@1@@1@s0@19@3@0#cstring_advanceWhiteSpace -10553@6@5@1@0@0$@19@3@0#fixParamName -10222@6@5@1@0@0@1@@1@s0@2@0@0#ctype_dump -10236@6@5@1@0@0@1@@1@s0@19@3@0#ctype_enumTag#ctype_unparse#ctype_unparseDeep#ctype_unparseSafe -1301@6@5@1@0@0@1@@1@s0@19@3@0#ynm_unparse#ynm_unparseCode -7517@6@5@1@0@0@1@@1@s0@19@3@0#fileName#fileNameBase#rootFileName -9509@6@5@1@0@0@1@@1@s0@19@3@0#qual_unparse -12634@6@5@1@0@0@1@@1@s0@19@3@0#lltok_unparse -10533@6@5@1@0@0@1@@1@s0@19@3@0#clause_nameAlternate#clause_nameTaken#clause_unparse -14442@6@5@1@0@0@1@@1@s0@2@0@0#cstringSList_unparseAbbrev -14436@6@5@1@0@0$@2@0@0#cstringSList_unparse -14416@6@5@1@0@0@1@@1@s0@2@0@0#cstringList_unparseAbbrev -14410@6@5@1@0@0$@2@0@0#cstringList_unparse -13880@6@5@1@0@0@1@@1@s0@19@3@0#context_getString#flagcode_name#flagcode_unparse -14137@6@5@1@0@0$@19@3@0#flagcodeHint -14656@6@5@1@0@0@1@@1@s0@2@0@0#qualList_unparse -14658@6@5@1@0@0$@2@0@0#qualList_toCComments -16354@6@5@1@0@0$@2@0@0#paramNode_unparse#paramNode_unparseComments -15306@6@5@1@0@0$@2@0@0#paramNodeList_unparse#paramNodeList_unparseComments -15245@6@5@1@0@0@1@@1@s0@2@0@0#ltokenList_unparse#printLeaves2#printRawLeaves2 -17193@6@5@1@0@0$@3@0@0#tagKind_unparse -15378@6@5@1@0@0$@2@0@0#importNodeList_unparse -15070@6@5@1@0@0$@2@0@0#sortList_unparse -14975@6@5@1@0@0@1@@1@s0@2@0@0#lsymbolSet_unparse -15037@6@5@1@0@0$@2@0@0#sortSet_unparse#sortSet_unparseClean#sortSet_unparseOr -15267@6@5@1@0@0@1@@1@s0@2@0@0#pairNodeList_unparse -16302@6@5@1@0@0$@2@0@0#declaratorInvNode_unparse -15081@6@5@1@0@0$@2@0@0#declaratorInvNodeList_unparse -16258@6@5@1@0@0$@2@0@0#declaratorNode_unparse#declaratorNode_unparseCode -15122@6@5@1@0@0$@2@0@0#declaratorNodeList_unparse -15341@6@5@1@0@0$@2@0@0#varNodeList_unparse -15356@6@5@1@0@0$@2@0@0#quantifierNodeList_unparse -15171@6@5@1@0@0$@2@0@0#storeRefNodeList_unparse -16418@6@5@1@0@0$@2@0@0#modifyNode_unparse -15135@6@5@1@0@0$@2@0@0#letDeclNodeList_unparse -16420@6@5@1@0@0$@2@0@0#programNode_unparse -15319@6@5@1@0@0$@2@0@0#programNodeList_unparse -16298@6@5@1@0@0$@2@0@0#exposedNode_unparse -15054@6@5@1@0@0$@2@0@0#initDeclNodeList_unparse -16130@6@5@1@0@0$@2@0@0#constDeclarationNode_unparse -16126@6@5@1@0@0@1@@1@s0@2@0@0#varDeclarationNode_unparse -15330@6@5@1@0@0@1@@1@s0@2@0@0#varDeclarationNodeList_unparse -2956@6@5@1@0@0$@3@0@0#globalList_unparse -16408@6@5@1@0@0$@2@0@0#claimNode_unparse -16124@6@5@1@0@0$@2@0@0#fcnNode_unparse -15291@6@5@1@0@0$@2@0@0#fcnNodeList_unparse -16122@6@5@1@0@0@1@@1@s0@2@0@0#iterNode_unparse -16304@6@5@1@0@0$@2@0@0#abstBodyNode_unparse#abstBodyNode_unparseExposed -16292@6@5@1@0@0$@2@0@0#abstractNode_unparse -15148@6@5@1@0@0$@2@0@0#stDeclNodeList_unparse -16308@6@5@1@0@0@1@@1@s0@2@0@0#taggedUnionNode_unparse -15607@6@5@1@0@0$@3@0@0#lhType -16128@6@5@1@0@0@1@@1@s0@2@0@0#typeNode_unparse -16242@6@5@1@0@0$@3@0@0#strOrUnionNode_unparse -16236@6@5@1@0@0@1@@1@s0@2@0@0#enumSpecNode_unparse -16218@6@5@1@0@0$@2@0@0#typeNameNode_unparse -15278@6@5@1@0@0$@2@0@0#typeNameNodeList_unparse -16212@6@5@1@0@0@1@@1@s0@2@0@0#opFormNode_unparse -16200@6@5@1@0@0@1@@1@s0@2@0@0#sigNode_unparse#sigNode_unparseText -14992@6@5@1@0@0@1@@1@s0@2@0@0#sigNodeSet_unparse#sigNodeSet_unparsePossibleAritys#sigNodeSet_unparseSomeSigs -16454@6@5@1@0@0@1@@1@s0@2@0@0#signNode_unparse -16196@6@5@1@0@0@1@@1@s0@2@0@0#nameNode_unparse -16426@6@5@1@0@0$@2@0@0#lslOp_unparse -15019@6@5@1@0@0@1@@1@s0@2@0@0#lslOpSet_unparse -16190@6@5@1@0@0$@2@0@0#replaceNode_unparse -15367@6@5@1@0@0$@2@0@0#replaceNodeList_unparse -16184@6@5@1@0@0$@2@0@0#renamingNode_unparse -15256@6@5@1@0@0$@2@0@0#traitRefNodeList_unparse -16112@6@5@1@0@0$@2@0@0#exportNode_unparse -16114@6@5@1@0@0$@2@0@0#privateNode_unparse -16562@6@5@1@0@0$@3@0@0#interfaceNode_unparse -16422@6@2@1@0@0$@2@0@0#stmtNode_unparse -15111@6@5@1@0@0$@2@0@0#sortSetList_unparse -15158@6@5@1@0@0$@2@0@0#lslOpList_unparse -14526@6@5@1@0@0@1@@1@s0@2@0@0#exprNodeList_unparse -9464@6@5@1@0@0@1@@1@s0@2@0@0#cprim_unparse -11888@6@5@1@0@0$@2@0@0#hashTable_stats -14634@6@5@1@0@0$@2@0@0#filelocList_unparse#filelocList_unparseUses -14491@6@5@1@0@0@1@@1@s0@2@0@0#enumNameList_unparse -14495@6@5@1@0@0$@2@0@0#enumNameList_dump#enumNameList_unparseBrief -3986@6@5@1@0@0@1@@1@s0@2@0@0#enumNameSList_unparse -10701@6@5@1@0@0@1@@1@s0@19@3@0#sstate_unparse -10707@6@5@1@0@0@1@@1@s0@19@3@0#nstate_unparse -10721@6@5@1@0@0@1@@1@s0@19@3@0#alkind_capName#alkind_unparse -10717@6@5@1@0@0@1@@1@s0@19@3@0#exkind_capName#exkind_unparse#exkind_unparseError -10739@6@5@1@0@0@1@@1@s0@19@3@0#exitkind_unparse -12181@6@5@1@0@0@1@@1@s0@19@3@0#ekind_capName#ekind_unparse#ekind_unparseLong -12328@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_getTypeEntryName -14853@6@5@1@0@0$@2@0@0#usymIdSet_dump#usymIdSet_unparse -14592@6@5@1@0@0$@2@0@0#uentryList_dumpFields -14590@6@5@1@0@0@1@@1@s0@3@0@0#uentryList_dumpParams#uentryList_unparse#uentryList_unparseAbbrev#uentryList_unparseFull#uentryList_unparseParams -14718@6@5@1@0@0@1@@1@s0@2@0@0#globSet_dump#globSet_unparse -14468@6@5@1@0@0@1@@1@s0@2@0@0#ctypeList_unparse -9531@6@5@1@0@0@1@@1@s0@2@0@0#qtype_unparse -12592@6@5@1@0@0@1@@1@s0@2@0@0#multiVal_dump#multiVal_unparse -12580@6@5@1@0@0@1@@1@s0@18@3@0#multiVal_forceString -9595@6@5@1@0@0@1@@1@s0@3@0@0#specialClause_unparse#specialClause_unparseKind -9620@6@5@1@0@0@1@@1@s0@3@0@0#specialClauses_dump#specialClauses_unparse -10859@6@5@1@0@0@1@@1@s0@3@0@0#constraintTerm_getStringLiteral#constraintTerm_print -11153@6@5@1@0@0@1@@1@s0@2@0@0#arithType_print -11460@6@5@1@0@0@1@@1@s0@19@2@0#exprData_getFieldName#exprData_getId#exprData_getLiteral -14696@6@5@1@0@0$@2@0@0#idDeclList_unparse -12074@6@5@1@0@0@1@@1@s0@2@0@0#flagMarker_unparse -14679@6@5@1@0@0@1@@1@s0@2@0@0#flagMarkerList_unparse -9493@6@5@1@0@0@1@@1@s0@2@0@0#macrocache_unparse -11783@6@5@1@0@0@1@@1@s0@2@0@0#fileTable_unparse -12054@6@5@1@0@0@1@@1@s0@2@0@0#messageLog_unparse -14371@6@5@1@0@0@1@@1@s0@2@0@0#clauseStack_unparse -14542@6@5@1@0@0$@2@0@0#exprNodeSList_unparse -12171@6@5@1@0@0@1@@1@s0@2@0@0#sRefTable_unparse -14392@6@5@1@0@0@1@@1@s0@2@0@0#filelocStack_unparse -14736@6@5@1@0@0$@2@0@0#intSet_unparse#intSet_unparseText -11522@6@2@1@0@0$@2@0@0#cstring_newEmpty -4705@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_unparseAliases#usymtab_unparseStack -13784@6@5@1@0@0@1@@1@s0@2@0@0#context_unparseAccess#context_unparseClauses -13844@6@5@1@0@0$@2@0@0#context_getMessageAnnote#context_unparse#ctype_unparseTable#describeModes#fakeTag -7587@6@5@1@0@0@1@@1@s0@3@0@0#context_unparseFlagMarkers -13852@6@5@1@0@0$@3@0@0#context_getAliasAnnote -14018@6@5@1@0@0$@18@3@0#context_tmpdir -14068@6@5@1@0@0@1@@1@s0@19@3@0#context_getBoolName#context_getDump#context_getFalseName#context_getLCLImportDir#context_getLarchPath#context_getMerge#context_getTrueName#context_inFunctionName#context_moduleName#context_printBoolName -10292@6@5@1@0@0$@19@3@0#LastIdentifier -10226$$$@0#ctype_adjustPointers -12890$@1@@1@s0$@0#sRef_deriveType -10379$$$@0#declareEnum -10176$$$@0#ctype_createStruct#ctype_createUnion -10232$$$@0#ctype_createEnum -10455$$$@0#declareStruct#declareUnion -10062$$$@0#ctype_makeFixedArray -10072$@1@@1@s0$@0#ctype_newBase#ctype_resolveNumerics#ctype_widest -10264$$$@0#ctype_combine#ctype_makeConj#ctype_makeExplicitConj -10082$@1@@1@s0$@0#ctype_makeFunction#ctype_makeNFParamsFunction -10078$$$@0#ctype_makeParamsFunction -10086$$$@0#ctype_makeRealFunction -10220$$$@0#ctype_undump -12892$@1@@1@s0$@0#sRef_getType -12294$@1@s1@1@s1,p0$@0#usymtab_supForwardTypeEntry#usymtab_supTypeEntry -9282$@1@s1@1@$@0#uentry_getForceRealType#uentry_getRealType -9278$@1@@1@s0$@0#uentry_getAbstractType#uentry_getType -10513$@1@@1@s0$@0#idDecl_getCtype -6853$@1@@1@s0$@0#exprNode_getType -10252$@1@@1@s0$@0#ctype_createForwardStruct#ctype_createForwardUnion -10463$$$@0#handleEnum#handleStruct#handleUnion -12440$@1@s1@1@$@0#usymtab_lookupAbstractType#usymtab_lookupType -10066$@1@@1@s0$@0#ctype_baseArrayPtr#ctype_getBaseType#ctype_realType#ctype_realishType#ctype_removePointers#ctype_resolve#ctype_returnValue -10084$$$@0#ctype_expectFunction#ctype_fixArrayPtr#ctype_forceRealType#ctype_makeArray#ctype_makePointer -10268$$$@0#ctype_fromQual -10377$$$@0#declareUnnamedEnum -12448$@1@s1@1@$@0#usymtab_enumEnumNameListType -10040$@1@@1@s0$@0#ctype_createAbstract -10038$$$@0#ctype_createUser -10248$$$@0#ctype_createUnnamedStruct#ctype_createUnnamedUnion#declareUnnamedStruct#declareUnnamedUnion -12442$@1@s1@1@$@0#usymtab_structFieldsType#usymtab_unionFieldsType -5003$$$@0#qtype_getType -8002$@1@@1@s0$@0#context_boolImplementationType#context_currentFunctionType#context_getRetType -13888$$$@0#context_typeofOne#context_typeofZero -9563$@1@@1@s0@3@0@0#specialClause_getPostTestFunction#specialClause_getPreTestFunction -9569@6@5@1@0@0@1@@1@s0@3@0@0#specialClause_getEffectFunction#specialClause_getEntryFunction#specialClause_getReturnEffectFunction -9565$@1@@1@s0@3@0@0#specialClause_getPostTestShower -11554$@1@@1@s0$@0#cstring_genericEqual -14685$@1@@1@s0$@0#flagMarkerList_suppressError -1309$@1@@1@s0$@0#ynm_fromBool -12137$@1@@1@s0$@0#ynm_fromCodeChar -13022$@1@@1@s0$@0#sRef_isReadable#sRef_isWriteable -12068$@1@@1@s0$@0#flagMarker_getSet -11804$@0@@1@p0$@0#fileTable_addFileOnly -11802$@0@@1@p0$@0#fileTable_addFile#fileTable_addHeaderFile#fileTable_addLCLFile#fileTable_addLibraryFile -11828$@1@@1@s0$@0#fileTable_lookup -11816$@0@@1@p0$@0#fileTable_addImportFile#fileTable_lookupBase -11822$@0@@1@p0$@0#fileTable_addCTempFile -1443$@1@@1@s0$@0#fileloc_fileId -11820$@0@@1@p0$@0#fileTable_addMacrosFile -11824$$$@0#fileTable_addltemp -1475$@1@g2996@0@5@1@$@0#currentFile -9507$@1@@1@s0$@0#qual_fromInt -9192$$$@0#uentry_nullPred -1666$@1@@1@s0$@0#qual_createAbstract#qual_createAuto#qual_createCheckMod#qual_createChecked#qual_createCheckedStrict#qual_createConcrete#qual_createConst#qual_createDependent#qual_createExits#qual_createExposed#qual_createExtern#qual_createExternal#qual_createFalseExit#qual_createFalseNull#qual_createImmutable#qual_createImpOnly#qual_createIn#qual_createInline#qual_createKeep#qual_createKept#qual_createKillRef#qual_createKilled#qual_createLong#qual_createMayExit#qual_createMessageLike#qual_createMutable#qual_createNeverExit#qual_createNewRef#qual_createNotNull#qual_createNull#qual_createNullTerminated#qual_createObserver#qual_createOnly#qual_createOut#qual_createOwned#qual_createPartial#qual_createPrintfLike#qual_createRefCounted#qual_createRefs#qual_createRegister#qual_createRelDef#qual_createRelNull#qual_createReturned#qual_createScanfLike#qual_createSef#qual_createShared#qual_createShort#qual_createSigned#qual_createSpecial#qual_createStatic#qual_createTemp#qual_createTempRef#qual_createTrueExit#qual_createTrueNull#qual_createUnchecked#qual_createUndef#qual_createUnique#qual_createUnknown#qual_createUnsigned#qual_createUnused#qual_createVolatile#qual_createYield -12636$@0@@1@s0$@0#lltok_create -11468$@1@@1@s0@19@3@0#exprData_getCastTok#exprData_getOpTok#exprData_getTok#exprData_getUopTok -14363$@1@@1@s0$@0#clauseStack_top -13712$$$@0#context_breakClause#context_nextBreakClause -14434@6@5@1@0@0@0@@1@p0$@0#cstringSList_add -14432@6@5@1@0@0@1@@1@s0@2@0@0#cstringSList_single -1862@6@5@1@0@0@1@@1@s0@2@0@0#cstringSList_new -14408@6@5@1@0@0@0@@1@p0$@0#cstringList_add -14406@6@5@1@0@0@1@@1@s0@2@0@0#cstringList_single -11482@6@5@1@0@0@1@@1@s0@19@2@0#exprData_getOffsetName -1892@6@5@1@0@0@1@@1@s0@2@0@0#cstringList_new -14165$$$@0#identifyFlag -9577$@1@@1@s0$@0#specialClause_postErrorCode#specialClause_preErrorCode -12070$@1@@1@s0$@0#flagMarker_getCode -7602$@1@@1@s0$@0#context_getLibrary -14141$@1@@1@s0$@0#identifyCategory -11757$@1@@1@s0@3@0@0#tsource_create -11760$@1@@1@s0@3@0@0#tsource_fromString -17467$@1@@1@s0@19@2@0#LCLScanSource#LSLScanSource -14650@6@5@1@0@0@0@@1@p0$@0#qualList_add -14652@6@5@1@0@0$$@0#qualList_appendList -10515@6@5@1@0@0@1@@1@s0@19@2@0#idDecl_getQuals -14654@6@5@1@0@0$@3@0@0#qualList_copy -5005@6@5@1@0@0$@19@2@0#qtype_getQuals -2167@6@5@1@0@0@1@@1@s0@3@0@0#qualList_new -17519$$@2@0@0#mapping_create -16934$@1@@1@s0@19@3@0#sort_lookup#sort_quietLookup -2317$$$@0#fixBits -16346$$@2@0@0#makeParamNode -16472$$$@0#markYieldParamNode -16524@6@5@1@0@0$@3@0@0#paramNode_copy -16348$$@2@0@0#paramNode_elipsis -15302@6@5@1@0@0$$@0#paramNodeList_add -15298@6@5@1@0@0$@2@0@0#paramNodeList_single -15304@6@5@1@0@0$@2@0@0#paramNodeList_copy -2357@6@5@1@0@0$@2@0@0#paramNodeList_new -15225@6@5@1@0@0$$@0#ltokenList_push -15221@6@2@1@0@0$@2@0@0#ltokenList_singleton -15239@6@5@1@0@0@1@@1@s0@2@0@0#ltokenList_copy -2494@6@2@1@0@0@1@@1@s0@2@0@0#ltokenList_new -16164$$@2@0@0#importNode_makeBracketed#importNode_makePlain#importNode_makeQuoted -15376$$$@0#importNodeList_add -2558$$@2@0@0#importNodeList_new -16466$$@2@0@0#sigNode_domain -2572$$@2@0@0#sortList_new -2592$$@2@0@0#lsymbolList_new -2605@6@5@1@0@0@1@@1@s0@2@0@0#lsymbolSet_new -15045@6@5@1@0@0$@2@0@0#sortSet_copy -15109@6@5@1@0@0$@19@3@0#sortSetList_current#sortSetList_head -2624@6@5@1@0@0$@2@0@0#sortSet_new -2656@6@5@1@0@0@1@@1@s0@2@0@0#pairNodeList_new -16300$$@2@0@0#makeDeclaratorInvNode -15079$$$@0#declaratorInvNodeList_add -2683$$@2@0@0#declaratorInvNodeList_new -16252$$@2@0@0#makeDeclaratorNode -16260$$@2@0@0#declaratorNode_copy -15120$$$@0#declaratorNodeList_add -15124$$@3@0@0#declaratorNodeList_copy -2723$$@2@0@0#declaratorNodeList_new -16332$$@2@0@0#makeArrayQualNode -16334$$@2@0@0#makeVarNode -16550$$@3@0@0#varNode_copy -15339$$$@0#varNodeList_add -15345$$@3@0@0#varNodeList_copy -2752$$@2@0@0#varNodeList_new -16330$$@2@0@0#makeQuantifierNode -16530$$@3@0@0#quantifierNode_copy -15352$$$@0#quantifierNodeList_add -15354$$@2@0@0#quantifierNodeList_copy -2777$$@2@0@0#quantifierNodeList_new -16134$$@2@0@0#makeStoreRefNodeType -16132$$@2@0@0#makeStoreRefNodeTerm -16536$$@3@0@0#storeRefNode_copy -16136$$@3@0@0#makeStoreRefNodeInternal#makeStoreRefNodeSystem -15167$$$@0#storeRefNodeList_add -15169$$@2@0@0#storeRefNodeList_copy -2815$$@2@0@0#storeRefNodeList_new -16140$$@2@0@0#makeModifyNodeSpecial -16142$$@2@0@0#makeModifyNodeRef -16152$$@2@0@0#makeLetDeclNode -15133$$$@0#letDeclNodeList_add -2844$$@2@0@0#letDeclNodeList_new -16154$$@2@0@0#makeProgramNodeAction -16156$$@2@0@0#makeProgramNode -2873$$@2@0@0#programNodeList_new -16328$$@2@0@0#makeLclPredicateNode -16324$$@2@0@0#makeChecksNode#makeEnsuresNode#makeIntraClaimNode#makeRequiresNode -16296$$@2@0@0#makeExposedNode -16436$$@2@0@0#makeCTypesNode -16438$$@2@0@0#makeTypeSpecifier -16288$$@2@0@0#makeInitDeclNode -15052$$$@0#initDeclNodeList_add -2915$$@2@0@0#initDeclNodeList_new -16280$$@2@0@0#makeConstDeclarationNode -16286$$@2@0@0#makeVarDeclarationNode -16284$$@3@0@0#makeFileSystemNode#makeInternalStateNode -2947$@1@@1@s0@2@0@0#varDeclarationNodeList_new -16318$$@2@0@0#makeClaimNode -16316$$@2@0@0#makeFcnNode -16312$$@2@0@0#fcnNode_fromDeclarator -15289@6@5@1@0@0$$@0#fcnNodeList_add -2989@6@5@1@0@0$@2@0@0#fcnNodeList_new -16314$$@2@0@0#makeIterNode -16340$$@2@0@0#makeAbstBodyNode2 -16338$$@2@0@0#makeExposedBodyNode -16336$$@2@0@0#makeAbstBodyNode -16290$$@2@0@0#makeAbstractNode -16244$$@2@0@0#makestDeclNode -16540$$@3@0@0#stDeclNode_copy -15144$$$@0#stDeclNodeList_add -15146$$@2@0@0#stDeclNodeList_copy -3030$$@2@0@0#stDeclNodeList_new -16160$@1@@1@s0@2@0@0#makeExposedTypeNode -16158$@1@@1@s0@2@0@0#makeAbstractTypeNode -16238$$@2@0@0#makestrOrUnionNode -16240$$@2@0@0#makeForwardstrOrUnionNode -16232$$@2@0@0#makeEnumSpecNode -16234$$@2@0@0#makeEnumSpecNode2 -16214$@1@@1@s0@2@0@0#makeTypeNameNode -16216$@1@@1@s0@2@0@0#makeTypeNameNodeOp -15276$$$@0#typeNameNodeList_add -3111$$@2@0@0#typeNameNodeList_new -16470$$$@0#opFormUnion_createMiddle -16468$$$@0#opFormUnion_createAnyOp -16208$@1@@1@s0@2@0@0#makeOpFormNode -16198$@1@@1@s0@2@0@0#makesigNode -16502$@1@@1@s0@2@0@0#sigNode_copy -17197@6@5@1@0@0$@19@3@0#symtable_possibleOps -14984@6@5@1@0@0@1@@1@s0@2@0@0#sigNodeSet_singleton -3161@6@5@1@0@0@1@@1@s0@2@0@0#sigNodeSet_new -16194$@1@@1@s0@2@0@0#makeNameNodeId -16192$@1@@1@s0@2@0@0#makeNameNodeForm -16506$@1@@1@s0@2@0@0#nameNode_copySafe -16504@6@5@1@0@0@1@@1@s0@2@0@0#nameNode_copy -15543$$@2@0@0#parseOpLine -16424$$@2@0@0#makelslOpNode -16500$$@2@0@0#lslOp_copy -17203@6@5@1@0@0$@2@0@0#symtable_opsWithLegalDomain -15021@6@5@1@0@0@1@@1@s0@2@0@0#lslOpSet_copy -3215@6@5@1@0@0@1@@1@s0@2@0@0#lslOpSet_new -16188$@1@@1@s0@2@0@0#makeReplaceNode -16186$@1@@1@s0@2@0@0#makeReplaceNameNode -15365$$$@0#replaceNodeList_add -3248$$@2@0@0#replaceNodeList_new -16182$@1@@1@s0@2@0@0#makeRenamingNode -16174$@1@@1@s0@2@0@0#makeTraitRefNode -15254$$$@0#traitRefNodeList_add -3281$$@2@0@0#traitRefNodeList_new -16088$$@2@0@0#makeInterfaceNodeImports -16092$@1@@1@s0@2@0@0#interfaceNode_makeConst#interfaceNode_makePrivConst -16106$@1@@1@s0@2@0@0#interfaceNode_makePrivVar#interfaceNode_makeVar -16100$@1@@1@s0@2@0@0#interfaceNode_makeClaim -16098$@1@@1@s0@2@0@0#interfaceNode_makeFcn#interfaceNode_makePrivFcn -16102$@1@@1@s0@2@0@0#interfaceNode_makeIter -16108$@1@@1@s0@2@0@0#interfaceNode_makePrivType#interfaceNode_makeType -16090$@1@@1@s0@2@0@0#makeInterfaceNodeUses -16086$$$@0#consInterfaceNode -15090$$$@0#interfaceNodeList_addh -3331$$@2@0@0#interfaceNodeList_new -16342$$@2@0@0#makeStmtNode -3403$$@2@0@0#sortSetList_new -3425$$@2@0@0#lslOpList_new -17116@6@5@1@0@0$@19@3@0#symtable_typeInfo -17118@6@5@1@0@0$@19@3@0#symtable_varInfo#symtable_varInfoInScope -17098@6@5@1@0@0$@19@3@0#symtable_opInfo -17100@6@5@1@0@0$@19@3@0#symtable_tagInfo -17083$@1@@1@s0@2@0@0#symtable_new -14522$$$@0#exprNodeList_push -14520$$@2@0@0#exprNodeList_singleton -11440$@1@@1@s0@19@2@0#exprData_getArgs#exprData_getIterAlist#exprData_getIterCallArgs -3826$$@2@0@0#exprNodeList_new -9454$$$@0#cprim_fromInt -4935$@1@@1@s0$@0#ctype_toCprim -11883$$@2@0@0#hashTable_create -14630@6@5@1@0@0@0@@1@p0$@0#filelocList_addDifferentFile -14632@6@5@1@0@0@0@@1@p0$@0#filelocList_add -14624@6@5@1@0@0$$@0#filelocList_append -5664@6@5@1@0@0@1@@1@s0@19@3@0#uentry_getUses -14626@6@5@1@0@0@0@@1@p0$@0#filelocList_addUndefined -3921@6@5@1@0@0@1@@1@s0@2@0@0#filelocList_new -3936@6@5@1@0@0@1@@1@s0@2@0@0#enumName_create -14489$@1@@1@s0@2@0@0#enumNameList_subtract -14483$$$@0#enumNameList_push -10228$@1@@1@s0@19@3@0#ctype_elist -14475$@1@@1@s0@2@0@0#enumNameList_single -14485$@1@@1@s0@2@0@0#enumNameList_copy -14497$$@2@0@0#enumNameList_undump -3947$$@2@0@0#enumNameList_new -3976$$@2@0@0#enumNameSList_subtract -3978$$@2@0@0#enumNameSList_new -10697$@1@@1@s0$@0#sstate_fromInt -13032$@1@@1@s0$@0#sRef_getDefState -9182$$$@0#uentry_getDefState -10725$@1@@1@s0$@0#sstate_fromQual -10695$@1@@1@s0$@0#nstate_fromInt -5773$@1@@1@s0$@0#sRef_getNullState -10711$@1@@1@s0$@0#alkind_derive#alkind_resolve -10693$@1@@1@s0$@0#alkind_fromInt -5805$@1@@1@s0$@0#sRef_getAliasKind#sRef_getOrigAliasKind -9196$@1@@1@s0$@0#uentry_getAliasKind -10729$@1@@1@s0$@0#alkind_fromQual -10737$@1@@1@s0$@0#alkind_fixImplicit -10699$@1@@1@s0$@0#exkind_fromInt -13046$@1@@1@s0$@0#sRef_getExKind#sRef_getOrigExKind -9198$@1@@1@s0$@0#uentry_getExpKind -10723$@1@@1@s0$@0#exkind_fromQual -10743$@1@@1@s0$@0#exitkind_combine -10753$@1@@1@s0$@0#exitkind_fromInt -9190$@1@@1@s0$@0#uentry_getExitCode -10727$@1@@1@s0$@0#exitkind_fromQual -10741$@1@@1@s0$@0#exitkind_makeConditional -12175$@1@@1@s0$@0#ekind_fromInt -9214$@1@@1@s0$@0#uentry_getKind -12290$@1@s1@1@s1,p0$@0#usymtab_supAbstractTypeEntry#usymtab_supExposedTypeEntry -4588$@1@@1@s0$@0#usymId_fromInt -13002$@1@@1@s0$@0#sRef_getScopeIndex -12268$@1@s1@1@s1,p0$@0#usymtab_addEntry -12316$@1@s1@1@$@0#usymtab_getId#usymtab_getTypeId -12336$@1@s1@1@$@0#usymtab_convertId -4600$$$@0#typeId_fromInt -10210$$$@0#ctype_typeId -14843@6@5@1@0@0$@2@0@0#usymIdSet_removeFresh -14841@6@5@1@0@0@1@@1@s0@3@0@0#usymIdSet_add -14845@6@5@1@0@0@1@@1@s0@3@0@0#usymIdSet_newUnion -14847@6@5@1@0@0$@3@0@0#usymIdSet_subtract -14855@6@5@1@0@0$@3@0@0#usymIdSet_undump -14835@6@5@1@0@0$@2@0@0#usymIdSet_single -4265@6@5@1@0@0$@3@0@0#usymIdSet_new -14594@6@5@1@0@0$@2@0@0#uentryList_undumpFields -14612@6@5@1@0@0$@3@0@0#uentryList_mergeFields -14554@6@5@1@0@0@0@@1@p0$@0#uentryList_add -10409@6@5@1@0@0$@3@0@0#fixUentryList -14596@6@5@1@0@0@0@@1@tp0@3@0@0#uentryList_undump -14548@6@5@1@0@0@1@@1@s0@2@0@0#uentryList_single -9218@6@5@1@0@0@1@@1@s0@19@3@0#uentry_getParams -10070@6@5@1@0@0@1@@1@s0@19@3@0#ctype_argsFunction#ctype_getFields#ctype_getParams -14570@6@5@1@0@0@1@@1@s0@2@0@0#uentryList_copy -10477@6@5@1@0@0$@18@0@0#handleParamIdList#handleParamTypeList -10411@6@5@1@0@0@1@@1@s0@3@0@0#fixUnnamedDecl -4316@6@2@1@0@0$@2@0@0#uentryList_new -4306@6@5@1@0@0$@2@0@0#uentryList_makeMissingParams -13824@6@5@1@0@0$@19@3@0#context_getParams -14704@6@5@1@0@0@0@@1@p0$@0#globSet_insert -14706@6@5@1@0@0@0@@1@p0$@0#globSet_copy -14720@6@5@1@0@0@0@@1@tp0@2@0@0#globSet_undump -9210@6@5@1@0@0@1@@1@s0@19@3@0#uentry_getGlobs -14708@6@5@1@0@0@1@@1@s0@2@0@0#globSet_newCopy -4386@6@5@1@0@0@1@@1@s0@2@0@0#globSet_new -13830@6@5@1@0@0@1@@1@s0@19@3@0#context_getGlobs -13826@6@5@1@0@0$@19@3@0#context_getUsedGlobs -4423@6@5@1@0@0$@2@0@0#ctypeList_new -10022$@1@@1@s0$@0#ctkind_fromInt -9527@6@5@1@0@0$$@0#qtype_combine#qtype_newBase -9517@6@5@1@0@0$$@0#qtype_addQual -9519@6@5@1@0@0$$@0#qtype_addQualList -9525@6@5@1@0@0$$@0#qtype_mergeAlt#qtype_mergeImplicitAlt -9535@6@5@1@0@0$$@0#qtype_newQbase -10511@6@5@1@0@0$@19@2@0#idDecl_getTyp -9511@6@2@1@0@0@1@@1@s0@3@0@0#qtype_create -9539@6@5@1@0@0$@2@0@0#qtype_copy -9529@6@5@1@0@0$$@0#qtype_resolve -11470@6@5@1@0@0@1@@1@s0@19@2@0#exprData_getCastType#exprData_getOffsetType#exprData_getType -5017@6@5@1@0@0@1@@1@s0@2@0@0#qtype_unknown -12564@6@5@1@0@0@1@@1@s0@2@0@0#multiVal_makeChar -12562@6@5@1@0@0@1@@1@s0@2@0@0#multiVal_makeInt -12566@6@5@1@0@0@1@@1@s0@2@0@0#multiVal_makeDouble -12594@6@5@1@0@0@0@@1@tp0@2@0@0#multiVal_undump -9216@6@5@1@0@0@1@@1@s0@19@3@0#uentry_getConstantValue -17676@6@5@1@0@0@1@@1@s0@19@2@0#exprNode_getValue -12568@6@5@1@0@0@1@@1@s0@2@0@0#multiVal_makeString -12570@6@5@1@0@0@1@@1@s0@2@0@0#multiVal_copy -12572@6@5@1@0@0@1@@1@s0@3@0@0#multiVal_invert -5099@6@5@1@0@0@1@@1@s0@2@0@0#multiVal_unknown -9553$@1@@1@s0@3@0@0#specialClause_create -9605$@1@@1@s0@3@0@0#specialClause_createAllocates#specialClause_createDefines#specialClause_createReleases#specialClause_createSets#specialClause_createUses -9612@6@5@1@0@0@0@@1@p0$@0#specialClauses_add -9622@6@5@1@0@0@0@@1@tp0@3@0@0#specialClauses_undump -9116@6@5@1@0@0@1@@1@s0@19@3@0#uentry_getSpecialClauses -9616@6@5@1@0@0@1@@1@s0@2@0@0#specialClauses_copy -13456$$$@0#sRef_getNullTerminatedState -10865$$$@0#constraintTerm_getKind -10875$@0@@1@p0$@0#constraintTerm_setFileloc -10879$@0@@1@p0$@0#constraintTerm_doSRefFixBaseParam -10883$@1@@1@s0@3@0@0#constraintTerm_makeIntLiteral -10899$$@2@0@0#constraintTerm_undump -10871$@1@@1@s0@3@0@0#constraintTerm_makesRef -10869$@1@@1@s0@2@0@0#constraintTerm_makeExprNode -10873$@1@@1@s0@3@0@0#constraintTerm_copy -10861$@0@@1@p0$@0#constraintTerm_simplify -10915$@1@@1@s0@19@3@0#constraintExprData_termGetTerm -10925$@1@@1@s0$@0#constraintExprData_binaryExprGetOp -10917$@1@@1@s0$@0#constraintExprData_unaryExprGetOp -10931$$$@0#constraintExprData_binaryExprSetExpr1#constraintExprData_binaryExprSetExpr2#constraintExprData_unaryExprSetExpr -10913@11@0@1@0@0$$@0#constraintExprData_termSetTerm -10935$$$@0#constraintExprData_binaryExprSetOp -10921$$$@0#constraintExprData_unaryExprSetOp -10903$$@2@0@0#constraintExprData_copyBinaryExpr#constraintExprData_copyTerm#constraintExprData_copyUnaryExpr -11494@6@5@1@0@0$@2@0@0#exprData_makeIter -11512@6@5@1@0@0$@2@0@0#exprData_makeCond#exprData_makeFor#exprData_makeTriple -11486@6@5@1@0@0$@2@0@0#exprData_makeOp -11508@6@5@1@0@0$@2@0@0#exprData_makeCast -11500@6@5@1@0@0$@2@0@0#exprData_makeIterCall -11510@6@5@1@0@0$@2@0@0#exprData_makeInit -11520@6@5@1@0@0$@2@0@0#exprData_makePair -11502@6@5@1@0@0$@2@0@0#exprData_makeField -11488@6@5@1@0@0$@2@0@0#exprData_makeUop -11498@6@5@1@0@0$@2@0@0#exprData_makeCall -11504@6@5@1@0@0$@2@0@0#exprData_makeOffsetof -11518@6@5@1@0@0$@2@0@0#exprData_makeId -11490@6@5@1@0@0$@2@0@0#exprData_makeSingle -11516@6@5@1@0@0$@2@0@0#exprData_makeLiteral -11492@6@5@1@0@0$@2@0@0#exprData_makeTok -11506@6@5@1@0@0$@2@0@0#exprData_makeSizeofType -14694$$$@0#idDeclList_add -14689$$@2@0@0#idDeclList_singleton -14456@6@5@1@0@0@0@@1@p0$@0#sRefSetList_add -12058$@1@@1@s0@3@0@0#flagMarker_createLocalSet -12064$@1@@1@s0@3@0@0#flagMarker_createIgnoreCount -12060$@1@@1@s0@3@0@0#flagMarker_createSuppress -12066$@1@@1@s0@3@0@0#flagMarker_createIgnoreOff#flagMarker_createIgnoreOn -7410$@1@@1@s0@2@0@0#flagMarkerList_new -9478$@1@@1@s0@2@0@0#macrocache_create -7481@6@2@1@0@0@1@@1@s0@2@0@0#fileTable_create -14016@6@5@1@0@0@1@@1@s0@18@2@0#context_fileTable -7539@6@5@1@0@0@1@@1@s0@2@0@0#messageLog_new -14020@6@5@1@0@0$@19@2@0#context_messageLog -7557$@1@@1@s0@2@0@0#clauseStack_new -8601$$$@0#cppGetToken -8509$@0@@1@p0@19@2@0#cppReader_popBuffer -8522@6@5@1@0@0$@19@2@0#cppReader_fileBuffer -8645$@0@@1@s0@19@2@0@2.0.fbuffer.tp0$#cppReader_getBufferSafe#cppReader_nullBuffer -8667$@1@@1@s0@19@2@0#cppBuffer_prevBuffer -8741$$@19@2@0#cppReader_install -8744$$@19@2@0#cppReader_installMacro -8733@6@5@1@0@0$@19@2@0#cppReader_lookup#cppReader_lookupExpand -8083$$@18@2@0@2.0.fopts.tp0$#CPPOPTIONS -8682$$@3@0@0#cppReader_parseNumber -14326$@0@@1@tp2$@0#osd_getExePath#osd_getPath -14320$@0@@1@tp1$@0#osd_findOnLarchPath -14538$$$@0#exprNodeSList_append -14540$$@2@0@0#exprNodeSList_singleton -10837$$@2@0@0#exprNodeSList_new -11629@6@5@1@0@0$@3@0@0#fileIdList_create -12165@6@5@1@0@0@0@@1@p0$@0#sRefTable_add -13527@6@5@1@0@0@1@@1@s0@2@0@0#filelocStack_new -13542$$@2@0@0#intSet_new -16727$@1@@1@s0$@0#LCLScanCharClass -15514$$$@0#lscanCharClass -18257$$@3@0@0#yy_scan_bytes -18251$$@3@0@0#yy_scan_buffer -18237$$@3@0@0#yy_create_buffer -18254$$@3@0@0#yy_scan_string -200@6@5@1@0@0@0@s1,g2937@0@0@1@s1,g2937$@0#signal -621$@0@@1@tp0$@0#memset -572$@0@@1@tp0$@0#memmove -569$@0@@1@tp0$@0#memcpy -585$@0@@1@tp0$@0#strncat -579$@0@@1@tp0$@0#strncpy -582$@0@@1@tp0$@0#strcat#strcpy -450$@0@@1@tp0$@0#wcsncat#wcsncpy -428$@0@@1@tp0$@0#wcscat#wcscpy -1988$$$@0#check -11348$$$@0#exprNode_generateConstraints -515$@1@@1@s0$@0#iswctype -506$@1@@1@s0$@0#iswalnum#iswalpha#iswcntrl#iswdigit#iswgraph#iswlower#iswprint#iswpunct#iswspace#iswupper#iswxdigit -75$@1@@1@s0$@0#isalnum#isalpha#iscntrl#isdigit#isgraph#islower#isprint#ispunct#isspace#isupper#isxdigit -113$@1@@1@s0$@0#tolower#toupper -248@6@0@1@1@0@0@@1@tp0$@0#sprintf -238@6@0@1@1@0@0@s3@1@s3,tp0$@0#fprintf -243@6@0@1@1@0@1@g2954@0@0,s3@1@s3,tg2954$@0#printf -8478$$$@0#cppSkipHspace -545$@1@@1@s0$@0#towctrans -548$@1@@1@s0$@0#towlower#towupper -*5 (Iterator) -4447@35#aliasTable_elements -3350@16#termNodeList_elements -4601@27#usymtab_entries -4131@33#sRefSet_allElements#sRefSet_elements#sRefSet_realElements -11186@41#constraintList_elements_private -6748@41#constraintList_elements -1258@45#cstring_chars -1877@50#cstringSList_elements -1907@51#cstringList_elements -2161@52#qualList_elements -2347@54#paramNodeList_elements -2482@56#ltokenList_elements -2556@57#importNodeList_elements -2590@59#lsymbolList_elements -2603@60#lsymbolSet_elements -2618@61#sortSet_elements -2652@62#pairNodeList_elements -2679@63#declaratorInvNodeList_elements -2721@65#declaratorNodeList_elements -2750@66#varNodeList_elements -2775@67#quantifierNodeList_elements -2813@68#storeRefNodeList_elements -2842@69#letDeclNodeList_elements -2871@70#programNodeList_elements -2913@71#initDeclNodeList_elements -2945@72#varDeclarationNodeList_elements -2979@73#fcnNodeList_elements -3026@74#stDeclNodeList_elements -3105@76#typeNameNodeList_elements -3151@77#sigNodeSet_elements -3209@78#lslOpSet_elements -3242@79#replaceNodeList_elements -3279@80#traitRefNodeList_elements -3329@81#interfaceNodeList_elements -3399@83#sortSetList_elements -3820@85#exprNodeList_elements -3911@87#filelocList_elements -3943@88#enumNameList_elements -4292@91#usymIdSet_elements -4300@92#uentryList_elements -4380@93#globSet_allElements -5154@98#specialClauses_elements#specialClauses_postElements#specialClauses_preElements -7192@102#idDeclList_elements -7347@103#sRefSetList_elements -7551@107#clauseStack_elements -10835@133#exprNodeSList_elements -11627@150#fileIdList_elements -13540@175#intSet_elements -14107@0#allModes -1911@0#allFlagCodes#excludeFlagCodes -14105@0#allFlags -*6 (Iterator finalizer) -0@0#end_allFlagCodes#end_allFlags#end_allModes#end_excludeFlagCodes -0@16#end_termNodeList_elements -0@27#end_usymtab_entries -0@33#end_sRefSet_allElements#end_sRefSet_elements#end_sRefSet_realElements -0@35#end_aliasTable_elements -0@41#end_constraintList_elements#end_constraintList_elements_private -0@45#end_cstring_chars -0@50#end_cstringSList_elements -0@51#end_cstringList_elements -0@52#end_qualList_elements -0@54#end_paramNodeList_elements -0@56#end_ltokenList_elements -0@57#end_importNodeList_elements -0@59#end_lsymbolList_elements -0@60#end_lsymbolSet_elements -0@61#end_sortSet_elements -0@62#end_pairNodeList_elements -0@63#end_declaratorInvNodeList_elements -0@65#end_declaratorNodeList_elements -0@66#end_varNodeList_elements -0@67#end_quantifierNodeList_elements -0@68#end_storeRefNodeList_elements -0@69#end_letDeclNodeList_elements -0@70#end_programNodeList_elements -0@71#end_initDeclNodeList_elements -0@72#end_varDeclarationNodeList_elements -0@73#end_fcnNodeList_elements -0@74#end_stDeclNodeList_elements -0@76#end_typeNameNodeList_elements -0@77#end_sigNodeSet_elements -0@78#end_lslOpSet_elements -0@79#end_replaceNodeList_elements -0@80#end_traitRefNodeList_elements -0@81#end_interfaceNodeList_elements -0@83#end_sortSetList_elements -0@85#end_exprNodeList_elements -0@87#end_filelocList_elements -0@88#end_enumNameList_elements -0@91#end_usymIdSet_elements -0@92#end_uentryList_elements -0@93#end_globSet_allElements -0@98#end_specialClauses_elements#end_specialClauses_postElements#end_specialClauses_preElements -0@102#end_idDeclList_elements -0@103#end_sRefSetList_elements -0@107#end_clauseStack_elements -0@133#end_exprNodeSList_elements -0@150#end_fileIdList_elements -0@175#end_intSet_elements +^17 211|@1|6@0@0@0@1#stdin#stdout +*1 (Constant) +^19 5$#EDOM#ERANGE#EILSEQ +*3 (Variable) +^22 5|@1|6@0@0@0@1#errno +*0 (Datatype) +^23 13@-@-@0@0@0@0@62#ptrdiff_t +^24 14@-@-@0@0@0@0@63#size_t +^25 15@-@-@0@0@0@0@64#ssize_t +^26 13@-@-@0@0@0@0@65#wchar_t +^27 13@-@-@0@0@0@0@66#wint_t +^28 0@+@=@0@7@0@0@67#mbstate_t +*1 (Constant) +^29 0@i0@0@6#NULL +^30 2$#NDEBUG +*4 (Function) +^31 72@6@0@8@0@0^$@0#assert +^32 76$^$@0#isalnum +^33 79$^$@0#isalpha +^34 82$^$@0#iscntrl +^35 85$^$@0#isdigit +^36 89$^$@0#isgraph +^37 93$^$@0#islower +^38 96$^$@0#isprint +^39 99$^$@0#ispunct +^40 102$^$@0#isspace +^41 106$^$@0#isupper +^42 110$^$@0#isxdigit +^43 114$^$@0#tolower +^44 117$^$@0#toupper *7 (Struct tag) -0@2527#@_functionTermNode -0@8060#@cpp_pending -5243@5244#@_ueinfo -662@663#@dirent -3733@3734#@_scopeInfo -17475@17476#@!105 -5731@5732#@_cjinfo -6798@6799#@_exprPair -6826@6827#@_exprUop -3071@3072#@_lclconj -926@927#@utimbuf -9757@9758#@_tfixed -15436@15437#@!97 -2195@2196#@!11 -3740@3738#@_htEntry -2665@2666#@_declaratorInvNode -2899@2900#@_initDeclNode -2693@2694#@!19 -6834@6835#@_exprInit -6450@6451#@constraintExprUnaryOp_ -15584@15585#@!99 -6810@6811#@_exprCall -13557@13558#@!89 -5036@958#@_idDecl -3184@2530#@_nameNode -3261@3262#@_renamingNode -6814@6815#@_exprIterCall -3877@3878#@_hentry -2539@2531#@_importNode -2791@2792#@_storeRefNode -3047@3048#@_typeNode -3293@3294#@_exportNode -3304@3305#@_privateNode -3315@3316#@_interfaceNode -3727@3728#@!50 -5072@5073#@_multiVal -6502@985#@_constraintExpr -17022@17023#@!104 -3012@3013#@_stDeclNode -4477@4478#@_refentry -5719@5720#@_cref -7526@7527#@_msgentry -18272@18273#@skeyword -2996@2997#@_iterNode -9745@9746#@_tsu -3712@3713#@_opInfo -3195@3196#@_lslOp -3224@3225#@!37 -3255@3256#@_nameAndReplaceNode -8683@8684#@token -15650@15651#@!100 -6794@6795#@_exprOffsetof -364@365#@!2 -371@372#@!3 -5727@5728#@_fldinfo -6822@6823#@_exprField -2695@2696#@!20 -2641@2532#@_pairNode -3039@3040#@_taggedUnionNode -9753@9754#@_tenum -6340@967#@_guardSet -1777@1778#@_lltok -2732@2733#@_arrayQualNode -3267@3268#@_traitRefNode -2922@2923#@_constDeclarationNode -4994@4995#@_qtype -9764@9631#@__ctbase -5207@5208#@_ucinfo -6818@6819#@_exprOp -9749@9750#@_tconj -5228@5229#@_udinfo -5239@5240#@_uiinfo -5723@5724#@_ainfo -8042@8040#@parse_marker -5220@5221#@_bbufinfo -3746@3747#@!52 -8107@8103#@macrodef -2190@2188#@_mappair -13536@13537#@_intSet -2614@2615#@_sortSet -2597@2598#@_lsymbolSet -3147@3148#@_sigNodeSet -3205@3206#@_lslOpSet -4128@970#@_sRefSet -4260@4261#@_usymIdSet -12142@12143#@_sRefTable -6830@6831#@_exprCast -6447@6448#@constraintExprBinaryOp_ -8438@8439#@default_include -684@685#@group -2709@2525#@_declaratorNode -17030@3749#@_symtableStruct -2895@2896#@_CTypesNode -3086@3087#@_typeNamePack -3091@3092#@_typeNameNode -14093@14094#@!92 -3389@2523#@_stmtNode -5739@5740#@_alinfo -6389@6390#@_constraintTerm -8607@8061#@file_name_map_list -8604@8131#@file_name_map -2153@2154#@_qualList -3903@3904#@_filelocList -13512@13513#@_filelocStack -1849@1850#@_cstringSList -1879@1880#@_cstringList -2343@2344#@_paramNodeList -2552@2553#@_importNodeList -2586@2587#@_lsymbolList -2648@2649#@_pairNodeList -2675@2676#@_declaratorInvNodeList -2717@2718#@_declaratorNodeList -2746@2747#@_varNodeList -2771@2772#@_quantifierNodeList -2809@2810#@_storeRefNodeList -2838@2839#@_letDeclNodeList -2869@2855#@_programNodeList -2909@2910#@_initDeclNodeList -2941@2942#@_varDeclarationNodeList -2975@2976#@_fcnNodeList -3022@3023#@_stDeclNodeList -3101@3102#@_typeNameNodeList -3238@3239#@_replaceNodeList -3275@3276#@_traitRefNodeList -3420@3421#@_lslOpList -3939@3940#@_enumNameList -4416@4417#@_ctypeList -5150@5151#@!65 -6737@982#@_constraintList -7188@7189#@_idDeclList -7343@7344#@_sRefSetList -7405@7406#@_flagMarkerList -7532@7533#@_messageLog -10831@10832#@_exprNodeSList -7429@7430#@_mcelist -6802@6803#@_exprTriple -2761@2762#@_quantifierNode -9741@9742#@_cfcn -712@713#@sigaction -3887@3874#@_hashTable -3881@3882#@_hbucket -9640@9641#@_cttable -5130@5131#@!64 -2883@2524#@_lclPredicateNode -2886@2887#@_exposedNode -3002@2526#@_abstBodyNode -2325@2326#@_paramNode -2859@2860#@_programNode -7423@7424#@_mce -3697@3698#@_fctInfo -3708@3709#@_varInfo -1334@976#@__fileloc -3077@935#@_lclTypeSpecNode -7363@7364#@_flagMarker -2213@2211#@_smemberInfo -3395@3396#@_sortSetList -2567@2568#@_sortList -2478@2479#@_ltokenList -3816@3817#@_exprNodeList -4299@4295#@_uentryList -7547@7548#@_clauseStack -4438@973#@_aliasTable -7458@7459#@_fileTable -3128@2528#@_quantifiedTermNode -17026@17027#@_idTable -6806@6807#@_exprIter -766@767#@tms -3134@2529#@_sigNode -3174@3175#@_signNode -2824@2825#@_modifyNode -3061@3062#@_enumSpecNode -3228@3229#@_replaceNode -2736@2737#@_varNode -2830@2831#@_letDeclNode -2699@943#@_typeExpr -799@800#@termios -3701@3702#@_typeInfo -3718@3719#@_tagInfo -3056@2522#@_strOrUnionNode -5224@5225#@_uvinfo -676@677#@flock -3325@3326#@_interfaceNodeList -8045@8043#@arglist -8680@8152#@operation -693@694#@passwd -771@772#@utsname -3124@2521#@_opFormNode -9634@9635#@_ctentry -3349@938#@_termNodeList -8133@8054#@file_name_list -8115@8057#@if_stack -3006@3007#@_abstractNode -7452@7453#@_ftentry -2931@2932#@_varDeclarationNode -8407@8408#@directive -2959@2960#@_claimNode -8111@8109#@reflist -8160@8007#@hashnode -2121@2122#@!10 -6588@979#@_constraint -8502@8503#@argdata -629@441#@tm -2397@946#@_ltoken -8114@8105#@definition -741@742#@stat -18102@18098#@yy_buffer_state -2216@2217#@_sortNode -4484@961#@_usymtab -2965@2966#@_fcnNode -5235@5236#@_ufinfo -14100@14101#@!94 -3338@932#@_termNode -5251@953#@_uentry -5743@950#@_sRef -117@118#@lconv -8059@8003#@cppBuffer -6843@964#@_exprNode -8065@8011#@cppReader -8096@8005#@cppOptions -13580@13581#@_context -*8 (Union tag) -8112@8113#$!82 -3716@3717#$!47 -3182@3183#$!36 -3226@3227#$!38 -3259@3260#$!39 -2857@2858#$!25 -7361@7362#$!79 -3045@3046#$!29 -6453@6454#$_constraintExprData -6381@6382#$!71 -13578@13579#$!91 -8156@8157#$hashval -3121@3122#$!34 -3725@3726#$!49 -2789@2790#$!23 -2697@2698#$!21 -3302@3303#$!43 -17020@17021#$!103 -3313@3314#$!45 -5070@5071#$_mval -3075@3076#$!32 -3291@3292#$!41 -5247@5248#$_uinfo -15415@15416#$!95 -9761@9762#$_uconts -5735@5736#$_sinfo -6839@6840#$_exprData -10319@10320#$!84 -13473@13474#$!88 -*9 (Enum tag) -1908@1909#&!8 -15433@15434#&!96 -1152@1153#&!4 -1297@1298#&!5 -1331@1332#&!6 -1498@1499#&_quals -1824@1825#&!7 -1912@1913#&!9 -2208@2209#&!12 -2309@2310#&!13 -2312@2313#&!14 -2322@2323#&_paramtype -2394@2395#&!15 -2533@2534#&!16 -2536@2537#&!17 -2690@2691#&!18 -2786@2787#&!22 -2851@2852#&!24 -2880@2881#&!26 -2892@2893#&!27 -2928@2929#&!28 -3053@3054#&!30 -3067@3068#&!31 -3118@3119#&!33 -3131@3132#&!35 -3288@3289#&!40 -3299@3300#&!42 -3310@3311#&!44 -3705@3706#&!46 -3722@3723#&!48 -3730@3731#&!51 -3987@3988#&!53 -3990@3991#&!54 -3998@3999#&!55 -4001@4002#&!56 -3993@3994#&_nstate -4094@4095#&_exitkind -4230@4231#&!57 -4474@4475#&!58 -4722@4723#&!59 -4725@4726#&!60 -5067@5068#&!61 -5124@5125#&!62 -5127@5128#&!63 -5211@5212#&!66 -5214@5215#&!67 -5217@5218#&_bbufstate -5232@5233#&!68 -5713@5714#&!69 -5716@5717#&!70 -6386@6387#&!72 -6499@6500#&!75 -6441@6442#&!73 -6444@6445#&!74 -6585@6586#&!76 -6791@6792#&!77 -7358@7359#&!78 -7449@7450#&!80 -8009@8010#&cpp_token -8245@8246#&!83 -8094@8095#&!81 -8101@8102#&node_type -8401@8402#&file_change_code -10590@10591#&!85 -10629@10630#&!86 -11744@11745#&!87 -13560@13561#&!90 -14097@14098#&!93 -15521@15522#&!98 -16663@16664#&!101 -17017@17018#&!102 +^45 118@119#@lconv +*1 (Constant) +^46 5$#LC_ALL#LC_COLLATE#LC_CTYPE#LC_MONETARY#LC_NUMERIC#LC_TIME +*4 (Function) +^52 122@6@5@1@0@0@0@s1,g22@6@0@1@s1,g22@19@3@0#setlocale +^53 126$^@3@0@0#localeconv +*3 (Variable) +^54 5|@1|6@0@0@0@1#DBL_DIG +^55 17|@1|6@0@0@0@1#DBL_EPSILON +^56 5|@1|6@0@0@0@1#DBL_MANT_DIG +^57 17|@1|6@0@0@0@1#DBL_MAX +^58 5|@1|6@0@0@0@1#DBL_MAX_10_EXP#DBL_MAX_EXP +^60 17|@1|6@0@0@0@1#DBL_MIN +^61 5|@1|6@0@0@0@1#DBL_MIN_10_EXP#DBL_MIN_EXP#FLT_DIG +^64 16|@1|6@0@0@0@1#FLT_EPSILON +^65 5|@1|6@0@0@0@1#FLT_MANT_DIG +^66 16|@1|6@0@0@0@1#FLT_MAX +^67 5|@1|6@0@0@0@1#FLT_MAX_10_EXP#FLT_MAX_EXP +^69 16|@1|6@0@0@0@1#FLT_MIN +^70 5|@1|6@0@0@0@1#FLT_MIN_10_EXP#FLT_MIN_EXP +*1 (Constant) +^72 5$#FLT_RADIX +*3 (Variable) +^73 5|@1|6@0@0@0@1#FLT_ROUNDS#LDBL_DIG +^75 18|@1|6@0@0@0@1#LDBL_EPSILON +^76 5|@1|6@0@0@0@1#LDBL_MANT_DIG +^77 18|@1|6@0@0@0@1#LDBL_MAX +^78 5|@1|6@0@0@0@1#LDBL_MAX_10_EXP#LDBL_MAX_EXP +^80 18|@1|6@0@0@0@1#LDBL_MIN +^81 5|@1|6@0@0@0@1#LDBL_MIN_10_EXP#LDBL_MIN_EXP +*1 (Constant) +^83 5$#CHAR_BIT +^84 4$#CHAR_MAX#CHAR_MIN +^86 5$#INT_MAX#INT_MIN +^88 9$#LONG_MAX#LONG_MIN#MB_LEN_MAX +^91 4$#SCHAR_MAX#SCHAR_MIN +^93 7$#SHRT_MAX#SHRT_MIN +^95 3$#UCHAR_MAX#UCHAR_MIN +^97 6$#UINT_MAX +^98 10$#ULONG_MAX +^99 8$#USHRT_MAX +^100 17$#HUGE_VAL +*4 (Function) +^101 128$^$@0#sin +^102 130$^$@0#cos +^103 132$^$@0#tan +^104 134$@0@g22@6@0@1@g22$@0#asin +^105 136$@0@g22@6@0@1@g22$@0#acos +^106 138$^$@0#atan +^107 140$^$@0#atan2 +^108 142$^$@0#sinh +^109 144$@0@g22@6@0@1@g22$@0#cosh +^110 146$^$@0#tanh +^111 148$@0@g22@6@0@1@g22$@0#exp +^112 150$@0@g22@6@0@1@g22$@0#ldexp +^113 152$@0@@1@tp1$@0#frexp +^114 154$@0@g22@6@0@1@g22$@0#log +^115 156$@0@g22@6@0@1@g22$@0#log10 +^116 158$@0@g22@6@0@1@g22$@0#pow +^117 160$@0@g22@6@0@1@g22$@0#sqrt +^118 162$^$@0#ceil +^119 164$^$@0#floor +^120 166$^$@0#fabs +^121 168$@0@@1@tp1$@0#modf +^122 170$^$@0#fmod +*0 (Datatype) +^123 20@+@+@0@0@0@0@171#jmp_buf +*4 (Function) +^124 173$@0@@1@p0$@0#setjmp +^125 175@6@0@5@0@0^$@0#longjmp +*1 (Constant) +^126 5$#SIGABRT#SIGFPE#SIGILL#SIGINT#SIGSEGV#SIGTERM +*0 (Datatype) +^132 13@-@-@0@0@0@0@176#sig_atomic_t +*1 (Constant) +^133 180$#SIG_DFL +^134 184$#SIG_ERR +^135 188$#SIG_IGN +*4 (Function) +^136 201@6@5@1@0@0@0@s1,g22@6@0@1@s1,g22$@0#signal +^137 203@6@0@5@0@0$$@0#raise +*0 (Datatype) +^138 20@+@+@0@0@0@0@204#va_list +*4 (Function) +^139 206$@0@@1@p0$@0#va_start +^140 208$@0@@1@p0$@0#va_end +*0 (Datatype) +^141 20@+@+@0@0@0@0@209#FILE +^142 20@+@+@0@0@0@0@210#fpos_t +*1 (Constant) +^143 5$#_IOFBF#_IOLBF#_IONBF#BUFSIZ#EOF#FOPEN_MAX#FILENAME_MAX#L_tmpnam#SEEK_CUR#SEEK_END#SEEK_SET#TMP_MAX +*3 (Variable) +^155 211|@1|6@0@0@0@1#stderr +*4 (Function) +^156 213$@0@s3,g22@6@0@1@s3,g22$@0#remove +^157 215$@0@s3,g22@6@0@1@s3,g22$@0#rename +^158 218@6@5@1@0@0@0@s3@1@s3@3@0@0#tmpfile +^159 221$@0@s1@1@tp0,s1@19@3@0#tmpnam +^160 223$@0@g22@6@0,s3@1@tp0,g22,s3$@0#fclose +^161 225$@0@g22@6@0,s3@1@tp0,g22,s3$@0#fflush +^162 228@6@5@1@0@0@0@s3@1@s3@18@0@0#fopen +^163 231@6@5@1@0@0@0@s3,g22@6@0@1@tp2,s3,g22@3@0@0#freopen +^164 233$@0@s3@1@s3,tp0,tp1$@0#setbuf +^165 235$@0@s3@1@s3,tp0,tp1$@0#setvbuf +^166 239@6@0@1@1@0@0@s3@1@s3,tp0$@0#fprintf +^167 241@6@0@1@2@0@0@s3@1@s3,tp0$@0#fscanf +^168 244@6@0@1@1@0@1@g18@6@0,s3@1@s3,tg18$@0#printf +^169 246@6@0@1@2@0@1@g17@6@0,s3@1@s3,tg17$@0#scanf +^170 249@6@0@1@1@0@0@@1@tp0$@0#sprintf +^171 251@6@0@1@2@0^$@0#sscanf +^172 253$@0@s3,g22@6@0@1@s3,tp0,p2,g22$@0#vfprintf +^173 255$@1@g18@6@0,s3@1@s3,p1,tg18$@0#vprintf +^174 257$@0@@1@tp0,p2$@0#vsprintf +^175 259$@0@s3,g22@6@0@1@s3,tp0,g22$@0#fgetc +^176 262@6@5@1@0@0@0@s3,g22@6@0@1@s3,tp0,tp2,g22$@0#fgets +^177 265$@0@s3,g22@6@0@1@s3,tp1,g22$@0#fputc +^178 267$@0@s3@1@s3,tp1$@0#fputs +^179 269$@0@s3@1@s3,tp0$@0#getc +^180 271$@1@g17@6@0,s3@1@s3,tg17$@0#getchar +^181 274@6@5@1@0@0@1@g17@6@0,s3,g22@6@0@1@s3,tp0,tg17,g22@3@0@0#gets +^182 276$@0@s3@1@s3,tp1$@0#putc +^183 278$@1@g18@6@0,s3@1@s3,tg18$@0#putchar +^184 280$@1@g18@6@0,s3@1@s3,tg18$@0#puts +^185 282$@0@s3,g22@6@0@1@s3,tp1,g22$@0#ungetc +^186 284$@0@s3,g22@6@0@1@s3,tp0,tp3,g22$@0#fread +^187 286$@0@s3,g22@6@0@1@s3,tp3,g22$@0#fwrite +^188 289$@0@g22@6@0@1@tp1,g22$@0#fgetpos +^189 291$@0@s3,g22@6@0@1@s3,tp0,g22$@0#fseek +^190 293$@0@s3,g22@6@0@1@s3,tp0,g22$@0#fsetpos +^191 295$@0@g22@6@0@1@g22$@0#ftell +^192 297$@0@@1@tp0$@0#rewind +^193 299$@0@@1@tp0$@0#clearerr +^194 301$@0@g22@6@0@1@g22$@0#feof +^195 303$@0@g22@6@0@1@g22$@0#ferror +^196 305$@1@g22@6@0,g155@6@0,s3@1@s3,tg155$@0#perror +^197 307$^$@0#atof +^198 309$^$@0#atoi +^199 311$^$@0#atol +^200 315$@0@g22@6@0@1@tp1,g22$@0#strtod +^201 317$@0@g22@6@0@1@tp1,g22$@0#strtol +^202 319$@0@g22@6@0@1@tp1,g22$@0#strtoul +*1 (Constant) +^203 5$#RAND_MAX +*4 (Function) +^204 321$@0@s1@1@s1$@0#rand +^205 323$@0@s1@1@s1$@0#srand +^206 326@6@5@1@0@0^@2@0@0#calloc +^207 329@4@5@1@0@0^@2@0@0#malloc +^208 332@6@5@1@0@0@0@@1@tp0@2@0@0#realloc +^209 334$@0@@1@tp0$@0#free +*1 (Constant) +^210 5$#EXIT_FAILURE#EXIT_SUCCESS +*4 (Function) +^212 336@6@0@6@0@0^$@0#abort +^213 338@6@0@6@0@0^$@0#exit +^214 344$@0@s1@1@s1$@0#atexit +^215 347@6@5@1@0@0^@19@3@0#getenv +^216 16235$@0@s3@1@s3$@0#system +^217 356@6@5@1@0@0^@18@0@0#bsearch +^218 362$@0@g22@6@0@1@tp0,g22$@0#qsort +^219 364$^$@0#abs +*7 (Struct tag) +^220 365@366#@!2 +*0 (Datatype) +^221 365@-@-@0@0@0@0@367#div_t +*4 (Function) +^222 369$^$@0#div +^223 371$^$@0#labs +*7 (Struct tag) +^224 372@373#@!3 +*0 (Datatype) +^225 372@-@-@0@0@0@0@374#ldiv_t +*4 (Function) +^226 376$^$@0#ldiv +*1 (Constant) +^227 63$#MB_CUR_MAX +^228 5$#WCHAR_MAX#WCHAR_MIN +^230 66$#WEOF +*4 (Function) +^231 378$^$@0#btowc +^232 380$@0@s3@1@s3,tp0$@0#fgetwc +^233 384@6@5@1@0@0@0@s3@1@s3,tp0,tp2$@0#fgetws +^234 386$@0@s3@1@s3,tp1$@0#fputwc +^235 388$@0@s3@1@s3,tp1$@0#fputws +^236 390$^$@0#fwide +^237 392@6@0@1@1@0@0@s3@1@tp0,s3$@0#fwprintf +^238 394@6@0@1@2@0@0@s3@1@tp0,s3$@0#fwscanf +^239 396$@0@s3@1@s3,tp0$@0#getwc +^240 398$@0@s3,g17@6@0@1@s3,tg17$@0#getwchar +^241 401$^$@0#mbrlen +^242 403$@0@@1@tp0$@0#mbrtowc +^243 405$^$@0#mbsinit +^244 407$@0@@1@tp0$@0#mbsrtowcs +^245 409$@0@s3@1@s3,tp1$@0#putwc +^246 411$@0@s3,g18@6@0@1@s3,tg18$@0#putwchar +^247 413@6@0@1@1@0@0@@1@tp0$@0#swprintf +^248 415@6@0@1@2@0@0@g17@6@0@1@tg17$@0#swscanf +^249 417$@0@s3@1@s3,tp1$@0#ungetwc +^250 419$@0@s3@1@s3,tp0$@0#vfwprintf +^251 421$@0@@1@tp0$@0#vswprintf +^252 423$@0@s3,g18@6@0@1@s3,tg18$@0#vwprintf +^253 425$@0@@1@tp0$@0#wcrtomb +^254 429$@0@@1@tp0$@0#wcscat +^255 432@6@5@1@0@0^@19@2@0#wcschr +^256 434$^$@0#wcscmp +^257 436$^$@0#wcscoll +^258 439$@0@@1@tp0$@0#wcscpy +^259 441$^$@0#wcscspn +*7 (Struct tag) +^260 630@442#@tm +*4 (Function) +^261 445$@0@@1@tp0$@0#wcsftime +^262 447$^$@0#wcslen +^263 451$@0@@1@tp0$@0#wcsncat +^264 453$^$@0#wcsncmp +^265 456$@0@@1@tp0$@0#wcsncpy +^266 459@6@5@1@0@0^$@0#wcspbrk +^267 462@6@5@1@0@0^$@0#wcsrchr +^268 465$@0@@1@tp1$@0#wcsrtombs +^269 467$^$@0#wcsspn +^270 470@6@5@1@0@0^@3@0@0#wcsstr +^271 472$@0@@1@tp1$@0#wcstod +^272 475@6@5@1@0@0@0@@1@tp2@3@0@0#wcstok +^273 477$@0@@1@tp1$@0#wcstol +^274 479$@0@@1@tp1$@0#wcstoul +^275 481$@0@@1@tp0$@0#wcsxfrm +^276 483$^$@0#wctob +^277 486@6@5@1@0@0^@3@0@0#wmemchr +^278 488$^$@0#wmemcmp +^279 491$@0@@1@tp0$@0#wmemcpy +^280 494$@0@@1@tp0$@0#wmemmove +^281 497$@0@@1@tp0$@0#wmemset +^282 499@6@0@1@1@0@1@g18@6@0,g22@6@0@1@g22,tg18$@0#wprintf +^283 501@6@0@1@2@0@1@g17@6@0,g22@6@0@1@g22,tg17$@0#wscanf +*0 (Datatype) +^284 13@-@-@0@0@0@0@502#wctype_t +^285 13@-@-@0@0@0@0@503#wctrans_t +*4 (Function) +^286 507$^$@0#iswalnum +^287 510$^$@0#iswalpha +^288 513$^$@0#iswcntrl +^289 516$^$@0#iswctype +^290 519$^$@0#iswdigit +^291 523$^$@0#iswgraph +^292 526$^$@0#iswlower +^293 529$^$@0#iswprint +^294 532$^$@0#iswpunct +^295 535$^$@0#iswspace +^296 538$^$@0#iswupper +^297 542$^$@0#iswxdigit +^298 546$^$@0#towctrans +^299 549$^$@0#towlower +^300 552$^$@0#towupper +^301 554$^$@0#wctrans +^302 556$^$@0#wctype +^303 558$^$@0#mblen +^304 560$@0@@1@tp0$@0#mbtowc +^305 562$@0@@1@tp0$@0#wctomb +^306 564$@0@@1@tp0$@0#mbstowcs +^307 566$@0@@1@tp0$@0#wcstombs +^308 570$@0@@1@tp0$@0#memcpy +^309 573$@0@@1@tp0$@0#memmove +^310 577$@0@@1@tp0@3@0@0#strcpy +^311 580$@0@@1@tp0@3@0@0#strncpy +^312 583$@0@@1@tp0@3@0@0#strcat +^313 586$@0@@1@tp0@3@0@0#strncat +^314 588$^$@0#memcmp +^315 590$^$@0#strcmp +^316 592$^$@0#strcoll +^317 594$^$@0#strncmp +^318 596$@0@@1@tp0$@0#strxfrm +^319 599@6@5@1@0@0^@3@0@0#memchr +^320 602@6@5@1@0@0^@19@2@0#strchr +^321 604$^$@0#strcspn +^322 607@6@5@1@0@0^@19@2@0#strpbrk +^323 610@6@5@1@0@0^@19@2@0#strrchr +^324 612$^$@0#strspn +^325 615@6@5@1@0@0^@19@2@0#strstr +^326 618@6@5@1@0@0@0@s1,g22@6@0@1@tp0,s1,g22@19@2@0#strtok +^327 622$@0@@1@tp0$@0#memset +^328 625$^@19@3@0#strerror +^329 627$^$@0#strlen +*1 (Constant) +^330 5$#CLOCKS_PER_SEC +*0 (Datatype) +^331 13@-@-@0@0@0@0@628#clock_t +^332 13@-@-@0@0@0@0@629#time_t +*4 (Function) +^333 632$@0@s1@1@s1$@0#clock +^334 634$^$@0#difftime +^335 636$^$@0#mktime +^336 639$@0@@1@tp0$@0#time +^337 642$@0@g22@6@0@1@g22@19@3@0#asctime +^338 645$^@19@3@0#ctime +^339 648@6@5@1@0@0^@19@3@0#gmtime +^340 651@6@5@1@0@0@0@g22@6@0@1@g22@19@3@0#localtime +^341 653$@0@@1@tp0$@0#strftime +*0 (Datatype) +^342 13@-@-@0@0@0@0@654#dev_t +^343 13@-@-@0@0@0@0@655#gid_t +^344 13@-@-@0@0@0@0@656#ino_t +^345 13@-@-@0@0@0@0@657#mode_t +^346 13@-@-@0@0@0@0@658#nlink_t +^347 13@-@-@0@0@0@0@659#off_t +^348 13@-@-@0@0@0@0@660#pid_t +^349 13@-@-@0@0@0@0@661#uid_t +^350 20@+@+@0@0@0@0@662#DIR +*7 (Struct tag) +^351 663@664#@dirent +*4 (Function) +^352 667$@0@g22@6@0@1@g22$@0#closedir +^353 670@6@5@1@0@0@0@g22@6@0@1@g22@3@0@0#opendir +^354 674@6@5@1@0@0@0@g22@6@0@1@g22@3@0@0#readdir +^355 676$^$@0#rewinddir +*1 (Constant) +^356 5$#E2BIG#EACCES#EAGAIN#EBADF#EBUSY#ECHILD#EDEADLK#EEXIST#EFAULT#EFBIG#EINTR#EINVAL#EIO#EISDIR#EMFILE#EMLINK#ENAMETOOLONG#ENFILE#ENODEV#ENOENT#ENOEXEC#ENOLCK#ENOMEM#ENOSPC#ENOSYS#ENOTDIR#ENOTEMPTY#ENOTTY#ENXIO#EPERM#EPIPE#EROFS#ESPIPE#ESRCH#EXDEV#FD_CLOEXEC#F_DUPFD#F_GETFD#F_GETFL#F_GETLK#F_RDLCK#F_SETFD#F_SETFL#F_SETLK#F_SETLKW#F_UNLCK#F_WRLCK#O_ACCMODE#O_APPEND#O_CREAT#O_EXCL#O_NOCTTY#O_NONBLOCK#O_RDONLY#O_RDWR#O_TRUNC#O_WRONLY#S_IRGRP#S_IROTH#S_IUSR#S_IWXG#S_IWXO#S_IWXU#S_ISGID#S_ISUID#S_IWGRP#S_IWOTH#S_IWUSR#S_IXGRP#S_IXOTH#S_IXUSR +*7 (Struct tag) +^427 677@678#@flock +*4 (Function) +^428 680$@0@g22@6@0@1@g22$@0#creat +^429 682$@0@g22@6@0@1@g22$@0#fcntl +^430 684$@0@g22@6@0@1@g22$@0#open +*7 (Struct tag) +^431 685@686#@group +*4 (Function) +^432 690@6@5@1@0@0@0@g22@6@0@1@g22@3@0@0#getgrgid +^433 693@6@5@1@0@0@0@g22@6@0@1@g22@3@0@0#getgrnam +*1 (Constant) +^434 9$#ARG_MAX#CHILD_MAX#LINK_MAX#MAX_CANON#MAX_INPUT#NAME_MAX#NGROUPS_MAX#OPEN_MAX#PIPE_BUF#SSIZE_MAX#STREAM_MAX#TZNAME_MAX#_POSIX_ARG_MAX#_POSIX_CHILD_MAX#_POSIX_LINK_MAX#_POSIX_MAX_CANON#_POSIX_MAX_INPUT#_POSIX_NAME_MAX#_POSIX_NGROUPS_MAX#_POSIX_OPEN_MAX#_POSIX_PATH_MAX#_POSIX_PIPE_BUF#_POSIX_SSIZE#_POSIX_STREAM#_POSIX_TZNAME_MAX +*7 (Struct tag) +^459 694@695#@passwd +*4 (Function) +^460 699@6@5@1@0@0@0@g22@6@0@1@g22@19@3@0#getpwnam +^461 702@6@5@1@0@0@0@g22@6@0@1@g22@19@3@0#getpwuid +*0 (Datatype) +^462 20@+@+@0@0@0@0@703#sigjmp_buf +*4 (Function) +^463 705@6@0@5@0@0^$@0#siglongjmp +^464 707$@0@@1@p0$@0#sigsetjmp +*0 (Datatype) +^465 0@+@=@0@7@0@0@708#sigset_t +*1 (Constant) +^466 5$#SA_NOCLDSTOP#SIG_BLOCK#SIG_SETMASK#SIG_UNBLOCK#SIGALRM#SIGCHLD#SIGCONT#SIGHUP#SIGKILL#SIGPIPE#SIGQUIT#SIGSTOP#SIGTSTP#SIGTTIN#SIGTTOU#SIGUSR1#SIGUSR2 +*7 (Struct tag) +^483 713@714#@sigaction +*4 (Function) +^484 716@6@0@5@0@0@0@g22@6@0@1@g22$@0#kill +^485 719$@0@g22@6@0,s1@1@tp2,g22,s1$@0#sigaction +^486 722$@0@g22@6@0@1@tp0,g22$@0#sigaddset +^487 724$@0@g22@6@0@1@tp0,g22$@0#sigdelset +^488 726$@0@g22@6@0@1@tp0,g22$@0#sigemptyset +^489 728$@0@g22@6@0@1@tp0,g22$@0#sigfillset +^490 730$@0@g22@6@0@1@g22$@0#sigismember +^491 732$@0@g22@6@0@1@tp0,g22$@0#sigpending +^492 734$@0@g22@6@0,s1@1@tp2,g22,s1$@0#sigprocmask +^493 736$@0@g22@6@0,s1@1@g22,s1$@0#sigsuspend +*1 (Constant) +^494 5$#L_ctermid#L_cuserid +*4 (Function) +^496 739@6@5@1@0@0@0@g22@6@0,s3@1@g22,s3@18@0@0#fdopen +^497 741$@0@g22@6@0@1@g22$@0#fileno +*7 (Struct tag) +^498 742@743#@stat +*4 (Function) +^499 745$^$@0#S_ISBLK +^500 747$^$@0#S_ISCHR +^501 749$^$@0#S_ISDIR +^502 751$^$@0#S_ISFIFO +^503 753$^$@0#S_ISREG +^504 755$@0@s3,g22@6@0@1@s3,g22$@0#chmod +^505 758$@0@g22@6@0@1@g22,tp1$@0#fstat +^506 760$@0@s3,g22@6@0@1@s3,g22$@0#mkdir +^507 762$@0@s3,g22@6@0@1@s3,g22$@0#mkfifo +^508 16205$@0@g22@6@0@1@g22,tp1$@0#stat +^509 766$@0@s1@1@s1$@0#umask +*7 (Struct tag) +^510 767@768#@tms +*4 (Function) +^511 771$@0@@1@tp0$@0#times +*7 (Struct tag) +^512 772@773#@utsname +*4 (Function) +^513 776$@0@g22@6@0@1@tp0,g22$@0#uname +^514 778$^$@0#WEXITSTATUS +^515 780$^$@0#WIFEXITED +^516 782$^$@0#WIFSIGNALED +^517 784$^$@0#WIFSTOPPED +^518 786$^$@0#WSTOPSIG +^519 788$^$@0#WTERMSIG +*1 (Constant) +^520 5$#WUNTRACED +*4 (Function) +^521 790$@0@g22@6@0@1@tp0,g22$@0#wait +^522 792$@0@g22@6@0@1@tp1,g22$@0#waitpid +*0 (Datatype) +^523 794@-@-@0@0@0@0@795#cc_t +^524 797@-@-@0@0@0@0@798#speed_t +^525 797@-@-@0@0@0@0@799#tcflag_t +*1 (Constant) +^526 5$#B0#B50#B75#B110#B134#B150#B200#B300#B600#B1200#B1800#B2400#B4800#B9600#B19200#B38400#BRKINT#CLOCAL#CREAD#CS5#CS6#CS7#CS8#CSIZE#CSTOPB#ECHO#ECHOE#ECHOK#ECHONL#HUPCL#ICANON#ICRNL#IEXTEN#IGNBRK#IGNCR#IGNPAR#IGNLCR#INPCK#ISIG#ISTRIP#IXOFF#IXON#NCCS#NOFLSH#OPOST#PARENB#PARMRK#PARODD#TCIFLUSH#TCIOFF#TCIOFLUSH#TCION#TCOFLUSH#TCSADRAIN#TCSAFLUSH#TCSANOW#TOSTOP#VEOF#VEOL#VERASE#VINTR#VKILL#VMIN#VQUIT#VSTART#VSTOP#VSUSP#VTIME +*7 (Struct tag) +^594 800@801#@termios +*4 (Function) +^595 804$^$@0#cfgetispeed +^596 806$^$@0#cfgetospeed +^597 808$@0@@1@tp0$@0#cfsetispeed +^598 810$@0@@1@tp0$@0#cfsetospeed +^599 812$@0@g22@6@0@1@g22$@0#tcdrain +^600 814$@0@g22@6@0@1@g22$@0#tcflow +^601 816$@0@g22@6@0@1@g22$@0#tcflush +^602 818$@0@g22@6@0@1@g22,tp1$@0#tcgetattr +^603 820$@0@g22@6@0@1@g22$@0#tcsendbreak +^604 822$@0@g22@6@0@1@g22$@0#tcsetattr +*3 (Variable) +^605 313|@1|6@0@0@0@1#environ +*1 (Constant) +^606 5$#CLK_TCK +*4 (Function) +^607 824$@1@g605@6@0,s1@1@s1$@0#tzset +*1 (Constant) +^608 5$#F_OK#R_OK#STDERR_FILENO#STDIN_FILENO#STDOUT_FILENO#W_OK#X_OK#_PC_CHOWN_RESTRUCTED#_PC_MAX_CANON#_PC_MAX_INPUT#_PC_NAME_MAX#_PC_NO_TRUNC#_PC_PATH_MAX#_PC_PIPE_BUF#_PC_VDISABLE#_POSIX_CHOWN_RESTRICTED#_POSIX_JOB_CONTROL#_POSIX_NO_TRUNC#_POSIX_SAVED_IDS#_POSIX_VDISABLE#_POSIX_VERSION#_SC_ARG_MAX#_SC_CHILD_MAX#_SC_CLK_TCK#_SC_JOB_CONTROL#_SC_NGROUPS_MAX#_SC_OPEN_MAX#_SC_SAVED_IDS#_SC_STREAM_MAX#_SC_TZNAME_MAX#_SC_VERSION +*4 (Function) +^639 826@6@0@6@0@0^$@0#_exit +^640 828$@0@g22@6@0@1@g22$@0#access +^641 830$@0@s1@1@s1$@0#alarm +^642 832$@0@g22@6@0@1@g22$@0#chdir +^643 834$@0@s3,g22@6@0@1@s3,g22$@0#chown +^644 836$@0@s3,g22@6@0,s1@1@s3,g22,s1$@0#close +^645 839$@0@s1@1@tp0,s1$@0#ctermid +^646 842$@0@@1@tp0@3@0@0#cuserid +^647 844$@0@g22@6@0,s3@1@g22,s3$@0#dup2 +^648 846$@0@g22@6@0,s3@1@g22,s3$@0#dup +^649 848@6@0@5@0@0@0@g22@6@0@1@g22$@0#execl +^650 850@6@0@5@0@0@0@g22@6@0@1@g22$@0#execle +^651 852@6@0@5@0@0@0@g22@6@0@1@g22$@0#execlp +^652 856@6@0@5@0@0@0@g22@6@0@1@g22$@0#execv +^653 858@6@0@5@0@0@0@g22@6@0@1@g22$@0#execve +^654 860@6@0@5@0@0@0@g22@6@0@1@g22$@0#execvp +^655 862$@0@s3,g22@6@0@1@s3,g22$@0#fork +^656 864$@0@g22@6@0@1@g22$@0#fpathconf +^657 867$@0@g22@6@0@1@g22,tp0$@0#getcwd +^658 869$^$@0#getegid +^659 871$^$@0#geteuid +^660 873$^$@0#getgid +^661 876$@0@g22@6@0@1@g22,ap1$@0#getgroups +^662 879$^@19@3@0#getlogin +^663 881$^$@0#getpgrp +^664 883$^$@0#getpid +^665 885$^$@0#getppid +^666 887$^$@0#getuid +^667 1222$^$@0#isatty +^668 891$@0@g22@6@0,s3@1@g22,s3$@0#link +^669 893$@0@g22@6@0@1@g22$@0#lseek +^670 895$@0@g22@6@0@1@g22$@0#pathconf +^671 897$@0@g22@6@0@1@g22$@0#pause +^672 899$@0@g22@6@0@1@g22$@0#pipe +^673 901$@0@g22@6@0@1@g22,tp1$@0#read +^674 903$@0@s3,g22@6@0@1@s3,g22$@0#rmdir +^675 905$@0@g22@6@0,s1@1@g22,s1$@0#setgid +^676 907$@0@g22@6@0,s1@1@g22,s1$@0#setpgid +^677 909$^$@0#setsid +^678 911$@0@g22@6@0,s1@1@g22,s1$@0#setuid +^679 913$^$@0#sleep +^680 915$@0@g22@6@0@1@g22$@0#sysconf +^681 917$@0@g22@6@0@1@g22$@0#tcgetpgrp +^682 919$@0@g22@6@0,s1@1@g22,s1$@0#tcsetpgrp +^683 922@6@5@1@0@0@0@g22@6@0@1@g22@19@3@0#ttyname +^684 16239$@0@s3,g22@6@0@1@s3,g22$@0#unlink +^685 926$@0@g22@6@0@1@g22$@0#write +*7 (Struct tag) +^686 927@928#@utimbuf +*4 (Function) +^687 931$@0@s3,g22@6@0@1@s3,g22$@0#utime +*3 (Variable) +^688 0|@11|^#YYBISON#BADTOK#SKIPTOK#CTOK_ELIPSIS#CASE#DEFAULT#CIF#CELSE#SWITCH#WHILE#DO#CFOR#GOTO#CONTINUE#BREAK#RETURN#TSEMI#TLBRACE#TRBRACE#TCOMMA#TCOLON#TASSIGN#TLPAREN#TRPAREN#TLSQBR#TRSQBR#TDOT#TAMPERSAND#TEXCL#TTILDE#TMINUS#TPLUS#TMULT#TDIV#TPERCENT#TLT#TGT#TCIRC#TBAR#TQUEST#CSIZEOF#CALIGNOF#ARROW_OP#CTYPEDEF#COFFSETOF#INC_OP#DEC_OP#LEFT_OP#RIGHT_OP#LE_OP#GE_OP#EQ_OP#NE_OP#AND_OP#OR_OP#MUL_ASSIGN#DIV_ASSIGN#MOD_ASSIGN#ADD_ASSIGN#SUB_ASSIGN#LEFT_ASSIGN#RIGHT_ASSIGN#AND_ASSIGN#XOR_ASSIGN#OR_ASSIGN#CSTRUCT#CUNION#CENUM#VA_ARG#VA_DCL#QWARN#QGLOBALS#QMODIFIES#QNOMODS#QCONSTANT#QFUNCTION#QITER#QDEFINES#QUSES#QALLOCATES#QSETS#QRELEASES#QPRECLAUSE#QPOSTCLAUSE#QALT#QUNDEF#QKILLED#QENDMACRO#LLMACRO#LLMACROITER#LLMACROEND#TENDMACRO#QSWITCHBREAK#QLOOPBREAK#QINNERBREAK#QSAFEBREAK#QINNERCONTINUE#QFALLTHROUGH#QLINTNOTREACHED#QLINTFALLTHROUGH#QLINTFALLTHRU#QARGSUSED#QPRINTFLIKE#QLINTPRINTFLIKE#QSCANFLIKE#QMESSAGELIKE#QNOTREACHED#QCONST#QVOLATILE#QINLINE#QEXTENSION#QEXTERN#QSTATIC#QAUTO#QREGISTER#QOUT#QIN#QYIELD#QONLY#QTEMP#QSHARED#QREF#QUNIQUE#QCHECKED#QUNCHECKED#QCHECKEDSTRICT#QCHECKMOD#QKEEP#QKEPT#QPARTIAL#QSPECIAL#QOWNED#QDEPENDENT#QRETURNED#QEXPOSED#QNULL#QOBSERVER#QISNULL#QEXITS#QMAYEXIT#QNEVEREXIT#QTRUEEXIT#QFALSEEXIT#QLONG#QSIGNED#QUNSIGNED#QSHORT#QUNUSED#QSEF#QNOTNULL#QRELNULL#QABSTRACT#QCONCRETE#QMUTABLE#QIMMUTABLE#QTRUENULL#QFALSENULL#QEXTERNAL#QREFCOUNTED#QREFS#QNEWREF#QTEMPREF#QKILLREF#QRELDEF#CGCHAR#CBOOL#CINT#CGFLOAT#CDOUBLE#CVOID#QANYTYPE#QINTEGRALTYPE#QUNSIGNEDINTEGRALTYPE#QSIGNEDINTEGRALTYPE#QNULLTERMINATED#QSETBUFFERSIZE#QBUFFERCONSTRAINT#QENSURESCONSTRAINT#QSETSTRINGLENGTH#QMAXSET#QMAXREAD#QTESTINRANGE#TCAND#IDENTIFIER#NEW_IDENTIFIER#TYPE_NAME_OR_ID#CANNOTATION#CCONSTANT#ITER_NAME#ITER_ENDNAME#TYPE_NAME +*1 (Constant) +^879 0$#LCLINTMACROS_H +*3 (Variable) +^880 0|@11|^#PARAMS#BADEXIT#BADBRANCH#BADBRANCHCONT#BADDEFAULT#llassertprint#llassertprintret#abst_typedef#immut_typedef#BOOLBITS#NOALIAS#TPRINTF#DPRINTF#INTCOMPARERETURN#COMPARERETURN +*1 (Constant) +^895 0$#BASIC_H#GENERAL_H#FORWARDTYPES_H#LCL_FORWARDTYPES_H#MISC_H#LCLMISC_H +*4 (Function) +^901 1150$$$@0@S:2.4.0.p0,tp0$#assertSet +^902 1194$^$@0#mstring_length +^903 1196@6@0@1@0@54^$@0#mstring_isDefined +^904 1198@6@0@1@0@53^$@0#mstring_isEmpty +^905 1208$$$@0#mstring_free +^906 1206@6@2@1@0@0^@2@0@0#mstring_createEmpty +^907 1210$^$@0#int_compare +^908 20482$$$@0#generic_compare +*3 (Variable) +^909 0|@11|^#GET +*1 (Constant) +^910 0$#CSTRING_H +*4 (Function) +^911 1255$$$@0#cstring_secondChar +^912 1301$^$@0#cstring_lessthan +^913 1284$^$@0#cstring_equalLit +^914 1307@6@5@1@0@0^@3@0@0#cstring_fromCharsO +^915 1309@6@5@1@0@0^@3@0@0#cstring_fromCharsNew +^916 1312@6@2@1@0@0$@19@2@0#cstring_toCharsSafeO +^917 1316@6@0@1@0@54^$@0#cstring_isDefined +^918 1318@6@0@1@0@53^$@0#cstring_isUndefined +^919 1320@6@0@1@0@53^$@0#cstring_isEmpty +^920 1322@6@0@1@0@54^$@0#cstring_isNonEmpty +^921 1324@6@5@1@0@0^@3@0@0#cstring_makeLiteral +^922 1326@6@5@1@0@0^@18@3@0#cstring_makeLiteralTemp +^923 1357$^$@0#cstring_containsLit +^924 1359$^$@0#cstring_compareLit +*1 (Constant) +^925 0$#BOOL_H +*4 (Function) +^926 1361@6@5@1@0@0^@19@3@0#bool_unparse +^927 1363@6@5@1@0@0^@19@3@0#bool_dump +^928 1365$^$@0#bool_not +^929 1367$^$@0#bool_equal +^930 1369$^$@0#bool_compare +^931 1371$^$@0#bool_fromInt +^932 1373$^$@0#bool_toInt +^933 1388@4@0@1@0@0^@2@0@0#dmalloc +^934 1385$@0@@1@tp0@2@0@0@S:2.3.0.p0$#drealloc +*1 (Constant) +^935 0$#SYSTEM_CONSTANTS_H#LCL_CONSTANTS_H#YNM_H +*4 (Function) +^938 1396@6@5@1@0@0^@19@3@0#ynm_unparse +^939 1398@6@5@1@0@0^@19@3@0#ynm_unparseCode +^940 1400$^$@0#ynm_toBoolStrict +^941 1402$^$@0#ynm_toBoolRelaxed +^942 1404$^$@0#ynm_fromBool +^943 1406$^$@0#ynm_isOff +^944 1408$^$@0#ynm_isOn +^945 1410$^$@0#ynm_isMaybe +*1 (Constant) +^946 0$#MESSAGE_H#FILELOC_H#fileId_H +*4 (Function) +^949 1419$^$@0#fileId_isValid +^950 1421$^$@0#fileId_isInvalid +^951 1423$^$@0#fileId_equal +^952 1425$^$@0#fileId_compare +^953 1510$^$@0#fileloc_isExternal +^954 1512@6@0@1@0@54^$@0#fileloc_isDefined +^955 1514@6@0@1@0@53^$@0#fileloc_isUndefined +^956 1516$^$@0#fileloc_isInvalid +^957 1522$^$@0#fileloc_linenoDefined +^958 1524$^$@0#fileloc_columnDefined +^959 1526$@0@@1@p0$@0#fileloc_setColumnUndefined +^960 1528@6@0@1@0@54$$@0#fileloc_isValid +^961 1530$$$@0#fileloc_isImport +^962 1532$$$@0#fileloc_isPreproc +^963 1534$@0@@1@p0$@0#fileloc_setLineno +^964 1536$@0@@1@p0$@0#fileloc_nextLine +^965 1538$@0@@1@p0$@0#fileloc_addLine +^966 1540$^$@0#fileloc_fileId +^967 1542$@0@@1@p0$@0#fileloc_setColumn +^968 1544$@0@@1@p0$@0#fileloc_addColumn +^969 1546$@0@@1@p0$@0#fileloc_incColumn +^970 1548$^$@0#fileloc_isBuiltin +*1 (Constant) +^971 0$#GLOBALS_H +*4 (Function) +^972 1572$@1@g2536@6@5@1@$@0#currentFile +^973 1574$@1@g2536@6@5@1@$@0#currentColumn +^974 1576$@1@g2536@6@5@1@g2536$@0#incColumn +^975 1578$@1@g2536@6@5@1@g2536$@0#decColumn +^976 1580$@1@g2536@6@5@1@g2536$@0#incLine +^977 1582$@1@g2536@6@5@1@g2536$@0#decLine +^978 1584$@1@g2536@6@5@1@g2536$@0#beginLine +^979 1586$@1@g2536@6@5@1@g2536$@0#addColumn +^980 1588$@1@g2536@6@5@1@g2536$@0#setLine +^981 1590$@1@g2536@6@5@1@g2536$@0#setColumn +^982 1592$@1@g2536@6@5@1@g2536$@0#setSpecFileId +^983 1594$@1@g2536@6@5@1@g2536$@0#setFileLine +*1 (Constant) +^984 0$#FLAGCODES_H#FLAGS_H +*4 (Function) +^986 1637$^$@0#flagcode_isInvalid +^987 1639$^$@0#flagcode_isSkip +^988 1641$^$@0#flagcode_isValid +^989 1643$$$@0#flagcode_isPassThrough +^990 1645$$$@0#flagcode_isLibraryFlag +^991 1647$$$@0#flagcode_isWarnUseFlag +*1 (Constant) +^992 0$#flagSpec_H +*4 (Function) +^993 1681@6@0@1@0@54^$@0#flagSpec_isDefined +*1 (Constant) +^994 0$#QUALH +*4 (Function) +^995 1868$^$@0#qual_isMemoryAllocation +^996 1870$^$@0#qual_isSharing +^997 1718$^$@0#qual_isUnknown +^998 1720$^$@0#qual_isTrueNull +^999 1722$^$@0#qual_isFalseNull +^1000 1724$^$@0#qual_isOwned +^1001 1726$^$@0#qual_isDependent +^1002 1728$^$@0#qual_isRefCounted +^1003 1730$^$@0#qual_isRefs +^1004 1732$^$@0#qual_isNewRef +^1005 1734$^$@0#qual_isKillRef +^1006 1736$^$@0#qual_isTempRef +^1007 1738$^$@0#qual_isLong +^1008 1740$^$@0#qual_isShort +^1009 1742$^$@0#qual_isSigned +^1010 1744$^$@0#qual_isUnsigned +^1011 1746$^$@0#qual_isUnique +^1012 1748$^$@0#qual_isExits +^1013 1750$^$@0#qual_isMayExit +^1014 1752$^$@0#qual_isNeverExit +^1015 1754$^$@0#qual_isTrueExit +^1016 1756$^$@0#qual_isFalseExit +^1017 1758$^$@0#qual_isConst +^1018 1760$^$@0#qual_isVolatile +^1019 1762$^$@0#qual_isInline +^1020 1764$^$@0#qual_isExtern +^1021 1766$^$@0#qual_isStatic +^1022 1768$^$@0#qual_isAuto +^1023 1770$^$@0#qual_isRegister +^1024 1772$^$@0#qual_isOut +^1025 1774$^$@0#qual_isIn +^1026 1776$^$@0#qual_isYield +^1027 1778$^$@0#qual_isOnly +^1028 1780$^$@0#qual_isImpOnly +^1029 1782$^$@0#qual_isPartial +^1030 1784$^$@0#qual_isSpecial +^1031 1786$^$@0#qual_isKeep +^1032 1788$^$@0#qual_isKept +^1033 1790$^$@0#qual_isTemp +^1034 1792$^$@0#qual_isShared +^1035 1794$^$@0#qual_isRelDef +^1036 1804$^$@0#qual_isNull +^1037 1806$^$@0#qual_isIsNull +^1038 1808$^$@0#qual_isRelNull +^1039 1810$^$@0#qual_isNotNull +^1040 1812$^$@0#qual_isReturned +^1041 1814$^$@0#qual_isExposed +^1042 1816$^$@0#qual_isObserver +^1043 1818$^$@0#qual_isUnused +^1044 1820$^$@0#qual_isExternal +^1045 1822$^$@0#qual_isSef +^1046 1824$^$@0#qual_isAbstract +^1047 1826$^$@0#qual_isConcrete +^1048 1828$^$@0#qual_isMutable +^1049 1830$^$@0#qual_isImmutable +^1050 1796$^$@0#qual_isChecked +^1051 1798$^$@0#qual_isCheckMod +^1052 1800$^$@0#qual_isCheckedStrict +^1053 1802$^$@0#qual_isUnchecked +^1054 1836$^$@0#qual_isUndef +^1055 1838$^$@0#qual_isKilled +^1056 1858$^$@0#qual_isPrintfLike +^1057 1860$^$@0#qual_isScanfLike +^1058 1862$^$@0#qual_isMessageLike +^1059 1864$^$@0#qual_isMetaState +^1060 1866$^$@0#qual_isNullTerminated +^1061 1996$^$@0#qual_createUnknown +^1062 1998$^$@0#qual_createPrintfLike +^1063 2000$^$@0#qual_createScanfLike +^1064 2002$^$@0#qual_createMessageLike +^1065 1878$^$@0#qual_createTrueNull +^1066 1880$^$@0#qual_createFalseNull +^1067 1882$^$@0#qual_createRefCounted +^1068 1884$^$@0#qual_createRefs +^1069 1886$^$@0#qual_createNewRef +^1070 1888$^$@0#qual_createKillRef +^1071 1890$^$@0#qual_createTempRef +^1072 1892$^$@0#qual_createNotNull +^1073 1894$^$@0#qual_createAbstract +^1074 1896$^$@0#qual_createConcrete +^1075 1898$^$@0#qual_createMutable +^1076 1900$^$@0#qual_createImmutable +^1077 1902$^$@0#qual_createShort +^1078 1904$^$@0#qual_createLong +^1079 1906$^$@0#qual_createSigned +^1080 1908$^$@0#qual_createUnsigned +^1081 1910$^$@0#qual_createUnique +^1082 1912$^$@0#qual_createMayExit +^1083 1914$^$@0#qual_createExits +^1084 1916$^$@0#qual_createNeverExit +^1085 1920$^$@0#qual_createTrueExit +^1086 1918$^$@0#qual_createFalseExit +^1087 1922$^$@0#qual_createConst +^1088 1924$^$@0#qual_createVolatile +^1089 1926$^$@0#qual_createInline +^1090 1928$^$@0#qual_createExtern +^1091 1930$^$@0#qual_createStatic +^1092 1932$^$@0#qual_createAuto +^1093 1934$^$@0#qual_createRegister +^1094 1936$^$@0#qual_createOut +^1095 1938$^$@0#qual_createIn +^1096 1940$^$@0#qual_createYield +^1097 1942$^$@0#qual_createOnly +^1098 1944$^$@0#qual_createOwned +^1099 1946$^$@0#qual_createDependent +^1100 1948$^$@0#qual_createRelDef +^1101 1950$^$@0#qual_createImpOnly +^1102 1952$^$@0#qual_createPartial +^1103 1954$^$@0#qual_createSpecial +^1104 1956$^$@0#qual_createKeep +^1105 1958$^$@0#qual_createKept +^1106 1960$^$@0#qual_createTemp +^1107 1962$^$@0#qual_createShared +^1108 1964$^$@0#qual_createNull +^1109 1966$^$@0#qual_createIsNull +^1110 1968$^$@0#qual_createRelNull +^1111 1970$^$@0#qual_createReturned +^1112 1972$^$@0#qual_createExposed +^1113 1974$^$@0#qual_createObserver +^1114 1976$^$@0#qual_createUnused +^1115 1978$^$@0#qual_createExternal +^1116 1980$^$@0#qual_createSef +^1117 1982$^$@0#qual_createChecked +^1118 1984$^$@0#qual_createCheckMod +^1119 1988$^$@0#qual_createCheckedStrict +^1120 1986$^$@0#qual_createUnchecked +^1121 1990$^$@0#qual_createUndef +^1122 1992$^$@0#qual_createKilled +^1123 1994$^$@0#qual_createNullTerminated +^1124 2004$^$@0#qual_isBufQualifier +^1125 2006$^$@0#qual_isGlobCheck +^1126 1832$^$@0#qual_isNullPred +^1127 1834$^$@0#qual_isRefQual +^1128 2008$^$@0#qual_isNullStateQual +^1129 1840$^$@0#qual_isTypeQual +^1130 1842$^$@0#qual_isControlQual +^1131 1844$^$@0#qual_isStorageClass +^1132 1846$^$@0#qual_isCQual +^1133 1848$^$@0#qual_isAllocQual +^1134 1850$^$@0#qual_isGlobalQual +^1135 1852$^$@0#qual_isImplied +^1136 1854$^$@0#qual_isExQual +^1137 1856$^$@0#qual_isAliasQual +^1138 2010$^$@0#qual_isExitQual +*1 (Constant) +^1139 0$#LLTOK_H +*4 (Function) +^1140 2025$^$@0#lltok_getTok +^1141 2021@6@5@1@0@0^@18@2@0#lltok_getLoc +*1 (Constant) +^1142 0$#GLOBALSCLAUSE_H +*4 (Function) +^1143 2091@6@5@1@0@0^@19@3@0#globalsClause_getLoc +*1 (Constant) +^1144 0$#MODIFIESCLAUSE_H +*4 (Function) +^1145 2100$$$@0#modifiesClause_isNoMods +^1146 2106@6@5@1@0@0^@19@3@0#modifiesClause_getLoc +*1 (Constant) +^1147 0$#WARNCLAUSE_H +*4 (Function) +^1148 2115@6@0@1@0@54^$@0#warnClause_isDefined +^1149 2117@6@0@1@0@53^$@0#warnClause_isUndefined +*1 (Constant) +^1150 0$#FUNCTIONCLAUSE_H +*4 (Function) +^1151 2141@6@0@1@0@54^$@0#functionClause_isDefined +^1152 2143$^$@0#functionClause_isGlobals +^1153 2145$^$@0#functionClause_isNoMods +^1154 2147$^$@0#functionClause_isModifies +^1155 2149$^$@0#functionClause_isState +^1156 2151$^$@0#functionClause_isWarn +^1157 2153@6@0@1@0@53^$@0#functionClause_isUndefined +*1 (Constant) +^1158 0$#FUNCTIONCLAUSELIST_H +*4 (Function) +^1159 2184@6@0@1@0@54^$@0#functionClauseList_isDefined +^1160 2186@6@0@1@0@53^$@0#functionClauseList_isUndefined +^1161 2188$^$@0#functionClauseList_size +^1162 2190@6@0@1@0@54^$@0#functionClauseList_empty +*1 (Constant) +^1163 0$#cstringSList_H +*4 (Function) +^1164 2213@6@0@1@0@54^$@0#cstringSList_isDefined +^1165 2215$^$@0#cstringSList_size +^1166 2217@6@0@1@0@54^$@0#cstringSList_empty +*1 (Constant) +^1167 0$#cstringList_H +*4 (Function) +^1168 2245@6@0@1@0@54^$@0#cstringList_isDefined +^1169 2247$^$@0#cstringList_size +^1170 2249@6@0@1@0@54^$@0#cstringList_empty +*1 (Constant) +^1171 0$#LLERROR_H +*4 (Function) +^1172 2282$$$@0#check +^1173 20483@6@0@8@0@0$$@0#llassert +^1174 2288@6@0@8@0@0$$@0#llassertretnull +^1175 2290@6@0@8@0@0$$@0#llassertprotect +^1176 2292@6@0@8@0@0$$@0#llassertfatal +^1177 2304@6@0@6@0@0@1@g2536@6@5,g155@6@0@1@g155$@0#llfatalbug +^1178 2308$@0@g2537@0@0@1@g2537$@0#llgloberror +^1179 2312$@0@g2537@0@0@1@g2537$@0#llgenerror +^1180 2316$@0@g2537@0@0@1@g2537$@0#llgenhinterror +^1181 2318$@1@g2537@6@0,g2536@6@5@1@g2537$@0#llerror +^1182 2340$$$@0#lclerror +^1183 2354@6@0@6@0@0@1@g2537@6@0,g2536@6@5@1@tg2537$@0#llbug +^1184 2358$@0@g2537@0@0@1@tg2537$@0#llquietbug +^1185 2360$@0@g2537@0@0@1@tg2537$@0#llcontbug +^1186 2366$@0@g2537@0@0,s1@1@tg2537,s1$@0#optgenerror2 +^1187 2370$@0@g2537@0@0,s1@1@tg2537,s1$@0#optgenerror2n +^1188 2374$@0@g2537@0@0,s1@1@tg2537,s1$@0#lloptgenerror +^1189 2378$@0@g2537@0@0,s1@1@tg2537,s1$@0#llnoptgenerror +^1190 2382$@0@g2537@0@0,s1@1@tg2537,s1$@0#llgenformattypeerror +^1191 2386$@0@g2537@0@0,s1@1@tg2537,s1$@0#llgentypeerror +^1192 2388$@0@g2537@0@0,s1@1@tg2537,s1$@0#gentypeerror +^1193 2390$@0@g2537@0@0,s1@1@tg2537,s1$@0#optgenerror +^1194 2392$@0@g2537@0@0,s1@1@tg2537,s1$@0#voptgenerror +^1195 2396$@0@g2537@0@0,s1@1@g2537,s1$@0#fsgenerror +^1196 2398$@0@g2537@0@0,s1@1@tg2537,s1$@0#vfsgenerror +^1197 2400$$$@0#voptgenerror2 +^1198 2402$$$@0#voptgenerror2n +^1199 2404$$$@0#noptgenerror +^1200 2406$$$@0#vnoptgenerror +^1201 2408$$$@0#vgenhinterror +^1202 2415$@0@g2537@0@0@1@g2537$@0#llforceerror +^1203 2417$$$@0#llerrorlit +^1204 2421@6@0@6@0@0$$@0#llbugexitlit +^1205 2423$$$@0#llbuglit +^1206 2425$$$@0#llcontbuglit +^1207 2429$$$@0#llmsglit +*1 (Constant) +^1208 0$#FILELIB_H#INPUTSTREAM_H +*4 (Function) +^1210 2474@6@0@1@0@54^$@0#inputStream_isDefined +^1211 2476@6@0@1@0@53^$@0#inputStream_isUndefined +*1 (Constant) +^1212 0$#QUALLIST_H +*4 (Function) +^1213 2513@6@0@1@0@54$$@0#qualList_isDefined +^1214 2515@6@0@1@0@53$$@0#qualList_isUndefined +^1215 2518$$$@0#qualList_size +^1216 2520$$$@0#qualList_isEmpty +^1217 2544$$$@0#qualList_hasBufQualifiers +*1 (Constant) +^1218 0$#MAPPING_H#sort_H +*4 (Function) +^1220 2652$^$@0#sort_isNoSort +*1 (Constant) +^1221 0$#LCLCTYPESX_H +*4 (Function) +^1222 2673$$$@0#fixBits +*1 (Constant) +^1223 0$#PARAMNODEH +*4 (Function) +^1224 2694$$$@0#paramNode_isElipsis +^1225 2696$$$@0#paramNode_isYield +*1 (Constant) +^1226 0$#paramNodeLIST_H +*4 (Function) +^1227 2705$$$@0#paramNodeList_size +^1228 2707$$$@0#paramNodeList_empty +^1229 2711@6@0@1@0@54^$@0#paramNodeList_isDefined +^1230 2725@6@0@1@0@53$$@0#paramNodeList_isNull +*1 (Constant) +^1231 0$#LSYMBOL_H +*4 (Function) +^1232 2727$$$@0#lsymbol_isDefined +^1233 2729$$$@0#lsymbol_isUndefined +^1234 2743$^$@0#lsymbol_equal +*1 (Constant) +^1235 0$#ABSTRACT_H#LTOKEN_H +*4 (Function) +^1237 2756@6@0@1@0@54$$@0#ltoken_isValid +^1238 2758@6@0@1@0@53$$@0#ltoken_isUndefined +^1239 2760$^$@0#ltoken_isStateDefined +^1240 2762$$$@0#ltoken_setDefined +^1241 2768$$$@0#ltoken_setIntField +^1242 2770$$$@0#ltoken_getLine +^1243 2772$$$@0#ltoken_setLine +^1244 2774$$$@0#ltoken_getCol +^1245 2776$@0@@1@p0$@0#ltoken_setCol +^1246 2778$^$@0#ltoken_getCode +^1247 2780$^$@0#ltoken_getIntField +^1248 2782$^$@0#ltoken_getText +^1249 2785$^@19@2@0#ltoken_getTextChars +^1250 2787$^$@0#ltoken_hasSyn +^1251 2789$$$@0#ltoken_wasSyn +^1252 2795$$$@0#ltoken_setCode +^1253 2797$$$@0#ltoken_setRawText +^1254 2799$$$@0#ltoken_setIdType +^1255 2801$$$@0#ltoken_setText +^1256 2808$^@19@3@0#ltoken_getRawTextChars +^1257 2810@6@5@1@0@0^@19@3@0#ltoken_getRawString +^1258 2814@6@5@1@0@0$@19@3@0#ltoken_fileName +^1259 2816$$$@0#ltoken_setFileName +^1260 2818$$$@0#ltoken_isChar +^1261 2820$$$@0#ltoken_setHasSyn +*1 (Constant) +^1262 0$#LTOKENLIST_H +*4 (Function) +^1263 2840@6@0@1@0@54^$@0#ltokenList_isDefined +^1264 2842@6@0@1@0@53^$@0#ltokenList_isUndefined +^1265 2844$^$@0#ltokenList_size +^1266 2846$^$@0#ltokenList_empty +^1267 2848$^$@0#ltokenList_isEmpty +*1 (Constant) +^1268 0$#IMPORTNODELIST_H#SORTLIST_H#LSYMBOLLIST_H#LSYMBOLSET_H +*4 (Function) +^1272 2948@6@0@1@0@54^$@0#lsymbolSet_isDefined +*1 (Constant) +^1273 0$#SORTSET_H +*4 (Function) +^1274 2966@6@0@1@0@54^$@0#sortSet_isDefined +^1275 2968$$$@0#sortSet_size +*1 (Constant) +^1276 0$#PAIRNODELIST_H +*4 (Function) +^1277 3001@6@0@1@0@54^$@0#pairNodeList_isDefined +*1 (Constant) +^1278 0$#DECLARATORNODELIST_H#DECLARATORINVNODELIST_H +*4 (Function) +^1280 3051$$$@0#declaratorInvNodeList_size +^1281 3078$$$@0#abstDeclaratorNode_free +*1 (Constant) +^1282 0$#VARNODE_H#VARNODELIST_H#QUANTIFIERNODELIST_H +*4 (Function) +^1285 3145$$$@0#storeRefNode_isTerm +^1286 3147$$$@0#storeRefNode_isObj +^1287 3149$$$@0#storeRefNode_isType +^1288 3151$$$@0#storeRefNode_isSpecial +*1 (Constant) +^1289 0$#STOREREFNODELIST_H#LETDECLNODELIST_H#PROGRAMNODELIST_H#INITDECLNODELIST_H#VARDECLNODE_H#VARDECLARATIONNODELIST_H +*4 (Function) +^1295 3299$$$@0#globalList_free +^1296 3297@6@5@1@0@0$@3@0@0#globalList_unparse +*1 (Constant) +^1297 0$#FCNNODELIST_H +*4 (Function) +^1298 3322@6@0@1@0@54$$@0#fcnNodeList_isDefined +^1299 3324@6@0@1@0@53$$@0#fcnNodeList_isUndefined +^1300 3326$$$@0#fcnNodeList_size +^1301 3328$$$@0#fcnNodeList_isEmpty +*1 (Constant) +^1302 0$#STRUCTDECLNODELIST_H +*4 (Function) +^1303 3368$$$@0#stDeclNodeList_size +*1 (Constant) +^1304 0$#TYPENODE_H +*4 (Function) +^1305 3420@6@0@1@0@54^$@0#lclTypeSpecNode_isDefined +*1 (Constant) +^1306 0$#TYPENAMENODELIST_H +*4 (Function) +^1307 3447$$$@0#typeNameNodeList_size +^1308 3449$$$@0#typeNameNodeList_empty +*1 (Constant) +^1309 0$#SIGNODESET_H +*4 (Function) +^1310 3494@6@0@1@0@54^$@0#sigNodeSet_isDefined +^1311 3496@6@0@1@0@53^$@0#sigNodeSet_isUndefined +^1312 3498$^$@0#sigNodeSet_isEmpty +^1313 3500$^$@0#sigNodeSet_size +*1 (Constant) +^1314 0$#lslOpSET_H +*4 (Function) +^1315 3553@6@0@1@0@54^$@0#lslOpSet_isDefined +^1316 3555$^$@0#lslOpSet_size +*1 (Constant) +^1317 0$#replaceNodeLIST_H +*4 (Function) +^1318 3586$$$@0#replaceNodeList_size +^1319 3588$$$@0#replaceNodeList_isDefined +*1 (Constant) +^1320 0$#traitRefNodeLIST_H#interfaceNodeLIST_H +*4 (Function) +^1322 3682@6@0@1@0@54^$@0#termNode_isDefined +*1 (Constant) +^1323 0$#termNodeLIST_H +*4 (Function) +^1324 3694$$$@0#termNodeList_size +^1325 3696$$$@0#termNodeList_empty +^1326 3698@6@0@1@0@54$$@0#termNodeList_isDefined +*1 (Constant) +^1327 0$#sortSetLIST_H +*4 (Function) +^1328 3742$$$@0#sortSetList_size +*1 (Constant) +^1329 0$#lslOpLIST_H +*3 (Variable) +^1330 0|@11|^#MASH +*1 (Constant) +^1331 0$#SYMTABLE_H +*4 (Function) +^1332 4094@6@0@1@0@54$$@0#typeInfo_exists +^1333 4096@6@0@1@0@54$$@0#varInfo_exists +^1334 4098@6@0@1@0@54$$@0#tagInfo_exists +^1335 4100@6@0@1@0@54$$@0#opInfo_exists +*1 (Constant) +^1336 0$#exprNodeList_H +*4 (Function) +^1337 4163$^$@0#exprNodeList_size +^1338 4165$^$@0#exprNodeList_isEmpty +*1 (Constant) +^1339 0$#CPRIM_H +*4 (Function) +^1340 4194$$$@0#cprim_isUnsignedChar +^1341 4196$$$@0#cprim_isSignedChar +^1342 4198$$$@0#cprim_isAnyChar +^1343 4200$$$@0#cprim_isAnyInt +^1344 4202$$$@0#cprim_isAnyReal +^1345 4204$$$@0#cprim_equal +*1 (Constant) +^1346 0$#CSTRINGTABLE_H +*4 (Function) +^1347 4229@6@0@1@0@54^$@0#cstringTable_isDefined +^1348 4231@6@0@1@0@53^$@0#cstringTable_isUndefined +*1 (Constant) +^1349 0$#GHTABLE_H +*4 (Function) +^1350 4264@6@0@1@0@54^$@0#genericTable_isDefined +^1351 4266@6@0@1@0@53^$@0#genericTable_isUndefined +*1 (Constant) +^1352 0$#filelocLIST_H +*4 (Function) +^1353 4295@6@0@1@0@54$$@0#filelocList_isDefined +^1354 4293@6@0@1@0@53^$@0#filelocList_isUndefined +^1355 4300$^$@0#filelocList_size +^1356 4302$$$@0#filelocList_isEmpty +*1 (Constant) +^1357 0$#enumNameLIST_H +*4 (Function) +^1358 4321@6@5@1@0@0^@2@0@0#enumName_create +^1359 4330$$$@0#enumNameList_size +*1 (Constant) +^1360 0$#enumNameSLIST_H +*4 (Function) +^1361 4359$^$@0#enumNameSList_size +^1362 4361$$@2@0@0#enumNameSList_subtract +^1363 4363$$@2@0@0#enumNameSList_new +^1364 4365$$$@0#enumNameSList_member +^1365 4367$$$@0#enumNameSList_addh +^1366 4371@6@5@1@0@0^@2@0@0#enumNameSList_unparse +*1 (Constant) +^1367 0$#VARKINDSH +*4 (Function) +^1368 4382$^$@0#nstate_isKnown +^1369 4384$^$@0#nstate_isValid +^1370 4392$^$@0#sstate_isKnown +^1371 4394$^$@0#sstate_isUnknown +^1372 4396$^$@0#exkind_isUnknown +^1373 4398$^$@0#exkind_isKnown +^1374 4400$^$@0#alkind_isValid +^1375 4402$^$@0#alkind_isImplicit +^1376 4404$^$@0#alkind_isDependent +^1377 4406$^$@0#alkind_isOnly +^1378 4408$^$@0#alkind_isTemp +^1379 4412$^$@0#alkind_isOwned +^1380 4414$^$@0#alkind_isStack +^1381 4416$^$@0#alkind_isStatic +^1382 4418$^$@0#alkind_isKeep +^1383 4420$^$@0#alkind_isKept +^1384 4422$^$@0#alkind_isUnique +^1385 4424$^$@0#alkind_isError +^1386 4426$^$@0#alkind_isFresh +^1387 4428$^$@0#alkind_isShared +^1388 4430$^$@0#alkind_isLocal +^1389 4432$^$@0#alkind_isKnown +^1390 4434$^$@0#alkind_isUnknown +^1391 4436$^$@0#alkind_isRefCounted +^1392 4438$^$@0#alkind_isRefs +^1393 4440$^$@0#alkind_isNewRef +^1394 4442$^$@0#alkind_isKillRef +^1395 4489$^$@0#exitkind_isMustExit +^1396 4491$^$@0#exitkind_equal +^1397 4501$^$@0#exitkind_isKnown +^1398 4503$^$@0#exitkind_isTrueExit +^1399 4505$^$@0#exitkind_isConditionalExit +^1400 4507$^$@0#exitkind_isError +^1401 4509$^$@0#exitkind_mustExit +^1402 4511$^$@0#exitkind_mustEscape +*1 (Constant) +^1403 0$#sRefSET_H +*4 (Function) +^1404 4523@6@0@1@0@53^$@0#sRefSet_isUndefined +^1405 4527@6@0@1@0@54^$@0#sRefSet_isDefined +^1406 4525@6@0@1@0@53^$@0#sRefSet_isEmpty +*1 (Constant) +^1407 0$#EKIND_H +*4 (Function) +^1408 4628$^$@0#ekind_equal +^1409 4634$^$@0#ekind_isFunction +^1410 4636$^$@0#ekind_isVariable +^1411 4638$^$@0#ekind_isElipsis +^1412 4640$^$@0#ekind_isConst +^1413 4642$^$@0#ekind_isEnumConst +^1414 4632$^$@0#ekind_toInt +*1 (Constant) +^1415 0$#USYMIDSET_H#USYMID_H +*4 (Function) +^1417 4652$^$@0#usymId_equal +^1418 4683@6@0@1@0@54^$@0#usymIdSet_isDefined +^1419 4685@6@0@1@0@53^$@0#usymIdSet_isUndefined +^1420 4688$$$@0#usymIdSet_size +*1 (Constant) +^1421 0$#sRefLIST_H +*4 (Function) +^1422 4698@6@0@1@0@53^$@0#sRefList_isEmpty +^1423 4696@6@0@1@0@53^$@0#sRefList_isUndefined +^1424 4700@6@0@1@0@54^$@0#sRefList_isDefined +*1 (Constant) +^1425 0$#uentryLIST_H +*4 (Function) +^1426 4724@6@5@1@0@0$@2@0@0#uentryList_makeMissingParams +^1427 4730@6@0@1@0@53^$@0#uentryList_isEmpty +^1428 4728@6@0@1@0@53^$@0#uentryList_isUndefined +^1429 4732@6@0@1@0@54^$@0#uentryList_isDefined +^1430 4794$$$@0#uentryList_sameObject +*1 (Constant) +^1431 0$#globSet_H +*4 (Function) +^1432 4801$$$@0#globSet_size +^1433 4803$$$@0#globSet_isEmpty +^1434 4835@6@0@1@0@54^$@0#globSet_isDefined +^1435 4837@6@0@1@0@53^$@0#globSet_isUndefined +*1 (Constant) +^1436 0$#ctypeLIST_H +*4 (Function) +^1437 4844$^$@0#ctypeList_size +^1438 4858@6@0@1@0@54^$@0#ctypeList_isDefined +^1439 4860@6@0@1@0@53^$@0#ctypeList_isUndefined +*1 (Constant) +^1440 0$#aliasTable_H +*4 (Function) +^1441 4872@6@0@1@0@54$$@0#aliasTable_isDefined +^1442 4868@6@0@1@0@53$$@0#aliasTable_isUndefined +^1443 4870@6@0@1@0@53$$@0#aliasTable_isEmpty +^1444 4874$$$@0#aliasTable_size +*1 (Constant) +^1445 0$#READER_H +*4 (Function) +^1446 4916$@0@@1@tp0$@0#reader_checkChar +^1447 4921@6@5@1@0@0@0@@1@tp0@3@0@0#reader_getStringWord +*1 (Constant) +^1448 0$#USYMTAB_H +*4 (Function) +^1449 4974@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookup +^1450 5042$^$@0#usymId_fromInt +^1451 5044$^$@0#usymId_isInvalid +^1452 5046$^$@0#usymId_isValid +^1453 5048$^$@0#typeId_isInvalid +^1454 5050$^$@0#typeId_isValid +^1455 5052$^$@0#typeId_equal +^1456 5054$$$@0#typeId_fromInt +^1457 5175@6@0@1@0@54^$@0#usymtab_isDefined +*1 (Constant) +^1458 0$#CTYPE_H +*4 (Function) +^1459 5189$$$@0#ctkind_toInt +^1460 5393@6@5@1@0@0^@19@3@0#ctype_getParams +^1461 5399$^$@0#ctype_toCprim +^1462 5415$^$@0#ctype_isMissingParamsMarker +^1463 5417$$$@0#ctype_equal +^1464 5421$^$@0#ctype_isElips +^1465 5423$^$@0#ctype_isAP +^1466 5425$^$@0#ctype_isDefined +^1467 5427$^$@0#ctype_isKnown +^1468 5429$^$@0#ctype_isSU +^1469 5431$^$@0#ctype_isUndefined +^1470 5433$^$@0#ctype_isUnknown +^1471 5435$^$@0#ctype_isBogus +*1 (Constant) +^1472 0$#QTYPEH +*4 (Function) +^1473 5463@6@0@1@0@53$$@0#qtype_isUndefined +^1474 5465@6@0@1@0@54$$@0#qtype_isDefined +^1475 5467$$$@0#qtype_getType +^1476 5469@6@5@1@0@0$@19@2@0#qtype_getQuals +^1477 5471$$$@0#qtype_setType +*1 (Constant) +^1478 0$#idDecl_H +*4 (Function) +^1479 5502@6@0@1@0@54^$@0#idDecl_isDefined +^1480 5534@6@5@1@0@0^@18@3@0#idDecl_getName +*1 (Constant) +^1481 0$#MULTIVAL_H +*4 (Function) +^1482 5549@6@0@1@0@54^$@0#multiVal_isDefined +^1483 5551@6@0@1@0@53^$@0#multiVal_isUndefined +^1484 5553@6@0@1@0@53^$@0#multiVal_isUnknown +^1485 5595$^$@0#multiVal_equiv +*1 (Constant) +^1486 0$#STATECLAUSE_H +*4 (Function) +^1487 5619$^$@0#stateClause_isGlobal +^1488 5631@6@5@1@0@0^@19@3@0#stateClause_getRefs +*1 (Constant) +^1489 0$#STATECLAUSELIST_H +*4 (Function) +^1490 5687@6@0@1@0@54^$@0#stateClauseList_isDefined +^1491 5689@6@0@1@0@53^$@0#stateClauseList_isUndefined +^1492 5691$^$@0#stateClauseList_size +*1 (Constant) +^1493 0$#UENTRY_H#CENTRY_H +*4 (Function) +^1495 5759@6@0@1@0@53^$@0#uentry_isUndefined +^1496 5763@6@0@1@0@54^$@0#uentry_isValid +^1497 5761@6@0@1@0@53^$@0#uentry_isInvalid +^1498 5775@6@0@1@0@54$$@0#uentry_isLset +^1499 5777@6@0@1@0@54$$@0#uentry_isUsed +^1500 5779@6@0@1@0@54^$@0#uentry_isAbstractType +^1501 5781@6@0@1@0@54^$@0#uentry_isConstant +^1502 5783@6@0@1@0@54^$@0#uentry_isEitherConstant +^1503 5785@6@0@1@0@54^$@0#uentry_isEnumConstant +^1504 5787@6@0@1@0@54^$@0#uentry_isExternal +^1505 5789@6@0@1@0@54^$@0#uentry_isExtern +^1506 5793@6@0@1@0@54^$@0#uentry_isFunction +^1507 5795@6@0@1@0@54^$@0#uentry_isPriv +^1508 5801@6@0@1@0@54^$@0#uentry_isStatic +^1509 5803$$$@0#uentry_setLset +^1510 5821$$$@0#uentry_sameObject +^1511 5837$$$@0#uentry_setNotUsed +^1512 5839$$$@0#uentry_wasUsed +^1513 5979$^$@0#uentry_isElipsisMarker +^1514 6180@6@5@1@0@0^@19@3@0#uentry_getUses +^1515 6212$$$@0#uentry_hasBufStateInfo +^1516 6214$$$@0#uentry_isNullTerminated +^1517 6216$$$@0#uentry_isPossiblyNullTerminated +^1518 6218$$$@0#uentry_isNotNullTerminated +*1 (Constant) +^1519 0$#STATEINFO_H +*4 (Function) +^1520 6238@6@0@1@0@54^$@0#stateInfo_isDefined +*1 (Constant) +^1521 0$#STATEVALUE_H +*4 (Function) +^1522 6261@6@0@1@0@53^$@0#stateValue_isUndefined +^1523 6263@6@0@1@0@54^$@0#stateValue_isDefined +^1524 6269@6@5@1@0@0^@19@3@0#stateValue_getLoc +^1525 6289$^$@0#stateValue_isError +*1 (Constant) +^1526 0$#VTABLE_H +*4 (Function) +^1527 6291@6@0@1@0@54^$@0#valueTable_isDefined +^1528 6293@6@0@1@0@53^$@0#valueTable_isUndefined +^1529 6295@6@5@1@0@0$@2@0@0#valueTable_create +^1530 6299@6@5@1@0@0^@18@2@0#valueTable_lookup +^1531 6301@6@5@1@0@0$@2@0@0#valueTable_stats +^1532 6303$$$@0#valueTable_free +^1533 6312$^$@0#valueTable_size +*1 (Constant) +^1534 0$#STOREREF_H +*4 (Function) +^1535 6367@6@0@1@0@53^$@0#sRef_isInvalid +^1536 6369@6@0@1@0@54^$@0#sRef_isValid +^1537 6391$^$@0#sRef_hasLastReference +^1538 6389@6@0@1@0@54^$@0#sRef_isKnown +^1539 6393$^$@0#sRef_isMeaningful +^1540 6395$^$@0#sRef_isNew +^1541 6397$^$@0#sRef_isType +^1542 6399$^$@0#sRef_isSafe +^1543 6401$^$@0#sRef_isUnsafe +^1544 6403$@0@@1@p0$@0#sRef_clearAliasKind +^1545 6405$^$@0#sRef_stateKnown +^1546 6409$^$@0#sRef_getOrigAliasKind +^1547 6411@6@0@1@0@54^$@0#sRef_isConj +^1548 6461@6@0@1@0@54^$@0#sRef_isKindSpecial +^1549 6757$^$@0#sRef_isUndefGlob +^1550 6759$^$@0#sRef_isKilledGlob +^1551 6761$^$@0#sRef_isRelDef +^1552 6763$^$@0#sRef_isPartial +^1553 6765$^$@0#sRef_isStateSpecial +^1554 6769$^$@0#sRef_isStateDefined +^1555 6771$^$@0#sRef_isAnyDefined +^1556 6773@6@0@1@0@54^$@0#sRef_isPdefined +^1557 6777$^$@0#sRef_isStateUnknown +^1558 6779@6@0@1@0@54^$@0#sRef_isRefCounted +^1559 6781@6@0@1@0@54^$@0#sRef_isNewRef +^1560 6783@6@0@1@0@54^$@0#sRef_isKillRef +^1561 6793$^$@0#sRef_isKept +^1562 6811$^$@0#sRef_isRefsField +^1563 6941$$$@0#sRef_getSize +^1564 6943$$$@0#sRef_getLen +^1565 6945$$$@0#sRef_hasBufStateInfo +^1566 6947$$$@0#sRef_isNullTerminated +^1567 6949$$$@0#sRef_isPossiblyNullTerminated +^1568 6951$$$@0#sRef_isNotNullTerminated +*1 (Constant) +^1569 0$#GUARDSET_H +*4 (Function) +^1570 6972@6@0@1@0@54^$@0#guardSet_isDefined +*1 (Constant) +^1571 0$#__constraintTerm_h__ +*4 (Function) +^1572 7015$$$@0#constraintTermValue_copy +^1573 7028@6@0@1@0@54^$@0#constraintTerm_isDefined +^1574 7030@6@0@1@0@53^$@0#constraintTerm_isUndefined +^1575 7032@6@0@1@0@53^$@0#constraintTerm_isError +*1 (Constant) +^1576 0$#__constraintExprData_h__ +*4 (Function) +^1577 7088@6@0@1@0@54^$@0#constraintExprData_isDefined +^1578 7090@6@0@1@0@53^$@0#constraintExprData_isUndefined +^1579 7092@6@0@1@0@53^$@0#constraintExprData_isError +*1 (Constant) +^1580 0$#__constraintExpr_h__ +*4 (Function) +^1581 7134@6@0@1@0@54^$@0#constraintExpr_isDefined +^1582 7136@6@0@1@0@53^$@0#constraintExpr_isUndefined +^1583 7138@6@0@1@0@53^$@0#constraintExpr_isError +*1 (Constant) +^1584 0$#__constraint_h__ +*4 (Function) +^1585 7220@6@0@1@0@54^$@0#constraint_isDefined +^1586 7222@6@0@1@0@53^$@0#constraint_isUndefined +^1587 7224@6@0@1@0@53^$@0#constraint_isError +*1 (Constant) +^1588 0$#constraintLIST_H +*4 (Function) +^1589 7365@6@0@1@0@54^$@0#constraintList_isDefined +^1590 7367@6@0@1@0@53^$@0#constraintList_isUndefined +^1591 7369@6@0@1@0@53^$@0#constraintList_isError +*1 (Constant) +^1592 0$#EXPRNODE_H +*4 (Function) +^1593 7471@6@0@1@0@54^$@0#exprNode_isDefined +^1594 7473@6@0@1@0@53^$@0#exprNode_isUndefined +^1595 7475@6@0@1@0@53^$@0#exprNode_isError +^1596 7477@6@5@1@0@0^@18@2@0#exprNode_getGuards +^1597 7479$^$@0#exprNode_getType +^1598 7481@6@0@1@0@54^$@0#exprNode_isInParens +^1599 7483$^$@0#exprNode_isStringLiteral +^1600 7485$^$@0#exprNode_knownIntValue +^1601 7487$^$@0#exprNode_knownStringValue +^1602 7489$^$@0#exprNode_hasValue +*1 (Constant) +^1603 0$#typeIdSET_H#idDeclLIST_H#CLABSTRACT_H#sRefSetLIST_H +*4 (Function) +^1607 7979@6@0@1@0@54$$@0#sRefSetList_isDefined +^1608 7981@6@0@1@0@53$$@0#sRefSetList_isUndefined +*1 (Constant) +^1609 0$#FLAGMARKER_H +*4 (Function) +^1610 7998$^$@0#flagMarker_isLocalSet +^1611 8000$^$@0#flagMarker_isSuppress +^1612 8002$^$@0#flagMarker_isIgnoreOn +^1613 8004$^$@0#flagMarker_isIgnoreOff +^1614 8006$^$@0#flagMarker_isIgnoreCount +^1615 8032@6@5@1@0@0^@19@3@0#flagMarker_getLoc +*1 (Constant) +^1616 0$#flagMarkerList_H#MACROCACHE_H#FILETABLE_H +*4 (Function) +^1619 8093@6@0@1@0@53^$@0#fileTable_isUndefined +^1620 8095@6@0@1@0@54^$@0#fileTable_isDefined +^1621 8133$^$@129#fileId_isHeader +^1622 8155@6@5@1@0@0^@19@3@0#fileName +^1623 8157@6@5@1@0@0^@19@3@0#fileNameBase +^1624 8159@6@5@1@0@0^@19@3@0#rootFileName +^1625 8163$^$@129#fileId_baseEqual +*1 (Constant) +^1626 0$#messageLog_H +*4 (Function) +^1627 8175@6@0@1@0@54^$@0#messageLog_isDefined +*1 (Constant) +^1628 0$#clauseStack_H +*4 (Function) +^1629 8191$^$@0#clauseStack_size +^1630 8193$^$@0#clauseStack_isEmpty +*1 (Constant) +^1631 0$#STATECOMBINATIONTABLE_H +*4 (Function) +^1632 8241$^$@0#stateCombinationTable_size +*1 (Constant) +^1633 0$#MSINFO_H +*4 (Function) +^1634 8246@6@0@1@0@54^$@0#metaStateInfo_isDefined +^1635 8248@6@0@1@0@53^$@0#metaStateInfo_isUndefined +*1 (Constant) +^1636 0$#MSTABLE_H +*4 (Function) +^1637 8280@6@0@1@0@54^$@0#metaStateTable_isDefined +^1638 8282@6@0@1@0@53^$@0#metaStateTable_isUndefined +^1639 8284@6@5@1@0@0^@2@0@0#metaStateTable_create +^1640 8288@6@5@1@0@0^@18@2@0#metaStateTable_lookup +^1641 8290$^$@0#metaStateTable_contains +^1642 8292@6@5@1@0@0$@2@0@0#metaStateTable_stats +^1643 8294$$$@0#metaStateTable_free +^1644 8299$$$@0#metaStateTable_size +*1 (Constant) +^1645 0$#ANNOTINFO_H +*4 (Function) +^1646 8302@6@0@1@0@54^$@0#annotationInfo_isDefined +^1647 8304@6@0@1@0@53^$@0#annotationInfo_isUndefined +^1648 8306$^$@0#annotationInfo_equal +*1 (Constant) +^1649 0$#ANNOTTABLE_H +*4 (Function) +^1650 8330@6@0@1@0@54^$@0#annotationTable_isDefined +^1651 8332@6@0@1@0@53^$@0#annotationTable_isUndefined +^1652 8334@6@5@1@0@0^@2@0@0#annotationTable_create +^1653 8338@6@5@1@0@0^@18@2@0#annotationTable_lookup +^1654 8340$^$@0#annotationTable_contains +^1655 8342@6@5@1@0@0$@2@0@0#annotationTable_stats +^1656 8346$$$@0#annotationTable_free +^1657 8349$$$@0#annotationTable_size +*1 (Constant) +^1658 0$#CONTEXT_H +*4 (Function) +^1659 8557$^$@0#context_getLineLen +^1660 8559$^$@0#context_getIndentSpaces +^1661 8577$$$@0#context_getDebug +^1662 8809$^$@0#context_getBugsLimit +*1 (Constant) +^1663 0$#CONSTANTS_H +*4 (Function) +^1664 8817$$$@0#anyAbstract +*3 (Variable) +^1665 0|@11|^#SHOWCSYM +*1 (Constant) +^1666 5$#YYDEBUG +*3 (Variable) +^1667 0|@11|^#const#YYFINAL#YYFLAG#YYNTBASE#YYTRANSLATE#YYLAST#YYSTACK_ALLOC#yyerrok#yyclearin#YYEMPTY#YYEOF#YYACCEPT#YYABORT#YYERROR#YYFAIL#YYRECOVERING#YYBACKUP#YYTERROR#YYERRCODE#YYLEX#YYINITDEPTH#YYMAXDEPTH#YYPARSE_PARAM_ARG#YYPARSE_PARAM_DECL#YYPOPSTACK#DEFFILENO#FLEX_SCANNER#YY_FLEX_MAJOR_VERSION#YY_FLEX_MINOR_VERSION#yyconst#YY_PROTO#YY_NULL#YY_SC_TO_UI#BEGIN#YY_START#YYSTATE#YY_STATE_EOF#YY_NEW_FILE#YY_END_OF_BUFFER_CHAR#YY_BUF_SIZE#EOB_ACT_CONTINUE_SCAN#EOB_ACT_END_OF_FILE#EOB_ACT_LAST_MATCH#yyless#unput#YY_BUFFER_NEW#YY_BUFFER_NORMAL#YY_BUFFER_EOF_PENDING#YY_CURRENT_BUFFER#YY_FLUSH_BUFFER#yy_new_buffer#yy_set_interactive#yy_set_bol#YY_AT_BOL#yytext_ptr#YY_DO_BEFORE_ACTION#YY_NUM_RULES#YY_END_OF_BUFFER#REJECT#yymore#YY_MORE_ADJ#YY_RESTORE_YY_MORE_OFFSET#INITIAL +*1 (Constant) +^1730 0$#FILEIDLIST_H +*4 (Function) +^1731 8934@6@0@1@0@54$$@0#fileIdList_isDefined +^1732 8937@6@5@1@0@0$@3@0@0#fileIdList_create +^1733 8941@6@5@1@0@0@0@@1@p0@3@0@0#fileIdList_append +^1734 8943$@0@@1@p0$@0#fileIdList_add +^1735 8945$$$@0#fileIdList_size +^1736 8947$@0@@1@p0$@0#fileIdList_free +^1737 8939$^$@0#fileIdList_isEmpty +*1 (Constant) +^1738 0$#PORTAB_H +*3 (Variable) +^1739 0|@11|^#yyinput#RETURN_INT#RETURN_FLOAT#RETURN_CHAR#RETURN_TOK#RETURN_TYPE#RETURN_STRING#RETURN_EXPR#YY_NO_PUSH_STATE#YY_NO_POP_STATE#YY_NO_TOP_STATE#YY_READ_BUF_SIZE#YY_INPUT#yyterminate#YY_START_STACK_INCR#YY_FATAL_ERROR#YY_DECL#YY_USER_ACTION#YY_BREAK#YY_RULE_SETUP#YY_EXIT_FAILURE +*1 (Constant) +^1760 0$#LLBASIC_H#LLGLOBALS_H#MTGRAMMAR_H +*3 (Variable) +^1763 0|@11|^#MT_BADTOK#MT_END#MT_STATE#MT_GLOBAL#MT_CONTEXT#MT_ONEOF#MT_DEFAULTS#MT_DEFAULT#MT_REFERENCE#MT_PARAMETER#MT_CLAUSE#MT_ANNOTATIONS#MT_ARROW#MT_MERGE#MT_TRANSFERS#MT_PRECONDITIONS#MT_POSTCONDITIONS#MT_LOSEREFERENCE#MT_AS#MT_ERROR#MT_PLUS#MT_STAR#MT_BAR#MT_LPAREN#MT_RPAREN#MT_LBRACKET#MT_RBRACKET#MT_LBRACE#MT_RBRACE#MT_COMMA#MT_CHAR#MT_INT#MT_FLOAT#MT_DOUBLE#MT_VOID#MT_ANYTYPE#MT_INTEGRALTYPE#MT_UNSIGNEDINTEGRALTYPE#MT_SIGNEDINTEGRALTYPE#MT_CONST#MT_VOLATILE#MT_STRINGLIT#MT_IDENT +*1 (Constant) +^1806 0$#MTTOK_H +*4 (Function) +^1807 9138$^$@0#mttok_getTok +^1808 9140@6@5@1@0@0^@18@2@0#mttok_getLoc +^1809 9144@6@5@1@0@0^@2@0@0#mttok_getText +^1810 9146@6@5@1@0@0^@19@3@0#mttok_observeText +*1 (Constant) +^1811 0$#MTREADER_H#MTDECLARATIONNODE_H#MTDECLARATIONPIECE_H +*4 (Function) +^1814 9173@6@0@1@0@54^$@0#mtDeclarationPiece_isDefined +^1815 9175@6@0@1@0@53^$@0#mtDeclarationPiece_isUndefined +*1 (Constant) +^1816 0$#mtDeclarationPieces_H +*4 (Function) +^1817 9226@6@0@1@0@54^$@0#mtDeclarationPieces_isDefined +^1818 9228@6@0@1@0@53^$@0#mtDeclarationPieces_isUndefined +*1 (Constant) +^1819 0$#MTCONTEXTNODE_H +*4 (Function) +^1820 9244@6@0@1@0@54^$@0#mtContextNode_isDefined +*1 (Constant) +^1821 0$#MTVALUESNODE_H +*4 (Function) +^1822 9277@6@5@1@0@0^@19@3@0#mtValuesNode_getValues +*1 (Constant) +^1823 0$#MTDEFAULTSNODE_H +*4 (Function) +^1824 9284@6@5@1@0@0^@19@3@0#mtDefaultsNode_getDecls +*1 (Constant) +^1825 0$#mtDefaultsDecl_H +*4 (Function) +^1826 9293@6@5@1@0@0^@19@3@0#mtDefaultsDecl_getLoc +^1827 9295@6@5@1@0@0^@19@3@0#mtDefaultsDecl_getContext +^1828 9297@6@5@1@0@0^@19@3@0#mtDefaultsDecl_getValue +*1 (Constant) +^1829 0$#mtDefaultsDeclLIST_H +*4 (Function) +^1830 9304@6@0@1@0@54^$@0#mtDefaultsDeclList_isDefined +^1831 9306$^$@0#mtDefaultsDeclList_size +^1832 9308@6@0@1@0@54^$@0#mtDefaultsDeclList_empty +*1 (Constant) +^1833 0$#MTANNOTATIONSNODE_H +*4 (Function) +^1834 9328@6@5@1@0@0^@19@3@0#mtAnnotationsNode_getAnnotations +*1 (Constant) +^1835 0$#MTANNOTATIONLIST_H +*4 (Function) +^1836 9336@6@0@1@0@54^$@0#mtAnnotationList_isDefined +^1837 9338$^$@0#mtAnnotationList_size +^1838 9340@6@0@1@0@54^$@0#mtAnnotationList_empty +*1 (Constant) +^1839 0$#MTANNOTATIONDECL_H +*4 (Function) +^1840 9362@6@5@1@0@0^@19@3@0#mtAnnotationDecl_getName +^1841 9364@6@5@1@0@0^@19@3@0#mtAnnotationDecl_getValue +^1842 9368@6@5@1@0@0^@19@3@0#mtAnnotationDecl_getContext +^1843 9370@6@5@1@0@0^@19@3@0#mtAnnotationDecl_getLoc +*1 (Constant) +^1844 0$#MTMERGENODE_H +*4 (Function) +^1845 9379@6@5@1@0@0^@19@3@0#mtMergeNode_getClauses +*1 (Constant) +^1846 0$#MTTRANSFERCLAUSELIST_H +*4 (Function) +^1847 9384@6@0@1@0@54^$@0#mtTransferClauseList_isDefined +^1848 9386$^$@0#mtTransferClauseList_size +^1849 9388@6@0@1@0@54^$@0#mtTransferClauseList_empty +*1 (Constant) +^1850 0$#MTTRANSFERCLAUSE_H +*4 (Function) +^1851 9410@6@5@1@0@0^@19@3@0#mtTransferClause_getFrom +^1852 9412@6@5@1@0@0^@19@3@0#mtTransferClause_getTo +^1853 9414$^@19@3@0#mtTransferClause_getAction +^1854 9416@6@5@1@0@0^@19@3@0#mtTransferClause_getLoc +*1 (Constant) +^1855 0$#MTLoseReferenceLIST_H +*4 (Function) +^1856 9423@6@0@1@0@54^$@0#mtLoseReferenceList_isDefined +^1857 9425$^$@0#mtLoseReferenceList_size +^1858 9427@6@0@1@0@54^$@0#mtLoseReferenceList_empty +*1 (Constant) +^1859 0$#MTLoseReference_H +*4 (Function) +^1860 9449@6@5@1@0@0^@19@3@0#mtLoseReference_getFrom +^1861 9451$^@19@3@0#mtLoseReference_getAction +^1862 9453@6@5@1@0@0^@19@3@0#mtLoseReference_getLoc +*1 (Constant) +^1863 0$#MTTRANSFERACTION_H +*4 (Function) +^1864 9466@6@5@1@0@0^@19@3@0#mtTransferAction_getValue +^1865 9468@6@5@1@0@0^@19@3@0#mtTransferAction_getLoc +^1866 9472$^$@0#mtTransferAction_isError +*1 (Constant) +^1867 0$#MTMERGEITEM_H +*4 (Function) +^1868 9489$^$@0#mtMergeItem_isStar +^1869 9491@6@5@1@0@0^@19@3@0#mtMergeItem_getValue +^1870 9493@6@5@1@0@0^@19@3@0#mtMergeItem_getLoc +*1 (Constant) +^1871 0$#MTMERGECLAUSE_H +*4 (Function) +^1872 9500$^@19@3@0#mtMergeClause_getItem1 +^1873 9502$^@19@3@0#mtMergeClause_getItem2 +^1874 9504$^@19@3@0#mtMergeClause_getAction +^1875 9506@6@5@1@0@0^@19@3@0#mtMergeClause_getLoc +*1 (Constant) +^1876 0$#MTMERGECLAUSELIST_H +*4 (Function) +^1877 9513@6@0@1@0@54^$@0#mtMergeClauseList_isDefined +^1878 9515$^$@0#mtMergeClauseList_size +^1879 9517@6@0@1@0@54^$@0#mtMergeClauseList_empty +*1 (Constant) +^1880 0$#MTSCANNER_H +*4 (Function) +^1881 8859$$$@0#yyparse +^1882 933$$$@0#yylex +^1883 8866$$$@0#yyerror +*3 (Variable) +^1884 8854|@11|^#yylval +^1885 5|@11|^#yychar#yydebug#yynerrs +^1888 0|@11|^#YYPRINT#YYPURE +*1 (Constant) +^1890 0$#exprNodeSList_H#CPP_H +*4 (Function) +^1892 10232$^$@0#cppFatalErrors +*3 (Variable) +^1893 0|@11|^#CPP_OUT_BUFFER +*4 (Function) +^1894 10236$^$@0#cppReader_getWritten +^1895 10239$^@19@2@0#cppReader_getPWritten +^1896 10241$$$@0#cppReader_reserve +^1897 10243$@0@@1@tp0$@0#cppReader_putStrN +^1898 10245$@0@@1@tp0$@0@S:2.0.0.p0,tp0,ftoken_buffer.tp0$2.4.0.flimit.tp0$#cppReader_setWritten +^1899 10248$$@18@2@0@S:2.0.0.fopts.tp0$#CPPOPTIONS +*3 (Variable) +^1900 0|@11|^#CPPBUFFER +*4 (Function) +^1901 10257$^@19@2@0@S:2.0.0.fbuffer_stack.tp0$#cppReader_nullBuffer +^1902 10263$@0@@1@s0$@0@S:2.0.0.fopts.tp0$#cppReader_isTraditional +^1903 10265$^$@0#cppReader_isPedantic +*3 (Variable) +^1904 0|@11|^#HOST_BITS_PER_WIDE_INT#HOST_WIDE_INT +*1 (Constant) +^1906 0$#CPPHASH_H#CPPERROR_H#LLMAIN_H#LCLLIB_H#VERSION_H#OSD_H +*3 (Variable) +^1912 0|@11|^#PASTE#ISTR#STR +*1 (Constant) +^1915 0$#NO_SHORTNAMES +*3 (Variable) +^1916 0|@11|^#SKIP_WHITE_SPACE#SKIP_ALL_WHITE_SPACE +*4 (Function) +^1918 0$$$@0#cppBuffer_get +^1919 0$$$@0#cppReader_puts +^1920 0$$$@0#cppReader_putCharQ +^1921 0$$$@0#cppReader_putChar +^1922 0$$$@0#cppReader_nullTerminateQ +^1923 0$$$@0#cppReader_nullTerminate +^1924 0$$$@0#cppReader_adjustWritten +^1925 0$$$@0#cppReader_isC89 +^1926 0$$$@0#cppReader_wcharType +^1927 0$$$@0#cppReader_forward +^1928 0$$$@0#cppReader_getC +^1929 0$$$@0#cppReader_peekC +*3 (Variable) +^1930 0|@11|^#NEWLINE_FIX#NEWLINE_FIX1#REST_EXTENSION_LENGTH#ARG_BASE +*4 (Function) +^1934 0$$$@0#possibleSumSign +*3 (Variable) +^1935 0|@11|^#COMPARE#LOGICAL +*4 (Function) +^1937 0$$$@0#hashStep +^1938 0$$$@0#makePositive +*1 (Constant) +^1939 0$#FATAL_EXIT_CODE#STRUCTNAMES#NAMECHECKS_H +*4 (Function) +^1942 11885$^$@0#ctentry_isBogus +*3 (Variable) +^1943 0|@11|^#ctentry_getBase#ctentry_getKind#ctentry_getArray#ctentry_getPtr#ctentry_isArray#ctentry_isComplex#ctentry_isPlain#ctentry_isPointer#ctentry_setArray#ctentry_setPtr#ctbase_fixUser +*4 (Function) +^1954 11979$$$@0#cttable_lastIndex +*1 (Constant) +^1955 0$#CVAR_H#USYMTAB_INTERFACE_H +*4 (Function) +^1957 12545$$$@0#declareConstant +^1958 12547$$$@0#declareVar +^1959 12549$$$@0#declareType +^1960 12551$$$@0#declareFcn +^1961 12553$$$@0#declarePrivConstant +^1962 12555$$$@0#declarePrivVar +^1963 12557$$$@0#declarePrivType +^1964 12559$$$@0#declarePrivFcn +*3 (Variable) +^1965 0|@11|^#GETPRINTF +*1 (Constant) +^1966 0$#RANDOMNUMBERS_H#sRefTABLE_H +*4 (Function) +^1968 13931@6@0@1@0@53^$@0#sRefTable_isNull +^1969 13935@6@0@1@0@54^$@0#sRefTable_isDefined +^1970 13933@6@0@1@0@53^$@0#sRefTable_isEmpty +*3 (Variable) +^1971 0|@11|^#OR#AND#PREDTEST +*1 (Constant) +^1974 0$#LLGRAMMAR_H +*3 (Variable) +^1975 0|@11|^#simpleOp#PREFIX_OP#POSTFIX_OP#LLT_MULOP#LLT_SEMI#LLT_VERTICALBAR#ITERATION_OP#LLT_LPAR#LLT_LBRACKET#selectSym#LLT_IF_THEN_ELSE#logicalOp#eqSepSym#equationSym#commentSym#LLT_WHITESPACE#LLT_EOL#LLT_TYPEDEF_NAME#quantifierSym#openSym#closeSym#sepSym#simpleId#mapSym#markerSym#preSym#postSym#anySym#LLT_COLON#LLT_COMMA#LLT_EQUALS#LLT_LBRACE#LLT_RBRACE#LLT_RBRACKET#LLT_RPAR#LLT_QUOTE#eqOp#LLT_CCHAR#LLT_CFLOAT#LLT_CINTEGER#LLT_LCSTRING#LLT_ALL#LLT_ANYTHING#LLT_BE#LLT_BODY#LLT_CLAIMS#LLT_CHECKS#LLT_CONSTANT#LLT_ELSE#LLT_ENSURES#LLT_FOR#LLT_FRESH#LLT_IF#LLT_IMMUTABLE#LLT_IMPORTS#LLT_CONSTRAINT#LLT_ISSUB#LLT_LET#LLT_MODIFIES#LLT_MUTABLE#LLT_NOTHING#LLT_INTERNAL#LLT_FILESYS#LLT_OBJ#LLT_OUT#LLT_SEF#LLT_ONLY#LLT_PARTIAL#LLT_OWNED#LLT_DEPENDENT#LLT_KEEP#LLT_KEPT#LLT_TEMP#LLT_SHARED#LLT_UNIQUE#LLT_UNUSED#LLT_EXITS#LLT_MAYEXIT#LLT_NEVEREXIT#LLT_TRUEEXIT#LLT_FALSEEXIT#LLT_UNDEF#LLT_KILLED#LLT_CHECKMOD#LLT_CHECKED#LLT_UNCHECKED#LLT_CHECKEDSTRICT#LLT_TRUENULL#LLT_FALSENULL#LLT_LNULL#LLT_LNOTNULL#LLT_RETURNED#LLT_OBSERVER#LLT_EXPOSED#LLT_REFCOUNTED#LLT_REFS#LLT_RELNULL#LLT_RELDEF#LLT_KILLREF#LLT_NULLTERMINATED#LLT_TEMPREF#LLT_NEWREF#LLT_PRIVATE#LLT_REQUIRES#LLT_RESULT#LLT_SIZEOF#LLT_SPEC#LLT_TAGGEDUNION#LLT_THEN#LLT_TYPE#LLT_TYPEDEF#LLT_UNCHANGED#LLT_USES#LLT_CHAR#LLT_CONST#LLT_DOUBLE#LLT_ENUM#LLT_FLOAT#LLT_INT#LLT_ITER#LLT_YIELD#LLT_LONG#LLT_SHORT#LLT_SIGNED#LLT_UNKNOWN#LLT_STRUCT#LLT_TELIPSIS#LLT_UNION#LLT_UNSIGNED#LLT_VOID#LLT_VOLATILE#LLT_PRINTFLIKE#LLT_SCANFLIKE#LLT_MESSAGELIKE +*1 (Constant) +^2109 0$#LCLSCAN_H#FILELOCSTACK_H +*4 (Function) +^2111 15428@6@0@1@0@54^$@0#filelocStack_isDefined +^2112 15430$^$@0#filelocStack_size +*1 (Constant) +^2113 0$#intSET_H +*4 (Function) +^2114 15455$$$@0#intSet_isEmpty +^2115 15457$$$@0#intSet_size +*3 (Variable) +^2116 0|@11|^#SETFLAGS#DOSET#modeFlag#plainFlag#specialFlag#plainSpecialFlag#idemSpecialFlag#valueFlag#modeValueFlag#specialValueFlag#debugFlag#debugValueFlag#specialDebugFlag#globalFlag#idemGlobalFlag#globalValueFlag#regStringFlag#idemStringFlag#globalStringFlag#extraArgFlag#globalExtraArgFlag +*1 (Constant) +^2137 0$#SIGNATURE_H#SIGNATURE2_H +*3 (Variable) +^2139 0|@11|^#LST_SIMPLEID#LST_LOGICALOP#LST_EQOP#LST_SIMPLEOP#LST_MAPSYM#LST_FIELDMAPSYM#LST_MARKERSYM#LST_ifTOKEN#LST_thenTOKEN#LST_elseTOKEN#LST_LBRACKET#LST_RBRACKET#LST_SELECTSYM#LST_SEPSYM#LST_OPENSYM#LST_CLOSESYM#LST_COLON#LST_COMMA#LST_EOL#LST_COMMENTSYM#LST_WHITESPACE#LST_QUANTIFIERSYM#LST_EQUATIONSYM#LST_EQSEPSYM#LST_COMPOSESYM#LST_LPAR#LST_RPAR#LST_assertsTOKEN#LST_assumesTOKEN#LST_byTOKEN#LST_convertsTOKEN#LST_enumerationTOKEN#LST_equationsTOKEN#LST_exemptingTOKEN#LST_forTOKEN#LST_generatedTOKEN#LST_impliesTOKEN#LST_includesTOKEN#LST_introducesTOKEN#LST_ofTOKEN#LST_partitionedTOKEN#LST_traitTOKEN#LST_tupleTOKEN#LST_unionTOKEN#LST_BADTOKEN +*1 (Constant) +^2184 0$#SCANLINE_H +*3 (Variable) +^2185 0|@11|^#MOVECHAR#LTRACE +*1 (Constant) +^2187 0$#LCLSCANLINE_H +*3 (Variable) +^2188 0|@11|^#LCLMOVECHAR#LOOKAHEADCHAR#LOOKAHEADTWICECHAR#TRACE +*1 (Constant) +^2192 0$#LLGRAMMAR2_H +*4 (Function) +^2193 19503$$$@0#MMASH +^2194 0$$$@0#exprNode_defineConstraints +^2195 9071$$$@0#swallowMacro +*7 (Struct tag) +^2196 3464@936#@s_opFormNode +*0 (Datatype) +^2197 937@-@+@0@0@0@0@938#opFormNode +*7 (Struct tag) +^2198 3680@939#@s_termNode +*0 (Datatype) +^2199 940@-@+@0@0@0@0@941#termNode +*7 (Struct tag) +^2200 3343@942#@s_abstBodyNode +*0 (Datatype) +^2201 943@-@+@0@0@0@0@944#abstBodyNode +*7 (Struct tag) +^2202 3226@945#@s_lclPredicateNode +*0 (Datatype) +^2203 946@-@+@0@0@0@0@947#lclPredicateNode +*7 (Struct tag) +^2204 3731@948#@s_stmtNode +*0 (Datatype) +^2205 949@-@+@0@0@0@0@950#stmtNode +*7 (Struct tag) +^2206 3213@951#@s_programNodeList +*0 (Datatype) +^2207 952@+@=@0@0@0@0@953#programNodeList +*7 (Struct tag) +^2208 3418@954#@s_lclTypeSpecNode +*0 (Datatype) +^2209 955@-@+@0@5@0@0@956#lclTypeSpecNode +*7 (Struct tag) +^2210 3691@957#@s_termNodeList +*0 (Datatype) +^2211 958@+@=@0@0@0@0@959#termNodeList +^2212 6@-@-@0@0@0@0@960#sort +^2213 10@-@-@0@0@0@0@961#lsymbol +*7 (Struct tag) +^2214 3069@962#@s_typeExpr +*0 (Datatype) +^2215 963@-@+@0@0@0@0@964#typeExpr +*7 (Struct tag) +^2216 2753@965#@s_ltoken +*0 (Datatype) +^2217 966@+@=@0@5@0@0@967#ltoken +^2218 6@-@-@0@0@0@0@968#ltokenCode +*7 (Struct tag) +^2219 6339@969#@s_sRef +*0 (Datatype) +^2220 970@+@=@0@5@0@0@971#sRef +*7 (Struct tag) +^2221 5757@972#@s_uentry +*0 (Datatype) +^2222 973@+@=@0@5@0@0@974#uentry +^2223 5@+@-@0@0@0@0@975#typeIdSet +^2224 974@-@+@0@5@2@0@976#o_uentry +*7 (Struct tag) +^2225 9130@977#@s_mttok +*0 (Datatype) +^2226 978@+@=@0@0@0@0@979#mttok +*7 (Struct tag) +^2227 5500@980#@s_idDecl +*0 (Datatype) +^2228 981@+@=@0@5@0@0@982#idDecl +*7 (Struct tag) +^2229 4938@983#@s_usymtab +*0 (Datatype) +^2230 984@+@=@0@5@0@0@985#usymtab +*7 (Struct tag) +^2231 7469@986#@s_exprNode +*0 (Datatype) +^2232 987@+@=@0@5@0@0@988#exprNode +*7 (Struct tag) +^2233 6970@989#@s_guardSet +*0 (Datatype) +^2234 990@+@=@0@5@0@0@991#guardSet +*7 (Struct tag) +^2235 4518@992#@s_sRefSet +*0 (Datatype) +^2236 993@+@=@0@5@0@0@994#sRefSet +*7 (Struct tag) +^2237 4691@995#@s_sRefList +*0 (Datatype) +^2238 996@+@=@0@5@0@0@997#sRefList +*7 (Struct tag) +^2239 4866@998#@s_aliasTable +*0 (Datatype) +^2240 999@+@=@0@5@0@0@1000#aliasTable +*7 (Struct tag) +^2241 1429@1001#@s_fileloc +*0 (Datatype) +^2242 1002@+@=@0@5@0@0@1003#fileloc +*7 (Struct tag) +^2243 4227@1004#@s_cstringTable +*0 (Datatype) +^2244 1005@+@=@0@5@0@0@1006#cstringTable +*7 (Struct tag) +^2245 4262@1007#@s_genericTable +*0 (Datatype) +^2246 1008@+@=@0@5@0@0@1009#genericTable +*7 (Struct tag) +^2247 8300@1010#@s_annotationInfo +*0 (Datatype) +^2248 1011@+@=@0@5@0@0@1012#annotationInfo +*7 (Struct tag) +^2249 2472@1013#@s_inputStream +*0 (Datatype) +^2250 1014@+@=@0@5@0@0@1015#inputStream +*7 (Struct tag) +^2251 6257@1016#@s_stateValue +*0 (Datatype) +^2252 1017@+@=@0@5@0@0@1018#stateValue +^2253 1009@+@=@0@5@0@0@1019#valueTable +^2254 1009@+@=@0@5@0@0@1020#metaStateTable +^2255 1009@+@=@0@5@0@0@1021#annotationTable +*7 (Struct tag) +^2256 8244@1022#@s_metaStateInfo +*0 (Datatype) +^2257 1023@+@=@0@5@0@0@1024#metaStateInfo +*7 (Struct tag) +^2258 2139@1025#@s_functionClause +*0 (Datatype) +^2259 1026@+@=@0@5@0@0@1027#functionClause +*7 (Struct tag) +^2260 2182@1028#@s_functionClauseList +*0 (Datatype) +^2261 1029@+@=@0@5@0@0@1030#functionClauseList +*7 (Struct tag) +^2262 2083@1031#@s_globalsClause +*0 (Datatype) +^2263 1032@+@=@0@0@0@0@1033#globalsClause +*7 (Struct tag) +^2264 2096@1034#@s_modifiesClause +*0 (Datatype) +^2265 1035@+@=@0@0@0@0@1036#modifiesClause +*7 (Struct tag) +^2266 2113@1037#@s_warnClause +*0 (Datatype) +^2267 1038@+@=@0@5@0@0@1039#warnClause +*7 (Struct tag) +^2268 5602@1040#@s_stateClause +*0 (Datatype) +^2269 1041@+@=@0@0@0@0@1042#stateClause +*7 (Struct tag) +^2270 5683@1043#@s_stateClauseList +*0 (Datatype) +^2271 1044@+@=@0@5@0@0@1045#stateClauseList +*7 (Struct tag) +^2272 9155@1046#@s_mtDeclarationNode +*0 (Datatype) +^2273 1047@+@=@0@0@0@0@1048#mtDeclarationNode +*7 (Struct tag) +^2274 9171@1049#@s_mtDeclarationPiece +*0 (Datatype) +^2275 1050@+@=@0@5@0@0@1051#mtDeclarationPiece +*7 (Struct tag) +^2276 9224@1052#@s_mtDeclarationPieces +*0 (Datatype) +^2277 1053@+@=@0@5@0@0@1054#mtDeclarationPieces +*7 (Struct tag) +^2278 9242@1055#@s_mtContextNode +*0 (Datatype) +^2279 1056@+@=@0@5@0@0@1057#mtContextNode +*7 (Struct tag) +^2280 9269@1058#@s_mtValuesNode +*0 (Datatype) +^2281 1059@+@=@0@0@0@0@1060#mtValuesNode +*7 (Struct tag) +^2282 9278@1061#@s_mtDefaultsNode +*0 (Datatype) +^2283 1062@+@=@0@0@0@0@1063#mtDefaultsNode +*7 (Struct tag) +^2284 9302@1064#@s_mtDefaultsDeclList +*0 (Datatype) +^2285 1065@+@=@0@5@0@0@1066#mtDefaultsDeclList +*7 (Struct tag) +^2286 9287@1067#@s_mtDefaultsDecl +*0 (Datatype) +^2287 1068@+@=@0@0@0@0@1069#mtDefaultsDecl +*7 (Struct tag) +^2288 9324@1070#@s_mtAnnotationsNode +*0 (Datatype) +^2289 1071@+@=@0@0@0@0@1072#mtAnnotationsNode +*7 (Struct tag) +^2290 9334@1073#@s_mtAnnotationList +*0 (Datatype) +^2291 1074@+@=@0@5@0@0@1075#mtAnnotationList +*7 (Struct tag) +^2292 9356@1076#@s_mtAnnotationDecl +*0 (Datatype) +^2293 1077@+@=@0@0@0@0@1078#mtAnnotationDecl +*7 (Struct tag) +^2294 9371@1079#@s_mtMergeNode +*0 (Datatype) +^2295 1080@+@=@0@0@0@0@1081#mtMergeNode +*7 (Struct tag) +^2296 9479@1082#@s_mtMergeItem +*0 (Datatype) +^2297 1083@+@=@0@0@0@0@1084#mtMergeItem +*7 (Struct tag) +^2298 9511@1085#@s_mtMergeClauseList +*0 (Datatype) +^2299 1086@+@=@0@5@0@0@1087#mtMergeClauseList +*7 (Struct tag) +^2300 9494@1088#@s_mtMergeClause +*0 (Datatype) +^2301 1089@+@=@0@0@0@0@1090#mtMergeClause +*7 (Struct tag) +^2302 9382@1091#@s_mtTransferClauseList +*0 (Datatype) +^2303 1092@+@=@0@5@0@0@1093#mtTransferClauseList +*7 (Struct tag) +^2304 9404@1094#@s_mtTransferClause +*0 (Datatype) +^2305 1095@+@=@0@0@0@0@1096#mtTransferClause +*7 (Struct tag) +^2306 9421@1097#@s_mtLoseReferenceList +*0 (Datatype) +^2307 1098@+@=@0@5@0@0@1099#mtLoseReferenceList +*7 (Struct tag) +^2308 9443@1100#@s_mtLoseReference +*0 (Datatype) +^2309 1101@+@=@0@0@0@0@1102#mtLoseReference +*7 (Struct tag) +^2310 9458@1103#@s_mtTransferAction +*0 (Datatype) +^2311 1104@+@=@0@0@0@0@1105#mtTransferAction +^2312 994@+@=@0@5@0@0@1106#globSet +*7 (Struct tag) +^2313 7218@1107#@s_constraint +*0 (Datatype) +^2314 1108@+@=@0@0@0@0@1109#constraint +*7 (Struct tag) +^2315 7363@1110#@s_constraintList +*0 (Datatype) +^2316 1111@+@=@0@0@0@0@1112#constraintList +*7 (Struct tag) +^2317 7132@1113#@s_constraintExpr +*0 (Datatype) +^2318 1114@+@=@0@5@0@0@1115#constraintExpr +^2319 2@-@-@0@0@0@0@2#bool +^2320 23@+@=@0@5@0@0@1117#cstring +^2321 1117@-@+@0@5@2@0@1118#o_cstring +^2322 5@+@-@0@0@0@0@1119#ctype +^2323 1123@-@+@0@0@0@0@1124#sRefTest +^2324 1128@-@+@0@0@0@0@1129#sRefMod +^2325 1133@-@+@0@0@0@0@1134#sRefModVal +^2326 1138@-@+@0@0@0@0@1139#sRefShower +*4 (Function) +^2327 16133$@0@@1@tp0$@0#sfree +*0 (Datatype) +^2328 6@-@-@0@0@0@0@1142#bits +^2329 10@-@-@0@0@0@0@1143#Handle +*4 (Function) +^2330 16149$^@3@0@0#FormatInt +^2331 16153$$$@0#firstWord +^2332 16191$^$@0#size_toInt +^2333 16193$^$@0#size_toLong +^2334 16189$^$@0#size_fromInt +^2335 16197$^$@0#longUnsigned_toInt +^2336 16199$^$@0#long_toInt +^2337 16187$^$@0#longUnsigned_fromInt +*0 (Datatype) +^2338 23@-@+@0@0@0@0@1163#mstring +^2339 23@-@+@0@0@19@3@1164#ob_mstring +^2340 23@-@+@0@5@19@3@1165#bn_mstring +*4 (Function) +^2341 16178@6@2@1@0@0^@19@3@0#mstring_safePrint +^2342 16158$^@3@0@0#mstring_spaces +^2343 16163$^@3@0@0#mstring_concat +^2344 16166$@0@@1@tp0,tp1@3@0@0#mstring_concatFree +^2345 16169$$@3@0@0#mstring_concatFree1 +^2346 16172$$@3@0@0#mstring_append +^2347 16175$^@3@0@0#mstring_copy +^2348 16201$^$@0#mstring_equalPrefix +^2349 16203$^$@0#mstring_equal +^2350 16160$^$@0#mstring_containsChar +^2351 16155$@0@@1@tp0$@0#mstring_markFree +^2352 16181@6@2@1@0@0^@2@0@0#mstring_create +^2353 15420$^$@0#isHeaderFile +^2354 16183$@0@@1@p0$@0#fputline +^2355 16185$^$@0#int_log +^2356 16195$^$@0#char_fromInt +^2357 15418@6@5@1@0@0$@19@2@0#removePreDirs +^2358 1224$$$@0#yywrap +^2359 13340@6@2@1@0@0^@3@0@0#cstring_create +^2360 13247@6@2@1@0@0$@2@0@0#cstring_newEmpty +^2361 13322@6@2@1@0@0$@3@0@0#cstring_appendChar +^2362 13330@6@5@1@0@0^@3@0@0#cstring_concatLength +^2363 13336@6@2@1@0@0$@3@0@0#cstring_prependChar +^2364 13334@6@2@1@0@0$@3@0@0#cstring_prependCharO +^2365 13320@6@5@1@0@0^@3@0@0#cstring_downcase +^2366 13265@6@5@1@0@0^@3@0@0#cstring_copy +^2367 13267@6@5@1@0@0^@3@0@0#cstring_copyLength +^2368 13257$^$@0#cstring_toPosInt +*2 (Enum member) +^2369 1245$#CGE_SAME#CGE_DISTINCT#CGE_CASE#CGE_LOOKALIKE +*9 (Enum tag) +^2373 1245@1246#&!4 +*0 (Datatype) +^2374 1246@-@-@0@0@0@0@1247#cmpcode +*4 (Function) +^2375 13279$^$@0#cstring_genericEqual +^2376 13271$$$@0#cstring_replaceLit +^2377 13249$$$@0#cstring_firstChar +^2378 13263$^$@0#cstring_lastChar +^2379 13251$$$@0#cstring_getChar +^2380 13261$$$@0#cstring_setChar +^2381 13306@6@2@1@0@0^@19@2@0#cstring_toCharsSafe +^2382 13308$^$@0#cstring_length +^2383 13275$^$@0#cstring_contains +^2384 13269$^$@0#cstring_containsChar +^2385 13283$^$@0#cstring_equal +^2386 13287$^$@0#cstring_equalCaseInsensitive +^2387 13285$^$@0#cstring_equalLen +^2388 13289$^$@0#cstring_equalLenCaseInsensitive +^2389 13291$^$@0#cstring_equalPrefix +^2390 13293$^$@0#cstring_equalCanonicalPrefix +^2391 13297$^$@0#cstring_compare +^2392 13295$^$@0#cstring_xcompare +^2393 13338$^$@0#cstring_hasNonAlphaNumBar +^2394 13316@6@5@1@0@0^@3@0@0#cstring_elide +^2395 13314@6@5@1@0@0@0@@1@p0$@0#cstring_clip +^2396 13273$@0@@1@p0$@0#cstring_stripChars +^2397 13346@6@5@1@0@0$@18@0@0#cstring_bsearch +^2398 13281$$$@0#cstring_equalFree +^2399 13303@6@5@1@0@0^$@0#cstring_fromChars +^2400 13301$$$@0#cstring_free +*1 (Constant) +^2401 1117@i0@0@4#cstring_undefined +*4 (Function) +^2402 13310@6@5@1@0@0^@3@0@0#cstring_capitalize +^2403 13312@6@5@1@0@0@0@@1@p0@3@0@0#cstring_capitalizeFree +^2404 13318@6@5@1@0@0^@3@0@0#cstring_fill +^2405 13255@6@5@1@0@0^@3@0@0#cstring_prefix +^2406 13253@6@5@1@0@0^@19@3@0#cstring_suffix +^2407 13332@6@5@1@0@0^@3@0@0#cstring_concat +^2408 13324@6@5@1@0@0@0@@1@p0,p1@3@0@0#cstring_concatFree +^2409 13326@6@5@1@0@0@0@@1@p0@3@0@0#cstring_concatFree1 +^2410 13328@6@5@1@0@0@0@@1@p0@3@0@0#cstring_concatChars +^2411 13344$^$@0#cstring_toSymbol +^2412 13299$@0@@1@p0$@0#cstring_markOwned +^2413 13259@6@5@1@0@0^@3@0@0#cstring_beforeChar +*6 (Iterator finalizer) +^2414 0@125#end_cstring_chars +*5 (Iterator) +^2415 1351@125#cstring_chars +*4 (Function) +^2416 13348@6@5@1@0@0^@19@3@0#cstring_advanceWhiteSpace +^2417 13342@6@2@1@0@0^@2@0@0#cstring_copySegment +^2418 16140@4@0@1@0@0$@2@0@0#dimalloc +^2419 16143$$@2@0@0#dicalloc +^2420 16146@4@2@1@0@0$@2@0@0#direalloc +*1 (Constant) +^2421 10$#INITSYNTABLE +^2422 17$#DELTASYNTABLE +^2423 5$#SYNTABLE_BASESIZE +^2424 10$#INITTOKENTABLE +^2425 17$#DELTATOKENTABLE +^2426 5$#INITCHARSTRING#DELTACHARSTRING#INITSTRINGENTRY#DELTASTRINGENTRY#HASHSIZE#HASHMASK +^2432 23$#INITFILENAME#IO_SUFFIX#LCLINIT_SUFFIX#CTRAITSYMSNAME#CTRAITSPECNAME#CTRAITFILENAMEN +^2438 5$#LLSUCCESS#LLFAILURE#LLGIVEUP#LLINTERRUPT#DEFAULTMAXMODS#GIVEUPPARSE#MAXDEPTH#ALIASSEARCHLIMIT#DEFAULT_OPTLEVEL#SMALLBASESIZE#MIDBASESIZE#LARGEBASESIZE#BIGBASESIZE#HUGEBASESIZE#FTHASHSIZE#CBASESIZE#CGLOBBASESIZE#CGLOBHASHSIZE#LLHASHSIZE +*4 (Function) +^2457 16135$@0@s1@1@s1$@0#sfreeEventually +*0 (Datatype) +^2458 23@-@+@0@0@18@0@1391#d_char +*1 (Constant) +^2459 5$#NOT_FOUND +*2 (Enum member) +^2460 1392$#NO#YES#MAYBE +*9 (Enum tag) +^2463 1392@1393#&!5 +*0 (Datatype) +^2464 1393@-@-@0@0@0@0@1394#ynm +*4 (Function) +^2465 13923$^$@0#ynm_compare +^2466 13921$^$@0#ynm_fromCodeChar +^2467 13463@6@5@1@3@0^@2@0@0#message +*0 (Datatype) +^2468 5@+@-@0@0@0@0@1417#fileId +*1 (Constant) +^2469 1417$#fileId_invalid +*2 (Enum member) +^2470 1426$#FL_NORMAL#FL_SPEC#FL_LIB#FL_STDLIB#FL_STDHDR#FL_IMPORT#FL_BUILTIN#FL_PREPROC#FL_RC#FL_EXTERNAL +*9 (Enum tag) +^2480 1426@1427#&!6 +*0 (Datatype) +^2481 1427@-@-@0@0@0@0@1428#flkind +^2482 1003@-@+@0@5@2@0@1430#o_fileloc +*4 (Function) +^2483 13362@6@5@1@0@0@0@@1@p0@3@0@0#fileloc_update +^2484 13424@6@5@1@0@0^@3@0@0#fileloc_create +^2485 13392$^$@0#fileloc_isSystemFile +^2486 13394$^$@0#fileloc_isXHFile +^2487 13422@6@5@1@0@0^@3@0@0#fileloc_createSpec +^2488 13400@6@5@1@0@0^@3@0@0#fileloc_createLib +^2489 13402@6@5@1@0@0^@3@0@0#fileloc_createRc +^2490 13354@6@5@1@0@0^@3@0@0#fileloc_decColumn +^2491 13358$@0@@1@p0$@0#fileloc_subColumn +^2492 1450@6@5@1@0@0^@3@0@0#fileloc_getBuiltin +^2493 1452@6@5@1@0@0^@19@3@0#fileloc_observeBuiltin +^2494 1454@6@5@1@0@0^@3@0@0#fileloc_createBuiltin +^2495 13418@6@5@1@0@0^@3@0@0#fileloc_createImport +^2496 13440$^$@0#fileloc_isSpecialFile +^2497 13390$^$@0#fileloc_sameBaseFile +^2498 13426@6@5@1@0@0^@19@3@0#fileloc_filename +^2499 13432$^$@0#fileloc_column +^2500 13434@6@5@1@0@0^@3@0@0#fileloc_unparse +^2501 13436@6@5@1@0@0^@3@0@0#fileloc_unparseRaw +^2502 13438@6@5@1@0@0^@3@0@0#fileloc_unparseRawCol +^2503 13386$^$@0#fileloc_sameFile +^2504 13384$^$@0#fileloc_sameFileAndLine +^2505 13366$$$@0#fileloc_free +^2506 13368$$$@0#fileloc_reallyFree +^2507 13430$^$@0#fileloc_lineno +^2508 13372$^$@0#fileloc_equal +^2509 13378$^$@0#fileloc_lessthan +^2510 13374$^$@0#fileloc_compare +^2511 13370@6@5@1@0@0^@19@3@0#fileloc_getBase +^2512 13442$^$@0#fileloc_isHeader +^2513 13444$^$@0#fileloc_isSpec +^2514 13446$^$@0#fileloc_isRealSpec +^2515 13360@6@5@1@0@0^@3@0@0#fileloc_copy +^2516 13452@6@5@1@0@0^@3@0@0#fileloc_unparseDirect +^2517 13380$^$@0#fileloc_notAfter +^2518 13396$^$@0#fileloc_almostSameFile +^2519 13356@6@5@1@0@0^@3@0@0#fileloc_noColumn +^2520 13406@6@5@1@0@0^@19@3@0#fileloc_getExternal +^2521 13404@6@5@1@0@0^@3@0@0#fileloc_createExternal +*1 (Constant) +^2522 1003@i0@0@4#fileloc_undefined +*4 (Function) +^2523 13448$^$@0#fileloc_isLib +^2524 13398@6@5@1@0@0^@3@0@0#fileloc_fromTok +*1 (Constant) +^2525 5$#UNKNOWN_LINE#UNKNOWN_COLUMN +*4 (Function) +^2527 13364@6@5@1@0@0^@3@0@0#fileloc_updateFileId +^2528 13412@6@5@1@0@0^@3@0@0#fileloc_makePreproc +^2529 13414@6@5@1@0@0^@3@0@0#fileloc_makePreprocPrevious +^2530 13382$^$@0#fileloc_isStandardLibrary +^2531 13450$^$@0#fileloc_isStandardLib +^2532 13428@6@5@1@0@0^@3@0@0#fileloc_unparseFilename +^2533 13376$^$@0#fileloc_withinLines +^2534 13454$^$@0#fileloc_isUser +^2535 13388$^$@0#fileloc_sameModule +*3 (Variable) +^2536 1003|@1|0@5@17&#g_currentloc +^2537 211|@1|^#g_msgstream +^2538 211|@1|0@0@18&#yyin#yyout +^2540 5|@1|^#yyleng +^2541 1117|@1|0@5@19@3@0#g_codeFile +^2542 5|@1|^#g_codeLine +^2543 1117|@1|0@5@19@3@0#g_prevCodeFile +^2544 5|@1|^#g_prevCodeLine +^2545 23|@1|0@0@19@3@0#g_localSpecPath +^2546 1117|@1|0@5@2&#g_currentSpec +^2547 23|@1|0@5@2&#g_currentSpecName +*4 (Function) +^2548 1568$$$@0#setCodePoint +^2549 16032$$$@0#printCodePoint +*1 (Constant) +^2550 5$#PRINTBREADTH +*2 (Enum member) +^2551 1595$#SKIP_FLAG#INVALID_FLAG#FLG_LIKELYBOOL#FLG_IMPABSTRACT#FLG_ACCESSALL#FLG_ACCESSMODULE#FLG_ACCESSFILE#FLG_ACCESSCZECH#FLG_ACCESSSLOVAK#FLG_ACCESSCZECHOSLOVAK#FLG_ABSTRACT#FLG_MUTREP#FLG_GLOBALIAS#FLG_CHECKSTRICTGLOBALIAS#FLG_CHECKEDGLOBALIAS#FLG_CHECKMODGLOBALIAS#FLG_UNCHECKEDGLOBALIAS#FLG_ALIASUNIQUE#FLG_MAYALIASUNIQUE#FLG_MUSTNOTALIAS#FLG_RETALIAS#FLG_NOPARAMS#FLG_OLDSTYLE#FLG_GNUEXTENSIONS#FLG_USEVARARGS#FLG_WARNPOSIX#FLG_EXITARG#FLG_EVALORDER#FLG_EVALORDERUNCON#FLG_BOOLFALSE#FLG_BOOLTYPE#FLG_BOOLTRUE#FLG_NOACCESS#FLG_NOCOMMENTS#FLG_UNRECOGCOMMENTS#FLG_CONTINUECOMMENT#FLG_NESTCOMMENT#FLG_TMPCOMMENTS#FLG_LINTCOMMENTS#FLG_WARNLINTCOMMENTS#FLG_DECLUNDEF#FLG_SPECUNDEF#FLG_SPECUNDECL#FLG_LOOPEXEC#FLG_CONTROL#FLG_INFLOOPS#FLG_INFLOOPSUNCON#FLG_DEEPBREAK#FLG_LOOPLOOPBREAK#FLG_SWITCHLOOPBREAK#FLG_LOOPSWITCHBREAK#FLG_SWITCHSWITCHBREAK#FLG_LOOPLOOPCONTINUE#FLG_UNREACHABLE#FLG_WHILEEMPTY#FLG_WHILEBLOCK#FLG_FOREMPTY#FLG_FORBLOCK#FLG_IFEMPTY#FLG_IFBLOCK#FLG_ALLEMPTY#FLG_ALLBLOCK#FLG_ELSEIFCOMPLETE#FLG_NORETURN#FLG_CASEBREAK#FLG_MISSCASE#FLG_FIRSTCASE#FLG_GRAMMAR#FLG_NOPP#FLG_SHADOW#FLG_INCONDEFSLIB#FLG_WARNOVERLOAD#FLG_NESTEDEXTERN#FLG_REDECL#FLG_REDEF#FLG_INCONDEFS#FLG_IMPTYPE#FLG_MATCHFIELDS#FLG_USEDEF#FLG_IMPOUTS#FLG_TMPDIR#FLG_LARCHPATH#FLG_LCLIMPORTDIR#FLG_SYSTEMDIRS#FLG_SKIPANSIHEADERS#FLG_SKIPPOSIXHEADERS#FLG_SYSTEMDIRERRORS#FLG_SYSTEMDIREXPAND#FLG_INCLUDEPATH#FLG_SPECPATH#FLG_QUIET#FLG_USESTDERR#FLG_SHOWSUMMARY#FLG_SHOWSCAN#FLG_STATS#FLG_TIMEDIST#FLG_SHOWUSES#FLG_NOEFFECT#FLG_NOEFFECTUNCON#FLG_EXPORTANY#FLG_EXPORTFCN#FLG_EXPORTMACRO#FLG_EXPORTTYPE#FLG_EXPORTVAR#FLG_EXPORTCONST#FLG_EXPORTITER#FLG_REPEXPOSE#FLG_RETEXPOSE#FLG_ASSIGNEXPOSE#FLG_CASTEXPOSE#FLG_LINELEN#FLG_INDENTSPACES#FLG_SHOWCOL#FLG_PARENFILEFORMAT#FLG_SHOWFUNC#FLG_SHOWALLCONJS#FLG_IMPCONJ#FLG_EXPECT#FLG_LCLEXPECT#FLG_PARTIAL#FLG_GLOBALS#FLG_USEALLGLOBS#FLG_INTERNALGLOBS#FLG_INTERNALGLOBSNOGLOBS#FLG_WARNMISSINGGLOBALS#FLG_WARNMISSINGGLOBALSNOGLOBS#FLG_GLOBUNSPEC#FLG_ALLGLOBALS#FLG_CHECKSTRICTGLOBALS#FLG_IMPCHECKEDSPECGLOBALS#FLG_IMPCHECKMODSPECGLOBALS#FLG_IMPCHECKEDSTRICTSPECGLOBALS#FLG_IMPCHECKEDGLOBALS#FLG_IMPCHECKMODGLOBALS#FLG_IMPCHECKEDSTRICTGLOBALS#FLG_IMPCHECKEDSTATICS#FLG_IMPCHECKMODSTATICS#FLG_IMPCHECKMODINTERNALS#FLG_IMPCHECKEDSTRICTSTATICS#FLG_MODGLOBS#FLG_MODGLOBSUNSPEC#FLG_MODSTRICTGLOBSUNSPEC#FLG_MODGLOBSUNCHECKED#FLG_KEEP#FLG_DOLH#FLG_DOLCS#FLG_SINGLEINCLUDE#FLG_NEVERINCLUDE#FLG_SKIPSYSHEADERS#FLG_WARNFLAGS#FLG_WARNUNIXLIB#FLG_BADFLAG#FLG_FORCEHINTS#FLG_HELP#FLG_HINTS#FLG_RETVAL#FLG_RETVALOTHER#FLG_RETVALBOOL#FLG_RETVALINT#FLG_OPTF#FLG_INIT#FLG_NOF#FLG_NEEDSPEC#FLG_NEWDECL#FLG_ITER#FLG_HASYIELD#FLG_DUMP#FLG_MERGE#FLG_NOLIB#FLG_ANSILIB#FLG_STRICTLIB#FLG_UNIXLIB#FLG_UNIXSTRICTLIB#FLG_POSIXLIB#FLG_POSIXSTRICTLIB#FLG_WHICHLIB#FLG_MTSFILE#FLG_COMMENTCHAR#FLG_ALLMACROS#FLG_LIBMACROS#FLG_SPECMACROS#FLG_FCNMACROS#FLG_CONSTMACROS#FLG_MACROMATCHNAME#FLG_MACRONEXTLINE#FLG_MACROSTMT#FLG_MACROEMPTY#FLG_MACROPARAMS#FLG_MACROASSIGN#FLG_SEFPARAMS#FLG_SEFUNSPEC#FLG_MACROPARENS#FLG_MACRODECL#FLG_MACROFCNDECL#FLG_MACROCONSTDECL#FLG_MACROREDEF#FLG_MACROUNDEF#FLG_RETSTACK#FLG_USERELEASED#FLG_STRICTUSERELEASED#FLG_COMPDEF#FLG_COMPMEMPASS#FLG_MUSTDEFINE#FLG_UNIONDEF#FLG_MEMIMPLICIT#FLG_PARAMIMPTEMP#FLG_ALLIMPONLY#FLG_CODEIMPONLY#FLG_SPECALLIMPONLY#FLG_GLOBIMPONLY#FLG_RETIMPONLY#FLG_STRUCTIMPONLY#FLG_SPECGLOBIMPONLY#FLG_SPECRETIMPONLY#FLG_SPECSTRUCTIMPONLY#FLG_DEPARRAYS#FLG_COMPDESTROY#FLG_STRICTDESTROY#FLG_MUSTFREE#FLG_BRANCHSTATE#FLG_STRICTBRANCHSTATE#FLG_MEMCHECKS#FLG_MEMTRANS#FLG_EXPOSETRANS#FLG_OBSERVERTRANS#FLG_DEPENDENTTRANS#FLG_NEWREFTRANS#FLG_ONLYTRANS#FLG_ONLYUNQGLOBALTRANS#FLG_OWNEDTRANS#FLG_FRESHTRANS#FLG_SHAREDTRANS#FLG_TEMPTRANS#FLG_KEPTTRANS#FLG_KEEPTRANS#FLG_IMMEDIATETRANS#FLG_REFCOUNTTRANS#FLG_STATICTRANS#FLG_UNKNOWNTRANS#FLG_STATICINITTRANS#FLG_UNKNOWNINITTRANS#FLG_READONLYSTRINGS#FLG_READONLYTRANS#FLG_PASSUNKNOWN#FLG_MODIFIES#FLG_MUSTMOD#FLG_MODOBSERVER#FLG_MODOBSERVERUNCON#FLG_MODINTERNALSTRICT#FLG_MODFILESYSTEM#FLG_MODUNSPEC#FLG_MODNOMODS#FLG_MODUNCON#FLG_MODUNCONNOMODS#FLG_GLOBALSIMPMODIFIESNOTHING#FLG_MODIFIESIMPNOGLOBALS#FLG_NAMECHECKS#FLG_CZECH#FLG_CZECHFUNCTIONS#FLG_CZECHVARS#FLG_CZECHMACROS#FLG_CZECHCONSTANTS#FLG_CZECHTYPES#FLG_SLOVAK#FLG_SLOVAKFUNCTIONS#FLG_SLOVAKMACROS#FLG_SLOVAKVARS#FLG_SLOVAKCONSTANTS#FLG_SLOVAKTYPES#FLG_CZECHOSLOVAK#FLG_CZECHOSLOVAKFUNCTIONS#FLG_CZECHOSLOVAKMACROS#FLG_CZECHOSLOVAKVARS#FLG_CZECHOSLOVAKCONSTANTS#FLG_CZECHOSLOVAKTYPES#FLG_ANSIRESERVED#FLG_CPPNAMES#FLG_ANSIRESERVEDLOCAL#FLG_DISTINCTEXTERNALNAMES#FLG_EXTERNALNAMELEN#FLG_EXTERNALNAMECASEINSENSITIVE#FLG_DISTINCTINTERNALNAMES#FLG_INTERNALNAMELEN#FLG_INTERNALNAMECASEINSENSITIVE#FLG_INTERNALNAMELOOKALIKE#FLG_MACROVARPREFIX#FLG_MACROVARPREFIXEXCLUDE#FLG_TAGPREFIX#FLG_TAGPREFIXEXCLUDE#FLG_ENUMPREFIX#FLG_ENUMPREFIXEXCLUDE#FLG_FILESTATICPREFIX#FLG_FILESTATICPREFIXEXCLUDE#FLG_GLOBPREFIX#FLG_GLOBPREFIXEXCLUDE#FLG_TYPEPREFIX#FLG_TYPEPREFIXEXCLUDE#FLG_EXTERNALPREFIX#FLG_EXTERNALPREFIXEXCLUDE#FLG_LOCALPREFIX#FLG_LOCALPREFIXEXCLUDE#FLG_UNCHECKEDMACROPREFIX#FLG_UNCHECKEDMACROPREFIXEXCLUDE#FLG_CONSTPREFIX#FLG_CONSTPREFIXEXCLUDE#FLG_ITERPREFIX#FLG_ITERPREFIXEXCLUDE#FLG_DECLPARAMPREFIX#FLG_DECLPARAMNAME#FLG_DECLPARAMMATCH#FLG_DECLPARAMPREFIXEXCLUDE#FLG_CONTROLNESTDEPTH#FLG_STRINGLITERALLEN#FLG_NUMSTRUCTFIELDS#FLG_NUMENUMMEMBERS#FLG_INCLUDENEST#FLG_ANSILIMITS#FLG_NAME#FLG_SPECIAL#FLG_NULL#FLG_NULLTERMINATED#FLG_ARRAYREAD#FLG_ARRAYWRITE#FLG_FUNCTIONPOST#FLG_FUNCTIONCONSTRAINT#FLG_CHECKPOST#FLG_CONSTRAINTLOCATION#FLG_IMPLICTCONSTRAINT#FLG_ORCONSTRAINT#FLG_NULLTERMINATEDWARNING#FLG_NULLDEREF#FLG_FCNDEREF#FLG_NULLPASS#FLG_NULLRET#FLG_NULLSTATE#FLG_NULLASSIGN#FLG_BOOLCOMPARE#FLG_REALCOMPARE#FLG_POINTERARITH#FLG_NULLPOINTERARITH#FLG_PTRNUMCOMPARE#FLG_STRICTOPS#FLG_BITWISEOPS#FLG_SHIFTSIGNED#FLG_BOOLOPS#FLG_PTRNEGATE#FLG_SIZEOFTYPE#FLG_SIZEOFFORMALARRAY#FLG_FIXEDFORMALARRAY#FLG_INCOMPLETETYPE#FLG_FORMALARRAY#FLG_PREDASSIGN#FLG_PREDBOOL#FLG_PREDBOOLINT#FLG_PREDBOOLOTHERS#FLG_PREDBOOLPTR#FLG_DEFINE#FLG_UNDEFINE#FLG_GLOBSTATE#FLG_SUPCOUNTS#FLG_LIMIT#FLG_SYNTAX#FLG_TRYTORECOVER#FLG_PREPROC#FLG_TYPE#FLG_FULLINITBLOCK#FLG_ENUMMEMBERS#FLG_MAINTYPE#FLG_FORMATTYPE#FLG_FORMATCONST#FLG_FORMATCODE#FLG_FORWARDDECL#FLG_ABSTVOIDP#FLG_CASTFCNPTR#FLG_CHARINDEX#FLG_ENUMINDEX#FLG_BOOLINT#FLG_CHARINT#FLG_ENUMINT#FLG_FLOATDOUBLE#FLG_IGNOREQUALS#FLG_DUPLICATEQUALS#FLG_IGNORESIGNS#FLG_NUMLITERAL#FLG_CHARINTLITERAL#FLG_RELAXQUALS#FLG_RELAXTYPES#FLG_CHARUNSIGNEDCHAR#FLG_MATCHANYINTEGRAL#FLG_LONGUNSIGNEDINTEGRAL#FLG_LONGINTEGRAL#FLG_LONGUNSIGNEDUNSIGNEDINTEGRAL#FLG_LONGSIGNEDINTEGRAL#FLG_ZEROPTR#FLG_ZEROBOOL#FLG_REPEATUNRECOG#FLG_SYSTEMUNRECOG#FLG_UNRECOG#FLG_TOPUNUSED#FLG_EXPORTLOCAL#FLG_EXPORTHEADER#FLG_EXPORTHEADERVAR#FLG_FIELDUNUSED#FLG_ENUMMEMUNUSED#FLG_CONSTUNUSED#FLG_FUNCUNUSED#FLG_PARAMUNUSED#FLG_TYPEUNUSED#FLG_VARUNUSED#FLG_UNUSEDSPECIAL#FLG_REDUNDANTSHAREQUAL#FLG_MISPLACEDSHAREQUAL#FLG_ANNOTATIONERROR#FLG_COMMENTERROR#FLG_SHOWSOURCELOC#FLG_BUGSLIMIT#FLG_FILEEXTENSIONS#FLG_WARNUSE#FLG_STATETRANSFER#FLG_STATEMERGE#FLG_ITS4MOSTRISKY#FLG_ITS4VERYRISKY#FLG_ITS4RISKY#FLG_ITS4MODERATERISK#FLG_ITS4LOWRISK#FLG_BUFFEROVERFLOWHIGH#FLG_BUFFEROVERFLOW#FLG_TOCTOU#LAST_FLAG +*9 (Enum tag) +^2980 1595@1596#&!7 +*0 (Datatype) +^2981 1596@-@-@0@0@0@0@1597#flagcode +*1 (Constant) +^2982 1597$#NUMFLAGS +^2983 5$#NUMVALUEFLAGS#NUMSTRINGFLAGS +*6 (Iterator finalizer) +^2985 0@0#end_allFlagCodes +*5 (Iterator) +^2986 1598@0#allFlagCodes +*2 (Enum member) +^2987 1599$#FK_ABSTRACT#FK_ANSI#FK_BEHAVIOR#FK_COMMENTS#FK_COMPLETE#FK_CONTROL#FK_DEBUG#FK_DECL#FK_DEF#FK_DIRECT#FK_DISPLAY#FK_EFFECT#FK_EXPORT#FK_EXPOSURE#FK_FORMAT#FK_GLOBAL#FK_GLOBALS#FK_HEADERS#FK_HELP#FK_IGNORERET#FK_INIT#FK_ITER#FK_LIBS#FK_LIMITS#FK_MACROS#FK_MEMORY#FK_MODIFIES#FK_NAMES#FK_NONE#FK_NULL#FK_NT#FK_OPS#FK_PRED#FK_PREPROC#FK_SECRET#FK_SUPPRESS#FK_SYNTAX#FK_TYPE#FK_TYPEEQ#FK_NUMBERS#FK_POINTER#FK_UNRECOG#FK_USE#FK_BOOL#FK_ALIAS#FK_PROTOS#FK_SPEC#FK_IMPLICIT#FK_FILES#FK_ERRORS#FK_UNSPEC#FK_SPEED#FK_PARAMS#FK_DEAD#FK_SECURITY#FK_LEAK#FK_ARRAY#FK_OBSOLETE#FK_PREFIX#FK_WARNUSE +*9 (Enum tag) +^3047 1599@1600#&!8 +*0 (Datatype) +^3048 1600@-@-@0@0@0@0@1601#flagkind +*4 (Function) +^3049 16089$$$@0#listAllCategories +^3050 1605$$$@0#printAlphaFlags +^3051 16091$$$@0#printAllFlags +^3052 16071$$$@0#flagcode_recordError +^3053 16073$$$@0#flagcode_recordSuppressed +^3054 16075$$$@0#flagcode_numReported +^3055 16131$$$@0#flagcode_isNamePrefixFlag +^3056 16095@6@5@1@0@0$@2@0@0#describeFlag +^3057 16105$$$@0#identifyFlag +^3058 16107$$$@0#setValueFlag +^3059 16109$$$@0#setStringFlag +^3060 16101@6@5@1@0@0^@19@3@0#flagcode_unparse +^3061 16123$^$@0#flagcode_valueIndex +^3062 16127$^$@0#flagcode_stringIndex +^3063 16077@6@5@1@0@0$@19@3@0#flagcodeHint +^3064 16081$^$@0#identifyCategory +^3065 16087$@0@g2537@0@0@1@g2537$@0#printCategory +^3066 16119$$$@0#flagcode_hasValue +^3067 16121$$$@0#flagcode_hasString +^3068 16117$$$@0#flagcode_hasArgument +*1 (Constant) +^3069 1117@@0@5#DEFAULT_MODE +*4 (Function) +^3070 1655$$$@0#flags_initMod +^3071 16115$$$@0#isMode +^3072 1659@6@5@1@0@0$@2@0@0#describeModes +^3073 1661$$$@0#summarizeErrors +^3074 16065$$$@0#flagcode_isNameChecksFlag +^3075 16061$$$@0#flagcode_isIdemFlag +^3076 16063$$$@0#flagcode_isModeFlag +^3077 16057$$$@0#flagcode_isSpecialFlag +^3078 16059$$$@0#flagcode_isGlobalFlag +*7 (Struct tag) +^3079 1672@1673#@!9 +*0 (Datatype) +^3080 1674@-@+@0@0@0@0@1675#flagSpecItem +*7 (Struct tag) +^3081 1679@1676#@s_flagSpec +*0 (Datatype) +^3082 1677@+@=@0@5@0@0@1678#flagSpec +*1 (Constant) +^3083 1678@i0@0@4#flagSpec_undefined +*4 (Function) +^3084 16662@6@5@1@0@0$@2@0@0#flagSpec_createPlain +^3085 16664@6@5@1@0@0$@2@0@0#flagSpec_createOr +^3086 16668@6@5@1@0@0^@2@0@0#flagSpec_unparse +^3087 16666$$$@0#flagSpec_free +^3088 16670@6@5@1@0@0^@2@0@0#flagSpec_dump +^3089 16672@6@5@1@0@0@0@@1@p0@2@0@0#flagSpec_undump +^3090 16674$^$@0#flagSpec_getDominant +^3091 16678$^$@0#flagSpec_getFirstOn +^3092 16676$^$@0#flagSpec_isOn +*2 (Enum member) +^3093 1700$#QU_UNKNOWN#QU_CONST#QU_VOLATILE#QU_INLINE#QU_EXTERN#QU_STATIC#QU_AUTO#QU_REGISTER#QU_SHORT#QU_LONG#QU_SIGNED#QU_UNSIGNED#QU_OUT#QU_IN#QU_ONLY#QU_IMPONLY#QU_TEMP#QU_SHARED#QU_KEEP#QU_KEPT#QU_PARTIAL#QU_SPECIAL#QU_NULL#QU_RELNULL#QU_ISNULL#QU_NULLTERMINATED#QU_SETBUFFERSIZE#QU_EXPOSED#QU_RETURNED#QU_OBSERVER#QU_UNIQUE#QU_OWNED#QU_DEPENDENT#QU_RELDEF#QU_YIELD#QU_NEVEREXIT#QU_EXITS#QU_MAYEXIT#QU_TRUEEXIT#QU_FALSEEXIT#QU_UNUSED#QU_EXTERNAL#QU_SEF#QU_NOTNULL#QU_ABSTRACT#QU_CONCRETE#QU_MUTABLE#QU_IMMUTABLE#QU_REFCOUNTED#QU_REFS#QU_NEWREF#QU_KILLREF#QU_TEMPREF#QU_TRUENULL#QU_FALSENULL#QU_CHECKED#QU_UNCHECKED#QU_CHECKEDSTRICT#QU_CHECKMOD#QU_UNDEF#QU_KILLED#QU_PRINTFLIKE#QU_SCANFLIKE#QU_MESSAGELIKE#QU_USERANNOT#QU_LAST +*9 (Enum tag) +^3159 1700@1701#&!10 +*0 (Datatype) +^3160 1701@-@-@0@0@0@0@1702#quenum +*7 (Struct tag) +^3161 1703@1704#@!11 +*0 (Datatype) +^3162 1705@+@-@0@0@0@0@1706#qual +*4 (Function) +^3163 11726@6@5@1@0@0$@2@0@0#qual_dump +^3164 11728$@0@@1@tp0$@0#qual_undump +^3165 11716$^$@0#qual_fromInt +^3166 11718@6@5@1@0@0^@19@3@0#qual_unparse +^3167 11720$^$@0#qual_match +^3168 11722@6@5@1@0@0^@19@3@0#qual_getAnnotationInfo +^3169 11708$^$@0#qual_createPlain +^3170 11712$^$@0#qual_createMetaState +*7 (Struct tag) +^3171 2011@2012#@!12 +*0 (Datatype) +^3172 2011@-@-@0@0@0@0@2013#lltok +*4 (Function) +^3173 14490$@0@@1@s0$@0#lltok_create +^3174 14488@6@5@1@0@0^@19@3@0#lltok_unparse +^3175 14492$$$@0@S:2.3.0.floc.p0$#lltok_release +^3176 14494@6@5@1@0@0$@2@0@0@S:2.3.0.floc.p0$#lltok_stealLoc +^3177 14454$$$@0#lltok_isSemi +^3178 14462$$$@0#lltok_isEq_Op +^3179 14456$$$@0#lltok_isMult +^3180 14458$$$@0#lltok_isInc_Op +^3181 14464$$$@0#lltok_isAnd_Op +^3182 14466$$$@0#lltok_isOr_Op +^3183 14468$$$@0#lltok_isNot_Op +^3184 14470$$$@0#lltok_isLt_Op +^3185 14472$$$@0#lltok_isGt_Op +^3186 14474$$$@0#lltok_isGe_Op +^3187 14476$$$@0#lltok_isLe_Op +^3188 14478$$$@0#lltok_isPlus_Op +^3189 14480$$$@0#lltok_isMinus_Op +^3190 14460$$$@0#lltok_isDec_Op +^3191 14482$$$@0#lltok_isAmpersand_Op +^3192 14484$$$@0#lltok_isExcl_Op +^3193 14486$$$@0#lltok_isTilde_Op +*2 (Enum member) +^3194 2060$#NOCLAUSE#TRUECLAUSE#FALSECLAUSE#ANDCLAUSE#ORCLAUSE#WHILECLAUSE#DOWHILECLAUSE#FORCLAUSE#CASECLAUSE#SWITCHCLAUSE#CONDCLAUSE#ITERCLAUSE#TRUEEXITCLAUSE#FALSEEXITCLAUSE +*9 (Enum tag) +^3208 2060@2061#&!13 +*0 (Datatype) +^3209 2061@-@-@0@0@0@0@2062#clause +*4 (Function) +^3210 12781@6@5@1@0@0^@19@3@0#clause_nameAlternate +^3211 12779@6@5@1@0@0^@19@3@0#clause_nameTaken +^3212 12783@6@5@1@0@0^@19@3@0#clause_nameFlip +^3213 12789$^$@0#clause_isConditional +^3214 12785$^$@0#clause_isBreakable +^3215 12787$^$@0#clause_isLoop +^3216 12791$^$@0#clause_isSwitch +^3217 12793$^$@0#clause_isCase +^3218 12795$^$@0#clause_isNone +^3219 12777@6@5@1@0@0^@19@3@0#clause_unparse +^3220 12797$^@3@0@0#globalsClause_create +^3221 12799@6@5@1@0@0^@19@3@0#globalsClause_getGlobs +^3222 12801@6@5@1@0@0@0@@1@p0@2@0@0#globalsClause_takeGlobs +^3223 12805@6@5@1@0@0^@3@0@0#globalsClause_unparse +^3224 12803$$$@0#globalsClause_free +^3225 12807$^@3@0@0#modifiesClause_createNoMods +^3226 12815@6@5@1@0@0$@19@3@0#modifiesClause_getMods +^3227 12817@6@5@1@0@0$@2@0@0#modifiesClause_takeMods +^3228 12809$^@3@0@0#modifiesClause_create +^3229 12813@6@5@1@0@0^@3@0@0#modifiesClause_unparse +^3230 12811$$$@0#modifiesClause_free +*1 (Constant) +^3231 1039@i0@0@4#warnClause_undefined +*4 (Function) +^3232 12821@6@5@1@0@0^@3@0@0#warnClause_create +^3233 12823@6@5@1@0@0^@19@3@0#warnClause_getFlag +^3234 12833@6@5@1@0@0^@2@0@0#warnClause_dump +^3235 12835@6@5@1@0@0@0@@1@p0@2@0@0#warnClause_undump +^3236 12827$^$@0#warnClause_hasMessage +^3237 12829@6@5@1@0@0^@19@3@0#warnClause_getMessage +^3238 12825@6@5@1@0@0^@2@0@0#warnClause_unparse +^3239 12831$$$@0#warnClause_free +*2 (Enum member) +^3240 2134$#FCK_GLOBALS#FCK_MODIFIES#FCK_WARN#FCK_STATE#FCK_DEAD +*9 (Enum tag) +^3245 2134@2135#&!14 +*0 (Datatype) +^3246 2135@-@-@0@0@0@0@2136#functionClauseKind +*8 (Union tag) +^3247 2137@2138#$!15 +*1 (Constant) +^3248 1027@i0@0@4#functionClause_undefined +*4 (Function) +^3249 12839@6@5@1@0@0^@3@0@0#functionClause_createGlobals +^3250 12841@6@5@1@0@0^@3@0@0#functionClause_createModifies +^3251 12845@6@5@1@0@0^@3@0@0#functionClause_createWarn +^3252 12843@6@5@1@0@0^@3@0@0#functionClause_createState +^3253 12861$^@19@2@0#functionClause_getGlobals +^3254 12859$^@19@2@0#functionClause_getModifies +^3255 12851$^@19@2@0#functionClause_getState +^3256 12855@6@5@1@0@0^@19@2@0#functionClause_getWarn +^3257 12853$@0@@1@p0@2@0@0#functionClause_takeState +^3258 12857@6@5@1@0@0@0@@1@p0@2@0@0#functionClause_takeWarn +^3259 12849$^$@0#functionClause_matchKind +^3260 12863$$$@0#functionClause_free +^3261 12847@6@5@1@0@0^@2@0@0#functionClause_unparse +*0 (Datatype) +^3262 1027@-@+@0@5@2@0@2180#o_functionClause +*1 (Constant) +^3263 1030@i0@0@4#functionClauseList_undefined +*4 (Function) +^3264 12880@6@5@1@0@0^@3@0@0#functionClauseList_unparseSep +^3265 2194@6@5@1@0@0^@2@0@0#functionClauseList_new +^3266 12872@6@5@1@0@0^@2@0@0#functionClauseList_single +^3267 12874@6@5@1@0@0@0@@1@p0$@0#functionClauseList_add +^3268 12876@6@5@1@0@0@0@@1@p0$@0#functionClauseList_prepend +^3269 12878@6@5@1@0@0$@2@0@0#functionClauseList_unparse +^3270 12882$$$@0#functionClauseList_free +*1 (Constant) +^3271 5$#functionClauseListBASESIZE +*6 (Iterator finalizer) +^3272 0@65#end_functionClauseList_elements +*5 (Iterator) +^3273 2205@65#functionClauseList_elements +*0 (Datatype) +^3274 1117@-@+@0@5@19@3@2206#ob_cstring +*7 (Struct tag) +^3275 2208@2209#@s_cstringSList +*0 (Datatype) +^3276 2210@+@=@0@5@0@0@2211#cstringSList +*1 (Constant) +^3277 2211@i0@0@4#cstringSList_undefined +*4 (Function) +^3278 16370@6@5@1@0@0^@3@0@0#cstringSList_unparseSep +^3279 2221@6@5@1@0@0^@2@0@0#cstringSList_new +^3280 16362@6@5@1@0@0^@2@0@0#cstringSList_single +^3281 16364@6@5@1@0@0@0@@1@p0$@0#cstringSList_add +^3282 16378$$$@0#cstringSList_alphabetize +^3283 16366@6@5@1@0@0^@19@3@0#cstringSList_get +^3284 16374@6@5@1@0@0^@2@0@0#cstringSList_unparseAbbrev +^3285 16368@6@5@1@0@0$@2@0@0#cstringSList_unparse +^3286 16376$$$@0#cstringSList_free +^3287 16372$$$@0#cstringSList_printSpaced +*1 (Constant) +^3288 5$#cstringSListBASESIZE +*6 (Iterator finalizer) +^3289 0@132#end_cstringSList_elements +*5 (Iterator) +^3290 2238@132#cstringSList_elements +*7 (Struct tag) +^3291 2240@2241#@s_cstringList +*0 (Datatype) +^3292 2242@+@=@0@5@0@0@2243#cstringList +*1 (Constant) +^3293 2243@i0@0@4#cstringList_undefined +*4 (Function) +^3294 16334@6@5@1@0@0^@3@0@0#cstringList_unparseSep +^3295 2253@6@5@1@0@0^@2@0@0#cstringList_new +^3296 16326@6@5@1@0@0^@2@0@0#cstringList_single +^3297 16328@6@5@1@0@0@0@@1@p0$@0#cstringList_add +^3298 16330@6@5@1@0@0@0@@1@p0@2@0@0#cstringList_prepend +^3299 16350$^$@0#cstringList_contains +^3300 16348$^$@0#cstringList_getIndex +^3301 16354@6@5@1@0@0^@19@3@0#cstringList_get +^3302 16342$$$@0#cstringList_alphabetize +^3303 16338@6@5@1@0@0^@2@0@0#cstringList_unparseAbbrev +^3304 16332@6@5@1@0@0$@2@0@0#cstringList_unparse +^3305 16340$$$@0#cstringList_free +^3306 16336$$$@0#cstringList_printSpaced +^3307 16352@6@5@1@0@0^@2@0@0#cstringList_copy +*1 (Constant) +^3308 5$#cstringListBASESIZE +*6 (Iterator finalizer) +^3309 0@133#end_cstringList_elements +*5 (Iterator) +^3310 2278@133#cstringList_elements +*4 (Function) +^3311 13810$$$@0#doCheck +^3312 13695$@0@g2537@0@0@1@g2537$@0#llmsg +^3313 13697$@0@g155@6@0@1@g155$@0#lldiagmsg +^3314 13699$@0@g2537@0@0@1@g2537$@0#llmsgplain +^3315 13705$@1@g2536@6@5,g2537@6@0@1@g2537$@0#llhint +^3316 13754@6@0@6@0@0@1@g2536@6@5,g155@6@0@1@g155$@0#xllfatalbug +^3317 13768$@0@g2537@0@0@1@g2537$@0#xllgloberror +^3318 13735$@0@g2537@0@0@1@g2537$@0#xllgenerror +^3319 13737$@0@g2537@0@0@1@g2537$@0#xllgenhinterror +^3320 13723$@0@g2537@0@0@1@g2537$@0#llgenmsg +^3321 13764@6@0@6@0@0@0@g2537@0@0@1@g2537$@0#llfatalerror +^3322 13766@6@0@6@0@0@1@g2536@6@5,g155@6@0@1@g155$@0#llfatalerrorLoc +^3323 13806$@1@g2537@6@0,g2536@6@5@1@g2537$@0#llparseerror +^3324 13782@6@0@6@0@0@0@g2537@0@0@1@g2537$@0#lclplainfatalerror +^3325 13756@6@0@6@0@0@0@g2537@0@0@1@g2537$@0#lclfatalbug +^3326 13774$^$@0#lclNumberErrors +^3327 13772$@0@s1@1@s1$@0#lclHadNewError +^3328 13780@6@0@6@0@0$$@0#lclfatalerror +^3329 13776$$$@0#xlclerror +^3330 13762$$$@0#lclbug +^3331 13778$$$@0#lclplainerror +^3332 13770$$$@0#lclHadError +^3333 13784$$$@0#lclRedeclarationError +^3334 13701$@0@g2537@0@0@1@g2537$@0#flagWarning +^3335 13760@6@0@6@0@0@1@g2537@6@0,g2536@6@5@1@tg2537$@0#llbugaux +^3336 13814$@0@g2537@0@0@1@tg2537$@0#llquietbugaux +^3337 2362$@1@g2537@6@0,g2536@6@5,s1@1@g2537,s1$@0#cleanupMessages +^3338 13800$@0@g2537@0@0,s1@1@tg2537,s1$@0#xoptgenerror2 +^3339 13802$@0@g2537@0@0,s1@1@tg2537,s1$@0#xoptgenerror2n +^3340 13798$@0@g2537@0@0,s1@1@tg2537,s1$@0#xlloptgenerror +^3341 13804$@0@g2537@0@0,s1@1@tg2537,s1$@0#xllnoptgenerror +^3342 13733$@0@g2537@0@0,s1@1@tg2537,s1$@0#xllgenformattypeerror +^3343 13731$@0@g2537@0@0,s1@1@tg2537,s1$@0#xllgentypeerror +^3344 13808$@0@g2537@0@0,s1@1@g2537,s1$@0#xfsgenerror +^3345 13744$@0@g2537@0@0@1@g2537$@0#xllforceerror +^3346 13725$@0@g2537@0@0@1@g2537$@0#llgenindentmsg +^3347 13758$$$@0#checkParseError +^3348 13790$$$@0#ppllerror +^3349 13788$$$@0#genppllerrorhint +^3350 13786$$$@0#genppllerror +^3351 13792$$$@0#pplldiagmsg +^3352 13794$$$@0#loadllmsg +^3353 13727$$$@0#llgenindentmsgnoloc +^3354 13812@6@5@1@0@0^@19@3@0#lldecodeerror +^3355 13691$@0@s1,g2537@0@0@1@s1,g2537$@0#prepareMessage +^3356 13693$@0@s1,g2537@0@0@1@s1,g2537$@0#closeMessage +^3357 13816$@0@s3@1@s3$@0#llflush +^3358 15402$^$@0#fileLib_isLCLFile +^3359 15400$^$@0#fileLib_isCExtension +^3360 15412@6@5@1@0@0$@3@0@0#fileLib_addExtension +^3361 15404@6@5@1@0@0^@3@0@0#fileLib_withoutExtension +^3362 15406@6@5@1@0@0^@3@0@0#fileLib_removePath +^3363 15408@6@5@1@0@0^@3@0@0#fileLib_removePathFree +^3364 15410@6@5@1@0@0^@3@0@0#fileLib_removeAnyExtension +^3365 15422@6@5@1@0@0^@3@0@0#fileLib_cleanName +^3366 15414$^$@0#fileLib_hasExtension +^3367 15416@6@5@1@0@0^@19@3@0#fileLib_getExtension +*1 (Constant) +^3368 1117@@0@5#MTS_EXTENSION#LCL_EXTENSION#LH_EXTENSION#C_EXTENSION#LHTMP_EXTENSION#XH_EXTENSION +^3374 5$#STUBMAXRECORDSIZE +^3375 1015@i0@0@4#inputStream_undefined +*4 (Function) +^3376 13467$$$@0#inputStream_free +^3377 13465$@0@s3@1@p0,s3$@0#inputStream_close +^3378 13469@6@5@1@0@0^@3@0@0#inputStream_create +^3379 13471@6@5@1@0@0^@3@0@0#inputStream_fromString +^3380 13480@6@5@1@0@0@0@@1@p0@18@0@0#inputStream_nextLine +^3381 13473$@0@@1@p0$@0#inputStream_nextChar +^3382 13477$@0@@1@p0$@0#inputStream_peekChar +^3383 13475$@0@@1@p0$@0#inputStream_peekNChar +^3384 13482$@0@s3@1@p0,s3$@0#inputStream_open +^3385 13484$@0@@1@p1$@0#inputStream_getPath +^3386 13489@6@5@1@0@0^@19@3@0#inputStream_fileName +^3387 13491$^$@0#inputStream_isOpen +^3388 13493$^$@0#inputStream_thisLineNumber +^3389 13487$^@19@2@0#inputStream_getFile +*7 (Struct tag) +^3390 2508@2509#@!16 +*0 (Datatype) +^3391 2510@+@=@0@5@0@0@2511#qualList +*1 (Constant) +^3392 2511@i0@0@4#qualList_undefined +*6 (Iterator finalizer) +^3393 0@134#end_qualList_elements +*5 (Iterator) +^3394 2516@134#qualList_elements +*4 (Function) +^3395 2522@6@5@1@0@0^@3@0@0#qualList_new +^3396 16588@6@5@1@0@0@0@@1@p0$@0#qualList_add +^3397 16594@6@5@1@0@0^@2@0@0#qualList_unparse +^3398 16602$$$@0#qualList_free +^3399 16590@6@5@1@0@0$$@0#qualList_appendList +^3400 16592@6@5@1@0@0$@3@0@0#qualList_copy +^3401 16596@6@5@1@0@0$@2@0@0#qualList_toCComments +^3402 16584$$$@0#qualList_clear +*1 (Constant) +^3403 5$#qualListBASESIZE +*4 (Function) +^3404 16598$$$@0#qualList_hasAliasQualifier +^3405 16600$$$@0#qualList_hasExposureQualifier +^3406 16604$$$@0#qualList_hasNullTerminatedQualifier +*1 (Constant) +^3407 968$#LEOFTOKEN#NOTTOKEN +*7 (Struct tag) +^3409 2547@2545#@s_mappair +*0 (Datatype) +^3410 2545@-@+@0@0@0@0@2548#mappair +^3411 2549@-@+@0@3@2@0@2550#o_mappair +*7 (Struct tag) +^3412 2552@2553#@!17 +*0 (Datatype) +^3413 2554@+@=@0@0@0@0@2555#mapping +*4 (Function) +^3414 19509$$@2@0@0#mapping_create +^3415 19512$$$@0#mapping_find +^3416 19514$$$@0#mapping_bind +^3417 19507$$$@0#mapping_free +*1 (Constant) +^3418 23$#BEGINSORTTABLE#SORTTABLEEND +*2 (Enum member) +^3420 2564$#SRT_FIRST#SRT_NONE#SRT_HOF#SRT_PRIM#SRT_SYN#SRT_PTR#SRT_OBJ#SRT_ARRAY#SRT_VECTOR#SRT_STRUCT#SRT_TUPLE#SRT_UNION#SRT_UNIONVAL#SRT_ENUM#SRT_LAST +*9 (Enum tag) +^3435 2564@2565#&!18 +*0 (Datatype) +^3436 2565@-@-@0@0@0@0@2566#sortKind +*7 (Struct tag) +^3437 2569@2567#@s_smemberInfo +*0 (Datatype) +^3438 2567@-@+@0@0@0@0@2570#smemberInfo +*1 (Constant) +^3439 2571@@0@6#smemberInfo_undefined +*7 (Struct tag) +^3440 2572@2573#@!19 +*0 (Datatype) +^3441 2574@-@+@0@0@0@0@2575#sortNode +*4 (Function) +^3442 18931@6@5@1@0@0^@3@0@0#sort_unparse +^3443 18982@6@5@1@0@0^@19@2@0#sort_unparseName +^3444 18827$^$@0#sort_makeSort +^3445 18833$^$@0#sort_makeSyn +^3446 18835$^$@0#sort_makeFormal +^3447 18837$^$@0#sort_makeGlobal +^3448 18841$^$@0#sort_makePtr +^3449 18843$^$@0#sort_makePtrN +^3450 18849$^$@0#sort_makeVal +^3451 18839$^$@0#sort_makeObj +^3452 18817$@1@s1@1@s1$@0#sort_destroyMod +^3453 18845$^$@0#sort_makeArr +^3454 18847$^$@0#sort_makeVec +^3455 18853$^$@0#sort_makeMutable +^3456 18851$^$@0#sort_makeImmutable +^3457 18855$^$@0#sort_makeStr +^3458 18869$^$@0#sort_makeUnion +^3459 18881$^$@0#sort_makeEnum +^3460 18857$@0@s1@1@s1$@0#sort_updateStr +^3461 18871$@0@s1@1@s1$@0#sort_updateUnion +^3462 18883$@0@s1@1@s1$@0#sort_updateEnum +^3463 18859$@0@s1@1@s1$@0#sort_makeTuple +^3464 18873$@0@s1@1@s1$@0#sort_makeUnionVal +^3465 18977$^$@0#sort_getLsymbol +^3466 18980$^@19@3@0#sort_getName +^3467 18923$^@19@3@0#sort_lookup +^3468 18925$^@19@3@0#sort_quietLookup +^3469 18911$^$@0#sort_lookupName +^3470 18955$@0@@1@p0$@0#sort_dump +^3471 18909$@1@s1@1@s1$@0#sort_init +^3472 18973$^$@0#sort_compatible +^3473 18975$^$@0#sort_compatible_modulo_cstring +^3474 18941$^$@0#sort_getUnderlying +^3475 18947$^$@0#sort_mutable +^3476 18819$@0@s1@1@s1$@0#sort_makeNoSort +^3477 18821$^$@0#sort_makeHOFSort +^3478 18990$^$@0#sort_isHOFSortKind +^3479 18953$^$@0#sort_isValidSort +^3480 18949$@0@s1@1@s1$@0#sort_setExporting +^3481 18921$@0@g2537@0@0@1@g2537$@0#sort_printStats +^3482 18971$^$@0#sort_equal +^3483 18988$@0@s1@1@s1$@0#sort_fromLsymbol +^3484 18969$@0@s1@1@p0,s1$@0#sort_import +*3 (Variable) +^3485 960|@1|^#sort_bool#sort_capBool#sort_int#sort_char#sort_cstring#sort_float#sort_double +*2 (Enum member) +^3492 2665$#TS_UNKNOWN#TS_VOID#TS_CHAR#TS_INT#TS_SIGNED#TS_UNSIGNED#TS_SHORT#TS_LONG#TS_FLOAT#TS_DOUBLE#TS_ENUM#TS_STRUCT#TS_UNION#TS_TYPEDEF +*9 (Enum tag) +^3506 2665@2666#&!20 +*0 (Datatype) +^3507 2666@-@-@0@0@0@0@2667#TypeSpecification +*2 (Enum member) +^3508 2668$#TYS_NONE#TYS_VOID#TYS_CHAR#TYS_SCHAR#TYS_UCHAR#TYS_SSINT#TYS_USINT#TYS_INT#TYS_SINT#TYS_UINT#TYS_SLINT#TYS_ULINT#TYS_FLOAT#TYS_DOUBLE#TYS_LDOUBLE#TYS_ENUM#TYS_STRUCT#TYS_UNION#TYS_TYPENAME +*9 (Enum tag) +^3527 2668@2669#&!21 +*0 (Datatype) +^3528 2669@-@-@0@0@0@0@2670#TypeSpec +^3529 1142@-@-@0@0@0@0@2671#lclctype +*4 (Function) +^3530 17644$$$@0#lclctype_toSort +^3531 17642$$$@0#lclctype_toSortDebug +*2 (Enum member) +^3532 2678$#PNORMAL#PYIELD#PELIPSIS +*9 (Enum tag) +^3535 2678@2679#&!22 +*0 (Datatype) +^3536 2679@-@-@0@0@0@0@2680#paramkind +*7 (Struct tag) +^3537 2681@2682#@!23 +*0 (Datatype) +^3538 2683@-@+@0@0@0@0@2684#paramNode +*4 (Function) +^3539 18513$$$@0#paramNode_free +^3540 18511@6@5@1@0@0$@3@0@0#paramNode_copy +^3541 18341@6@5@1@0@0$@2@0@0#paramNode_unparse +^3542 18347@6@5@1@0@0$@2@0@0#paramNode_unparseComments +*0 (Datatype) +^3543 2684@-@+@0@5@2@0@2697#o_paramNode +*7 (Struct tag) +^3544 2699@2700#@!24 +*0 (Datatype) +^3545 2701@+@=@0@5@0@0@2702#paramNodeList +*6 (Iterator finalizer) +^3546 0@137#end_paramNodeList_elements +*5 (Iterator) +^3547 2703@137#paramNodeList_elements +*4 (Function) +^3548 17288@6@5@1@0@0$@2@0@0#paramNodeList_single +^3549 2713@6@5@1@0@0$@2@0@0#paramNodeList_new +^3550 17292@6@5@1@0@0$$@0#paramNodeList_add +^3551 17296@6@5@1@0@0$@2@0@0#paramNodeList_unparse +^3552 17300$$$@0#paramNodeList_free +^3553 17294@6@5@1@0@0$@2@0@0#paramNodeList_copy +^3554 17298@6@5@1@0@0$@2@0@0#paramNodeList_unparseComments +*1 (Constant) +^3555 5$#paramNodeListBASESIZE +^3556 2702@i0@0@4#paramNodeList_undefined +^3557 961@@0@6#lsymbol_undefined +*4 (Function) +^3558 19480$^$@0#lsymbol_fromChars +^3559 19478$^$@0#lsymbol_fromString +^3560 19488@6@5@1@0@0^@19@2@0#lsymbol_toChars +^3561 19485$^@19@2@0#lsymbol_toCharsSafe +^3562 19482@6@5@1@0@0^@19@3@0#lsymbol_toString +^3563 19502$$$@0#lsymbol_printStats +^3564 19498$@1@s1@1@s1$@0#lsymbol_initMod +^3565 19500$@1@s1@1@s1$@0#lsymbol_destroyMod +*1 (Constant) +^3566 5$#HT_MAXINDEX +*2 (Enum member) +^3567 2750$#SID_VAR#SID_TYPE#SID_OP#SID_SORT +*9 (Enum tag) +^3571 2750@2751#&!25 +*0 (Datatype) +^3572 2751@-@-@0@0@0@0@2752#SimpleIdCode +^3573 967@-@+@0@5@2@0@2754#o_ltoken +*1 (Constant) +^3574 967@i0@0@4#ltoken_undefined +*4 (Function) +^3575 18615@6@5@1@0@0^@3@0@0#ltoken_createType +^3576 18611@6@5@1@0@0^@3@0@0#ltoken_create +*3 (Variable) +^3577 967|@1|0@5@18&#ltoken_forall#ltoken_exists#ltoken_true#ltoken_false#ltoken_not#ltoken_and#ltoken_or#ltoken_implies#ltoken_eq#ltoken_neq#ltoken_equals#ltoken_eqsep#ltoken_select#ltoken_open#ltoken_sep#ltoken_close#ltoken_id#ltoken_arrow#ltoken_marker#ltoken_pre#ltoken_post#ltoken_comment +^3599 967|@1|6@5@18&#ltoken_compose#ltoken_if +^3601 967|@1|0@5@18&#ltoken_any#ltoken_result#ltoken_typename#ltoken_bool +^3605 967|@1|6@5@18&#ltoken_farrow +^3606 967|@1|0@5@18&#ltoken_lbracked#ltoken_rbracket +*4 (Function) +^3608 18621@6@5@1@0@0^@3@0@0#ltoken_unparseCodeName +^3609 18623@6@5@1@0@0$@19@3@0#ltoken_unparse +^3610 18627$^$@0#ltoken_getRawText +^3611 18107$^$@20#ltoken_similar +^3612 18625@6@5@1@0@0^@3@0@0#ltoken_copy +^3613 18633$$$@0#ltoken_free +^3614 18617@6@5@1@0@0^@3@0@0#ltoken_createFull +^3615 18613@6@5@1@0@0^@3@0@0#ltoken_createRaw +^3616 18629@6@5@1@0@0^@3@0@0#ltoken_unparseLoc +^3617 18631$$$@0#ltoken_markOwned +^3618 18635$^$@0#ltoken_isSingleChar +*7 (Struct tag) +^3619 2834@2835#@!26 +*0 (Datatype) +^3620 2836@+@=@0@5@0@0@2837#ltokenList +*6 (Iterator finalizer) +^3621 0@139#end_ltokenList_elements +*5 (Iterator) +^3622 2838@139#ltokenList_elements +*1 (Constant) +^3623 2837@i0@0@4#ltokenList_undefined +*4 (Function) +^3624 2850@6@2@1@0@0^@2@0@0#ltokenList_new +^3625 17217$@0@@1@p0$@0#ltokenList_addh +^3626 17219$@0@@1@p0$@0#ltokenList_reset +^3627 17223$@0@@1@p0$@0#ltokenList_advance +^3628 17235@6@5@1@0@0^@2@0@0#ltokenList_unparse +^3629 17237$$$@0#ltokenList_free +^3630 17225@6@5@1@0@0^@19@3@0#ltokenList_head +^3631 17233@6@5@1@0@0^@19@3@0#ltokenList_current +^3632 17229@6@5@1@0@0^@2@0@0#ltokenList_copy +^3633 17211@6@2@1@0@0$@2@0@0#ltokenList_singleton +^3634 17215@6@5@1@0@0$$@0#ltokenList_push +^3635 17227$^$@0#ltokenList_equal +^3636 17221$^$@0#ltokenList_isFinished +^3637 17231$@0@@1@p0$@0#ltokenList_removeCurrent +*1 (Constant) +^3638 5$#ltokenListBASESIZE +*2 (Enum member) +^3639 2877$#TAG_ENUM#TAG_STRUCT#TAG_UNION#TAG_FWDSTRUCT#TAG_FWDUNION +*9 (Enum tag) +^3644 2877@2878#&!27 +*0 (Datatype) +^3645 2878@-@-@0@0@0@0@2879#tagKind +*2 (Enum member) +^3646 2880$#IMPPLAIN#IMPBRACKET#IMPQUOTE +*9 (Enum tag) +^3649 2880@2881#&!28 +*0 (Datatype) +^3650 2881@-@-@0@0@0@0@2882#impkind +*7 (Struct tag) +^3651 2883@2884#@!29 +*0 (Datatype) +^3652 2885@-@+@0@0@0@0@2886#importNode +*4 (Function) +^3653 18503$$$@0#importNode_free +^3654 18149$$@2@0@0#importNode_makePlain +^3655 18151$$@2@0@0#importNode_makeBracketed +^3656 18155$$@2@0@0#importNode_makeQuoted +*0 (Datatype) +^3657 2886@-@+@0@0@2@0@2895#o_importNode +*7 (Struct tag) +^3658 2897@2898#@!30 +*0 (Datatype) +^3659 2899@+@=@0@0@0@0@2900#importNodeList +*6 (Iterator finalizer) +^3660 0@140#end_importNodeList_elements +*5 (Iterator) +^3661 2901@140#importNodeList_elements +*4 (Function) +^3662 2903$$@2@0@0#importNodeList_new +^3663 17366$$$@0#importNodeList_add +^3664 17368@6@5@1@0@0$@2@0@0#importNodeList_unparse +^3665 17370$$$@0#importNodeList_free +*1 (Constant) +^3666 5$#importNodeListBASESIZE +*4 (Function) +^3667 18159$$$@0#checkBrackets +*7 (Struct tag) +^3668 2913@2914#@!31 +*0 (Datatype) +^3669 2915@+@=@0@0@0@0@2916#sortList +*4 (Function) +^3670 2918$$@2@0@0#sortList_new +^3671 17052$$$@0#sortList_addh +^3672 17054$$$@0#sortList_reset +^3673 17056$$$@0#sortList_advance +^3674 17060@6@5@1@0@0$@2@0@0#sortList_unparse +^3675 17062$$$@0#sortList_free +^3676 17058$$$@0#sortList_current +*1 (Constant) +^3677 5$#sortListBASESIZE +*7 (Struct tag) +^3678 2932@2933#@!32 +*0 (Datatype) +^3679 2934@+@=@0@0@0@0@2935#lsymbolList +*6 (Iterator finalizer) +^3680 0@142#end_lsymbolList_elements +*5 (Iterator) +^3681 2936@142#lsymbolList_elements +*4 (Function) +^3682 2938$$@2@0@0#lsymbolList_new +^3683 17169$$$@0#lsymbolList_addh +^3684 17171$$$@0#lsymbolList_free +*1 (Constant) +^3685 5$#lsymbolListBASESIZE +*7 (Struct tag) +^3686 2943@2944#@!33 +*0 (Datatype) +^3687 2945@+@=@0@5@0@0@2946#lsymbolSet +*1 (Constant) +^3688 2946@i0@0@4#lsymbolSet_undefined +*6 (Iterator finalizer) +^3689 0@143#end_lsymbolSet_elements +*5 (Iterator) +^3690 2949@143#lsymbolSet_elements +*4 (Function) +^3691 2951@6@5@1@0@0^@2@0@0#lsymbolSet_new +^3692 16961$@0@@1@p0$@0#lsymbolSet_insert +^3693 16963$^$@0#lsymbolSet_member +^3694 16965@6@5@1@0@0^@2@0@0#lsymbolSet_unparse +^3695 16967$$$@0#lsymbolSet_free +*1 (Constant) +^3696 5$#lsymbolSetBASESIZE +*7 (Struct tag) +^3697 2960@2961#@!34 +*0 (Datatype) +^3698 2962@+@=@0@5@0@0@2963#sortSet +*6 (Iterator finalizer) +^3699 0@144#end_sortSet_elements +*5 (Iterator) +^3700 2964@144#sortSet_elements +*1 (Constant) +^3701 2963@i0@0@4#sortSet_undefined +*4 (Function) +^3702 2970@6@5@1@0@0$@2@0@0#sortSet_new +^3703 17021$$$@0#sortSet_insert +^3704 17025$$$@0#sortSet_member +^3705 17027@6@5@1@0@0$@2@0@0#sortSet_unparse +^3706 17029@6@5@1@0@0$@2@0@0#sortSet_unparseClean +^3707 17031@6@5@1@0@0$@2@0@0#sortSet_unparseOr +^3708 17033$$$@0#sortSet_free +^3709 17023$$$@0#sortSet_choose +^3710 17035@6@5@1@0@0$@2@0@0#sortSet_copy +*1 (Constant) +^3711 5$#sortSetBASESIZE +*7 (Struct tag) +^3712 2987@2988#@!35 +*0 (Datatype) +^3713 2989@-@+@0@0@0@0@2990#pairNode +*4 (Function) +^3714 18509$$$@0#pairNode_free +*0 (Datatype) +^3715 2990@-@+@0@0@2@0@2993#o_pairNode +*7 (Struct tag) +^3716 2995@2996#@!36 +*0 (Datatype) +^3717 2997@+@=@0@5@0@0@2998#pairNodeList +*6 (Iterator finalizer) +^3718 0@145#end_pairNodeList_elements +*5 (Iterator) +^3719 2999@145#pairNodeList_elements +*1 (Constant) +^3720 2998@i0@0@4#pairNodeList_undefined +*4 (Function) +^3721 3003@6@5@1@0@0^@2@0@0#pairNodeList_new +^3722 17255$@0@@1@p0$@0#pairNodeList_addh +^3723 17257@6@5@1@0@0^@2@0@0#pairNodeList_unparse +^3724 17259$$$@0#pairNodeList_free +*1 (Constant) +^3725 5$#pairNodeListBASESIZE +*7 (Struct tag) +^3726 3010@3011#@!37 +*0 (Datatype) +^3727 3012@-@+@0@0@0@0@3013#declaratorNode +*4 (Function) +^3728 18245@6@5@1@0@0$@2@0@0#declaratorNode_unparse +^3729 18479$$$@0#declaratorNode_free +*0 (Datatype) +^3730 3013@-@+@0@0@2@0@3018#o_declaratorNode +*7 (Struct tag) +^3731 3020@3021#@!38 +*0 (Datatype) +^3732 3022@+@=@0@0@0@0@3023#declaratorNodeList +*6 (Iterator finalizer) +^3733 0@146#end_declaratorNodeList_elements +*5 (Iterator) +^3734 3024@146#declaratorNodeList_elements +*4 (Function) +^3735 3026$$@2@0@0#declaratorNodeList_new +^3736 17110$$$@0#declaratorNodeList_add +^3737 17112@6@5@1@0@0$@2@0@0#declaratorNodeList_unparse +^3738 17116$$$@0#declaratorNodeList_free +^3739 17114$$@3@0@0#declaratorNodeList_copy +*1 (Constant) +^3740 5$#declaratorNodeListBASESIZE +*7 (Struct tag) +^3741 3035@3036#@!39 +*0 (Datatype) +^3742 3037@-@+@0@0@0@0@3038#declaratorInvNode +*4 (Function) +^3743 18485$$$@0#declaratorInvNode_free +^3744 18289@6@5@1@0@0$@2@0@0#declaratorInvNode_unparse +*0 (Datatype) +^3745 3038@-@+@0@0@2@0@3043#o_declaratorInvNode +*7 (Struct tag) +^3746 3045@3046#@!40 +*0 (Datatype) +^3747 3047@+@=@0@0@0@0@3048#declaratorInvNodeList +*6 (Iterator finalizer) +^3748 0@147#end_declaratorInvNodeList_elements +*5 (Iterator) +^3749 3049@147#declaratorInvNodeList_elements +*4 (Function) +^3750 3053$$@2@0@0#declaratorInvNodeList_new +^3751 17069$$$@0#declaratorInvNodeList_add +^3752 17071@6@5@1@0@0$@2@0@0#declaratorInvNodeList_unparse +^3753 17073$$$@0#declaratorInvNodeList_free +*1 (Constant) +^3754 5$#declaratorInvNodeListBASESIZE +*2 (Enum member) +^3755 3060$#TEXPR_BASE#TEXPR_PTR#TEXPR_ARRAY#TEXPR_FCN +*9 (Enum tag) +^3759 3060@3061#&!41 +*0 (Datatype) +^3760 3061@-@-@0@0@0@0@3062#typeExprKind +*7 (Struct tag) +^3761 3063@3064#@!42 +^3762 3065@3066#@!43 +*8 (Union tag) +^3763 3067@3068#$!44 +*4 (Function) +^3764 18253$$$@0#typeExpr_free +^3765 18257@6@5@1@0@0$@2@0@0#typeExpr_unparse +^3766 18259@6@5@1@0@0$@2@0@0#typeExpr_unparseNoBase +*0 (Datatype) +^3767 964@-@+@0@0@0@0@3076#abstDeclaratorNode +*7 (Struct tag) +^3768 3079@3080#@!45 +*0 (Datatype) +^3769 3081@-@+@0@0@0@0@3082#arrayQualNode +*7 (Struct tag) +^3770 3083@3084#@!46 +*0 (Datatype) +^3771 3085@-@+@0@0@0@0@3086#varNode +*4 (Function) +^3772 18537$$@3@0@0#varNode_copy +^3773 18539$$$@0#varNode_free +*0 (Datatype) +^3774 3086@-@+@0@0@2@0@3091#o_varNode +*7 (Struct tag) +^3775 3093@3094#@!47 +*0 (Datatype) +^3776 3095@+@=@0@0@0@0@3096#varNodeList +*6 (Iterator finalizer) +^3777 0@149#end_varNodeList_elements +*5 (Iterator) +^3778 3097@149#varNodeList_elements +*4 (Function) +^3779 3099$$@2@0@0#varNodeList_new +^3780 17329$$$@0#varNodeList_add +^3781 17335$$@3@0@0#varNodeList_copy +^3782 17331@6@5@1@0@0$@2@0@0#varNodeList_unparse +^3783 17333$$$@0#varNodeList_free +*1 (Constant) +^3784 5$#varNodeListBASESIZE +*7 (Struct tag) +^3785 3108@3109#@!48 +*0 (Datatype) +^3786 3110@-@+@0@0@0@0@3111#quantifierNode +*4 (Function) +^3787 18517$$@3@0@0#quantifierNode_copy +^3788 18519$$$@0#quantifierNode_free +*0 (Datatype) +^3789 3111@-@+@0@0@2@0@3116#o_quantifierNode +*7 (Struct tag) +^3790 3118@3119#@!49 +*0 (Datatype) +^3791 3120@+@=@0@0@0@0@3121#quantifierNodeList +*6 (Iterator finalizer) +^3792 0@150#end_quantifierNodeList_elements +*5 (Iterator) +^3793 3122@150#quantifierNodeList_elements +*4 (Function) +^3794 3124$$@2@0@0#quantifierNodeList_new +^3795 17342$$$@0#quantifierNodeList_add +^3796 17346@6@5@1@0@0$@2@0@0#quantifierNodeList_unparse +^3797 17348$$$@0#quantifierNodeList_free +^3798 17344$$@2@0@0#quantifierNodeList_copy +*1 (Constant) +^3799 5$#quantifierNodeListBASESIZE +*2 (Enum member) +^3800 3133$#SRN_TERM#SRN_TYPE#SRN_OBJ#SRN_SPECIAL +*9 (Enum tag) +^3804 3133@3134#&!50 +*0 (Datatype) +^3805 3134@-@-@0@0@0@0@3135#storeRefNodeKind +*8 (Union tag) +^3806 3136@3137#$!51 +*7 (Struct tag) +^3807 3138@3139#@!52 +*0 (Datatype) +^3808 3140@-@+@0@0@0@0@3141#storeRefNode +*4 (Function) +^3809 18523$$@3@0@0#storeRefNode_copy +^3810 18525$$$@0#storeRefNode_free +*0 (Datatype) +^3811 3141@-@+@0@0@2@0@3154#o_storeRefNode +*7 (Struct tag) +^3812 3156@3157#@!53 +*0 (Datatype) +^3813 3158@+@=@0@0@0@0@3159#storeRefNodeList +*6 (Iterator finalizer) +^3814 0@151#end_storeRefNodeList_elements +*5 (Iterator) +^3815 3160@151#storeRefNodeList_elements +*4 (Function) +^3816 3162$$@2@0@0#storeRefNodeList_new +^3817 17157$$$@0#storeRefNodeList_add +^3818 17161@6@5@1@0@0$@2@0@0#storeRefNodeList_unparse +^3819 17163$$$@0#storeRefNodeList_free +^3820 17159$$@2@0@0#storeRefNodeList_copy +*1 (Constant) +^3821 5$#storeRefNodeListBASESIZE +*7 (Struct tag) +^3822 3171@3172#@!54 +*0 (Datatype) +^3823 3173@-@+@0@0@0@0@3174#modifyNode +*4 (Function) +^3824 18405@6@5@1@0@0$@2@0@0#modifyNode_unparse +*7 (Struct tag) +^3825 3177@3178#@!55 +*0 (Datatype) +^3826 3179@-@+@0@0@0@0@3180#letDeclNode +*4 (Function) +^3827 18507$$$@0#letDeclNode_free +*0 (Datatype) +^3828 3180@-@+@0@0@2@0@3183#o_letDeclNode +*7 (Struct tag) +^3829 3185@3186#@!56 +*0 (Datatype) +^3830 3187@+@=@0@0@0@0@3188#letDeclNodeList +*6 (Iterator finalizer) +^3831 0@152#end_letDeclNodeList_elements +*5 (Iterator) +^3832 3189@152#letDeclNodeList_elements +*4 (Function) +^3833 3191$$@2@0@0#letDeclNodeList_new +^3834 17123$$$@0#letDeclNodeList_add +^3835 17125@6@5@1@0@0$@2@0@0#letDeclNodeList_unparse +^3836 17127$$$@0#letDeclNodeList_free +*1 (Constant) +^3837 5$#letDeclNodeListBASESIZE +*2 (Enum member) +^3838 3198$#ACT_SELF#ACT_ITER#ACT_ALTERNATE#ACT_SEQUENCE +*9 (Enum tag) +^3842 3198@3199#&!57 +*0 (Datatype) +^3843 3199@-@-@0@0@0@0@3200#actionKind +*8 (Union tag) +^3844 3201@3202#$!58 +*7 (Struct tag) +^3845 3203@3204#@!59 +*0 (Datatype) +^3846 3205@-@+@0@0@0@0@3206#programNode +*4 (Function) +^3847 18515$$$@0#programNode_free +^3848 18407@6@5@1@0@0$@2@0@0#programNode_unparse +*0 (Datatype) +^3849 3206@-@+@0@0@2@0@3211#o_programNode +*6 (Iterator finalizer) +^3850 0@16#end_programNodeList_elements +*5 (Iterator) +^3851 3214@16#programNodeList_elements +*4 (Function) +^3852 3216$$@2@0@0#programNodeList_new +^3853 17307$$$@0#programNodeList_addh +^3854 17309@6@5@1@0@0$@2@0@0#programNodeList_unparse +^3855 17311$$$@0#programNodeList_free +*1 (Constant) +^3856 5$#programNodeListBASESIZE +*2 (Enum member) +^3857 3223$#LPD_PLAIN#LPD_CHECKS#LPD_REQUIRES#LPD_ENSURES#LPD_INTRACLAIM#LPD_CONSTRAINT#LPD_INITIALLY +*9 (Enum tag) +^3864 3223@3224#&!60 +*0 (Datatype) +^3865 3224@-@-@0@0@0@0@3225#lclPredicateKind +*7 (Struct tag) +^3866 3227@3228#@!61 +*0 (Datatype) +^3867 3229@-@+@0@0@0@0@3230#exposedNode +*4 (Function) +^3868 18285@6@5@1@0@0$@2@0@0#exposedNode_unparse +*2 (Enum member) +^3869 3233$#TK_ABSTRACT#TK_EXPOSED#TK_UNION +*9 (Enum tag) +^3872 3233@3234#&!62 +*0 (Datatype) +^3873 3234@-@-@0@0@0@0@3235#typeKind +*7 (Struct tag) +^3874 3236@3237#@!63 +*0 (Datatype) +^3875 3238@-@+@0@0@0@0@3239#CTypesNode +*7 (Struct tag) +^3876 3240@3241#@!64 +*0 (Datatype) +^3877 3242@-@+@0@0@0@0@3243#initDeclNode +*4 (Function) +^3878 18495$$$@0#initDeclNode_isRedeclaration +^3879 18505$$$@0#initDeclNode_free +*0 (Datatype) +^3880 3243@-@+@0@0@2@0@3248#o_initDeclNode +*7 (Struct tag) +^3881 3250@3251#@!65 +*0 (Datatype) +^3882 3252@+@=@0@0@0@0@3253#initDeclNodeList +*6 (Iterator finalizer) +^3883 0@154#end_initDeclNodeList_elements +*5 (Iterator) +^3884 3254@154#initDeclNodeList_elements +*4 (Function) +^3885 3256$$@2@0@0#initDeclNodeList_new +^3886 17042$$$@0#initDeclNodeList_add +^3887 17044@6@5@1@0@0$@2@0@0#initDeclNodeList_unparse +^3888 17046$$$@0#initDeclNodeList_free +*1 (Constant) +^3889 5$#initDeclNodeListBASESIZE +*7 (Struct tag) +^3890 3263@3264#@!66 +*0 (Datatype) +^3891 3265@-@+@0@0@0@0@3266#constDeclarationNode +*4 (Function) +^3892 18117@6@5@1@0@0$@2@0@0#constDeclarationNode_unparse +*2 (Enum member) +^3893 3269$#QLF_NONE#QLF_CONST#QLF_VOLATILE +*9 (Enum tag) +^3896 3269@3270#&!67 +*0 (Datatype) +^3897 3270@-@-@0@0@0@0@3271#qualifierKind +*7 (Struct tag) +^3898 3272@3273#@!68 +*0 (Datatype) +^3899 3274@-@+@0@0@0@0@3275#varDeclarationNode +*4 (Function) +^3900 18535$$$@0#varDeclarationNode_free +^3901 18113@6@5@1@0@0^@2@0@0#varDeclarationNode_unparse +*0 (Datatype) +^3902 3275@-@+@0@0@2@0@3280#o_varDeclarationNode +*7 (Struct tag) +^3903 3282@3283#@!69 +*0 (Datatype) +^3904 3284@+@=@0@0@0@0@3285#varDeclarationNodeList +*6 (Iterator finalizer) +^3905 0@155#end_varDeclarationNodeList_elements +*5 (Iterator) +^3906 3286@155#varDeclarationNodeList_elements +*4 (Function) +^3907 3288$^@2@0@0#varDeclarationNodeList_new +^3908 17318$@0@@1@p0$@0#varDeclarationNodeList_addh +^3909 17320@6@5@1@0@0^@2@0@0#varDeclarationNodeList_unparse +^3910 17322$$$@0#varDeclarationNodeList_free +*1 (Constant) +^3911 5$#varDeclarationNodeListBASESIZE +*0 (Datatype) +^3912 3285@-@+@0@0@0@0@3295#globalList +*7 (Struct tag) +^3913 3300@3301#@!70 +*0 (Datatype) +^3914 3302@-@+@0@0@0@0@3303#claimNode +*4 (Function) +^3915 18395@6@5@1@0@0$@2@0@0#claimNode_unparse +*7 (Struct tag) +^3916 3306@3307#@!71 +*0 (Datatype) +^3917 3308@-@+@0@0@0@0@3309#fcnNode +*4 (Function) +^3918 18483$$$@0#fcnNode_free +^3919 18111@6@5@1@0@0$@2@0@0#fcnNode_unparse +*0 (Datatype) +^3920 3309@-@+@0@0@2@0@3314#o_fcnNode +*7 (Struct tag) +^3921 3316@3317#@!72 +*0 (Datatype) +^3922 3318@+@=@0@5@0@0@3319#fcnNodeList +*6 (Iterator finalizer) +^3923 0@156#end_fcnNodeList_elements +*5 (Iterator) +^3924 3320@156#fcnNodeList_elements +*1 (Constant) +^3925 3319@i0@0@4#fcnNodeList_undefined +*4 (Function) +^3926 3330@6@5@1@0@0$@2@0@0#fcnNodeList_new +^3927 17279@6@5@1@0@0$$@0#fcnNodeList_add +^3928 17281@6@5@1@0@0$@2@0@0#fcnNodeList_unparse +^3929 17283$$$@0#fcnNodeList_free +*1 (Constant) +^3930 5$#fcnNodeListBASESIZE +*7 (Struct tag) +^3931 3337@3338#@!73 +*0 (Datatype) +^3932 3339@-@+@0@0@0@0@3340#iterNode +*4 (Function) +^3933 18109@6@5@1@0@0^@2@0@0#iterNode_unparse +^3934 18291@6@5@1@0@0$@2@0@0#abstBodyNode_unparse +*7 (Struct tag) +^3935 3346@3347#@!74 +*0 (Datatype) +^3936 3348@-@+@0@0@0@0@3349#abstractNode +*4 (Function) +^3937 18279@6@5@1@0@0$@2@0@0#abstractNode_unparse +*7 (Struct tag) +^3938 3352@3353#@!75 +*0 (Datatype) +^3939 3354@-@+@0@0@0@0@3355#stDeclNode +*4 (Function) +^3940 18529$$$@0#stDeclNode_free +^3941 18527$$@3@0@0#stDeclNode_copy +*0 (Datatype) +^3942 3355@-@+@0@0@2@0@3360#o_stDeclNode +*7 (Struct tag) +^3943 3362@3363#@!76 +*0 (Datatype) +^3944 3364@+@=@0@0@0@0@3365#stDeclNodeList +*6 (Iterator finalizer) +^3945 0@158#end_stDeclNodeList_elements +*5 (Iterator) +^3946 3366@158#stDeclNodeList_elements +*4 (Function) +^3947 3370$$@2@0@0#stDeclNodeList_new +^3948 17134$$$@0#stDeclNodeList_add +^3949 17138@6@5@1@0@0$@2@0@0#stDeclNodeList_unparse +^3950 17140$$$@0#stDeclNodeList_free +^3951 17136$$@2@0@0#stDeclNodeList_copy +*1 (Constant) +^3952 5$#stDeclNodeListBASESIZE +*7 (Struct tag) +^3953 3379@3380#@!77 +*0 (Datatype) +^3954 3381@-@+@0@0@0@0@3382#taggedUnionNode +*4 (Function) +^3955 18295@6@5@1@0@0^@2@0@0#taggedUnionNode_unparse +*8 (Union tag) +^3956 3385@3386#$!78 +*7 (Struct tag) +^3957 3387@3388#@!79 +*0 (Datatype) +^3958 3389@-@+@0@0@0@0@3390#typeNode +*4 (Function) +^3959 18115@6@5@1@0@0^@2@0@0#typeNode_unparse +*2 (Enum member) +^3960 3393$#SU_STRUCT#SU_UNION +*9 (Enum tag) +^3962 3393@3394#&!80 +*0 (Datatype) +^3963 3394@-@-@0@0@0@0@3395#suKind +*7 (Struct tag) +^3964 3396@3397#@!81 +*0 (Datatype) +^3965 3398@-@+@0@0@0@0@3399#strOrUnionNode +*4 (Function) +^3966 18229@6@5@1@0@0$@3@0@0#strOrUnionNode_unparse +*7 (Struct tag) +^3967 3402@3403#@!82 +*0 (Datatype) +^3968 3404@-@+@0@0@0@0@3405#enumSpecNode +*4 (Function) +^3969 18223@6@5@1@0@0^@2@0@0#enumSpecNode_unparse +*2 (Enum member) +^3970 3408$#LTS_TYPE#LTS_STRUCTUNION#LTS_ENUM#LTS_CONJ +*9 (Enum tag) +^3974 3408@3409#&!83 +*0 (Datatype) +^3975 3409@-@-@0@0@0@0@3410#lclTypeSpecKind +^3976 956@-@+@0@5@0@0@3411#lcltsp +*7 (Struct tag) +^3977 3412@3413#@!84 +*0 (Datatype) +^3978 3414@-@+@0@0@0@0@3415#lclconj +*8 (Union tag) +^3979 3416@3417#$!85 +*1 (Constant) +^3980 956@i0@0@6#lclTypeSpecNode_undefined +*4 (Function) +^3981 18463@6@5@1@0@0^@2@0@0#lclTypeSpecNode_copy +^3982 18217@6@5@1@0@0^@2@0@0#lclTypeSpecNode_unparse +^3983 18345@6@5@1@0@0^@2@0@0#lclTypeSpecNode_unparseComments +*7 (Struct tag) +^3984 3427@3428#@!86 +*0 (Datatype) +^3985 3429@-@+@0@0@0@0@3430#typeNamePack +*7 (Struct tag) +^3986 3431@3432#@!87 +*0 (Datatype) +^3987 3433@-@+@0@0@0@0@3434#typeNameNode +*4 (Function) +^3988 18533$$$@0#typeNameNode_free +^3989 18205@6@5@1@0@0$@2@0@0#typeNameNode_unparse +*0 (Datatype) +^3990 3434@-@+@0@0@2@0@3439#o_typeNameNode +*7 (Struct tag) +^3991 3441@3442#@!88 +*0 (Datatype) +^3992 3443@+@=@0@0@0@0@3444#typeNameNodeList +*6 (Iterator finalizer) +^3993 0@160#end_typeNameNodeList_elements +*5 (Iterator) +^3994 3445@160#typeNameNodeList_elements +*4 (Function) +^3995 3451$$@2@0@0#typeNameNodeList_new +^3996 17266$$$@0#typeNameNodeList_add +^3997 17268@6@5@1@0@0$@2@0@0#typeNameNodeList_unparse +^3998 17270$$$@0#typeNameNodeList_free +*1 (Constant) +^3999 5$#typeNameNodeListBASESIZE +*2 (Enum member) +^4000 3458$#OPF_IF#OPF_ANYOP#OPF_MANYOP#OPF_ANYOPM#OPF_MANYOPM#OPF_MIDDLE#OPF_MMIDDLE#OPF_MIDDLEM#OPF_MMIDDLEM#OPF_BMIDDLE#OPF_BMMIDDLE#OPF_BMIDDLEM#OPF_BMMIDDLEM#OPF_SELECT#OPF_MAP#OPF_MSELECT#OPF_MMAP +*9 (Enum tag) +^4017 3458@3459#&!89 +*0 (Datatype) +^4018 3459@-@-@0@0@0@0@3460#opFormKind +*8 (Union tag) +^4019 3461@3462#$!90 +*0 (Datatype) +^4020 3461@-@-@0@0@0@0@3463#opFormUnion +*4 (Function) +^4021 18199@6@5@1@0@0^@2@0@0#opFormNode_unparse +*7 (Struct tag) +^4022 3467@3468#@!91 +*0 (Datatype) +^4023 3469@-@+@0@0@0@0@3470#quantifiedTermNode +*2 (Enum member) +^4024 3471$#TRM_LITERAL#TRM_CONST#TRM_VAR#TRM_ZEROARY#TRM_APPLICATION#TRM_QUANTIFIER#TRM_UNCHANGEDALL#TRM_UNCHANGEDOTHERS#TRM_SIZEOF +*9 (Enum tag) +^4033 3471@3472#&!92 +*0 (Datatype) +^4034 3472@-@-@0@0@0@0@3473#termKIND +*7 (Struct tag) +^4035 3474@3475#@!93 +*0 (Datatype) +^4036 3476@-@+@0@0@0@0@3477#sigNode +*4 (Function) +^4037 18187@6@5@1@0@0^@2@0@0#sigNode_unparse +^4038 18477$$$@0#sigNode_free +^4039 18489$^@2@0@0#sigNode_copy +^4040 18189$$$@0#sigNode_markOwned +*0 (Datatype) +^4041 3477@-@+@0@0@17@0@3486#o_sigNode +*7 (Struct tag) +^4042 3488@3489#@!94 +*0 (Datatype) +^4043 3490@+@=@0@5@0@0@3491#sigNodeSet +*6 (Iterator finalizer) +^4044 0@162#end_sigNodeSet_elements +*5 (Iterator) +^4045 3492@162#sigNodeSet_elements +*1 (Constant) +^4046 3491@i0@0@4#sigNodeSet_undefined +*4 (Function) +^4047 3502@6@5@1@0@0^@2@0@0#sigNodeSet_new +^4048 16974@6@5@1@0@0^@2@0@0#sigNodeSet_singleton +^4049 16978$@0@@1@p0$@0#sigNodeSet_insert +^4050 16982@6@5@1@0@0^@2@0@0#sigNodeSet_unparse +^4051 16986@6@5@1@0@0^@2@0@0#sigNodeSet_unparsePossibleAritys +^4052 16988$$$@0#sigNodeSet_free +^4053 16984@6@5@1@0@0^@2@0@0#sigNodeSet_unparseSomeSigs +*1 (Constant) +^4054 5$#sigNodeSetBASESIZE +*7 (Struct tag) +^4055 3515@3516#@!95 +*0 (Datatype) +^4056 3517@-@+@0@0@0@0@3518#signNode +*4 (Function) +^4057 18441@6@5@1@0@0^@2@0@0#signNode_unparse +^4058 18439$$$@0#signNode_free +*8 (Union tag) +^4059 3523@3524#$!96 +*7 (Struct tag) +^4060 3525@3526#@!97 +*0 (Datatype) +^4061 3527@-@+@0@0@0@0@3528#nameNode +*4 (Function) +^4062 18471$$$@0#nameNode_free +^4063 18491@6@5@1@0@0^@2@0@0#nameNode_copy +^4064 18183@6@5@1@0@0^@2@0@0#nameNode_unparse +^4065 18493$^@2@0@0#nameNode_copySafe +*7 (Struct tag) +^4066 3537@3538#@!98 +*0 (Datatype) +^4067 3539@-@+@0@0@0@0@3540#lslOp +^4068 3540@-@+@0@0@2@0@3541#o_lslOp +*4 (Function) +^4069 18475$$$@0#lslOp_free +^4070 18487$$@2@0@0#lslOp_copy +*7 (Struct tag) +^4071 3547@3548#@!99 +*0 (Datatype) +^4072 3549@+@=@0@5@0@0@3550#lslOpSet +*6 (Iterator finalizer) +^4073 0@163#end_lslOpSet_elements +*5 (Iterator) +^4074 3551@163#lslOpSet_elements +*1 (Constant) +^4075 3550@i0@0@4#lslOpSet_undefined +*4 (Function) +^4076 3557@6@5@1@0@0^@2@0@0#lslOpSet_new +^4077 17005$@0@@1@p0$@0#lslOpSet_insert +^4078 17009@6@5@1@0@0^@2@0@0#lslOpSet_unparse +^4079 17013$$$@0#lslOpSet_free +^4080 17011@6@5@1@0@0^@2@0@0#lslOpSet_copy +*1 (Constant) +^4081 5$#lslOpSetBASESIZE +*7 (Struct tag) +^4082 3566@3567#@!100 +*8 (Union tag) +^4083 3568@3569#$!101 +*7 (Struct tag) +^4084 3570@3571#@!102 +*0 (Datatype) +^4085 3572@-@+@0@0@0@0@3573#replaceNode +*4 (Function) +^4086 18521$$$@0#replaceNode_free +^4087 18177@6@5@1@0@0$@2@0@0#replaceNode_unparse +*0 (Datatype) +^4088 3573@-@+@0@0@2@0@3578#o_replaceNode +*7 (Struct tag) +^4089 3580@3581#@!103 +*0 (Datatype) +^4090 3582@+@=@0@0@0@0@3583#replaceNodeList +*6 (Iterator finalizer) +^4091 0@164#end_replaceNodeList_elements +*5 (Iterator) +^4092 3584@164#replaceNodeList_elements +*4 (Function) +^4093 3590$$@2@0@0#replaceNodeList_new +^4094 17355$$$@0#replaceNodeList_add +^4095 17357@6@5@1@0@0$@2@0@0#replaceNodeList_unparse +^4096 17359$$$@0#replaceNodeList_free +*1 (Constant) +^4097 5$#replaceNodeListBASESIZE +*7 (Struct tag) +^4098 3597@3598#@!104 +*0 (Datatype) +^4099 3599@-@+@0@0@0@0@3600#nameAndReplaceNode +*8 (Union tag) +^4100 3601@3602#$!105 +*7 (Struct tag) +^4101 3603@3604#@!106 +*0 (Datatype) +^4102 3605@-@+@0@0@0@0@3606#renamingNode +*4 (Function) +^4103 18171@6@5@1@0@0$@2@0@0#renamingNode_unparse +*7 (Struct tag) +^4104 3609@3610#@!107 +*0 (Datatype) +^4105 3611@-@+@0@0@0@0@3612#traitRefNode +*4 (Function) +^4106 18531$$$@0#traitRefNode_free +*0 (Datatype) +^4107 3612@-@+@0@0@2@0@3615#o_traitRefNode +*7 (Struct tag) +^4108 3617@3618#@!108 +*0 (Datatype) +^4109 3619@+@=@0@0@0@0@3620#traitRefNodeList +*6 (Iterator finalizer) +^4110 0@165#end_traitRefNodeList_elements +*5 (Iterator) +^4111 3621@165#traitRefNodeList_elements +*4 (Function) +^4112 3623$$@2@0@0#traitRefNodeList_new +^4113 17244$$$@0#traitRefNodeList_add +^4114 17246@6@5@1@0@0$@2@0@0#traitRefNodeList_unparse +^4115 17248$$$@0#traitRefNodeList_free +*1 (Constant) +^4116 5$#traitRefNodeListBASESIZE +*2 (Enum member) +^4117 3630$#XPK_CONST#XPK_VAR#XPK_TYPE#XPK_FCN#XPK_CLAIM#XPK_ITER +*9 (Enum tag) +^4123 3630@3631#&!109 +*0 (Datatype) +^4124 3631@-@-@0@0@0@0@3632#exportKind +*8 (Union tag) +^4125 3633@3634#$!110 +*7 (Struct tag) +^4126 3635@3636#@!111 +*0 (Datatype) +^4127 3637@-@+@0@0@0@0@3638#exportNode +*4 (Function) +^4128 18099@6@5@1@0@0$@2@0@0#exportNode_unparse +*2 (Enum member) +^4129 3641$#PRIV_CONST#PRIV_VAR#PRIV_TYPE#PRIV_FUNCTION +*9 (Enum tag) +^4133 3641@3642#&!112 +*0 (Datatype) +^4134 3642@-@-@0@0@0@0@3643#privateKind +*8 (Union tag) +^4135 3644@3645#$!113 +*7 (Struct tag) +^4136 3646@3647#@!114 +*0 (Datatype) +^4137 3648@-@+@0@0@0@0@3649#privateNode +*4 (Function) +^4138 18101@6@5@1@0@0$@2@0@0#privateNode_unparse +*2 (Enum member) +^4139 3652$#INF_IMPORTS#INF_USES#INF_EXPORT#INF_PRIVATE +*9 (Enum tag) +^4143 3652@3653#&!115 +*0 (Datatype) +^4144 3653@-@-@0@0@0@0@3654#interfaceNodeKind +*8 (Union tag) +^4145 3655@3656#$!116 +*7 (Struct tag) +^4146 3657@3658#@!117 +*0 (Datatype) +^4147 3659@-@+@0@0@0@0@3660#interfaceNode +*4 (Function) +^4148 18549@6@5@1@0@0$@3@0@0#interfaceNode_unparse +^4149 18551$$$@0#interfaceNode_free +*0 (Datatype) +^4150 3660@-@+@0@0@2@0@3665#o_interfaceNode +*7 (Struct tag) +^4151 3667@3668#@!118 +*0 (Datatype) +^4152 3669@+@=@0@0@0@0@3670#interfaceNodeList +*6 (Iterator finalizer) +^4153 0@166#end_interfaceNodeList_elements +*5 (Iterator) +^4154 3671@166#interfaceNodeList_elements +*4 (Function) +^4155 3673$$@2@0@0#interfaceNodeList_new +^4156 17080$$$@0#interfaceNodeList_addh +^4157 17082$$$@0#interfaceNodeList_addl +^4158 17084$$$@0#interfaceNodeList_free +*1 (Constant) +^4159 5$#interfaceNodeListGROWLOW#interfaceNodeListGROWHI#interfaceNodeListBASESIZE +*4 (Function) +^4162 18499$^@3@0@0#termNode_copySafe +^4163 18401@6@5@1@0@0^@3@0@0#termNode_unparse +^4164 18497$$$@0#termNode_free +*0 (Datatype) +^4165 941@-@+@0@0@2@0@3689#o_termNode +*6 (Iterator finalizer) +^4166 0@18#end_termNodeList_elements +*5 (Iterator) +^4167 3692@18#termNodeList_elements +*4 (Function) +^4168 3700$$@2@0@0#termNodeList_new +^4169 17180$$$@0#termNodeList_push +^4170 17178$$$@0#termNodeList_addh +^4171 17182$$$@0#termNodeList_addl +^4172 17184$@0@@1@p0$@0#termNodeList_reset +^4173 17186$@0@@1@p0$@0#termNodeList_finish +^4174 17188$@0@@1@p0$@0#termNodeList_advance +^4175 17196$^@19@2@0#termNodeList_getN +^4176 17198@6@5@1@0@0$@2@0@0#termNodeList_unparse +^4177 17200@6@5@1@0@0$@2@0@0#termNodeList_unparseTail +^4178 17202@6@5@1@0@0$@2@0@0#termNodeList_unparseToCurrent +^4179 17204@6@5@1@0@0$@2@0@0#termNodeList_unparseSecondToCurrent +^4180 17206$$$@0#termNodeList_free +^4181 17190$$@19@2@0#termNodeList_head +^4182 17194$$@19@2@0#termNodeList_current +^4183 17192$$@2@0@0#termNodeList_copy +*1 (Constant) +^4184 5$#termNodeListGROWLOW#termNodeListGROWHI#termNodeListBASESIZE +*4 (Function) +^4187 18409@6@2@1@0@0$@2@0@0#stmtNode_unparse +*0 (Datatype) +^4188 2963@-@+@0@5@18@0@3734#o_sortSet +*7 (Struct tag) +^4189 3736@3737#@!119 +*0 (Datatype) +^4190 3738@+@=@0@0@0@0@3739#sortSetList +*6 (Iterator finalizer) +^4191 0@169#end_sortSetList_elements +*5 (Iterator) +^4192 3740@169#sortSetList_elements +*4 (Function) +^4193 3744$$@2@0@0#sortSetList_new +^4194 17091$$$@0#sortSetList_addh +^4195 17093$$$@0#sortSetList_reset +^4196 17095$$$@0#sortSetList_advance +^4197 17101@6@5@1@0@0$@2@0@0#sortSetList_unparse +^4198 17103$$$@0#sortSetList_free +^4199 17097@6@5@1@0@0$@19@3@0#sortSetList_head +^4200 17099@6@5@1@0@0$@19@3@0#sortSetList_current +*1 (Constant) +^4201 5$#sortSetListBASESIZE +*0 (Datatype) +^4202 3540@-@+@0@0@19@2@3759#e_lslOp +*7 (Struct tag) +^4203 3761@3762#@!120 +*0 (Datatype) +^4204 3763@+@=@0@0@0@0@3764#lslOpList +*4 (Function) +^4205 3766$$@2@0@0#lslOpList_new +^4206 17146$$$@0#lslOpList_add +^4207 17148@6@5@1@0@0$@2@0@0#lslOpList_unparse +^4208 17150$$$@0#lslOpList_free +*1 (Constant) +^4209 5$#lslOpListBASESIZE +*4 (Function) +^4210 18411$$@2@0@0#makelslOpNode +^4211 18413@6@5@1@0@0$@2@0@0#lslOp_unparse +^4212 3778$$$@0#abstract_init +^4213 18063$$$@0#resetImports +^4214 18073$$$@0#consInterfaceNode +^4215 18075$$@2@0@0#makeInterfaceNodeImports +^4216 18179$^@2@0@0#makeNameNodeForm +^4217 18181$^@2@0@0#makeNameNodeId +^4218 18077$^@2@0@0#makeInterfaceNodeUses +^4219 18079$^@2@0@0#interfaceNode_makeConst +^4220 18081$^@2@0@0#interfaceNode_makeVar +^4221 18083$^@2@0@0#interfaceNode_makeType +^4222 18085$^@2@0@0#interfaceNode_makeFcn +^4223 18087$^@2@0@0#interfaceNode_makeClaim +^4224 18089$^@2@0@0#interfaceNode_makeIter +^4225 18091$^@2@0@0#interfaceNode_makePrivConst +^4226 18093$^@2@0@0#interfaceNode_makePrivVar +^4227 18095$^@2@0@0#interfaceNode_makePrivType +^4228 18097$^@2@0@0#interfaceNode_makePrivFcn +^4229 18145$^@2@0@0#makeAbstractTypeNode +^4230 18147$^@2@0@0#makeExposedTypeNode +^4231 18161$^@2@0@0#makeTraitRefNode +^4232 18165@6@5@1@0@0^@2@0@0#printLeaves2 +^4233 18167@6@5@1@0@0^@2@0@0#printRawLeaves2 +^4234 18191@6@5@1@0@0^@2@0@0#sigNode_unparseText +^4235 18169$^@2@0@0#makeRenamingNode +^4236 18175$^@2@0@0#makeReplaceNode +^4237 18185$^@2@0@0#makesigNode +^4238 18173$^@2@0@0#makeReplaceNameNode +^4239 18195$^@2@0@0#makeOpFormNode +^4240 18201$^@2@0@0#makeTypeNameNode +^4241 18203$^@2@0@0#makeTypeNameNodeOp +^4242 18207@6@5@1@0@0^@2@0@0#makeLclTypeSpecNodeConj +^4243 18209@6@5@1@0@0^@2@0@0#makeLclTypeSpecNodeType +^4244 18211@6@5@1@0@0^@2@0@0#makeLclTypeSpecNodeSU +^4245 18213@6@5@1@0@0^@2@0@0#makeLclTypeSpecNodeEnum +^4246 18215@6@5@1@0@0@0@@1@p0@2@0@0#lclTypeSpecNode_addQual +^4247 18219$$@2@0@0#makeEnumSpecNode +^4248 18221$$@2@0@0#makeEnumSpecNode2 +^4249 18225$$@2@0@0#makestrOrUnionNode +^4250 18227$$@2@0@0#makeForwardstrOrUnionNode +^4251 18231$$@2@0@0#makestDeclNode +^4252 18267$$@2@0@0#makeConstDeclarationNode +^4253 18273$$@2@0@0#makeVarDeclarationNode +^4254 18271$$@3@0@0#makeFileSystemNode +^4255 18269$$@3@0@0#makeInternalStateNode +^4256 18275$$@2@0@0#makeInitDeclNode +^4257 18277$$@2@0@0#makeAbstractNode +^4258 18293@6@5@1@0@0$@2@0@0#abstBodyNode_unparseExposed +^4259 18283$$@2@0@0#makeExposedNode +^4260 18287$$@2@0@0#makeDeclaratorInvNode +^4261 18299$$@2@0@0#fcnNode_fromDeclarator +^4262 18303$$@2@0@0#makeFcnNode +^4263 18301$$@2@0@0#makeIterNode +^4264 18305$$@2@0@0#makeClaimNode +^4265 18307$$@2@0@0#makeIntraClaimNode +^4266 18309$$@2@0@0#makeRequiresNode +^4267 18311$$@2@0@0#makeChecksNode +^4268 18313$$@2@0@0#makeEnsuresNode +^4269 18315$$@2@0@0#makeLclPredicateNode +^4270 18329$$@2@0@0#makeStmtNode +^4271 18141$$@2@0@0#makeProgramNodeAction +^4272 18143$$@2@0@0#makeProgramNode +^4273 18119$$@2@0@0#makeStoreRefNodeTerm +^4274 18121$$@2@0@0#makeStoreRefNodeType +^4275 18127$$@2@0@0#makeModifyNodeSpecial +^4276 18123$$@3@0@0#makeStoreRefNodeInternal +^4277 18125$$@3@0@0#makeStoreRefNodeSystem +^4278 18129$$@2@0@0#makeModifyNodeRef +^4279 18139$$@2@0@0#makeLetDeclNode +^4280 18323$$@2@0@0#makeAbstBodyNode +^4281 18325$$@2@0@0#makeExposedBodyNode +^4282 18327$$@2@0@0#makeAbstBodyNode2 +^4283 18459$$$@0#markYieldParamNode +^4284 18319$$@2@0@0#makeArrayQualNode +^4285 18317$$@2@0@0#makeQuantifierNode +^4286 18321$$@2@0@0#makeVarNode +^4287 18237$$@2@0@0#makeTypeExpr +^4288 18239$$@2@0@0#makeDeclaratorNode +^4289 18233$$@2@0@0#makeFunctionNode +^4290 18263$$@2@0@0#makePointerNode +^4291 18265$$@2@0@0#makeArrayNode +^4292 18333$$@2@0@0#makeParamNode +^4293 18349$$@2@0@0#makeIfTermNode +^4294 18357$$@2@0@0#makeQuantifiedTermNode +^4295 18353$$@2@0@0#makeInfixTermNode +^4296 18359$$@2@0@0#makePostfixTermNode +^4297 18361$$@2@0@0#makePostfixTermNode2 +^4298 18363$$@2@0@0#makePrefixTermNode +^4299 18367$$@19@2@0#CollapseInfixTermNode +^4300 18379$$@2@0@0#makeMatchedNode +^4301 18377$$@2@0@0#makeSqBracketedNode +^4302 18375$$@2@0@0#updateSqBracketedNode +^4303 18373$$$@0#updateMatchedNode +^4304 18381$$@2@0@0#makeSimpleTermNode +^4305 18383$$@2@0@0#makeSelectTermNode +^4306 18385$$@2@0@0#makeMapTermNode +^4307 18387$$@2@0@0#makeLiteralTermNode +^4308 18389$$@2@0@0#makeUnchangedTermNode1 +^4309 18391$$@2@0@0#makeUnchangedTermNode2 +^4310 18393$$@2@0@0#makeSizeofTermNode +^4311 18365$$@2@0@0#makeOpCallTermNode +^4312 18451$$$@0#sigNode_rangeSort +^4313 18453$$@2@0@0#sigNode_domain +^4314 18417$$$@0#sameNameNode +^4315 18423$$@2@0@0#makeCTypesNode +^4316 18425$$@2@0@0#makeTypeSpecifier +^4317 18427$$$@0#sigNode_equal +^4318 18433$$$@0#lclTypeSpecNode2sort +^4319 18429$$$@0#typeExpr2ptrSort +^4320 18435$$$@0#checkAndEnterTag +^4321 18445$$$@0#enteringFcnScope +^4322 18447$$$@0#enteringClaimScope +^4323 18133@6@5@1@0@0$@19@3@0#nameNode_errorToken +^4324 18131@6@5@1@0@0$@19@3@0#termNode_errorToken +^4325 18135@6@5@1@0@0$@19@3@0#lclTypeSpecNode_errorToken +^4326 18455$$$@0#opFormUnion_createAnyOp +^4327 18457$$$@0#opFormUnion_createMiddle +^4328 18069$$$@0#LCLBuiltins +^4329 18335$$@2@0@0#paramNode_elipsis +^4330 18371$$$@0#pushInfixOpPartNode +^4331 18255@6@5@1@0@0$@2@0@0#declaratorNode_unparseCode +^4332 18261@6@5@1@0@0$@2@0@0#typeExpr_name +^4333 18281$$$@0#setExposedType +^4334 18067$$$@0#declareForwardType +^4335 18247$$@2@0@0#declaratorNode_copy +^4336 18473$$$@0#lslOp_equal +^4337 18579$@0@s1@1@s1$@0#lsymbol_setbool +^4338 4030$$$@0#lsymbol_getbool +^4339 4032$$$@0#lsymbol_getBool +^4340 4034$$$@0#lsymbol_getTRUE +^4341 4036$$$@0#lsymbol_getFALSE +*1 (Constant) +^4342 23$#BEGINSYMTABLE#SYMTABLEEND +*0 (Datatype) +^4344 10@-@-@0@0@0@0@4037#symbolKey +*7 (Struct tag) +^4345 4038@4039#@!121 +*0 (Datatype) +^4346 4040@-@+@0@0@0@0@4041#fctInfo +*7 (Struct tag) +^4347 4042@4043#@!122 +*0 (Datatype) +^4348 4044@-@+@0@0@0@0@4045#typeInfo +*2 (Enum member) +^4349 4046$#VRK_CONST#VRK_ENUM#VRK_VAR#VRK_PRIVATE#VRK_GLOBAL#VRK_LET#VRK_PARAM#VRK_QUANT +*9 (Enum tag) +^4357 4046@4047#&!123 +*0 (Datatype) +^4358 4047@-@-@0@0@0@0@4048#varKind +*7 (Struct tag) +^4359 4049@4050#@!124 +*0 (Datatype) +^4360 4051@-@+@0@0@0@0@4052#varInfo +*7 (Struct tag) +^4361 4053@4054#@!125 +*0 (Datatype) +^4362 4055@-@+@0@0@0@0@4056#opInfo +*8 (Union tag) +^4363 4057@4058#$!126 +*7 (Struct tag) +^4364 4059@4060#@!127 +*0 (Datatype) +^4365 4061@-@+@0@0@0@0@4062#tagInfo +*2 (Enum member) +^4366 4063$#IK_SORT#IK_OP#IK_TAG +*9 (Enum tag) +^4369 4063@4064#&!128 +*0 (Datatype) +^4370 4064@-@-@0@0@0@0@4065#infoKind +*8 (Union tag) +^4371 4066@4067#$!129 +*7 (Struct tag) +^4372 4068@4069#@!130 +*0 (Datatype) +^4373 4068@-@-@0@0@0@0@4070#htData +*2 (Enum member) +^4374 4071$#SPE_GLOBAL#SPE_FCN#SPE_QUANT#SPE_CLAIM#SPE_ABSTRACT#SPE_INVALID +*9 (Enum tag) +^4380 4071@4072#&!131 +*0 (Datatype) +^4381 4072@-@-@0@0@0@0@4073#scopeKind +*7 (Struct tag) +^4382 4074@4075#@!132 +*0 (Datatype) +^4383 4076@-@+@0@0@0@0@4077#scopeInfo +*7 (Struct tag) +^4384 4081@4079#@s_htEntry +*0 (Datatype) +^4385 4079@-@+@0@0@0@0@4082#htEntry +^4386 4082@-@+@0@0@0@0@4083#bucket +^4387 4084@-@+@0@3@2@0@4085#o_bucket +*7 (Struct tag) +^4388 4087@4088#@!133 +*0 (Datatype) +^4389 4087@-@-@0@0@0@0@4089#symHashTable +*7 (Struct tag) +^4390 19019@4090#@s_symtableStruct +*0 (Datatype) +^4391 4091@-@+@0@0@0@0@4092#symtable +*4 (Function) +^4392 19072$^@2@0@0#symtable_new +^4393 19091$$$@0#symtable_enterScope +^4394 19093$$$@0#symtable_exitScope +^4395 19095$$$@0#symtable_enterFct +^4396 19097$$$@0#symtable_enterType +^4397 19101$$$@0#symtable_enterVar +^4398 19081$$$@0#symtable_enterOp +^4399 19083$$$@0#symtable_enterTag +^4400 19085$$$@0#symtable_enterTagForce +^4401 19103$$$@0#symtable_exists +^4402 19105@6@5@1@0@0$@19@3@0#symtable_typeInfo +^4403 19107@6@5@1@0@0$@19@3@0#symtable_varInfo +^4404 19109@6@5@1@0@0$@19@3@0#symtable_varInfoInScope +^4405 19087@6@5@1@0@0$@19@3@0#symtable_opInfo +^4406 19089@6@5@1@0@0$@19@3@0#symtable_tagInfo +^4407 19113$$$@0#symtable_export +^4408 19118$$$@0#symtable_dump +^4409 19145$$$@0#symtable_import +^4410 19180$$$@0#symtable_printStats +^4411 19099$$$@0#lsymbol_sortFromType +^4412 19182@6@5@1@0@0$@3@0@0#tagKind_unparse +^4413 19120$$$@0#lsymbol_translateSort +^4414 19054$$$@0#varInfo_free +^4415 19192@6@5@1@0@0$@2@0@0#symtable_opsWithLegalDomain +^4416 19186@6@5@1@0@0$@19@3@0#symtable_possibleOps +^4417 19188$$$@0#symtable_opExistsWithArity +^4418 19058$$$@0#symtable_free +*0 (Datatype) +^4419 988@-@+@0@5@2@0@4155#o_exprNode +*7 (Struct tag) +^4420 4157@4158#@!134 +*0 (Datatype) +^4421 4159@+@=@0@0@0@0@4160#exprNodeList +*6 (Iterator finalizer) +^4422 0@171#end_exprNodeList_elements +*5 (Iterator) +^4423 4161@171#exprNodeList_elements +*4 (Function) +^4424 4167$$@2@0@0#exprNodeList_new +^4425 16460@6@5@1@0@0^@19@2@0#exprNodeList_nth +^4426 16458$$$@0#exprNodeList_push +^4427 16456$$@2@0@0#exprNodeList_singleton +^4428 16444$$$@0#exprNodeList_addh +^4429 16446$$$@0#exprNodeList_reset +^4430 16448$$$@0#exprNodeList_advance +^4431 16462@6@5@1@0@0^@2@0@0#exprNodeList_unparse +^4432 16464$$$@0#exprNodeList_free +^4433 16466$$$@0#exprNodeList_freeShallow +^4434 16450@6@5@1@0@0$@19@3@0#exprNodeList_head +^4435 16452@6@5@1@0@0^@19@3@0#exprNodeList_current +^4436 16454@6@5@1@0@0^@19@2@0#exprNodeList_getN +*1 (Constant) +^4437 5$#exprNodeListBASESIZE +*0 (Datatype) +^4438 5@+@-@0@0@0@0@4192#cprim +*1 (Constant) +^4439 5$#CTX_UNKNOWN#CTX_VOID#CTX_BOOL#CTX_UCHAR#CTX_CHAR#CTX_INT#CTX_UINT#CTX_SINT#CTX_USINT#CTX_LINT#CTX_ULINT#CTX_LLINT#CTX_ULLINT#CTX_ANYINTEGRAL#CTX_UNSIGNEDINTEGRAL#CTX_SIGNEDINTEGRAL#CTX_FLOAT#CTX_DOUBLE#CTX_LDOUBLE#CTX_LAST +^4459 4192$#cprim_int +*4 (Function) +^4460 11661$^$@0#cprim_closeEnough +^4461 11659$^$@0#cprim_closeEnoughDeep +^4462 11665@6@5@1@0@0^@2@0@0#cprim_unparse +^4463 11655$$$@0#cprim_fromInt +^4464 11667$$$@0#cprim_isInt +*1 (Constant) +^4465 5$#HBUCKET_BASESIZE#HBUCKET_DNE +*7 (Struct tag) +^4467 4215@4216#@!135 +*0 (Datatype) +^4468 4217@-@+@0@0@0@0@4218#hentry +^4469 4218@-@+@0@0@2@0@4219#o_hentry +*7 (Struct tag) +^4470 4221@4222#@!136 +*0 (Datatype) +^4471 4223@-@+@0@5@0@0@4224#hbucket +^4472 4224@-@+@0@5@2@0@4225#o_hbucket +*1 (Constant) +^4473 1006@i0@0@4#cstringTable_undefined +*4 (Function) +^4474 13619@6@5@1@0@0^@2@0@0#cstringTable_create +^4475 13630$@0@@1@p0$@0#cstringTable_insert +^4476 13632$$$@0#cstringTable_lookup +^4477 13624@6@5@1@0@0$@2@0@0#cstringTable_stats +^4478 13609$$$@0#cstringTable_free +^4479 13638$@0@@1@p0$@0#cstringTable_remove +^4480 13622@6@5@1@0@0^@3@0@0#cstringTable_unparse +^4481 13634$@0@@1@p0$@0#cstringTable_update +^4482 13636$$$@0#cstringTable_replaceKey +*1 (Constant) +^4483 5$#GHBUCKET_BASESIZE +*7 (Struct tag) +^4484 4250@4251#@!137 +*0 (Datatype) +^4485 4252@-@+@0@0@0@0@4253#ghentry +^4486 4253@-@+@0@0@2@0@4254#o_ghentry +*7 (Struct tag) +^4487 4256@4257#@!138 +*0 (Datatype) +^4488 4258@-@+@0@5@0@0@4259#ghbucket +^4489 4259@-@+@0@5@2@0@4260#o_ghbucket +*1 (Constant) +^4490 1009@i0@0@4#genericTable_undefined +*4 (Function) +^4491 13996@6@5@1@0@0$@2@0@0#genericTable_create +^4492 13965$$$@0#genericTable_size +^4493 14005$$$@0#genericTable_insert +^4494 14008@6@5@1@0@0$@19@2@0#genericTable_lookup +^4495 14014$^$@0#genericTable_contains +^4496 14001@6@5@1@0@0$@2@0@0#genericTable_stats +^4497 13986$$$@0#genericTable_free +^4498 14012$@0@@1@p0$@0#genericTable_remove +^4499 14010$@0@@1@p0$@0#genericTable_update +*6 (Iterator finalizer) +^4500 0@47#end_genericTable_elements +*5 (Iterator) +^4501 4286@47#genericTable_elements +*7 (Struct tag) +^4502 4288@4289#@!139 +*0 (Datatype) +^4503 4290@+@=@0@5@0@0@4291#filelocList +*1 (Constant) +^4504 4291@i0@0@4#filelocList_undefined +*6 (Iterator finalizer) +^4505 0@173#end_filelocList_elements +*5 (Iterator) +^4506 4296@173#filelocList_elements +*4 (Function) +^4507 16574$^$@0#filelocList_realSize +^4508 16562@6@5@1@0@0$$@0#filelocList_append +^4509 4306@6@5@1@0@0^@2@0@0#filelocList_new +^4510 16570@6@5@1@0@0@0@@1@p0$@0#filelocList_add +^4511 16568@6@5@1@0@0@0@@1@p0$@0#filelocList_addDifferentFile +^4512 16564@6@5@1@0@0@0@@1@p0$@0#filelocList_addUndefined +^4513 16576@6@5@1@0@0$@2@0@0#filelocList_unparseUses +^4514 16572@6@5@1@0@0$@2@0@0#filelocList_unparse +^4515 16578$$$@0#filelocList_free +*1 (Constant) +^4516 5$#filelocListBASESIZE +*0 (Datatype) +^4517 1117@-@+@0@5@0@0@4319#enumName +^4518 4319@-@+@0@5@2@0@4322#o_enumName +*7 (Struct tag) +^4519 4324@4325#@!140 +*0 (Datatype) +^4520 4326@+@=@0@0@0@0@4327#enumNameList +*6 (Iterator finalizer) +^4521 0@174#end_enumNameList_elements +*5 (Iterator) +^4522 4328@174#enumNameList_elements +*4 (Function) +^4523 4332$$@2@0@0#enumNameList_new +^4524 16423$$$@0#enumNameList_member +^4525 16419$$$@0#enumNameList_push +^4526 16417$@0@@1@p0$@0#enumNameList_addh +^4527 16427@6@5@1@0@0^@2@0@0#enumNameList_unparse +^4528 16435$$$@0#enumNameList_free +^4529 16413$^$@0#enumNameList_match +^4530 16411$^@2@0@0#enumNameList_single +^4531 16425$^@2@0@0#enumNameList_subtract +^4532 16421$^@2@0@0#enumNameList_copy +^4533 16433$$@2@0@0#enumNameList_undump +^4534 16431@6@5@1@0@0$@2@0@0#enumNameList_dump +^4535 16429@6@5@1@0@0$@2@0@0#enumNameList_unparseBrief +*1 (Constant) +^4536 5$#enumNameListBASESIZE +*0 (Datatype) +^4537 4327@+@=@0@0@0@0@4357#enumNameSList +*4 (Function) +^4538 16437$$$@0#enumNameSList_free +*2 (Enum member) +^4539 4372$#SS_UNKNOWN#SS_UNUSEABLE#SS_UNDEFINED#SS_MUNDEFINED#SS_ALLOCATED#SS_PDEFINED#SS_DEFINED#SS_PARTIAL#SS_DEAD#SS_HOFFA#SS_FIXED#SS_RELDEF#SS_UNDEFGLOB#SS_KILLED#SS_UNDEFKILLED#SS_SPECIAL#SS_LAST +*9 (Enum tag) +^4556 4372@4373#&!141 +*0 (Datatype) +^4557 4373@-@-@0@0@0@0@4374#sstate +*2 (Enum member) +^4558 4375$#SCNONE#SCEXTERN#SCSTATIC +*9 (Enum tag) +^4561 4375@4376#&!142 +*0 (Datatype) +^4562 4376@-@-@0@0@0@0@4377#storageClassCode +*2 (Enum member) +^4563 4378$#NS_ERROR#NS_UNKNOWN#NS_NOTNULL#NS_MNOTNULL#NS_RELNULL#NS_CONSTNULL#NS_POSNULL#NS_DEFNULL#NS_ABSNULL +*9 (Enum tag) +^4572 4378@4379#&!143 +*0 (Datatype) +^4573 4379@-@-@0@0@0@0@4380#nstate +*2 (Enum member) +^4574 4385$#AK_UNKNOWN#AK_ERROR#AK_ONLY#AK_IMPONLY#AK_KEEP#AK_KEPT#AK_TEMP#AK_IMPTEMP#AK_SHARED#AK_UNIQUE#AK_RETURNED#AK_FRESH#AK_STACK#AK_REFCOUNTED#AK_REFS#AK_KILLREF#AK_NEWREF#AK_OWNED#AK_DEPENDENT#AK_IMPDEPENDENT#AK_STATIC#AK_LOCAL +*9 (Enum tag) +^4596 4385@4386#&!144 +*0 (Datatype) +^4597 4386@-@-@0@0@0@0@4387#alkind +*2 (Enum member) +^4598 4388$#XO_UNKNOWN#XO_NORMAL#XO_EXPOSED#XO_OBSERVER +*9 (Enum tag) +^4602 4388@4389#&!145 +*0 (Datatype) +^4603 4389@-@-@0@0@0@0@4390#exkind +*4 (Function) +^4604 13074$^$@0#alkind_equal +^4605 13040@6@5@1@0@0^@19@3@0#sstate_unparse +^4606 13068$^$@0#alkind_fromQual +^4607 13050$^$@0#alkind_derive +^4608 13052@6@5@1@0@0^@19@3@0#alkind_unparse +^4609 13060@6@5@1@0@0^@19@3@0#alkind_capName +^4610 13032$^$@0#alkind_fromInt +^4611 13034$^$@0#nstate_fromInt +^4612 13046@6@5@1@0@0^@19@3@0#nstate_unparse +^4613 13048$^$@0#nstate_compare +^4614 13042$^$@0#nstate_possiblyNull +^4615 13044$^$@0#nstate_perhapsNull +^4616 13036$^$@0#sstate_fromInt +^4617 13038$^$@0#exkind_fromInt +^4618 13062$^$@0#exkind_fromQual +^4619 13054@6@5@1@0@0^@19@3@0#exkind_unparse +^4620 13056@6@5@1@0@0^@19@3@0#exkind_capName +^4621 13058@6@5@1@0@0^@19@3@0#exkind_unparseError +^4622 13064$^$@0#sstate_fromQual +^4623 13072$^$@0#alkind_compatible +^4624 13076$^$@0#alkind_fixImplicit +*2 (Enum member) +^4625 4483$#XK_ERROR#XK_UNKNOWN#XK_NEVERESCAPE#XK_GOTO#XK_MAYGOTO#XK_MAYEXIT#XK_MUSTEXIT#XK_TRUEEXIT#XK_FALSEEXIT#XK_MUSTRETURN#XK_MAYRETURN#XK_MAYRETURNEXIT#XK_MUSTRETURNEXIT +*9 (Enum tag) +^4638 4483@4484#&!146 +*0 (Datatype) +^4639 4484@-@-@0@0@0@0@4485#exitkind +*1 (Constant) +^4640 4485$#XK_LAST +*4 (Function) +^4641 13066$^$@0#exitkind_fromQual +^4642 13084$^$@0#exitkind_couldExit +^4643 13090$^$@0#exitkind_couldEscape +^4644 13092$^$@0#exitkind_fromInt +^4645 13078@6@5@1@0@0^@19@3@0#exitkind_unparse +^4646 13080$^$@0#exitkind_makeConditional +^4647 13082$^$@0#exitkind_combine +*0 (Datatype) +^4648 971@-@+@0@5@19@2@4516#ex_sRef +*6 (Iterator finalizer) +^4649 0@37#end_sRefSet_realElements +*5 (Iterator) +^4650 4519@37#sRefSet_realElements +*6 (Iterator finalizer) +^4651 0@37#end_sRefSet_elements +*5 (Iterator) +^4652 4520@37#sRefSet_elements +*6 (Iterator finalizer) +^4653 0@37#end_sRefSet_allElements +*5 (Iterator) +^4654 4521@37#sRefSet_allElements +*1 (Constant) +^4655 5$#sRefSetBASESIZE +^4656 994@i0@0@4#sRefSet_undefined +*4 (Function) +^4657 16949$^$@0#sRefSet_equal +^4658 16901$^$@0#sRefSet_hasRealElement +^4659 16913$^$@0#sRefSet_hasUnconstrained +^4660 16927@6@5@1@0@0^@3@0@0#sRefSet_unparsePlain +^4661 16915@6@5@1@0@0^@3@0@0#sRefSet_unparseUnconstrained +^4662 16917@6@5@1@0@0^@3@0@0#sRefSet_unparseUnconstrainedPlain +^4663 16933$$$@0#sRefSet_fixSrefs +^4664 16859$$$@0#sRefSet_delete +^4665 16921@6@5@1@0@0$@19@2@0#sRefSet_lookupMember +^4666 16905$^$@0#sRefSet_isSameMember +^4667 16907$^$@0#sRefSet_isSameNameMember +^4668 16883@6@5@1@0@0$@2@0@0#sRefSet_newCopy +^4669 16887@6@5@1@0@0$@2@0@0#sRefSet_newDeepCopy +^4670 16923$^$@0#sRefSet_size +^4671 16867@6@5@1@0@0$$@0#sRefSet_unionFree +^4672 4559@6@5@1@0@0^@2@0@0#sRefSet_new +^4673 16849@6@5@1@0@0$@2@0@0#sRefSet_single +^4674 16853@6@5@1@0@0$$@0#sRefSet_insert +^4675 16909$^$@0#sRefSet_member +^4676 16903$^$@0#sRefSet_containsSameObject +^4677 16925@6@5@1@0@0^@2@0@0#sRefSet_unparse +^4678 16935$@0@@1@p0$@0#sRefSet_free +^4679 16855$@0@@1@p0$@0#sRefSet_clear +^4680 16939@6@5@1@0@0^@2@0@0#sRefSet_addIndirection +^4681 16937@6@5@1@0@0^@2@0@0#sRefSet_removeIndirection +^4682 16869@6@5@1@0@0@0@@1@p0$@0#sRefSet_union +^4683 16879$@0@@1@p0$@0#sRefSet_levelPrune +^4684 16857$@0@@1@p0$@0#sRefSet_clearStatics +^4685 16877@6@5@1@0@0$$@0#sRefSet_levelUnion +^4686 16875@6@5@1@0@0$@2@0@0#sRefSet_intersect +^4687 16945@6@5@1@0@0$@2@0@0#sRefSet_fetchKnown +^4688 16943@6@5@1@0@0$@2@0@0#sRefSet_fetchUnknown +^4689 16941@6@5@1@0@0$@2@0@0#sRefSet_accessField +^4690 16873@6@5@1@0@0$@2@0@0#sRefSet_realNewUnion +^4691 16929@6@5@1@0@0^@2@0@0#sRefSet_unparseDebug +^4692 16931@6@5@1@0@0^@3@0@0#sRefSet_unparseFull +^4693 16947$^$@0#sRefSet_compare +^4694 16919$@0@@1@p1$@0#sRefSet_modifyMember +^4695 16951@6@5@1@0@0@0@@1@tp0@2@0@0#sRefSet_undump +^4696 16953@6@5@1@0@0^@2@0@0#sRefSet_dump +^4697 16865$@0@@1@p0$@0#sRefSet_deleteBase +^4698 16861@6@5@1@0@0^@19@2@0#sRefSet_choose +^4699 16863@6@5@1@0@0^@19@2@0#sRefSet_mergeIntoOne +^4700 16885@6@5@1@0@0^@2@0@0#sRefSet_levelCopy +^4701 16871@6@5@1@0@0@0@@1@p0$@0#sRefSet_unionExcept +^4702 16881@6@5@1@0@0@0@@1@p0$@0#sRefSet_copyInto +^4703 16911$^$@0#sRefSet_hasStatic +^4704 16955$@0@@1@p0$@0#sRefSet_markImmutable +*2 (Enum member) +^4705 4624$#KINVALID#KDATATYPE#KCONST#KENUMCONST#KVAR#KFCN#KITER#KENDITER#KSTRUCTTAG#KUNIONTAG#KENUMTAG#KELIPSMARKER +*9 (Enum tag) +^4717 4624@4625#&!147 +*0 (Datatype) +^4718 4625@+@-@0@0@0@0@4626#ekind +*1 (Constant) +^4719 4626$#KELAST +^4720 5$#KGLOBALMARKER +*4 (Function) +^4721 14016$^$@0#ekind_fromInt +*1 (Constant) +^4722 4626$#ekind_variable#ekind_function +*4 (Function) +^4724 14022@6@5@1@0@0^@19@3@0#ekind_capName +^4725 14018@6@5@1@0@0^@19@3@0#ekind_unparse +^4726 14020@6@5@1@0@0^@19@3@0#ekind_unparseLong +*0 (Datatype) +^4727 5@-@-@0@0@0@0@4649#usymId +^4728 4649@-@-@0@0@0@0@4650#typeId +*1 (Constant) +^4729 4649$#USYMIDINVALID +^4730 4650$#typeId_invalid +*7 (Struct tag) +^4731 4654@4655#@!148 +*0 (Datatype) +^4732 4656@+@=@0@5@0@0@4657#usymIdSet +*4 (Function) +^4733 4659@6@5@1@0@0$@3@0@0#usymIdSet_new +^4734 16833$^$@0#usymIdSet_member +^4735 16831@6@5@1@0@0$@3@0@0#usymIdSet_subtract +^4736 16835$$$@0#usymIdSet_free +^4737 16841@6@5@1@0@0$@2@0@0#usymIdSet_unparse +^4738 16837@6@5@1@0@0$@2@0@0#usymIdSet_dump +^4739 16839@6@5@1@0@0$@3@0@0#usymIdSet_undump +^4740 16819@6@5@1@0@0$@2@0@0#usymIdSet_single +^4741 16843$$$@0#usymIdSet_compare +*1 (Constant) +^4742 5$#usymIdSetBASESIZE +*4 (Function) +^4743 16829@6@5@1@0@0^@3@0@0#usymIdSet_newUnion +^4744 16825@6@5@1@0@0^@3@0@0#usymIdSet_add +^4745 16827@6@5@1@0@0$@2@0@0#usymIdSet_removeFresh +*1 (Constant) +^4746 4657@i0@0@4#usymIdSet_undefined +*6 (Iterator finalizer) +^4747 0@177#end_usymIdSet_elements +*5 (Iterator) +^4748 4686@177#usymIdSet_elements +*0 (Datatype) +^4749 971@-@+@0@5@18@0@4689#d_sRef +*6 (Iterator finalizer) +^4750 0@39#end_sRefList_elements +*5 (Iterator) +^4751 4692@39#sRefList_elements +*4 (Function) +^4752 16620$^$@0#sRefList_size +*1 (Constant) +^4753 997@i0@0@4#sRefList_undefined +*4 (Function) +^4754 4702@6@5@1@0@0$@2@0@0#sRefList_new +^4755 16610@6@5@1@0@0$@2@0@0#sRefList_single +^4756 16614@6@2@1@0@0@0@@1@p0$@0#sRefList_add +^4757 16618@6@5@1@0@0^@3@0@0#sRefList_unparse +^4758 16622$$$@0#sRefList_free +^4759 16616@6@5@1@0@0^@2@0@0#sRefList_copy +*1 (Constant) +^4760 5$#sRefListBASESIZE +*7 (Struct tag) +^4761 4714@4715#@!149 +*0 (Datatype) +^4762 4716@+@=@0@5@0@0@4717#uentryList +*6 (Iterator finalizer) +^4763 0@178#end_uentryList_elements +*5 (Iterator) +^4764 4718@178#uentryList_elements +*4 (Function) +^4765 16488$@0@@1@p0$@0#uentryList_clear +^4766 16540$^$@0#uentryList_size +*1 (Constant) +^4767 4717@@0@4#uentryList_missingParams +*4 (Function) +^4768 16542@6@0@1@0@53^$@0#uentryList_isMissingParams +*1 (Constant) +^4769 4717@i0@0@4#uentryList_undefined +*4 (Function) +^4770 4734@6@2@1@0@0$@2@0@0#uentryList_new +^4771 16490@6@5@1@0@0@0@@1@p0$@0#uentryList_add +^4772 16484@6@5@1@0@0^@2@0@0#uentryList_single +^4773 16512@6@5@1@0@0^@19@2@0#uentryList_getN +^4774 16494@6@5@1@0@0^@3@0@0#uentryList_unparseFull +^4775 16492@6@5@1@0@0^@3@0@0#uentryList_unparse +^4776 16500@6@5@1@0@0^@3@0@0#uentryList_unparseAbbrev +^4777 16496@6@5@1@0@0^@3@0@0#uentryList_unparseParams +^4778 16508$$$@0#uentryList_free +^4779 16510$^$@0#uentryList_isVoid +^4780 16506@6@5@1@0@0^@2@0@0#uentryList_copy +^4781 16514$@0@@1@p0$@0#uentryList_fixMissingNames +^4782 16520$^$@0#uentryList_compareStrict +^4783 16518$^$@0#uentryList_compareParams +^4784 16522$^$@0#uentryList_compareFields +^4785 16552$^$@0#uentryList_equivFields +^4786 16526@6@5@1@0@0^@3@0@0#uentryList_dumpParams +^4787 16532@6@5@1@0@0@0@@1@tp0@3@0@0#uentryList_undump +^4788 16544$^$@0#uentryList_hasReturned +^4789 16538$@0@@1@p0$@0#uentryList_advanceSafe +^4790 16536$^$@0#uentryList_isFinished +^4791 16534$@0@@1@p0$@0#uentryList_reset +^4792 16524@6@5@1@0@0^@19@2@0#uentryList_current +^4793 16504$^$@0#uentryList_lookupRealName +^4794 16546@6@5@1@0@0^@19@2@0#uentryList_lookupField +^4795 16548@6@5@1@0@0$@3@0@0#uentryList_mergeFields +^4796 16550$$$@0#uentryList_showFieldDifference +^4797 16530@6@5@1@0@0$@2@0@0#uentryList_undumpFields +^4798 16528@6@5@1@0@0$@2@0@0#uentryList_dumpFields +^4799 16516$$$@0#uentryList_fixImpParams +^4800 16554$$$@0#uentryList_matchFields +^4801 16498$$$@0#uentryList_matchParams +*1 (Constant) +^4802 5$#uentryListBASESIZE +*6 (Iterator finalizer) +^4803 0@117#end_globSet_allElements +*5 (Iterator) +^4804 4799@117#globSet_allElements +*4 (Function) +^4805 4805@6@5@1@0@0^@2@0@0#globSet_new +^4806 16686@6@5@1@0@0$@3@0@0#globSet_single +^4807 16684@6@5@1@0@0@0@@1@p0$@0#globSet_insert +^4808 16694$^$@0#globSet_member +^4809 16696@6@5@1@0@0^@19@2@0#globSet_lookup +^4810 16700$$$@0#globSet_free +^4811 16706@6@5@1@0@0^@2@0@0#globSet_unparse +^4812 16702@6@5@1@0@0^@2@0@0#globSet_dump +^4813 16704@6@5@1@0@0@0@@1@tp0@2@0@0#globSet_undump +^4814 16688$@0@@1@p0$@0#globSet_markImmutable +^4815 16690@6@5@1@0@0@0@@1@p0$@0#globSet_copyInto +^4816 16692@6@5@1@0@0^@2@0@0#globSet_newCopy +^4817 16698$^$@0#globSet_hasStatic +^4818 16708$$$@0#globSet_compare +^4819 16682$$$@0#globSet_clear +*1 (Constant) +^4820 1106@@0@4#globSet_undefined +*7 (Struct tag) +^4821 4839@4840#@!150 +*0 (Datatype) +^4822 4841@+@=@0@5@0@0@4842#ctypeList +*4 (Function) +^4823 4846@6@5@1@0@0$@2@0@0#ctypeList_new +^4824 16398$@0@@1@p0$@0#ctypeList_addh +^4825 16402@6@5@1@0@0@0@@1@p0@2@0@0#ctypeList_append +^4826 16400@6@5@1@0@0@0@@1@p0@3@0@0#ctypeList_add +^4827 16404@6@5@1@0@0^@2@0@0#ctypeList_unparse +^4828 16406$@0@@1@p0$@0#ctypeList_free +*1 (Constant) +^4829 4842@i0@0@4#ctypeList_undefined +*6 (Iterator finalizer) +^4830 0@179#end_ctypeList_elements +*5 (Iterator) +^4831 4861@179#ctypeList_elements +*1 (Constant) +^4832 5$#ctypeListBASESIZE +*0 (Datatype) +^4833 994@-@+@0@5@2@0@4862#o_sRefSet +^4834 971@-@+@0@5@19@2@4863#e_sRef +*1 (Constant) +^4835 1000@i0@0@4#aliasTable_undefined +*6 (Iterator finalizer) +^4836 0@41#end_aliasTable_elements +*5 (Iterator) +^4837 4875@41#aliasTable_elements +*4 (Function) +^4838 4877@6@5@1@0@0^@3@0@0#aliasTable_new +^4839 13887$@0@@1@p0,p1$@0#aliasTable_clearAliases +^4840 13897@6@5@1@0@0^@2@0@0#aliasTable_canAlias +^4841 13903@6@5@1@0@0^@3@0@0#aliasTable_copy +^4842 13913@6@5@1@0@0^@2@0@0#aliasTable_unparse +^4843 13917$$$@0#aliasTable_free +^4844 13881@6@5@1@0@0@0@@1@p0$@0#aliasTable_addMustAlias +^4845 13909@6@5@1@0@0@0@@1@p0$@0#aliasTable_levelUnion +^4846 13911@6@5@1@0@0@0@@1@s0@3@0@0#aliasTable_levelUnionNew +^4847 13919$@0@g2537@0@0@1@g2537$@0#aliasTable_checkGlobs +^4848 13895@6@5@1@0@0^@2@0@0#aliasTable_aliasedBy +^4849 13915$$$@0#aliasTable_fixSrefs +^4850 13907@6@5@1@0@0$$@0#aliasTable_levelUnionSeq +*1 (Constant) +^4851 5$#aliasTableBASESIZE +*4 (Function) +^4852 16271@6@5@1@0@0@0@@1@tp0,p1$@0#reader_readLine +^4853 16251$@0@@1@tp0$@0#reader_getInt +^4854 16253$@0@@1@tp0$@0#reader_loadChar +^4855 16255$@0@@1@tp0$@0#reader_getDouble +^4856 16266$@0@@1@tp0$@0#reader_doCheckChar +^4857 16264$@0@@1@tp0$@0#reader_optCheckChar +^4858 16258@6@5@1@0@0@0@@1@tp0@2@0@0#reader_getWord +^4859 16260@6@5@1@0@0@0@@1@tp0@3@0@0#reader_readUntil +^4860 16262@6@5@1@0@0@0@@1@tp0@3@0@0#reader_readUntilOne +^4861 16268$@0@@1@tp1$@0#reader_checkUngetc +*1 (Constant) +^4862 985@@0@4#GLOBAL_ENV +*2 (Enum member) +^4863 4928$#US_GLOBAL#US_NORMAL#US_TBRANCH#US_FBRANCH#US_CBRANCH#US_SWITCH +*9 (Enum tag) +^4869 4928@4929#&!151 +*0 (Datatype) +^4870 4929@-@-@0@0@0@0@4930#uskind +*7 (Struct tag) +^4871 4931@4932#@!152 +*0 (Datatype) +^4872 4933@-@+@0@0@0@0@4934#refentry +^4873 4934@-@+@0@0@2@0@4935#o_refentry +^4874 4936@-@+@0@0@0@0@4937#refTable +*4 (Function) +^4875 4940$@1@s1,g2537@0@0@1@g2537$@0#usymtab_printTypes +^4876 4942$@0@s1@1@s1$@0#usymtab_setMustBreak +^4877 4944$@1@s1@1@$@0#usymtab_inGlobalScope +^4878 4946$@1@s1@1@$@0#usymtab_inFunctionScope +^4879 4948$@1@s1@1@$@0#usymtab_inFileScope +^4880 14244$@1@s1,g2537@0@0@1@tg2537$@0#usymtab_checkFinalScope +^4881 14240$@1@s1,g2537@0@0@1@tg2537$@0#usymtab_allUsed +^4882 14234$@1@s1,g2537@0@0@1@tg2537$@0#usymtab_allDefined +^4883 14190$@1@s1@1@s1$@0#usymtab_prepareDump +^4884 14192$@1@s1@1@tp0$@0#usymtab_dump +^4885 14194$@1@s1@1@p0,s1,tp0$@0#usymtab_load +^4886 14260@6@5@1@0@0@1@s1@1@@18@2@0#usymtab_getRefQuiet +^4887 14402$@1@s1,g18@6@0@1@g18$@0#usymtab_printLocal +^4888 14254@6@5@1@0@0@1@s1@1@@18@2@0#usymtab_getParam +^4889 4968$@1@s1@1@s1$@0#usymtab_free +^4890 4970$@1@s1@1@$@0#usymtab_inDeepScope +^4891 14280@6@5@1@0@0@1@s1@1@@19@2@0#usymtab_lookupExpose +^4892 14284@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookupGlob +^4893 14282@6@5@1@0@0@1@s1@1@@19@2@0#usymtab_lookupExposeGlob +^4894 14164@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookupUnionTag +^4895 14162@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookupStructTag +^4896 14288@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookupEither +^4897 14290$@1@s1@1@$@0#usymtab_lookupType +^4898 14352$@1@s1@1@$@0#usymtab_isDefinitelyNull +^4899 14354$@1@s1@1@$@0#usymtab_isDefinitelyNullDeep +^4900 14144$@1@s1@1@s1,p0$@0#usymtab_supExposedTypeEntry +^4901 14138$@1@s1@1@s1,p0$@0#usymtab_supTypeEntry +^4902 14140@6@5@1@0@0@1@s1@1@s1@19@2@0#usymtab_supReturnTypeEntry +^4903 14278@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookupSafe +^4904 14172@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_getGlobalEntry +^4905 14302$@1@s1@1@$@0#usymtab_exists +^4906 14322$@1@s1@1@$@0#usymtab_existsVar +^4907 14306$@1@s1@1@$@0#usymtab_existsGlob +^4908 14312$@1@s1@1@$@0#usymtab_existsType +^4909 14308$@1@s1@1@$@0#usymtab_existsEither +^4910 14314$@1@s1@1@$@0#usymtab_existsTypeEither +^4911 14168$@1@s1@1@$@0#usymtab_getId +^4912 14160$@1@s1@1@$@0#usymtab_getTypeId +^4913 14128$@1@s1@1@s1,p0$@0#usymtab_supEntry +^4914 14340$@1@s1@1@s1,p0$@0#usymtab_replaceEntry +^4915 14148$@1@s1@1@s1,p0$@0#usymtab_supEntrySref +^4916 14150$@1@s1@1@s1,p0$@0#usymtab_supGlobalEntry +^4917 14122$@0@s1@1@s1,p0$@0#usymtab_addGlobalEntry +^4918 14132@6@5@1@0@0@1@s1@1@s1,p0@19@2@0#usymtab_supEntryReturn +^4919 14120$@1@s1@1@s1,p0$@0#usymtab_addEntry +^4920 14292$@1@s1@1@s0$@0#usymtab_lookupAbstractType +^4921 14342$@1@s1@1@$@0#usymtab_matchForwardStruct +^4922 14320$@1@s1@1@$@0#usymtab_existsEnumTag +^4923 14318$@1@s1@1@$@0#usymtab_existsUnionTag +^4924 14316$@1@s1@1@$@0#usymtab_existsStructTag +*6 (Iterator finalizer) +^4925 0@31#end_usymtab_entries +*5 (Iterator) +^4926 5055@31#usymtab_entries +*4 (Function) +^4927 5057$@1@s1,g2537@0@0@1@tg2537$@0#usymtab_displayAllUses +^4928 14388$@1@s1,g2537@0@0@1@tg2537$@0#usymtab_printOut +^4929 14392$@1@s1,g2537@0@0@1@tg2537$@0#usymtab_printAll +^4930 5063$@1@s1@1@s1$@0#usymtab_enterScope +^4931 14204$@1@s1@1@s1$@0#usymtab_enterFunctionScope +^4932 14246$@1@s1@1@s1$@0#usymtab_quietExitScope +^4933 14250$@1@s1@1@s1$@0#usymtab_exitScope +^4934 14344$@0@s1@1@s1$@0#usymtab_addGuards +^4935 14090$@0@s1@1@s1$@0#usymtab_setExitCode +^4936 5075$@1@s1@1@s1$@0#usymtab_exitFile +^4937 5077$@1@s1@1@s1$@0#usymtab_enterFile +^4938 14166@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookupEnumTag +^4939 14188$@1@s1@1@$@0#usymtab_convertId +^4940 14101$@1@s1@1@s1$@0#usymtab_initMod +^4941 5085$@0@s1@1@s1$@0#usymtab_initBool +^4942 5087$@1@s1@1@s1$@0#usymtab_initGlobalMarker +^4943 14236$@1@s1@1@s1$@0#usymtab_exportHeader +^4944 14294$@1@s1@1@$@0#usymtab_structFieldsType +^4945 14296$@1@s1@1@$@0#usymtab_unionFieldsType +^4946 14300$@1@s1@1@$@0#usymtab_enumEnumNameListType +^4947 14176@6@5@1@0@0@1@s1@1@@19@2@0#usymtab_getTypeEntrySafe +^4948 14218$@0@s1@1@s1$@0#usymtab_popOrBranch +^4949 14222$@0@s1@1@s1$@0#usymtab_popAndBranch +^4950 14210$@0@s1@1@s1$@0#usymtab_trueBranch +^4951 14232$@0@s1@1@s1$@0#usymtab_altBranch +^4952 14212$@0@s1@1@s1$@0#usymtab_popTrueBranch +^4953 14216$@0@s1@1@s1$@0#usymtab_popTrueExecBranch +^4954 14228$@0@s1@1@s1$@0#usymtab_popBranches +^4955 14348$@0@s1@1@s1$@0#usymtab_unguard +^4956 14350$@1@s1@1@$@0#usymtab_isGuarded +^4957 5117$@1@s1,g2537@0@0@1@tg2537$@0#usymtab_printGuards +^4958 14248$@1@s1@1@s1$@0#usymtab_quietPlainExitScope +^4959 5121$@1@s1,g18@6@0@1@tg18$@0#usymtab_printComplete +^4960 14310$@1@s1@1@$@0#usymtab_existsGlobEither +^4961 14178$@1@s1@1@$@0#usymtab_isBoolType +^4962 14180@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_getTypeEntryName +^4963 14174@6@5@1@0@0@1@s1@1@@19@2@0#usymtab_getTypeEntry +^4964 14142$@1@s1@1@s1,p0$@0#usymtab_supAbstractTypeEntry +^4965 14146$@1@s1@1@s1,p0$@0#usymtab_supForwardTypeEntry +^4966 14136@6@5@1@0@0@1@s1@1@s1,p0@19@2@0#usymtab_supGlobalEntryReturn +^4967 14134@6@5@1@0@0@1@s1@1@s1,p0@19@2@0#usymtab_supEntrySrefReturn +^4968 14252$@1@s1@1@$@23#uentry_directParamNo +^4969 14220$@0@s1@1@s1$@0#usymtab_newCase +^4970 14208$@0@s1@1@s1$@0#usymtab_switchBranch +^4971 5145@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_unparseStack +^4972 14224$@0@s1@1@s1$@0#usymtab_exitSwitch +^4973 14286@6@5@1@0@0@1@s1@1@@19@3@0#usymtab_lookupGlobSafe +^4974 14384@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_aliasedBy +^4975 14382@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_canAlias +^4976 14378$@0@s1@1@s1,p0$@0#usymtab_clearAlias +^4977 14374$@0@s1@1@s1$@0#usymtab_addMustAlias +^4978 14376$@0@s1@1@s1$@0#usymtab_addForceMustAlias +^4979 5161@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_unparseAliases +^4980 14152@6@5@1@0@0@1@s1@1@s1,p0@19@2@0#usymtab_supReturnFileEntry +^4981 14092$@1@s1@1@$@0#usymtab_isAltDefinitelyNullDeep +^4982 14304$@1@s1@1@$@0#usymtab_existsReal +^4983 14380@6@5@1@0@0@1@s1@1@@2@0@0#usymtab_allAliases +^4984 14238$@1@s1@1@s1$@0#usymtab_exportLocal +^4985 5173$@0@s1@1@s1$@0#usymtab_popCaseBranch +*1 (Constant) +^4986 5$#globScope#fileScope#paramsScope#functionScope +^4990 985@i0@0@4#usymtab_undefined +*4 (Function) +^4991 14408$@1@s1,g2537@0@0@1@tg2537,p0$@0#usymtab_checkDistinctName +^4992 14410@6@5@1@0@0@1@s1@1@@19@2@0#usymtab_lookupGlobalMarker +^4993 14032$@1@s1@1@$@0#usymtab_getCurrentDepth +*2 (Enum member) +^4994 5182$#CT_UNKNOWN#CT_PRIM#CT_USER#CT_ABST#CT_ENUM#CT_PTR#CT_ARRAY#CT_FIXEDARRAY#CT_FCN#CT_STRUCT#CT_UNION#CT_ENUMLIST#CT_BOOL#CT_CONJ#CT_EXPFCN +*9 (Enum tag) +^5009 5182@5183#&!153 +*0 (Datatype) +^5010 5183@-@-@0@0@0@0@5184#ctuid +*1 (Constant) +^5011 5$#CTK_ELIPS#CTK_MISSINGPARAMS#CT_FIRST#CTK_PREDEFINED#CTK_PREDEFINED2#LAST_PREDEFINED#CTP_VOID#CTP_CHAR#CTK_BASESIZE +*2 (Enum member) +^5020 5185$#CTK_UNKNOWN#CTK_INVALID#CTK_DNE#CTK_PLAIN#CTK_PTR#CTK_ARRAY#CTK_COMPLEX +*9 (Enum tag) +^5027 5185@5186#&!154 +*0 (Datatype) +^5028 5186@-@-@0@0@0@0@5187#ctkind +*1 (Constant) +^5029 1119$#ctype_undefined#ctype_dne#ctype_unknown#ctype_void#ctype_char#ctype_uchar#ctype_double#ctype_ldouble#ctype_float#ctype_int#ctype_uint#ctype_sint#ctype_lint#ctype_usint#ctype_ulint#ctype_llint#ctype_ullint#ctype_bool#ctype_string#ctype_anyintegral#ctype_unsignedintegral#ctype_signedintegral#ctype_voidPointer +*4 (Function) +^5052 12283$$$@0#ctype_forceRealType +^5053 12431$$$@0#ctype_forceMatch +^5054 12421$$$@0#ctype_genMatch +^5055 12281$^$@0#ctype_isSimple +^5056 12291$^$@0#ctype_isAbstract +^5057 12439$^$@0#ctype_isArray +^5058 12443$^$@0#ctype_isFixedArray +^5059 12441$^$@0#ctype_isIncompleteArray +^5060 12445$^$@0#ctype_isArrayPtr +^5061 12351$^$@0#ctype_isBool +^5062 12349$^$@0#ctype_isManifestBool +^5063 12343$^$@0#ctype_isChar +^5064 12345$^$@0#ctype_isUnsignedChar +^5065 12347$^$@0#ctype_isSignedChar +^5066 12341$^$@0#ctype_isString +^5067 12405$^$@0#ctype_isConj +^5068 12353$^$@0#ctype_isDirectBool +^5069 12383$^$@0#ctype_isDirectInt +^5070 12471$^$@0#ctype_isEnum +^5071 12327$^$@0#ctype_isExpFcn +^5072 12467$^$@0#ctype_isFirstVoid +^5073 12395$^$@0#ctype_isForceRealBool +^5074 12393$^$@0#ctype_isForceRealInt +^5075 12391$^$@0#ctype_isForceRealNumeric +^5076 12325$^$@0#ctype_isFunction +^5077 12331$^$@0#ctype_isArbitraryIntegral +^5078 12333$^$@0#ctype_isUnsignedIntegral +^5079 12335$^$@0#ctype_isSignedIntegral +^5080 12337$^$@0#ctype_isInt +^5081 12339$^$@0#ctype_isRegularInt +^5082 12497$^$@0#ctype_isMutable +^5083 12293$^$@0#ctype_isImmutableAbstract +^5084 12363$^$@0#ctype_isNumeric +^5085 12437$^$@0#ctype_isPointer +^5086 12355$^$@0#ctype_isReal +^5087 12357$^$@0#ctype_isFloat +^5088 12359$^$@0#ctype_isDouble +^5089 12361$^$@0#ctype_isSigned +^5090 12511$^$@0#ctype_isUnsigned +^5091 12379$^$@0#ctype_isRealAP +^5092 12295$^$@0#ctype_isRealAbstract +^5093 12377$^$@0#ctype_isRealArray +^5094 12371$^$@0#ctype_isRealBool +^5095 12381$^$@0#ctype_isRealFunction +^5096 12367$^$@0#ctype_isRealInt +^5097 12365$^$@0#ctype_isRealNumeric +^5098 12373$^$@0#ctype_isRealPointer +^5099 12375$^$@0#ctype_isRealSU +^5100 12369$^$@0#ctype_isRealVoid +^5101 12475$^$@0#ctype_isStruct +^5102 12481$^$@0#ctype_isStructorUnion +^5103 12287$^$@0#ctype_isUA +^5104 12477$^$@0#ctype_isUnion +^5105 12329$^$@0#ctype_isVoid +^5106 12435$^$@0#ctype_isVoidPointer +^5107 12501$^$@0#ctype_isVisiblySharable +^5108 12429$^$@0#ctype_match +^5109 12433$^$@0#ctype_matchArg +^5110 12423$^$@0#ctype_sameName +^5111 12459@6@5@1@0@0^@2@0@0#ctype_dump +^5112 12473@6@5@1@0@0^@19@3@0#ctype_enumTag +^5113 12451@6@5@1@0@0^@19@3@0#ctype_unparse +^5114 12455@6@5@1@0@0^@19@3@0#ctype_unparseDeep +^5115 12453@6@5@1@0@0^@19@3@0#ctype_unparseSafe +^5116 12257$^$@0#ctkind_fromInt +^5117 12427$^$@0#ctype_matchDef +^5118 12457$$$@0#ctype_undump +^5119 12463$$$@0#ctype_adjustPointers +^5120 12303$^$@0#ctype_baseArrayPtr +^5121 12503$$$@0#ctype_combine +^5122 12275$^$@0#ctype_createAbstract +^5123 12469$$$@0#ctype_createEnum +^5124 12491$^$@0#ctype_createForwardStruct +^5125 12493$^$@0#ctype_createForwardUnion +^5126 12413$$$@0#ctype_createStruct +^5127 12417$$$@0#ctype_createUnion +^5128 12485$$$@0#ctype_createUnnamedStruct +^5129 12487$$$@0#ctype_createUnnamedUnion +^5130 12273$$$@0#ctype_createUser +^5131 12489$^$@0#ctype_isUnnamedSU +^5132 12289$^$@0#ctype_isUser +^5133 12321$$$@0#ctype_expectFunction +^5134 12483$$$@0#ctype_fixArrayPtr +^5135 12461$^$@0#ctype_getBaseType +^5136 12301$$$@0#ctype_makeArray +^5137 12299$$$@0#ctype_makeFixedArray +^5138 12403$$$@0#ctype_makeConj +^5139 12315$$$@0#ctype_makeParamsFunction +^5140 12319$^$@0#ctype_makeFunction +^5141 12317$^$@0#ctype_makeNFParamsFunction +^5142 12297$$$@0#ctype_makePointer +^5143 12323$$$@0#ctype_makeRawFunction +^5144 12309$^$@0#ctype_newBase +^5145 12279$^$@0#ctype_realType +^5146 12285$^$@0#ctype_realishType +^5147 12495$^$@0#ctype_removePointers +^5148 12505$^$@0#ctype_resolve +^5149 12479$^$@0#ctype_resolveNumerics +^5150 12305$^$@0#ctype_getReturnType +^5151 12499$^$@0#ctype_isRefCounted +^5152 12307@6@5@1@0@0^@19@3@0#ctype_argsFunction +^5153 12465$^@19@3@0#ctype_elist +^5154 12415@6@5@1@0@0^@19@3@0#ctype_getFields +^5155 12313$^$@0#ctype_compare +^5156 12277$$$@0#ctype_count +^5157 12399$$$@0#ctype_makeExplicitConj +^5158 12447$$$@0#ctype_typeId +^5159 12507$$$@0#ctype_fromQual +^5160 12509$$$@0#ctype_isAnyFloat +^5161 12519$$$@0#ctype_isStackAllocated +*1 (Constant) +^5162 1119$#ctype_missingParamsMarker +*4 (Function) +^5163 12425$$$@0#ctype_almostEqual +*1 (Constant) +^5164 1119$#ctype_elipsMarker +*4 (Function) +^5165 12449@6@5@1@0@0$@3@0@0#ctype_unparseDeclaration +^5166 12311$^$@0#ctype_sameAltTypes +^5167 12265$$$@0#ctype_dumpTable +^5168 12263$$$@0#ctype_loadTable +^5169 5445$$$@0#ctype_destroyMod +^5170 5447$$$@0#ctype_initTable +^5171 5449@6@5@1@0@0$@2@0@0#ctype_unparseTable +^5172 5451$$$@0#ctype_printTable +^5173 12525$^$@0#ctype_widest +^5174 12533$$$@0#ctype_getArraySize +^5175 12271$^$@0#ctype_isUserBool +*7 (Struct tag) +^5176 5458@5459#@!155 +*0 (Datatype) +^5177 5460@+@=@0@5@0@0@5461#qtype +*1 (Constant) +^5178 5461@i0@0@4#qtype_undefined +*4 (Function) +^5179 11738@6@5@1@0@0$$@0#qtype_addQualList +^5180 11742@6@5@1@0@0$$@0#qtype_mergeImplicitAlt +^5181 11758@6@5@1@0@0$@2@0@0#qtype_copy +^5182 11730@6@2@1@0@0^@3@0@0#qtype_create +^5183 5481@6@5@1@0@0^@2@0@0#qtype_unknown +^5184 11736@6@5@1@0@0$$@0#qtype_addQual +^5185 11746@6@5@1@0@0$$@0#qtype_combine +^5186 11744@6@5@1@0@0$$@0#qtype_mergeAlt +^5187 11748@6@5@1@0@0$$@0#qtype_resolve +^5188 11756$$$@0#qtype_adjustPointers +^5189 11750@6@5@1@0@0^@2@0@0#qtype_unparse +^5190 11752@6@5@1@0@0$$@0#qtype_newBase +^5191 11754@6@5@1@0@0$$@0#qtype_newQbase +^5192 11732$$$@0#qtype_free +*1 (Constant) +^5193 982@i0@0@4#idDecl_undefined +*4 (Function) +^5194 12747$$$@0#idDecl_free +^5195 12745@6@5@1@0@0$@2@0@0#idDecl_create +^5196 12743@6@5@1@0@0$@2@0@0#idDecl_createClauses +^5197 12749@6@5@1@0@0$@2@0@0#idDecl_unparse +^5198 12751@6@5@1@0@0$@2@0@0#idDecl_unparseC +^5199 12755@6@5@1@0@0$@19@2@0#idDecl_getTyp +^5200 12765$$$@0#idDecl_setTyp +^5201 12773@6@5@1@0@0$$@0#idDecl_expectFunction +^5202 12767@6@5@1@0@0$$@0#idDecl_replaceCtype +^5203 12769@6@5@1@0@0$$@0#idDecl_fixBase +^5204 12771@6@5@1@0@0$$@0#idDecl_fixParamBase +^5205 12775$@0@@1@p0$@0#idDecl_addClauses +^5206 12757$^$@0#idDecl_getCtype +^5207 12759@6@5@1@0@0^@19@2@0#idDecl_getQuals +^5208 12761@6@5@1@0@0^@19@2@0#idDecl_getClauses +^5209 12753@6@5@1@0@0^@19@3@0#idDecl_observeId +^5210 12763$$$@0#idDecl_addQual +*2 (Enum member) +^5211 5539$#MVLONG#MVCHAR#MVDOUBLE#MVSTRING +*9 (Enum tag) +^5215 5539@5540#&!156 +*0 (Datatype) +^5216 5540@-@-@0@0@0@0@5541#mvkind +*8 (Union tag) +^5217 5542@5543#$!157 +*7 (Struct tag) +^5218 5544@5545#@!158 +*0 (Datatype) +^5219 5546@-@+@0@5@0@0@5547#multiVal +*1 (Constant) +^5220 5547@i0@0@6#multiVal_undefined +*4 (Function) +^5221 14434@6@5@1@0@0^@18@3@0#multiVal_forceString +^5222 14432$^$@0#multiVal_forceDouble +^5223 14430$^$@0#multiVal_forceChar +^5224 14428$^$@0#multiVal_forceInt +^5225 14422@6@5@1@0@0^@2@0@0#multiVal_makeString +^5226 14420@6@5@1@0@0^@2@0@0#multiVal_makeDouble +^5227 14418@6@5@1@0@0^@2@0@0#multiVal_makeChar +^5228 14416@6@5@1@0@0^@2@0@0#multiVal_makeInt +^5229 5571@6@5@1@0@0^@2@0@0#multiVal_unknown +^5230 14424@6@5@1@0@0^@2@0@0#multiVal_copy +^5231 14452$$$@0#multiVal_free +^5232 14426@6@5@1@0@0^@3@0@0#multiVal_invert +^5233 14436@6@0@1@0@54^$@0#multiVal_isInt +^5234 14438@6@0@1@0@54^$@0#multiVal_isChar +^5235 14440@6@0@1@0@54^$@0#multiVal_isDouble +^5236 14442@6@0@1@0@54^$@0#multiVal_isString +^5237 14448@6@5@1@0@0@0@@1@tp0@2@0@0#multiVal_undump +^5238 14446@6@5@1@0@0^@2@0@0#multiVal_dump +^5239 14444@6@5@1@0@0^@2@0@0#multiVal_unparse +^5240 14450$^$@0#multiVal_compare +*2 (Enum member) +^5241 5596$#SP_USES#SP_DEFINES#SP_ALLOCATES#SP_RELEASES#SP_SETS#SP_QUAL#SP_GLOBAL +*9 (Enum tag) +^5248 5596@5597#&!159 +*0 (Datatype) +^5249 5597@-@-@0@0@0@0@5598#stateClauseKind +*2 (Enum member) +^5250 5599$#TK_BEFORE#TK_AFTER#TK_BOTH +*9 (Enum tag) +^5253 5599@5600#&!160 +*0 (Datatype) +^5254 5600@-@-@0@0@0@0@5601#stateConstraint +^5255 1042@-@+@0@0@2@0@5603#o_stateClause +*4 (Function) +^5256 11812@6@5@1@0@0^@3@0@0#stateClause_unparse +^5257 11782@6@5@1@0@0^@3@0@0#stateClause_getEffectFunction +^5258 11840@6@5@1@0@0^@3@0@0#stateClause_getEnsuresFunction +^5259 11842@6@5@1@0@0^@3@0@0#stateClause_getRequiresBodyFunction +^5260 11838$^$@0#stateClause_getStateParameter +^5261 11784@6@5@1@0@0^@3@0@0#stateClause_getReturnEffectFunction +^5262 11780@6@5@1@0@0^@3@0@0#stateClause_getEntryFunction +^5263 11766$^$@0#stateClause_isBefore +^5264 11764$^$@0#stateClause_isBeforeOnly +^5265 11768$^$@0#stateClause_isAfter +^5266 11770$^$@0#stateClause_isEnsures +^5267 11804$^$@0#stateClause_sameKind +^5268 11788$^$@0#stateClause_preErrorCode +^5269 11792@6@5@1@0@0^@19@3@0#stateClause_preErrorString +^5270 11794$^$@0#stateClause_postErrorCode +^5271 11796@6@5@1@0@0^@19@3@0#stateClause_postErrorString +^5272 11774$^@3@0@0#stateClause_getPreTestFunction +^5273 11776$^@3@0@0#stateClause_getPostTestFunction +^5274 11778$^@3@0@0#stateClause_getPostTestShower +^5275 11762$^@3@0@0#stateClause_create +^5276 11822$^@3@0@0#stateClause_createPlain +^5277 11814$^@3@0@0#stateClause_createDefines +^5278 11816$^@3@0@0#stateClause_createUses +^5279 11824$^@3@0@0#stateClause_createAllocates +^5280 11820$^@3@0@0#stateClause_createReleases +^5281 11818$^@3@0@0#stateClause_createSets +^5282 11844@6@5@1@0@0^@19@3@0#stateClause_loc +^5283 11772$^$@0#stateClause_isMemoryAllocation +^5284 11806$$$@0#stateClause_free +^5285 11798@6@5@1@0@0^@3@0@0#stateClause_dump +^5286 11800$@0@@1@tp0@3@0@0#stateClause_undump +^5287 11802$^@3@0@0#stateClause_copy +^5288 11826$^$@0#stateClause_matchKind +^5289 11828$^$@0#stateClause_hasEnsures +^5290 11830$^$@0#stateClause_hasRequires +^5291 11832$^$@0#stateClause_setsMetaState +^5292 11834$^$@0#stateClause_getMetaQual +^5293 11867$@0@g2537@0@0@1@p0,g2537$@0#stateClauseList_checkAll +*1 (Constant) +^5294 1045@i0@0@4#stateClauseList_undefined +*4 (Function) +^5295 11810@6@5@1@0@0^@3@0@73#stateClause_unparseKind +^5296 11851@6@5@1@0@0@0@@1@p0$@0#stateClauseList_add +^5297 11853@6@5@1@0@0^@3@0@0#stateClauseList_unparse +^5298 11857$$$@0#stateClauseList_free +^5299 11855@6@5@1@0@0^@2@0@0#stateClauseList_copy +^5300 11859@6@5@1@0@0^@3@0@0#stateClauseList_dump +^5301 11861@6@5@1@0@0@0@@1@tp0@3@0@0#stateClauseList_undump +^5302 11863$^$@0#stateClauseList_compare +*1 (Constant) +^5303 5$#stateClauseListBASESIZE +*4 (Function) +^5304 11869$@0@g2537@0@0@1@g2537$@0#stateClauseList_checkEqual +*6 (Iterator finalizer) +^5305 0@75#end_stateClauseList_elements +*5 (Iterator) +^5306 5710@75#stateClauseList_elements +*6 (Iterator finalizer) +^5307 0@75#end_stateClauseList_preElements +*5 (Iterator) +^5308 5711@75#stateClauseList_preElements +*6 (Iterator finalizer) +^5309 0@75#end_stateClauseList_postElements +*5 (Iterator) +^5310 5712@75#stateClauseList_postElements +*7 (Struct tag) +^5311 5713@5714#@!161 +*0 (Datatype) +^5312 5715@-@+@0@0@0@0@5716#ucinfo +*2 (Enum member) +^5313 5717$#VKSPEC#VKNORMAL#VKPARAM#VKYIELDPARAM#VKREFYIELDPARAM#VKRETPARAM#VKREFPARAM#VKSEFPARAM#VKREFSEFPARAM#VKSEFRETPARAM#VKREFSEFRETPARAM#VKEXPMACRO +*9 (Enum tag) +^5325 5717@5718#&!162 +*0 (Datatype) +^5326 5718@-@-@0@0@0@0@5719#vkind +*1 (Constant) +^5327 5719$#VKFIRST#VKLAST +*2 (Enum member) +^5329 5720$#CH_UNKNOWN#CH_UNCHECKED#CH_CHECKED#CH_CHECKMOD#CH_CHECKEDSTRICT +*9 (Enum tag) +^5334 5720@5721#&!163 +*0 (Datatype) +^5335 5721@-@-@0@0@0@0@5722#chkind +*2 (Enum member) +^5336 5723$#BB_POSSIBLYNULLTERMINATED#BB_NULLTERMINATED#BB_NOTNULLTERMINATED +*9 (Enum tag) +^5339 5723@5724#&!164 +*0 (Datatype) +^5340 5724@-@-@0@0@0@0@5725#bbufstate +*7 (Struct tag) +^5341 5726@5727#@s_bbufinfo +*0 (Datatype) +^5342 5728@-@+@0@0@0@0@5729#bbufinfo +*7 (Struct tag) +^5343 5730@5731#@!165 +*0 (Datatype) +^5344 5732@-@+@0@0@0@0@5733#uvinfo +*7 (Struct tag) +^5345 5734@5735#@!166 +*0 (Datatype) +^5346 5736@-@+@0@0@0@0@5737#udinfo +*2 (Enum member) +^5347 5738$#SPC_NONE#SPC_PRINTFLIKE#SPC_SCANFLIKE#SPC_MESSAGELIKE#SPC_LAST +*9 (Enum tag) +^5352 5738@5739#&!167 +*0 (Datatype) +^5353 5739@-@-@0@0@0@0@5740#specCode +*7 (Struct tag) +^5354 5741@5742#@!168 +*0 (Datatype) +^5355 5743@-@+@0@0@0@0@5744#ufinfo +*7 (Struct tag) +^5356 5745@5746#@!169 +*0 (Datatype) +^5357 5747@-@+@0@0@0@0@5748#uiinfo +*7 (Struct tag) +^5358 5749@5750#@!170 +*0 (Datatype) +^5359 5751@-@+@0@0@0@0@5752#ueinfo +*8 (Union tag) +^5360 5753@5754#$!171 +*0 (Datatype) +^5361 5755@-@+@0@0@0@0@5756#uinfo +*1 (Constant) +^5362 974@i0@0@4#uentry_undefined +*4 (Function) +^5363 11275$$$@0#uentry_compareStrict +*1 (Constant) +^5364 5$#PARAMUNKNOWN +*4 (Function) +^5365 11349$^$@0#uentry_isMaybeAbstract +^5366 11343$@0@@1@p0$@0#uentry_setAbstract +^5367 11345$@0@@1@p0$@0#uentry_setConcrete +^5368 11629$@0@@1@p0$@0#uentry_setHasNameError +^5369 11223$^$@0#uentry_isForward +^5370 11139@6@0@1@0@54^$@0#uentry_isFileStatic +^5371 11141@6@0@1@0@54^$@0#uentry_isExported +^5372 11163$^$@0#uentry_isSpecialFunction +^5373 11153$^$@0#uentry_isMessageLike +^5374 11151$^$@0#uentry_isScanfLike +^5375 11149$^$@0#uentry_isPrintfLike +^5376 11161$@0@@1@p0$@0#uentry_setMessageLike +^5377 11159$@0@@1@p0$@0#uentry_setScanfLike +^5378 11157$@0@@1@p0$@0#uentry_setPrintfLike +^5379 11631$@0@g2537@0@0@1@g2537,p0$@0#uentry_checkName +^5380 11211$@0@@1@p0$@0#uentry_addAccessType +^5381 11521$@0@g2537@0@0@1@g2537$@0#uentry_showWhereAny +^5382 11069$$$@0#uentry_checkParams +^5383 11597$$$@0#uentry_mergeUses +^5384 11087$$$@0#uentry_setExtern +^5385 11615$$$@0#uentry_setUsed +^5386 11177$$$@0#uentry_setDefState +^5387 11569$$$@0#uentry_mergeConstantValue +^5388 11425@6@5@1@0@0^@19@3@0#uentry_whereEarliest +^5389 11403@6@5@1@0@0^@19@3@0#uentry_rawName +^5390 11423@6@5@1@0@0^@19@3@0#uentry_whereDeclared +^5391 11269$^$@0#uentry_equiv +^5392 11389@6@0@1@0@54^$@0#uentry_hasName +^5393 11391@6@0@1@0@54^$@0#uentry_hasRealName +^5394 11347@6@0@1@0@54^$@0#uentry_isAbstractDatatype +^5395 11263@6@0@1@0@54^$@0@S:2.0.0.fukind.tp0$#uentry_isAnyTag +^5396 11341@6@0@1@0@54^$@0#uentry_isDatatype +^5397 11443@6@0@1@0@54^$@0#uentry_isCodeDefined +^5398 11445@6@0@1@0@54^$@0@S:2.0.0.fwhereDeclared.tp0$#uentry_isDeclared +^5399 11625@6@5@1@0@0^@19@3@0#uentry_ekindName +^5400 11627@6@5@1@0@0^@19@3@0#uentry_ekindNameLC +^5401 11523$$$@0#uentry_showWhereDefined +^5402 11385@6@0@1@0@54^$@0#uentry_isEndIter +^5403 11261@6@0@1@0@54^$@0@S:2.0.0.fukind.tp0$#uentry_isEnumTag +^5404 11339@6@0@1@0@54^$@0#uentry_isFakeTag +^5405 11383@6@0@1@0@54^$@0#uentry_isIter +^5406 11351@6@0@1@0@54^$@0#uentry_isMutableDatatype +^5407 11355@6@0@1@0@54^$@0#uentry_isParam +^5408 11357@6@0@1@0@54^$@0#uentry_isExpandedMacro +^5409 11359@6@0@1@0@54^$@0#uentry_isSefParam +^5410 11363@6@0@1@0@54^$@0@S:2.0.0.fukind.tp0,finfo.tp0$#uentry_isAnyParam +^5411 11387@6@0@1@0@54^$@0#uentry_isRealFunction +^5412 11333@6@0@1@0@54^$@0#uentry_isSpecified +^5413 11257@6@0@1@0@54^$@0@S:2.0.0.fukind.tp0$#uentry_isStructTag +^5414 11259@6@0@1@0@54^$@0@S:2.0.0.fukind.tp0$#uentry_isUnionTag +^5415 11337@6@0@1@0@54^$@0@S:2.0.0.fukind.tp0$#uentry_isVar +^5416 11331@6@0@1@0@54^$@0@S:2.0.0.fukind.tp0$#uentry_isVariable +^5417 11315@6@5@1@0@0$@3@0@0#uentry_dump +^5418 11317@6@5@1@0@0$@3@0@0#uentry_dumpParam +^5419 11409@6@5@1@0@0^@19@3@0#uentry_observeRealName +^5420 11407@6@5@1@0@0^@3@0@0@S:2.0.0.fukind.tp0,finfo.tp0,funame.tp0$#uentry_getName +^5421 11323@6@5@1@0@0^@3@0@0#uentry_unparse +^5422 11321@6@5@1@0@0^@3@0@0#uentry_unparseAbbrev +^5423 11325@6@5@1@0@0^@3@0@0#uentry_unparseFull +^5424 11121$@0@@1@p0$@0#uentry_setMutable +^5425 11463$^$@0#uentry_getAbstractType +^5426 11465$@1@s1@1@$@0#uentry_getRealType +^5427 11413$^$@0#uentry_getType +^5428 11397$^$@0#uentry_getKind +^5429 11421@6@5@1@0@0^@19@3@0#uentry_whereDefined +^5430 11419@6@5@1@0@0^@19@3@0#uentry_whereSpecified +^5431 11277$$$@0#uentry_compare +^5432 11447@6@5@1@0@0^@19@2@0#uentry_getSref +^5433 11395@6@5@1@0@0^@19@3@0#uentry_getMods +^5434 11329$^$@0#uentry_accessType +^5435 11417@6@5@1@0@0^@19@3@0#uentry_whereEither +^5436 11219@6@2@1@0@0^@3@0@0#uentry_makeExpandedMacro +^5437 11565$@0@g2537@0@0@1@g2537$@0#uentry_checkMatchParam +^5438 11299@6@5@1@0@0^@19@3@0#uentry_getStateClauseList +^5439 11517$@0@g2537@0@0@1@g2537$@0#uentry_showWhereLastExtra +^5440 11083$$$@0#uentry_setRefCounted +^5441 11065@6@2@1@0@0$@2@0@0#uentry_makeUnnamedVariable +^5442 11227@6@2@1@0@0$@3@0@0#uentry_makeUnspecFunction +^5443 11215@6@2@1@0@0$@3@0@0#uentry_makePrivFunction2 +^5444 11061@6@2@1@0@0^@3@0@0#uentry_makeSpecEnumConstant +^5445 11251@6@2@1@0@0^@3@0@0#uentry_makeEnumTag +^5446 11225@6@2@1@0@0^@3@0@0#uentry_makeTypeListFunction +^5447 11217@6@2@1@0@0$@3@0@0#uentry_makeSpecFunction +^5448 11057@6@2@1@0@0^@3@0@0#uentry_makeEnumConstant +^5449 11059@6@2@1@0@0^@3@0@0#uentry_makeEnumInitializedConstant +^5450 11173@6@2@1@0@0^@2@0@0#uentry_makeConstant +^5451 11171@6@2@1@0@0^@2@0@0#uentry_makeConstantAux +^5452 11231@6@2@1@0@0^@2@0@0#uentry_makeDatatype +^5453 11229@6@2@1@0@0^@2@0@0#uentry_makeDatatypeAux +^5454 11267@6@2@1@0@0^@3@0@0#uentry_makeElipsisMarker +^5455 11207$@0@@1@p0$@0#uentry_makeVarFunction +^5456 11241@6@2@1@0@0^@3@0@0#uentry_makeEndIter +^5457 11255@6@2@1@0@0^@3@0@0#uentry_makeEnumTagLoc +^5458 11221@6@2@1@0@0^@3@0@0#uentry_makeForwardFunction +^5459 11213@6@2@1@0@0$@3@0@0#uentry_makeFunction +^5460 11237@6@2@1@0@0^@3@0@0#uentry_makeIter +^5461 11165@6@2@1@0@0^@3@0@0#uentry_makeParam +^5462 11247@6@2@1@0@0$@3@0@0#uentry_makeStructTag +^5463 11245@6@2@1@0@0$@3@0@0#uentry_makeStructTagLoc +^5464 11249@6@2@1@0@0$@3@0@0#uentry_makeUnionTag +^5465 11253@6@2@1@0@0$@3@0@0#uentry_makeUnionTagLoc +^5466 11205@6@2@1@0@0$@3@0@0#uentry_makeVariable +^5467 11063@6@2@1@0@0$@2@0@0#uentry_makeVariableLoc +^5468 11169@6@2@1@0@0$@2@0@0#uentry_makeVariableParam +^5469 11093@6@2@1@0@0$@2@0@0#uentry_makeVariableSrefParam +^5470 11077@6@2@1@0@0$@2@0@0#uentry_makeIdFunction +^5471 11067@6@2@1@0@0$@2@0@0#uentry_makeIdDatatype +^5472 11233@6@2@1@0@0$@2@0@0#uentry_makeBoolDatatype +^5473 11585$$$@0#uentry_mergeDefinition +^5474 11579$$$@0#uentry_mergeEntries +^5475 11469@6@5@1@0@0$@3@0@0#uentry_nameCopy +^5476 11313@6@5@1@0@0$@3@0@0#uentry_undump +^5477 11401@6@5@1@0@0^@19@3@0#uentry_getParams +^5478 11455$@0@@1@p0$@0#uentry_resetParams +^5479 11393@6@5@1@0@0^@19@3@0#uentry_getGlobs +^5480 11375$$$@0#uentry_nullPred +^5481 11507$$$@0#uentry_free +^5482 11471$$$@0#uentry_setDatatype +^5483 11441$@0@@1@p0$@0@S:2.0.0.fwhereDefined.tp0,fukind.tp0,funame.tp0,finfo.tp0$#uentry_setDefined +^5484 11583$$$@0#uentry_checkDecl +^5485 11581$$$@0#uentry_clearDecl +^5486 11437$$$@0#uentry_setDeclared +^5487 11435$$$@0#uentry_setDeclaredOnly +^5488 11433$$$@0#uentry_setDeclaredForceOnly +^5489 11427$$$@0#uentry_setFunctionDefined +^5490 11451$$$@0#uentry_setName +^5491 11459$$$@0#uentry_setParam +^5492 11461$$$@0#uentry_setSref +^5493 11085$$$@0#uentry_setStatic +^5494 11103$@0@@1@p0,p1$@0#uentry_setModifies +^5495 11107$^$@0#uentry_hasWarning +^5496 11109$@0@@1@p0$@0#uentry_addWarning +^5497 11099$@0@@1@p0$@0#uentry_setStateClauseList +^5498 11453$$$@0#uentry_setType +^5499 11547@6@5@1@0@0$@19@3@0#uentry_checkedName +^5500 11525$@0@g2537@0@0@1@g2537$@0#uentry_showWhereLastPlain +^5501 11531$@0@g2537@0@0@1@g2537$@0#uentry_showWhereSpecifiedExtra +^5502 11529$@0@g2537@0@0@1@g2537$@0#uentry_showWhereSpecified +^5503 11513$@0@g2537@0@0@1@g2537$@0#uentry_showWhereLast +^5504 11519$@0@g2537@0@0@1@g2537$@0#uentry_showWhereDeclared +^5505 11167@6@2@1@0@0^@2@0@0#uentry_makeIdVariable +^5506 11593@6@5@1@0@0^@3@0@0#uentry_copy +^5507 11509$$$@0#uentry_freeComplete +^5508 11439$@0@@1@p0$@0#uentry_clearDefined +^5509 11047@6@5@1@0@0^@19@3@0#uentry_specDeclName +^5510 11613$@0@@1@p0,p1$@0#uentry_mergeState +^5511 11595$@0@@1@p0,p1$@0#uentry_setState +^5512 11457$@0@@1@p0$@0#uentry_setRefParam +^5513 11431$@0@@1@p0$@0#uentry_setDeclaredForce +^5514 11143$^$@0#uentry_isNonLocal +^5515 11145$^$@0#uentry_isGlobalVariable +^5516 11147$^$@0#uentry_isVisibleExternally +^5517 11361$^$@0#uentry_isRefParam +^5518 11295$^$@0#uentry_hasGlobs +^5519 11301$^$@0#uentry_hasMods +^5520 11297$^$@0#uentry_hasStateClauseList +^5521 11373$^$@0#uentry_getExitCode +^5522 11623$$$@0#uentry_checkYieldParam +^5523 11131$^$@0#uentry_isOnly +^5524 11137$^$@0#uentry_isUnique +^5525 11129$@0@@1@p0$@0#uentry_reflectQualifiers +^5526 11367$^$@0#uentry_isOut +^5527 11369$^$@0#uentry_isPartial +^5528 11371$^$@0#uentry_isStateSpecial +^5529 11377$^$@0#uentry_possiblyNull +^5530 11467$@1@s1@1@$@0#uentry_getForceRealType +^5531 11379$^$@0#uentry_getAliasKind +^5532 11381$^$@0#uentry_getExpKind +^5533 11399@6@5@1@0@0^@19@3@0#uentry_getConstantValue +^5534 11095$@0@@1@p0$@0#uentry_fixupSref +^5535 11209$@0@@1@p0,p1$@0#uentry_setGlobals +^5536 11201$^$@0#uentry_isYield +^5537 11175@6@2@1@0@0^@3@0@0#uentry_makeIdConstant +^5538 11411@6@5@1@0@0^@19@3@0#uentry_getRealName +^5539 11271$^$@0#uentry_xcomparealpha +^5540 11273$^$@0#uentry_xcompareuses +^5541 11045@6@5@1@0@0^@19@3@0#uentry_specOrDefName +^5542 11587$$$@0#uentry_copyState +^5543 11589$$$@0#uentry_sameKind +^5544 11619@6@5@1@0@0$@19@2@0#uentry_returnedRef +^5545 11617$$$@0#uentry_isReturned +^5546 11353$$$@0#uentry_isRefCountedDatatype +^5547 11365$$$@0#uentry_getDefState +^5548 11311$$$@0#uentry_markFree +^5549 11449@6@5@1@0@0$@18@0@0#uentry_getOrigSref +^5550 11265$@1@s1@1@s1$@0#uentry_destroyMod +^5551 11515$$$@0#uentry_showDefSpecInfo +^5552 11505$$$@0#uentry_markOwned +^5553 11415@6@5@1@0@0^@19@3@0#uentry_whereLast +^5554 11089$@0@@1@p0$@0#uentry_setParamNo +^5555 11179$^$@0#uentry_isCheckedUnknown +^5556 11187$^$@0#uentry_isCheckedModify +^5557 11183$^$@0#uentry_isUnchecked +^5558 11185$^$@0#uentry_isChecked +^5559 11181$^$@0#uentry_isCheckMod +^5560 11189$^$@0#uentry_isCheckedStrict +^5561 11191$@0@@1@p0$@0#uentry_setUnchecked +^5562 11193$@0@@1@p0$@0#uentry_setChecked +^5563 11195$@0@@1@p0$@0#uentry_setCheckMod +^5564 11197$@0@@1@p0$@0#uentry_setCheckedStrict +^5565 11327$$$@0#uentry_hasAccessType +*1 (Constant) +^5566 1117@@0@5#GLOBAL_MARKER_NAME +*4 (Function) +^5567 11645$$$@0#uentry_setNullTerminatedState +^5568 11643$$$@0#uentry_setPossiblyNullTerminatedState +^5569 11647$$$@0#uentry_setSize +^5570 11649$$$@0#uentry_setLen +^5571 6220@6@5@1@0@0$@3@0@0#uentry_makeGlobalMarker +^5572 11637$^$@0#uentry_isGlobalMarker +^5573 11633@6@5@1@0@0$@19@2@0#uentry_makeUnrecognized +^5574 11051$$@3@0@0#uentry_getFcnPreconditions +^5575 11053$$@3@0@0#uentry_getFcnPostconditions +^5576 11113$$$@0#uentry_setPostconditions +^5577 11111$$$@0#uentry_setPreconditions +*7 (Struct tag) +^5578 6233@6234#@!172 +*0 (Datatype) +^5579 6235@-@+@0@5@0@0@6236#stateInfo +*1 (Constant) +^5580 6236@i0@0@6#stateInfo_undefined +*4 (Function) +^5581 19556$$$@0#stateInfo_free +^5582 19558@6@5@1@0@0$@2@0@0#stateInfo_update +^5583 19560@6@5@1@0@0$@2@0@0#stateInfo_updateLoc +^5584 19562@6@5@1@0@0$@2@0@0#stateInfo_updateRefLoc +^5585 19564@6@5@1@0@0$@2@0@0#stateInfo_copy +^5586 19566@6@2@1@0@0$@2@0@0#stateInfo_makeLoc +^5587 19568@6@5@1@0@0$@2@0@0#stateInfo_makeRefLoc +^5588 19572@6@5@1@0@0$@19@3@0#stateInfo_getLoc +^5589 19570@6@5@1@0@0^@2@0@0#stateInfo_unparse +^5590 13648@6@5@1@0@0^@3@0@0#stateValue_create +*1 (Constant) +^5591 1018@i0@0@4#stateValue_undefined +*4 (Function) +^5592 13666$^$@0#stateValue_getValue +^5593 13660$@0@@1@p0$@0#stateValue_update +^5594 13670$^$@0#stateValue_hasLoc +^5595 13668@6@5@1@0@0^@19@3@0#stateValue_getInfo +^5596 13656$@0@@1@p0$@0#stateValue_updateValue +^5597 13658$@0@@1@p0$@0#stateValue_updateValueLoc +^5598 13662$$$@0#stateValue_show +^5599 13650@6@5@1@0@0^@3@0@0#stateValue_copy +^5600 13664@6@5@1@0@0^@19@3@0#stateValue_unparseValue +^5601 13654@6@5@1@0@0^@3@0@0#stateValue_unparse +^5602 13652$^$@0#stateValue_sameValue +*1 (Constant) +^5603 5$#stateValue_error +^5604 1019@@0@4#valueTable_undefined +*4 (Function) +^5605 13644$$$@0#valueTable_insert +^5606 13642@6@5@1@0@0^@2@0@0#valueTable_unparse +^5607 13646$@0@@1@p0$@0#valueTable_update +^5608 13640@6@5@1@0@0$@2@0@0#valueTable_copy +*6 (Iterator finalizer) +^5609 0@55#end_valueTable_elements +*5 (Iterator) +^5610 6310@55#valueTable_elements +*2 (Enum member) +^5611 6313$#SR_NOTHING#SR_INTERNAL#SR_SPECSTATE#SR_SYSTEM#SR_GLOBALMARKER +*9 (Enum tag) +^5616 6313@6314#&!173 +*0 (Datatype) +^5617 6314@-@-@0@0@0@0@6315#speckind +*2 (Enum member) +^5618 6316$#SK_PARAM#SK_ARRAYFETCH#SK_FIELD#SK_PTR#SK_ADR#SK_CONST#SK_CVAR#SK_UNCONSTRAINED#SK_OBJECT#SK_CONJ#SK_EXTERNAL#SK_DERIVED#SK_NEW#SK_TYPE#SK_RESULT#SK_SPECIAL#SK_UNKNOWN +*9 (Enum tag) +^5635 6316@6317#&!174 +*0 (Datatype) +^5636 6317@-@-@0@0@0@0@6318#skind +*7 (Struct tag) +^5637 6319@6320#@!175 +*0 (Datatype) +^5638 6321@-@+@0@0@0@0@6322#cref +*7 (Struct tag) +^5639 6323@6324#@!176 +*0 (Datatype) +^5640 6325@-@+@0@0@0@0@6326#ainfo +*7 (Struct tag) +^5641 6327@6328#@!177 +*0 (Datatype) +^5642 6329@-@+@0@0@0@0@6330#fldinfo +*7 (Struct tag) +^5643 6331@6332#@!178 +*0 (Datatype) +^5644 6333@-@+@0@0@0@0@6334#cjinfo +*8 (Union tag) +^5645 6335@6336#$!179 +*0 (Datatype) +^5646 6337@-@+@0@0@0@0@6338#sinfo +*4 (Function) +^5647 15194$$$@0#sRef_perhapsNull +^5648 15170$$$@0#sRef_possiblyNull +^5649 15196$$$@0#sRef_definitelyNull +^5650 15338$$$@0#sRef_definitelyNullContext +^5651 15340$$$@0#sRef_definitelyNullAltContext +^5652 14978$$$@0#sRef_setNullError +^5653 14976$$$@0#sRef_setNullUnknown +^5654 14962$$$@0#sRef_setNotNull +^5655 14966$$$@0#sRef_setNullState +^5656 14964$$$@0#sRef_setNullStateN +^5657 14970$$$@0#sRef_setNullStateInnerComplete +^5658 14972$$$@0#sRef_setPosNull +^5659 14974$$$@0#sRef_setDefNull +*1 (Constant) +^5660 971@i0@0@4#sRef_undefined +*4 (Function) +^5661 14620$^$@0#sRef_isRecursiveField +^5662 14920$@0@@1@p0$@0#sRef_copyRealDerivedComplete +^5663 15320$^$@0#sRef_getNullState +^5664 15316$^$@0#sRef_isNotNull +^5665 15310$^$@0#sRef_isDefinitelyNull +^5666 15270@6@0@1@0@54^$@0#sRef_isLocalVar +^5667 15268@6@0@1@0@54^$@0#sRef_isNSLocalVar +^5668 15272@6@0@1@0@54^$@0#sRef_isRealLocalVar +^5669 15274@6@0@1@0@54^$@0#sRef_isLocalParamVar +^5670 15318$^$@0#sRef_getAliasKind +^5671 15258@6@5@1@0@0$@19@2@0#sRef_buildArrow +^5672 15256@6@5@1@0@0$@19@2@0#sRef_makeArrow +^5673 15150$^$@0#sRef_isAllocIndexRef +^5674 14900$@0@@1@p0$@0#sRef_setAliasKind +^5675 14942$@0@@1@p0$@0#sRef_setPdefined +^5676 15102$^$@0#sRef_hasDerived +^5677 15104$$$@0#sRef_clearDerived +^5678 15106$$$@0#sRef_clearDerivedComplete +^5679 14790@6@5@1@0@0$@19@2@0#sRef_getBaseSafe +^5680 15066@6@5@1@0@0^@19@3@0#sRef_derivedFields +^5681 15134$^$@0#sRef_sameName +^5682 15040$^$@0#sRef_isDirectParam +^5683 15110@6@5@1@0@0$@19@2@0#sRef_makeAnyArrayFetch +^5684 15070$^$@0#sRef_isUnknownArrayFetch +^5685 14928$$$@0#sRef_setPartialDefinedComplete +^5686 15020$^$@0#sRef_isMacroParamRef +^5687 6445$@1@s1@1@s1$@0#sRef_destroyMod +^5688 14628$$$@0#sRef_deepPred +^5689 15218$$$@0#sRef_aliasCompleteSimplePred +^5690 14914$$$@0#sRef_clearExKindComplete +^5691 15282@6@5@1@0@0^@19@3@0#sRef_nullMessage +^5692 14856$^$@0#sRef_isSystemState +^5693 14858$^$@0#sRef_isGlobalMarker +^5694 14848$^$@0#sRef_isInternalState +^5695 14854$^$@0#sRef_isResult +^5696 14850$^$@0#sRef_isSpecInternalState +^5697 14852$^$@0#sRef_isSpecState +^5698 14846$^$@0#sRef_isNothing +^5699 15048$^$@0#sRef_isFileOrGlobalScope +^5700 15044$^$@0#sRef_isReference +^5701 14744$^$@0#sRef_deriveType +^5702 14746$^$@0#sRef_getType +^5703 15336$@0@@1@p0$@0#sRef_markImmutable +^5704 15014@6@0@1@0@54^$@0#sRef_isAddress +^5705 15018@6@0@1@0@54^$@0#sRef_isArrayFetch +^5706 15024@6@0@1@0@54^$@0#sRef_isConst +^5707 15022@6@0@1@0@54^$@0#sRef_isCvar +^5708 15032@6@0@1@0@54^$@0#sRef_isField +^5709 15038@6@0@1@0@54^$@0#sRef_isParam +^5710 15042@6@0@1@0@54^$@0#sRef_isPointer +^5711 15058$$$@0#sRef_setType +^5712 15060$$$@0#sRef_setTypeFull +^5713 15168$$$@0#sRef_mergeNullState +^5714 14958$$$@0#sRef_setLastReference +^5715 14694$@0@@1@p0$@0#sRef_canModify +^5716 14692$@0@@1@p0$@0#sRef_canModifyVal +^5717 15046$^$@0#sRef_isIReference +^5718 14778$^$@0#sRef_isIndexKnown +^5719 14688$^$@0#sRef_isModified +^5720 14678$^$@0#sRef_isExternallyVisible +^5721 14710$^$@0#sRef_compare +^5722 14724$^$@0#sRef_realSame +^5723 14726$^$@0#sRef_sameObject +^5724 14728$^$@0#sRef_same +^5725 14720$^$@0#sRef_similar +^5726 14786@6@5@1@0@0^@19@3@0#sRef_getField +^5727 14752@6@5@1@0@0^@2@0@0#sRef_unparse +^5728 14700@6@5@1@0@0^@19@3@0#sRef_stateVerb +^5729 14702@6@5@1@0@0^@19@3@0#sRef_stateAltVerb +^5730 14748@6@5@1@0@0^@2@0@0#sRef_unparseOpt +^5731 14756@6@5@1@0@0^@2@0@0#sRef_unparseDebug +^5732 15006$@0@@1@p0$@0#sRef_killComplete +^5733 14780$^$@0#sRef_getIndex +^5734 15136@6@5@1@0@0$@18@0@0#sRef_fixOuterRef +^5735 14930$$$@0#sRef_setDefinedComplete +^5736 14936$$$@0#sRef_setDefinedNCComplete +^5737 14686$^$@0#sRef_getParam +^5738 14770$^$@0#sRef_lexLevel +^5739 14902$$$@0#sRef_setOrigAliasKind +^5740 15146@6@5@1@0@0@0@@1@p0,p1@19@2@0#sRef_fixBase +^5741 14888$@0@g2537@0@0@1@g2537$@0#sRef_showNotReallyDefined +^5742 6565$@0@s1@1@s1$@0#sRef_enterFunctionScope +^5743 6567$@0@s1@1@s1$@0#sRef_setGlobalScope +^5744 6569$^$@0#sRef_inGlobalScope +^5745 6571$@0@s1@1@s1$@0#sRef_exitFunctionScope +^5746 6573$@0@s1@1@s1$@0#sRef_clearGlobalScopeSafe +^5747 6575$@0@s1@1@s1$@0#sRef_setGlobalScopeSafe +^5748 15080@6@2@1@0@0$@19@2@0#sRef_buildArrayFetch +^5749 15082@6@2@1@0@0$@19@2@0#sRef_buildArrayFetchKnown +^5750 15062@6@5@1@0@0@0@@1@p0@19@2@0#sRef_buildField +^5751 15090@6@5@1@0@0@0@@1@p0@19@2@0#sRef_buildPointer +^5752 14784@6@5@1@0@0$@19@2@0#sRef_makeAddress +^5753 14760@6@2@1@0@0^@18@0@0#sRef_makeUnconstrained +^5754 14764@6@0@1@0@54^$@0#sRef_isUnconstrained +^5755 14762@6@5@1@0@0^@19@3@0#sRef_unconstrainedName +^5756 15112@6@2@1@0@0^@19@2@0#sRef_makeArrayFetch +^5757 15114@6@2@1@0@0$@19@2@0#sRef_makeArrayFetchKnown +^5758 14826@6@2@1@0@0$@18@0@0#sRef_makeConj +^5759 14768@6@2@1@0@0$@18@0@0#sRef_makeCvar +^5760 15130@6@2@1@0@0$@18@0@0#sRef_makeConst +^5761 15116@6@5@1@0@0$@19@2@0#sRef_makeField +^5762 14772@6@2@1@0@0$@18@0@0#sRef_makeGlobal +^5763 15118@6@5@1@0@0^@19@2@0#sRef_makeNCField +^5764 15002$@0@@1@p0$@0#sRef_maybeKill +^5765 14800@6@2@1@0@0^@18@0@0#sRef_makeObject +^5766 15128@6@2@1@0@0^@18@0@0#sRef_makeType +^5767 14776@6@2@1@0@0^@18@0@0#sRef_makeParam +^5768 15108@6@5@1@0@0@0@@1@p0@19@2@0#sRef_makePointer +^5769 14862$@0@@1@p0$@0#sRef_makeSafe +^5770 14864$@0@@1@p0$@0#sRef_makeUnsafe +^5771 6623@6@5@1@0@0^@18@0@0#sRef_makeUnknown +^5772 14832@6@5@1@0@0^@18@0@0#sRef_makeNothing +^5773 14834@6@5@1@0@0^@18@0@0#sRef_makeInternalState +^5774 14836@6@5@1@0@0^@18@0@0#sRef_makeSpecState +^5775 14840@6@5@1@0@0^@18@0@0#sRef_makeGlobalMarker +^5776 14838@6@5@1@0@0^@18@0@0#sRef_makeSystemState +^5777 6635@6@2@1@0@0^@18@0@0#sRef_makeResult +^5778 15286@6@5@1@0@0@0@@1@p0@19@2@0#sRef_fixResultType +^5779 14774$@0@@1@p0$@0#sRef_setParamNo +^5780 15126@6@2@1@0@0$@18@0@0#sRef_makeNew +^5781 14860$^$@0#sRef_getScopeIndex +^5782 14680@6@5@1@0@0$@19@2@0#sRef_getBaseUentry +^5783 14734@6@5@1@0@0@0@@1@p0@19@2@0#sRef_fixBaseParam +^5784 14732@6@5@1@0@0$@2@0@0#sRef_fixConstraintParam +^5785 14940$$$@0#sRef_isUnionField +^5786 14690$$$@0#sRef_setModified +^5787 15142$$$@0#sRef_resetState +^5788 15144$$$@0#sRef_resetStateComplete +^5789 15138$$$@0#sRef_storeState +^5790 14788@6@5@1@0@0^@19@2@0#sRef_getBase +^5791 14794@6@5@1@0@0^@19@2@0#sRef_getRootBase +^5792 14684@6@5@1@0@0$@19@3@0#sRef_getUentry +^5793 14740@6@5@1@0@0^@3@0@0#sRef_dump +^5794 14742@6@5@1@0@0^@3@0@0#sRef_dumpGlobal +^5795 14738@6@5@1@0@0@0@@1@tp0@19@2@0#sRef_undump +^5796 14736@6@5@1@0@0@0@@1@tp0@19@2@0#sRef_undumpGlobal +^5797 15010@6@5@1@0@0$@2@0@0#sRef_saveCopy +^5798 15012@6@5@1@0@0$@18@0@0#sRef_copy +^5799 14870@6@5@1@0@0^@3@0@0#sRef_unparseState +^5800 14874$^$@0#sRef_isWriteable +^5801 14880$^$@0#sRef_isReadable +^5802 14878$^$@0#sRef_isStrictReadable +^5803 14876$^$@0#sRef_hasNoStorage +^5804 15160$@0@g2537@0@0@1@g2537$@0#sRef_showExpInfo +^5805 14932$@0@@1@p0$@0#sRef_setDefined +^5806 14922$@0@@1@p0$@0#sRef_setUndefined +^5807 14982$@0@@1@p0$@0#sRef_setOnly +^5808 14984$@0@@1@p0$@0#sRef_setDependent +^5809 14986$@0@@1@p0$@0#sRef_setOwned +^5810 14988$@0@@1@p0$@0#sRef_setKept +^5811 14994$@0@@1@p0$@0#sRef_setKeptComplete +^5812 14998$@0@@1@p0$@0#sRef_setFresh +^5813 14956$@0@@1@p0$@0#sRef_setShared +^5814 15166$@0@g2537@0@0@1@g2537$@0#sRef_showAliasInfo +^5815 15162$@0@g2537@0@0@1@g2537$@0#sRef_showMetaStateInfo +^5816 15164$@0@g2537@0@0@1@g2537$@0#sRef_showNullInfo +^5817 15158$@0@g2537@0@0@1@g2537$@0#sRef_showStateInfo +^5818 14632$@0@@1@p0$@0#sRef_setStateFromType +^5819 15000$@0@@1@p0$@0#sRef_kill +^5820 14952$@0@@1@p0$@0#sRef_setAllocated +^5821 14950$@0@@1@p0$@0#sRef_setAllocatedShallowComplete +^5822 14946$@0@@1@p0$@0#sRef_setAllocatedComplete +^5823 15122@6@5@1@0@0^@2@0@0#sRef_unparseKindNamePlain +^5824 15050@6@0@1@0@54^$@0#sRef_isRealGlobal +^5825 15052@6@0@1@0@54^$@0#sRef_isFileStatic +^5826 15176$^$@0#sRef_getScope +^5827 15172@6@5@1@0@0^@19@3@0#sRef_getScopeName +^5828 15178@6@0@1@0@54^$@0#sRef_isDead +^5829 15180@6@0@1@0@54^$@0#sRef_isDeadStorage +^5830 15184$^$@0#sRef_isStateLive +^5831 15182@6@0@1@0@54^$@0#sRef_isPossiblyDead +^5832 15186@6@0@1@0@53^$@0#sRef_isStateUndefined +^5833 15192$^$@0#sRef_isUnuseable +^5834 15096@6@5@1@0@0@0@@1@p0@19@2@0#sRef_constructDeref +^5835 15098@6@5@1@0@0@0@@1@p0@19@2@0#sRef_constructDeadDeref +^5836 15188$^$@0#sRef_isJustAllocated +^5837 15312@6@0@1@0@54^$@0#sRef_isAllocated +^5838 15334$@0@@1@p0$@0#sRef_makeStateSpecial +^5839 14886$^$@0#sRef_isReallyDefined +^5840 15288$^$@0#sRef_isOnly +^5841 15290$^$@0#sRef_isDependent +^5842 15292$^$@0#sRef_isOwned +^5843 15294$^$@0#sRef_isKeep +^5844 15296$^$@0#sRef_isTemp +^5845 15314$^$@0#sRef_isStack +^5846 15298$^$@0#sRef_isLocalState +^5847 15300$^$@0#sRef_isUnique +^5848 15302$^$@0#sRef_isShared +^5849 15304$^$@0#sRef_isExposed +^5850 15306$^$@0#sRef_isObserver +^5851 15308$^$@0#sRef_isFresh +^5852 14616$@0@s1@1@s1$@0#sRef_protectDerivs +^5853 14618$@0@s1@1@s1$@0#sRef_clearProtectDerivs +^5854 14904$^$@0#sRef_getExKind +^5855 14906$^$@0#sRef_getOrigExKind +^5856 14916$@0@@1@p0$@0#sRef_setExKind +^5857 14912$@0@@1@p0$@0#sRef_setExposed +^5858 15036$^$@0#sRef_isAnyParam +^5859 14656@6@5@1@0@0^@19@3@0#sRef_getAliasInfoRef +^5860 14646$^$@0#sRef_hasAliasInfoRef +^5861 15092@6@5@1@0@0@0@@1@p0@19@2@0#sRef_constructPointer +^5862 15054$^$@0#sRef_isAliasCheckedGlobal +^5863 14722$^$@0#sRef_includedBy +^5864 14802@6@5@1@0@0^@18@2@0#sRef_makeExternal +^5865 14718$^$@0#sRef_similarRelaxed +^5866 15120@6@5@1@0@0^@2@0@0#sRef_unparseKindName +^5867 15124$@0@@1@p0$@0#sRef_copyState +^5868 15026$^$@0#sRef_isObject +^5869 14872$^$@0#sRef_isNotUndefined +^5870 15028$^$@0#sRef_isExternal +^5871 14868@6@5@1@0@0^@3@0@0#sRef_unparseDeep +^5872 14866@6@5@1@0@0^@3@0@0#sRef_unparseFull +^5873 15174@6@5@1@0@0^@19@3@0#sRef_unparseScope +^5874 14810$@0@@1@p0,p1$@0#sRef_mergeState +^5875 14812$@0@@1@p0,p1$@0#sRef_mergeOptState +^5876 14806$@0@@1@p0$@0#sRef_mergeStateQuiet +^5877 14808$@0@@1@p0$@0#sRef_mergeStateQuietReverse +^5878 15088$@0@@1@p0$@0#sRef_setStateFromUentry +^5879 15076$^$@0#sRef_isStackAllocated +^5880 14630$^$@0#sRef_modInFunction +^5881 14896$@0@@1@p0$@0#sRef_clearAliasState +^5882 14954$@0@@1@p0$@0#sRef_setPartial +^5883 15198$@0@@1@p0$@0#sRef_setDerivNullState +^5884 6877$@0@s1@1@s1$@0#sRef_clearGlobalScope +^5885 14804@6@5@1@0@0$@18@0@0#sRef_makeDerived +^5886 14890$^$@0#sRef_getDefState +^5887 14892$$$@0#sRef_setDefState +^5888 15152$$$@0#sRef_showRefLost +^5889 15154$$$@0#sRef_showRefKilled +^5890 14682@6@5@1@0@0$@19@2@0#sRef_updateSref +^5891 15322$$$@0#sRef_reflectAnnotation +^5892 15332@6@5@1@0@0^@19@3@0#sRef_getValueTable +^5893 15210$$$@0#sRef_aliasCheckPred +^5894 15212$$$@0#sRef_aliasCheckSimplePred +^5895 15156$$$@0#sRef_showStateInconsistent +^5896 14996$$$@0#sRef_setDependentComplete +^5897 14898$$$@0#sRef_setAliasKindComplete +^5898 15016$^$@0#sRef_isThroughArrayFetch +^5899 15252@6@2@1@0@0^@19@2@0#sRef_getConjA +^5900 15254@6@2@1@0@0^@19@2@0#sRef_getConjB +^5901 14750@6@5@1@0@0^@2@0@0#sRef_unparsePreOpt +^5902 15132$^$@0#sRef_hasName +^5903 15056$$$@0#sRef_free +^5904 14910$@0@@1@p0$@0#sRef_setObserver +^5905 14968$$$@0#sRef_setNullTerminatedStateInnerComplete +^5906 15342$$$@0#sRef_getNullTerminatedState +^5907 15344$$$@0#sRef_setNullTerminatedState +^5908 15346$$$@0#sRef_setPossiblyNullTerminatedState +^5909 15348$$$@0#sRef_setNotNullTerminatedState +^5910 15352$$$@0#sRef_setSize +^5911 15350$$$@0#sRef_setLen +^5912 15356$^$@0#sRef_isFixedArray +^5913 15358$^$@0#sRef_getArraySize +^5914 15284@6@5@1@0@0$@19@3@0#sRef_ntMessage +^5915 15354$@0@@1@p0$@0#sRef_resetLen +^5916 15324$@0@@1@p0$@0#sRef_setMetaStateValueComplete +^5917 15326$@0@@1@p0$@0#sRef_setMetaStateValue +^5918 15330@6@5@1@0@0^@19@3@0#sRef_getMetaStateValue +^5919 15328$@0@@1@p0$@0#sRef_checkMetaStateValue +^5920 14610@6@0@5@0@0@0@g155@6@0@1@g155$@0#sRef_checkValid +*1 (Constant) +^5921 991@i0@0@4#guardSet_undefined +*4 (Function) +^5922 16811@6@0@1@0@54$$@0#guardSet_isEmpty +^5923 6976@6@5@1@0@0$@2@0@0#guardSet_new +^5924 16799@6@5@1@0@0$$@0#guardSet_addTrueGuard +^5925 16801@6@5@1@0@0$$@0#guardSet_addFalseGuard +^5926 16783@6@5@1@0@0$$@0#guardSet_or +^5927 16785@6@5@1@0@0$$@0#guardSet_and +^5928 16779$@0@@1@p0$@0#guardSet_delete +^5929 16803@6@5@1@0@0$@2@0@0#guardSet_unparse +^5930 16805$$$@0#guardSet_free +^5931 16777@6@5@1@0@0^@18@2@0#guardSet_getTrueGuards +^5932 16781@6@5@1@0@0^@18@2@0#guardSet_getFalseGuards +^5933 16787@6@5@1@0@0@0@@1@p0@3@0@0#guardSet_union +^5934 16795@6@5@1@0@0^@2@0@0#guardSet_invert +^5935 16797@6@5@1@0@0^@2@0@0#guardSet_copy +^5936 16807$^$@0#guardSet_isGuarded +^5937 16809$^$@0#guardSet_mustBeNull +^5938 16789@6@5@1@0@0@0@@1@p0@3@0@0#guardSet_levelUnion +^5939 16791@6@5@1@0@0@0@@1@p1,p0$@0#guardSet_levelUnionFree +^5940 16793$$$@0#guardSet_flip +*8 (Union tag) +^5941 7011@7012#$!180 +*0 (Datatype) +^5942 7011@-@-@0@0@0@0@7013#constraintTermValue +*2 (Enum member) +^5943 7016$#ERRORBADCONSTRAINTTERMTYPE#EXPRNODE#SREF#INTLITERAL +*9 (Enum tag) +^5947 7016@7017#&!181 +*0 (Datatype) +^5948 7017@-@-@0@0@0@0@7018#constraintTermType +*7 (Struct tag) +^5949 7019@7020#@_constraintTerm +*0 (Datatype) +^5950 7021@+@=@0@0@0@0@7022#constraintTerm +*4 (Function) +^5951 9617$$$@0#constraintTerm_getKind +^5952 9619@6@5@1@0@0$@19@2@0#constraintTerm_getSRef +*1 (Constant) +^5953 7022@i0@0@4#constraintTerm_undefined +*4 (Function) +^5954 9603$$$@0#constraintTerm_free +^5955 9613$@0@@1@p0$@0#constraintTerm_simplify +^5956 9621$^@2@0@0#constraintTerm_makeExprNode +^5957 9625$^@3@0@0#constraintTerm_copy +^5958 9647$^$@0#constraintTerm_similar +^5959 9637$^$@0#constraintTerm_canGetValue +^5960 9639$^$@0#constraintTerm_getValue +^5961 9615@6@5@1@0@0^@3@0@0#constraintTerm_getFileloc +^5962 9607$^$@0#constraintTerm_isIntLiteral +^5963 9633@6@5@1@0@0^@3@0@0#constraintTerm_print +^5964 9623$^@3@0@0#constraintTerm_makesRef +^5965 9645$^$@0#constraintTerm_probSame +^5966 9627$@0@@1@p0$@0#constraintTerm_setFileloc +^5967 9635$^@3@0@0#constraintTerm_makeIntLiteral +^5968 9609$^$@0#constraintTerm_isStringLiteral +^5969 9611@6@5@1@0@0^@3@0@0#constraintTerm_getStringLiteral +^5970 9631$@0@@1@p0$@0#constraintTerm_doSRefFixBaseParam +^5971 9649$$$@0#constraintTerm_dump +^5972 9651$$@2@0@0#constraintTerm_undump +*2 (Enum member) +^5973 7071$#BINARYOP_UNDEFINED#PLUS#MINUS +*9 (Enum tag) +^5976 7071@7072#&!182 +*0 (Datatype) +^5977 7072@-@-@0@0@0@0@7073#constraintExprBinaryOpKind +*2 (Enum member) +^5978 7074$#UNARYOP_UNDEFINED#MAXSET#MINSET#MAXREAD#MINREAD +*9 (Enum tag) +^5983 7074@7075#&!183 +*0 (Datatype) +^5984 7075@-@-@0@0@0@0@7076#constraintExprUnaryOpKind +*7 (Struct tag) +^5985 7077@7078#@constraintExprBinaryOp_ +*0 (Datatype) +^5986 7078@-@+@0@0@0@0@7079#constraintExprBinaryOp +*7 (Struct tag) +^5987 7080@7081#@constraintExprUnaryOp_ +*0 (Datatype) +^5988 7081@-@+@0@0@0@0@7082#constraintExprUnaryOp +*8 (Union tag) +^5989 7083@7084#$constraintExprData +*0 (Datatype) +^5990 7085@-@+@0@0@0@0@7086#constraintExprData +*1 (Constant) +^5991 7086@i0@0@6#constraintExprData_undefined +*4 (Function) +^5992 9653$$$@0#constraintExprData_freeBinaryExpr +^5993 9657$$$@0#constraintExprData_freeUnaryExpr +^5994 9661$$$@0#constraintExprData_freeTerm +^5995 9665$$$@0#constraintExprData_termSetTerm +^5996 9667$^@19@3@0#constraintExprData_termGetTerm +^5997 9669$^$@0#constraintExprData_unaryExprGetOp +^5998 9671@6@5@1@0@0^@19@3@0#constraintExprData_unaryExprGetExpr +^5999 9673$$$@0#constraintExprData_unaryExprSetOp +^6000 9675$$$@0#constraintExprData_unaryExprSetExpr +^6001 9677$^$@0#constraintExprData_binaryExprGetOp +^6002 9679@6@5@1@0@0^@19@3@0#constraintExprData_binaryExprGetExpr1 +^6003 9681@6@5@1@0@0^@19@3@0#constraintExprData_binaryExprGetExpr2 +^6004 9683$$$@0#constraintExprData_binaryExprSetExpr1 +^6005 9685$$$@0#constraintExprData_binaryExprSetExpr2 +^6006 9687$$$@0#constraintExprData_binaryExprSetOp +^6007 9655$$@2@0@0#constraintExprData_copyBinaryExpr +^6008 9659$$@2@0@0#constraintExprData_copyUnaryExpr +^6009 9663$$@2@0@0#constraintExprData_copyTerm +*2 (Enum member) +^6010 7129$#binaryexpr#unaryExpr#term +*9 (Enum tag) +^6013 7129@7130#&!184 +*0 (Datatype) +^6014 7130@-@-@0@0@0@0@7131#constraintExprKind +*1 (Constant) +^6015 1115@i0@0@4#constraintExpr_undefined +*4 (Function) +^6016 9697$$$@0#constraintExpr_free +^6017 9807$^$@0#constraintExpr_getValue +^6018 9783@6@5@1@0@0@0@@1@p0$@0#constraintExpr_setFileloc +^6019 9709@6@5@1@0@0^@3@0@0#constraintExpr_copy +^6020 9793@6@5@1@0@0^@2@0@0#constraintExpr_unparse +^6021 9801@6@5@1@0@0^@3@0@0#constraintExpr_print +^6022 9773$^$@0#constraintExpr_similar +^6023 9775$^$@0#constraintExpr_same +^6024 9779@6@5@1@0@0@0@@1@p0@2@0@0#constraintExpr_searchandreplace +^6025 9809$^$@0#constraintExpr_canGetValue +^6026 9805$^$@0#constraintExpr_compare +^6027 9749@6@5@1@0@0$@2@0@0#constraintExpr_makeIntLiteral +^6028 9747@6@5@1@0@0$@2@0@0#constraintExpr_makeValueExpr +^6029 9739@6@5@1@0@0$@2@0@0#constraintExpr_makeMaxSetExpr +^6030 9741@6@5@1@0@0$@2@0@0#constraintExpr_makeMaxReadExpr +^6031 9767@6@5@1@0@0$@2@0@0#constraintExpr_makeIncConstraintExpr +^6032 9761@6@5@1@0@0$@2@0@0#constraintExpr_makeDecConstraintExpr +^6033 9791@6@5@1@0@0$@2@0@0#constraintExpr_simplify +^6034 9787@6@5@1@0@0@0@@1@p0,p1@2@0@0#constraintExpr_solveBinaryExpr +^6035 9777$$$@0#constraintExpr_search +^6036 9811@6@5@1@0@0$@2@0@0#constraintExpr_getFileloc +^6037 9735@6@5@1@0@0$@2@0@0#constraintExpr_makeSRefMaxset +^6038 9733@6@5@1@0@0$@2@0@0#constraintExpr_makeSRefMaxRead +^6039 9719@6@5@1@0@0$@2@0@0#constraintExpr_makeTermsRef +^6040 9795@6@5@1@0@0$$@0#constraintExpr_doSRefFixBaseParam +^6041 9713@6@5@1@0@0$@2@0@0#constraintExpr_makeExprNode +^6042 9799@6@5@1@0@0$@2@0@0#constraintExpr_doFixResult +^6043 9699$$$@0#constraintExpr_isLit +^6044 9765@6@5@1@0@0$@2@0@0#constraintExpr_makeAddExpr +^6045 9763@6@5@1@0@0$@2@0@0#constraintExpr_makeSubtractExpr +^6046 9737@6@5@1@0@0$@2@0@0#constraintExpr_parseMakeUnaryOp +^6047 9755@6@5@1@0@0$@3@0@0#constraintExpr_parseMakeBinaryOp +^6048 9803$^$@0#constraintExpr_hasMaxSet +^6049 9797@6@5@1@0@0@0@@1@p0@2@0@0#constraintExpr_doSRefFixConstraintParam +^6050 9701@6@5@1@0@0$@2@0@0#constraintExpr_propagateConstants +^6051 9817$$$@0#constraintExpr_isBinaryExpr +^6052 9827$$$@0#constraintExpr_dump +^6053 9829@6@5@1@0@0$@2@0@0#constraintExpr_undump +*2 (Enum member) +^6054 7215$#LT#LTE#GT#GTE#EQ#NONNEGATIVE#POSITIVE +*9 (Enum tag) +^6061 7215@7216#&!185 +*0 (Datatype) +^6062 7216@-@-@0@0@0@0@7217#arithType +*1 (Constant) +^6063 1109@i0@0@4#constraint_undefined +*4 (Function) +^6064 9903$$$@0#constraint_free +^6065 9861$$@3@0@0#constraint_makeReadSafeExprNode +^6066 9871$$@2@0@0#constraint_makeWriteSafeExprNode +^6067 9873$$@2@0@0#constraint_makeReadSafeInt +^6068 9877$$@2@0@0#constraint_makeEnsureMaxReadAtLeast +^6069 9845$@0@@1@p0$@0#constraint_overWrite +^6070 9843$$@2@0@0#constraint_copy +^6071 10074$^$@43#fileloc_closer +^6072 9905@6@5@1@0@0^@2@0@0#arithType_print +^6073 9855@6@5@1@0@0$@2@0@0#constraint_getFileloc +^6074 9917@6@5@1@0@0^@2@0@0#constraint_print +^6075 9863$$@2@0@0#constraint_makeWriteSafeInt +^6076 9893@6@5@1@0@0@0@@1@p0$@33#exprNode_copyConstraints +^6077 9883$$@2@0@0#constraint_makeEnsureEqual +^6078 9901$$@2@0@0#constraint_makeMaxSetSideEffectPostIncrement +^6079 9927$@0@@1@p0$@0#constraint_preserveOrig +^6080 9921$$@2@0@0#constraint_doSRefFixBaseParam +^6081 9915@6@5@1@0@0$@2@0@0#constraint_printDetailed +^6082 9885$$@2@0@0#constraint_makeEnsureLessThan +^6083 9887$$@2@0@0#constraint_makeEnsureLessThanEqual +^6084 9889$$@2@0@0#constraint_makeEnsureGreaterThan +^6085 9891$$@2@0@0#constraint_makeEnsureGreaterThanEqual +^6086 9867$$@2@0@0#constraint_makeSRefWriteSafeInt +^6087 9875$$@2@0@0#constraint_makeSRefReadSafeInt +^6088 9909$$$@0#constraint_printError +^6089 9925$$@2@0@0#constraint_doSRefFixConstraintParam +^6090 9865$$@2@0@0#constraint_makeSRefSetBufferSize +^6091 9923$$@2@0@0#constraint_doFixResult +^6092 9869$$@2@0@0#constraint_makeEnsureLteMaxRead +^6093 9899$$@2@0@0#constraint_makeMaxSetSideEffectPostDecrement +^6094 10052$^$@0#constraint_search +^6095 9841$$@2@0@0#makeConstraintParse3 +^6096 9849$$$@0#constraint_addGeneratingExpr +^6097 9859$$$@0#constraint_hasMaxSet +^6098 10127$$$@33#exprNode_exprTraverse +^6099 10133$$@2@0@33#exprNode_traversRequiresConstraints +^6100 10135$$@2@0@33#exprNode_traversEnsuresConstraints +^6101 9929$$$@0#constraint_togglePost +^6102 9839$$$@0#constraint_same +^6103 9919@6@5@1@0@0^@2@0@0#constraint_printOr +^6104 9907$$$@0#constraint_printErrorPostCondition +^6105 9853$$$@0#constraint_setFcnPre +^6106 9851$$$@0#constraint_origAddGeneratingExpr +^6107 10099$$$@33#exprNode_generateConstraints +^6108 9931$$$@0#constraint_togglePostOrig +^6109 9933$$$@0#constraint_hasOrig +^6110 9895$$@3@0@0#constraint_makeAddAssign +^6111 9897$$@3@0@0#constraint_makeSubtractAssign +^6112 9935$$@2@0@0#constraint_undump +^6113 9937$$$@0#constraint_dump +^6114 10167$$$@33#exprNode_forLoopHeuristics +^6115 10016$$@2@0@121#constraintList_reflectChanges +^6116 10014$$@2@0@121#constraintList_reflectChangesFreePre +^6117 10060$$@2@0@119#constraint_substitute +^6118 10042$$$@121#constraintList_resolve +^6119 10072$$$@119#constraint_simplify +^6120 10038$$@2@0@121#constraintList_fixConflicts +^6121 10012$$@3@0@121#constraintList_subsumeEnsures +^6122 10004$$@3@0@121#constraintList_mergeEnsures +^6123 10002$$@2@0@121#constraintList_mergeEnsuresFreeFirst +^6124 10046$$$@119#constraint_isAlwaysTrue +^6125 10008$$@2@0@121#constraintList_mergeRequires +^6126 10006$$@2@0@121#constraintList_mergeRequiresFreeFirst +^6127 10026$$@3@0@121#constraintList_reflectChangesOr +^6128 10064$$@2@0@121#constraintList_substitute +^6129 10062$$@2@0@121#constraintList_substituteFreeTarget +^6130 10010$$$@33#exprNode_mergeResolve +*0 (Datatype) +^6131 1109@-@+@0@2@2@0@7361#o_constraint +*1 (Constant) +^6132 1112@i0@0@4#constraintList_undefined +*4 (Function) +^6133 9952$$$@0#constraintList_addListFree +^6134 9972$$$@0#constraintList_preserveCallInfo +*6 (Iterator finalizer) +^6135 0@121#end_constraintList_elements +*5 (Iterator) +^6136 7374@121#constraintList_elements +*4 (Function) +^6137 7376$^@2@0@0#constraintList_makeNew +^6138 9946$@0@@1@p0$@0#constraintList_add +^6139 9950$@0@@1@p0@2@0@0#constraintList_addList +^6140 9968$^@3@0@0#constraintList_copy +^6141 9966$$$@0#constraintList_free +^6142 9954@6@5@1@0@0^@2@0@0#constraintList_unparse +^6143 9956@6@5@1@0@0^@2@0@0#constraintList_print +^6144 9962@6@5@1@0@0^@3@0@0#constraintList_printDetailed +^6145 9964$$@2@0@0#constraintList_logicalOr +^6146 9970$$$@0#constraintList_preserveOrig +*1 (Constant) +^6147 5$#constraintListBASESIZE +*4 (Function) +^6148 9980$@0@@1@p0@2@0@0#constraintList_doSRefFixBaseParam +^6149 9982$@0@@1@p0$@0#constraintList_togglePost +^6150 9978$@0@@1@p0@2@0@0#constraintList_doSRefFixConstraintParam +^6151 10139$^@3@0@33#exprNode_getPostConditions +^6152 9976$@0@@1@p0@2@0@0#constraintList_doFixResult +^6153 9974$@0@@1@p0$@0#constraintList_addGeneratingExpr +^6154 10113$$@2@0@121#constraintList_makeFixedArrayConstraints +^6155 9958$$$@0#constraintList_printErrorPostConditions +^6156 9960$$$@0#constraintList_printError +^6157 9986$$$@0#constraintList_dump +^6158 9984$$@2@0@0#constraintList_undump +*2 (Enum member) +^6159 7417$#XPR_PARENS#XPR_ASSIGN#XPR_CALL#XPR_EMPTY#XPR_VAR#XPR_OP#XPR_POSTOP#XPR_PREOP#XPR_SIZEOFT#XPR_SIZEOF#XPR_ALIGNOFT#XPR_ALIGNOF#XPR_OFFSETOF#XPR_CAST#XPR_FETCH#XPR_VAARG#XPR_ITER#XPR_FOR#XPR_FORPRED#XPR_GOTO#XPR_CONTINUE#XPR_BREAK#XPR_RETURN#XPR_NULLRETURN#XPR_COMMA#XPR_COND#XPR_IF#XPR_IFELSE#XPR_DOWHILE#XPR_WHILE#XPR_STMT#XPR_STMTLIST#XPR_SWITCH#XPR_INIT#XPR_FACCESS#XPR_ARROW#XPR_CONST#XPR_STRINGLITERAL#XPR_NUMLIT#XPR_BODY#XPR_NODE#XPR_ITERCALL#XPR_TOK#XPR_WHILEPRED#XPR_CASE#XPR_FTCASE#XPR_DEFAULT#XPR_FTDEFAULT#XPR_BLOCK#XPR_INITBLOCK#XPR_LABEL +*9 (Enum tag) +^6210 7417@7418#&!186 +*0 (Datatype) +^6211 7418@-@-@0@0@0@0@7419#exprKind +*7 (Struct tag) +^6212 7420@7421#@!187 +*0 (Datatype) +^6213 7422@-@+@0@0@0@0@7423#exprOffsetof +*7 (Struct tag) +^6214 7424@7425#@!188 +*0 (Datatype) +^6215 7426@-@+@0@0@0@0@7427#exprPair +*7 (Struct tag) +^6216 7428@7429#@!189 +*0 (Datatype) +^6217 7430@-@+@0@0@0@0@7431#exprTriple +*7 (Struct tag) +^6218 7432@7433#@!190 +*0 (Datatype) +^6219 7434@-@+@0@0@0@0@7435#exprIter +*7 (Struct tag) +^6220 7436@7437#@!191 +*0 (Datatype) +^6221 7438@-@+@0@0@0@0@7439#exprCall +*7 (Struct tag) +^6222 7440@7441#@!192 +*0 (Datatype) +^6223 7442@-@+@0@0@0@0@7443#exprIterCall +*7 (Struct tag) +^6224 7444@7445#@!193 +*0 (Datatype) +^6225 7446@-@+@0@0@0@0@7447#exprOp +*7 (Struct tag) +^6226 7448@7449#@!194 +*0 (Datatype) +^6227 7450@-@+@0@0@0@0@7451#exprField +*7 (Struct tag) +^6228 7452@7453#@!195 +*0 (Datatype) +^6229 7454@-@+@0@0@0@0@7455#exprUop +*7 (Struct tag) +^6230 7456@7457#@!196 +*0 (Datatype) +^6231 7458@-@+@0@0@0@0@7459#exprCast +*7 (Struct tag) +^6232 7460@7461#@!197 +*0 (Datatype) +^6233 7462@-@+@0@0@0@0@7463#exprInit +*8 (Union tag) +^6234 7465@7466#$!198 +*0 (Datatype) +^6235 7467@-@+@0@5@0@0@7468#exprData +*1 (Constant) +^6236 7468@i0@0@6#exprData_undefined +^6237 988@i0@0@4#exprNode_undefined +*4 (Function) +^6238 20060@6@5@1@0@0^@19@2@0#exprNode_getValue +^6239 20336$^$@0#exprNode_getLongValue +^6240 20258@6@5@1@0@0^@19@3@0#exprNode_unparseFirst +^6241 20220@6@5@1@0@0^@19@3@0#exprNode_getForGuards +^6242 20050$^$@0#exprNode_isNullValue +^6243 20256@6@5@1@0@0^@19@2@0#exprNode_getSref +^6244 20112@6@5@1@0@0@1@s1@1@@19@3@0#exprNode_getUentry +^6245 20194$@0@@1@p0$@0#exprNode_produceGuards +^6246 20262@6@5@1@0@0^@19@3@0#exprNode_loc +^6247 20056@6@5@1@0@0^@3@0@0#exprNode_charLiteral +^6248 20032@6@5@1@0@0^@19@3@0#exprNode_makeMustExit +^6249 20158@6@5@1@0@0^@3@0@0#exprNode_cond +^6250 7515@6@5@1@0@0^@3@0@0#exprNode_makeError +^6251 20114@6@5@1@0@0^@3@0@0#exprNode_makeInitBlock +^6252 20116@6@5@1@0@0^@3@0@0#exprNode_functionCall +^6253 20072@6@2@1@0@0@1@s1@1@@3@0@0#exprNode_fromIdentifier +^6254 20068@6@5@1@0@0@1@s1@1@@3@0@0#exprNode_fromUIO +^6255 20120@6@5@1@0@0^@3@0@0#exprNode_fieldAccess +^6256 20126@6@5@1@0@0^@3@0@0#exprNode_arrowAccess +^6257 20128@6@5@1@0@0@0@@1@p0@3@0@0#exprNode_postOp +^6258 20130@6@5@1@0@0^@3@0@0#exprNode_preOp +^6259 20122@6@5@1@0@0^@3@0@0#exprNode_addParens +^6260 20138@6@5@1@0@0^@3@0@0#exprNode_offsetof +^6261 20134@6@5@1@0@0^@3@0@0#exprNode_sizeofType +^6262 20140@6@5@1@0@0^@3@0@0#exprNode_sizeofExpr +^6263 20136@6@5@1@0@0^@3@0@0#exprNode_alignofType +^6264 20142@6@5@1@0@0^@3@0@0#exprNode_alignofExpr +^6265 20152@6@5@1@0@0^@3@0@0#exprNode_op +^6266 20156@6@5@1@0@0$@3@0@0#exprNode_assign +^6267 20080@6@5@1@0@0@0@@1@p0,p1@3@0@0#exprNode_arrayFetch +^6268 20024$$$@0#exprNode_free +^6269 20160@6@5@1@0@0@1@s1@1@@3@0@0#exprNode_vaArg +^6270 20066@6@5@1@0@0^@3@0@0#exprNode_stringLiteral +^6271 20064@6@5@1@0@0^@3@0@0#exprNode_rawStringLiteral +^6272 20236@6@5@1@0@0^@3@0@0#exprNode_comma +^6273 20162@6@5@1@0@0$@3@0@0#exprNode_labelMarker +^6274 20164@6@5@1@0@0$$@0#exprNode_notReached +^6275 20172@6@5@1@0@0^@3@0@0#exprNode_caseMarker +^6276 20184@6@5@1@0@0$@3@0@0#exprNode_concat +^6277 20186@6@5@1@0@0^@3@0@0#exprNode_createTok +^6278 20188@6@5@1@0@0$@3@0@0#exprNode_statement +^6279 20196@6@5@1@0@0$@3@0@0#exprNode_makeBlock +^6280 20204@6@5@1@0@0$@3@0@0#exprNode_if +^6281 20206@6@5@1@0@0$@3@0@0#exprNode_ifelse +^6282 20210@6@5@1@0@0$@3@0@0#exprNode_switch +^6283 20214@6@5@1@0@0$@3@0@0#exprNode_while +^6284 20216@6@5@1@0@0$@3@0@0#exprNode_doWhile +^6285 20226@6@2@1@0@0$@2@0@0#exprNode_goto +^6286 20228@6@5@1@0@0$@3@0@0#exprNode_continue +^6287 20230@6@5@1@0@0$@3@0@0#exprNode_break +^6288 20232@6@5@1@0@0$@3@0@0#exprNode_nullReturn +^6289 20234@6@5@1@0@0$@3@0@0#exprNode_return +^6290 20260@6@5@1@0@0^@18@3@0#exprNode_unparse +^6291 20274$^$@0#exprNode_isCharLit +^6292 20276$^$@0#exprNode_isNumLit +^6293 20244@6@5@1@0@0$@3@0@0#exprNode_makeInitialization +^6294 20242@6@5@1@0@0$@3@0@0#exprNode_makeEmptyInitialization +^6295 20272$^$@0#exprNode_isInitializer +^6296 20282$$$@0#exprNode_matchType +^6297 20174@6@2@1@0@0$@2@0@0#exprNode_defaultMarker +^6298 20246@6@5@1@0@0$@3@0@0#exprNode_iter +^6299 20252@6@5@1@0@0$@3@0@0#exprNode_iterId +^6300 20250@6@5@1@0@0$$@0#exprNode_iterExpr +^6301 20248@6@5@1@0@0$@3@0@0#exprNode_iterNewId +^6302 20254@6@5@1@0@0$@3@0@0#exprNode_iterStart +^6303 20054@6@5@1@0@0$@3@0@0#exprNode_numLiteral +^6304 20006$@1@s1@1@s1$@0#exprNode_initMod +^6305 20218@6@5@1@0@0$@3@0@0#exprNode_for +^6306 20224@6@5@1@0@0$@3@0@0#exprNode_forPred +^6307 20058@6@5@1@0@0$@3@0@0#exprNode_floatLiteral +^6308 20070@6@2@1@0@0$@3@0@0#exprNode_createId +^6309 20144@6@5@1@0@0$@3@0@0#exprNode_cast +^6310 20280$$$@0#exprNode_matchLiteral +^6311 20316$$$@0#exprNode_checkUseParam +^6312 20306$$$@0#exprNode_checkSet +^6313 20308$$$@0#exprNode_checkMSet +^6314 20192@6@5@1@0@0$$@0#exprNode_checkExpr +^6315 20180$$$@0#exprNode_mustEscape +^6316 20182$$$@0#exprNode_errorEscape +^6317 20176$$$@0#exprNode_mayEscape +^6318 20222@6@5@1@0@0$@3@0@0#exprNode_whilePred +^6319 20332@6@5@1@0@0$$@0#exprNode_updateLocation +^6320 20022$$$@0#exprNode_freeShallow +^6321 20008$@1@s1@1@s1$@0#exprNode_destroyMod +^6322 20200$^$@0#exprNode_isAssign +^6323 20338@6@5@1@0@0$@19@3@0#exprNode_getfileloc +^6324 20166$^$@0#exprNode_isDefaultMarker +^6325 20168$^$@0#exprNode_isCaseMarker +^6326 20170$^$@0#exprNode_isLabelMarker +^6327 20062@6@5@1@0@0$@2@0@0#exprNode_combineLiterals +^6328 20340@6@5@1@0@0$@2@0@0#exprNode_getNextSequencePoint +^6329 20342@6@5@1@0@0$@3@0@0#exprNode_createNew +^6330 13241@6@5@1@0@0$@2@0@0#exprData_makeLiteral +^6331 13243@6@5@1@0@0$@2@0@0#exprData_makeId +^6332 13245@6@5@1@0@0$@2@0@0#exprData_makePair +^6333 13137$$$@0#exprData_freeShallow +^6334 13139$$$@0#exprData_free +^6335 13141@6@5@1@0@0^@19@2@0#exprData_getInitNode +^6336 13143@6@5@1@0@0^@19@2@0#exprData_getInitId +^6337 13145@6@5@1@0@0^@19@2@0#exprData_getOpA +^6338 13147@6@5@1@0@0^@19@2@0#exprData_getOpB +^6339 13149$^@19@3@0#exprData_getOpTok +^6340 13151@6@5@1@0@0^@19@2@0#exprData_getPairA +^6341 13153@6@5@1@0@0^@19@2@0#exprData_getPairB +^6342 13155@6@5@1@0@0^@19@2@0#exprData_getIterSname +^6343 13157$^@19@2@0#exprData_getIterAlist +^6344 13159@6@5@1@0@0^@19@2@0#exprData_getIterBody +^6345 13161@6@5@1@0@0^@19@2@0#exprData_getIterEname +^6346 13163@6@5@1@0@0^@19@2@0#exprData_getFcn +^6347 13165$^@19@2@0#exprData_getArgs +^6348 13167@6@5@1@0@0^@19@2@0#exprData_getTriplePred +^6349 13169@6@5@1@0@0^@19@2@0#exprData_getIterCallIter +^6350 13171$^@19@2@0#exprData_getIterCallArgs +^6351 13173@6@5@1@0@0^@19@2@0#exprData_getTripleInit +^6352 13175@6@5@1@0@0^@19@2@0#exprData_getTripleTrue +^6353 13177@6@5@1@0@0^@19@2@0#exprData_getTripleTest +^6354 13179@6@5@1@0@0^@19@2@0#exprData_getTripleFalse +^6355 13181@6@5@1@0@0^@19@2@0#exprData_getTripleInc +^6356 13183@6@5@1@0@0^@19@2@0#exprData_getFieldNode +^6357 13185@6@5@1@0@0^@19@2@0#exprData_getFieldName +^6358 13187$^@19@3@0#exprData_getUopTok +^6359 13189@6@5@1@0@0^@19@2@0#exprData_getUopNode +^6360 13191@6@5@1@0@0^@19@2@0#exprData_getCastNode +^6361 13193$^@19@3@0#exprData_getCastTok +^6362 13195@6@5@1@0@0^@19@2@0#exprData_getCastType +^6363 13197@6@5@1@0@0^@19@2@0#exprData_getLiteral +^6364 13199@6@5@1@0@0^@19@2@0#exprData_getId +^6365 13201$^@19@3@0#exprData_getTok +^6366 13203@6@5@1@0@0^@19@2@0#exprData_getType +^6367 13205@6@5@1@0@0^@19@2@0#exprData_getOffsetType +^6368 13207@6@5@1@0@0^@19@2@0#exprData_getOffsetName +^6369 13209@6@5@1@0@0$@19@2@0#exprData_getSingle +^6370 13211@6@5@1@0@0$@2@0@0#exprData_makeOp +^6371 13213@6@5@1@0@0$@2@0@0#exprData_makeUop +^6372 13215@6@5@1@0@0$@2@0@0#exprData_makeSingle +^6373 13217@6@5@1@0@0$@2@0@0#exprData_makeTok +^6374 13219@6@5@1@0@0$@2@0@0#exprData_makeIter +^6375 13221@6@5@1@0@0$@2@0@0#exprData_makeTriple +^6376 13223@6@5@1@0@0$@2@0@0#exprData_makeCall +^6377 13225@6@5@1@0@0$@2@0@0#exprData_makeIterCall +^6378 13227@6@5@1@0@0$@2@0@0#exprData_makeField +^6379 13229@6@5@1@0@0$@2@0@0#exprData_makeOffsetof +^6380 13231@6@5@1@0@0$@2@0@0#exprData_makeSizeofType +^6381 13233@6@5@1@0@0$@2@0@0#exprData_makeCast +^6382 13235@6@5@1@0@0$@2@0@0#exprData_makeInit +^6383 13237@6@5@1@0@0$@2@0@0#exprData_makeCond +^6384 13239@6@5@1@0@0$@2@0@0#exprData_makeFor +^6385 16747$@0@s1@1@s1$@0#typeIdSet_emptySet +^6386 16749$^$@0#typeIdSet_member +^6387 16751$^$@0#typeIdSet_isEmpty +^6388 16753$@0@s1@1@s1$@0#typeIdSet_single +^6389 16755$@0@s1@1@s1$@0#typeIdSet_singleOpt +^6390 16757$@0@s1@1@s1$@0#typeIdSet_insert +^6391 16759$@0@s1@1@s1$@0#typeIdSet_removeFresh +^6392 16761@6@5@1@0@0^@3@0@0#typeIdSet_unparse +^6393 16765$@0@s1@1@s1$@0#typeIdSet_subtract +^6394 16763$$$@0#typeIdSet_compare +^6395 16767@6@5@1@0@0$@3@0@0#typeIdSet_dump +^6396 16769$@0@s1@1@s1,tp0$@0#typeIdSet_undump +^6397 16771$^$@0#typeIdSet_union +^6398 16728$@1@s1@1@s1$@0#typeIdSet_initMod +^6399 16731$@1@s1@1@s1$@0#typeIdSet_destroyMod +^6400 16733$@0@@1@tp0$@0#typeIdSet_dumpTable +^6401 16737$@0@s1@1@tp0,s1$@0#typeIdSet_loadTable +*1 (Constant) +^6402 975$#typeIdSet_undefined#typeIdSet_empty +*0 (Datatype) +^6404 982@-@+@0@5@2@0@7818#o_idDecl +*7 (Struct tag) +^6405 7820@7821#@!199 +*0 (Datatype) +^6406 7822@+@=@0@0@0@0@7823#idDeclList +*6 (Iterator finalizer) +^6407 0@185#end_idDeclList_elements +*5 (Iterator) +^6408 7824@185#idDeclList_elements +*4 (Function) +^6409 16645$$@2@0@0#idDeclList_singleton +^6410 16650$$$@0#idDeclList_add +^6411 16652@6@5@1@0@0$@2@0@0#idDeclList_unparse +^6412 16654$$$@0#idDeclList_free +*1 (Constant) +^6413 5$#idDeclListBASESIZE +*4 (Function) +^6414 12575$@0@s1@1@s1$@0#setArgsUsed +^6415 12579$@0@s1@1@s1$@0#setSpecialFunction +^6416 7838$^$@0#isFlipOldStyle +^6417 7840$^$@0#isNewStyle +^6418 12701$^$@0#processingIterVars +^6419 12615$$$@0#declareEnum +^6420 12691$$$@0#declareStruct +^6421 12687$$$@0#declareUnnamedStruct +^6422 12693$$$@0#declareUnion +^6423 12689$$$@0#declareUnnamedUnion +^6424 12613$$$@0#declareUnnamedEnum +^6425 12699$$$@0#handleEnum +^6426 12695$$$@0#handleStruct +^6427 12697$$$@0#handleUnion +^6428 12713@6@5@1@0@0$@18@0@0#handleParamIdList +^6429 12715@6@5@1@0@0$@18@0@0#handleParamTypeList +^6430 12645@6@5@1@0@0$@3@0@0#fixUentryList +^6431 12647@6@5@1@0@0^@3@0@0#fixUnnamedDecl +^6432 12703@6@5@1@0@0$@19@2@0#getCurrentIter +^6433 12683$$$@0#processNamedDecl +^6434 12639$@1@s1@1@$@0#clabstract_declareFunction +^6435 7876$$$@0#doVaDcl +^6436 7878$$$@0#doneParams +^6437 12623$$$@0#setCurrentParams +^6438 12625$$$@0#clearCurrentParams +^6439 12733@6@5@1@0@0$@19@2@0#fixModifiesId +^6440 12735@6@5@1@0@0$@19@2@0#fixStateClausesId +^6441 7888$$$@0#setFlipOldStyle +^6442 7890$$$@0#setNewStyle +^6443 7892$$$@0#unsetProcessingGlobals +^6444 12651$$$@0#setProcessingIterVars +^6445 12669$$$@0#setProcessingTypedef +^6446 12665$$$@0#setProcessingVars +^6447 12649$$$@0#setStorageClass +^6448 7902$$$@0#storeLoc +^6449 7904$$$@0#unsetProcessingTypedef +^6450 7906$$$@0#unsetProcessingVars +^6451 12611@6@5@1@0@0$@2@0@0#makeCurrentParam +^6452 7910$$$@0#setProcessingGlobalsList +^6453 12737@6@5@1@0@0$@19@2@0#modListArrayFetch +^6454 12719@6@5@1@0@0$@19@2@0#modListPointer +^6455 12721@6@5@1@0@0$@19@2@0#modListFieldAccess +^6456 12725@6@5@1@0@0$@19@2@0#modListArrowAccess +^6457 12723@6@5@1@0@0$@18@0@0#clabstract_unrecognizedGlobal +^6458 12603@6@5@1@0@0$@18@0@0#clabstract_createGlobal +^6459 7924$$$@0#checkDoneParams +^6460 12631$$$@0#exitParamsTemp +^6461 12629$$$@0#enterParamsTemp +^6462 7930$$$@0#clearProcessingGlobMods +^6463 7932$$$@0#isProcessingGlobMods +^6464 7934$$$@0#setProcessingGlobMods +^6465 12591$$$@0#setFunctionNoGlobals +^6466 12609$$$@0#iterParamNo +^6467 12607$$$@0#nextIterParam +^6468 12605$$$@0#declareCIter +^6469 12731$$$@0#checkModifiesId +^6470 12727@6@5@1@0@0$@19@2@0#checkStateClausesId +^6471 12679$$$@0#checkConstant +^6472 12681$$$@0#checkValueConstant +^6473 12641$@1@s1@1@$@0#declareStaticFunction +^6474 12593$$@3@0@0#getFunctionConstraints +^6475 12595$$@3@0@0#getEnsuresConstraints +^6476 12597$$$@0#setEnsuresConstraints +^6477 12599$$$@0#setFunctionConstraints +^6478 12729@6@5@1@0@0$@3@0@0#checkbufferConstraintClausesId +^6479 12619$$$@0#setImplictfcnConstraints +^6480 12621$$@19@3@0#getImplicitFcnConstraints +^6481 12741@6@5@1@0@0$@18@0@0#clabstract_checkGlobal +^6482 7970$@0@s1@1@s1$@0#clabstract_initMod +*0 (Datatype) +^6483 994@-@+@0@5@18@0@7971#d_sRefSet +*7 (Struct tag) +^6484 7973@7974#@!200 +*0 (Datatype) +^6485 7975@+@=@0@5@0@0@7976#sRefSetList +*6 (Iterator finalizer) +^6486 0@186#end_sRefSetList_elements +*5 (Iterator) +^6487 7977@186#sRefSetList_elements +*1 (Constant) +^6488 7976@i0@0@4#sRefSetList_undefined +*4 (Function) +^6489 16388@6@5@1@0@0@0@@1@p0$@0#sRefSetList_add +^6490 16392$$$@0#sRefSetList_free +^6491 16390$$$@0#sRefSetList_clear +*1 (Constant) +^6492 5$#sRefSetListBASESIZE +*2 (Enum member) +^6493 7988$#FMK_LOCALSET#FMK_IGNOREON#FMK_IGNORECOUNT#FMK_IGNOREOFF#FMK_SUPPRESS +*9 (Enum tag) +^6498 7988@7989#&!201 +*0 (Datatype) +^6499 7989@-@-@0@0@0@0@7990#flagMarkerKind +*8 (Union tag) +^6500 7991@7992#$!202 +*7 (Struct tag) +^6501 7993@7994#@!203 +*0 (Datatype) +^6502 7995@-@+@0@0@0@0@7996#flagMarker +*4 (Function) +^6503 13841$^@3@0@0#flagMarker_createLocalSet +^6504 13845$^@3@0@0#flagMarker_createIgnoreOn +^6505 13849$^@3@0@0#flagMarker_createIgnoreOff +^6506 13847$^@3@0@0#flagMarker_createIgnoreCount +^6507 13843$^@3@0@0#flagMarker_createSuppress +^6508 13859$$$@0#flagMarker_free +^6509 13861$^$@0#flagMarker_sameFile +^6510 13857@6@5@1@0@0^@2@0@0#flagMarker_unparse +^6511 13863$^$@0#flagMarker_beforeMarker +^6512 13851$^$@0#flagMarker_getSet +^6513 13853$^$@0#flagMarker_getCode +^6514 13855$^$@0#flagMarker_getCount +*0 (Datatype) +^6515 7996@-@+@0@0@2@0@8033#o_flagMarker +*7 (Struct tag) +^6516 8035@8036#@!204 +*0 (Datatype) +^6517 8037@+@=@0@0@0@0@8038#flagMarkerList +*4 (Function) +^6518 8040$^@2@0@0#flagMarkerList_new +^6519 16635@6@5@1@0@0^@2@0@0#flagMarkerList_unparse +^6520 16637$$$@0#flagMarkerList_free +^6521 16629$@0@@1@p0$@0#flagMarkerList_add +^6522 16641$^$@0#flagMarkerList_suppressError +^6523 16631$@0@g2537@0@0@1@g2537$@0#flagMarkerList_checkSuppressCounts +^6524 16643$^$@0#flagMarkerList_inIgnore +*1 (Constant) +^6525 5$#flagMarkerListBASESIZE +*7 (Struct tag) +^6526 8053@8054#@!205 +*0 (Datatype) +^6527 8055@-@+@0@0@0@0@8056#mce +^6528 8056@-@+@0@0@2@0@8057#o_mce +*7 (Struct tag) +^6529 8059@8060#@!206 +*0 (Datatype) +^6530 8061@-@+@0@0@0@0@8062#macrocache +*4 (Function) +^6531 11700$$$@0#macrocache_processUndefinedElements +^6532 11702@6@5@1@0@0$@19@3@0#macrocache_processFileElements +^6533 11694@6@5@1@0@0^@2@0@0#macrocache_unparse +^6534 11679$^@2@0@0#macrocache_create +^6535 11688$$$@0#macrocache_addEntry +^6536 11690$$$@0#macrocache_addComment +^6537 11682$$$@0#macrocache_free +^6538 11704$@0@s1@1@s1$@0#macrocache_finalize +*1 (Constant) +^6539 5$#FTBASESIZE +*2 (Enum member) +^6540 8079$#FILE_NORMAL#FILE_LSLTEMP#FILE_NODELETE#FILE_HEADER#FILE_XH#FILE_MACROS#FILE_METASTATE +*9 (Enum tag) +^6547 8079@8080#&!207 +*0 (Datatype) +^6548 8080@-@-@0@0@0@0@8081#fileType +*7 (Struct tag) +^6549 8082@8083#@!208 +*0 (Datatype) +^6550 8084@-@+@0@0@0@0@8085#ftentry +^6551 8085@-@+@0@0@2@0@8086#o_ftentry +*7 (Struct tag) +^6552 8088@8089#@!209 +*0 (Datatype) +^6553 8090@+@=@0@5@0@0@8091#fileTable +*1 (Constant) +^6554 8091@i0@0@4#fileTable_undefined +*4 (Function) +^6555 13562@6@5@1@0@0^@19@3@0#fileTable_getName +^6556 13566@6@5@1@0@0$@19@3@0#fileTable_getNameBase +^6557 13524$@0@@1@p0$@0#fileTable_addFile +^6558 13528$@0@@1@p0$@0#fileTable_addHeaderFile +^6559 13540$@0@@1@p0$@0#fileTable_addXHFile +^6560 13538$@0@@1@p0$@0#fileTable_addLibraryFile +^6561 13544$@0@@1@p0$@0#fileTable_addLCLFile +^6562 13552$$$@0#fileTable_addltemp +^6563 8113@6@2@1@0@0^@2@0@0#fileTable_create +^6564 13556$^$@0#fileTable_lookup +^6565 13550$@0@@1@p0$@0#fileTable_addCTempFile +^6566 13526$@0@@1@p0$@0#fileTable_addFileOnly +^6567 13542$@0@@1@p0$@0#fileTable_addImportFile +^6568 13546$@0@@1@p0$@0#fileTable_addMacrosFile +^6569 13548$@0@@1@p0$@0#fileTable_addMetastateFile +^6570 13558$@0@@1@p0$@0#fileTable_setFilePath +^6571 13564@6@5@1@0@0^@19@3@0#fileTable_getRootName +^6572 13530$^$@0#fileTable_isHeader +^6573 13568$$$@0#fileTable_sameBase +^6574 13570$@0@s3@1@s3$@0#fileTable_cleanup +^6575 13560$@0@@1@p0$@0#fileTable_lookupBase +^6576 13507$@0@g2537@0@0@1@g2537$@0#fileTable_printTemps +^6577 13505@6@5@1@0@0^@2@0@0#fileTable_unparse +^6578 13554$^$@0#fileTable_exists +^6579 13572$$$@0#fileTable_free +^6580 13536$^$@0#fileTable_isSpecialFile +^6581 13532$^$@0#fileTable_isSystemFile +^6582 13534$^$@0#fileTable_isXHFile +^6583 13520$$$@0#fileTable_noDelete +*7 (Struct tag) +^6584 8164@8165#@!210 +*0 (Datatype) +^6585 8166@-@+@0@0@0@0@8167#msgentry +^6586 8167@-@+@0@0@2@0@8168#o_msgentry +*7 (Struct tag) +^6587 8170@8171#@!211 +*0 (Datatype) +^6588 8172@+@=@0@5@0@0@8173#messageLog +*1 (Constant) +^6589 8173@i0@0@4#messageLog_undefined +*4 (Function) +^6590 8177@6@5@1@0@0^@2@0@0#messageLog_new +^6591 13835$@0@@1@p0$@0#messageLog_add +^6592 13837@6@5@1@0@0^@2@0@0#messageLog_unparse +^6593 13839$$$@0#messageLog_free +*1 (Constant) +^6594 5$#messageLogBASESIZE +*7 (Struct tag) +^6595 8185@8186#@!212 +*0 (Datatype) +^6596 8187@+@=@0@0@0@0@8188#clauseStack +*6 (Iterator finalizer) +^6597 0@190#end_clauseStack_elements +*5 (Iterator) +^6598 8189@190#clauseStack_elements +*4 (Function) +^6599 8195$^@2@0@0#clauseStack_new +^6600 16277$@0@@1@p0$@0#clauseStack_push +^6601 16279$@0@@1@p0$@0#clauseStack_pop +^6602 16281$^$@0#clauseStack_top +^6603 16289@6@5@1@0@0^@2@0@0#clauseStack_unparse +^6604 16293$$$@0#clauseStack_free +^6605 16291$@0@@1@p0$@0#clauseStack_clear +^6606 16283$@0@@1@p0$@0#clauseStack_switchTop +^6607 16285$@0@@1@p0$@0#clauseStack_removeFirst +^6608 16287$^$@0#clauseStack_controlDepth +*1 (Constant) +^6609 5$#clauseStackBASESIZE +*7 (Struct tag) +^6610 8214@8215#@!213 +*0 (Datatype) +^6611 8216@-@+@0@0@0@0@8217#stateEntry +*7 (Struct tag) +^6612 8219@8220#@!214 +*0 (Datatype) +^6613 8221@-@+@0@0@0@0@8222#stateRow +*7 (Struct tag) +^6614 8224@8225#@!215 +*0 (Datatype) +^6615 8226@+@=@0@0@0@0@8227#stateCombinationTable +*4 (Function) +^6616 19578$$@2@0@0#stateCombinationTable_create +^6617 19590$$$@0#stateCombinationTable_set +^6618 19592$$$@0#stateCombinationTable_update +^6619 19594$$$@0#stateCombinationTable_lookup +^6620 19596$$$@0#stateCombinationTable_lookupLoseReference +^6621 19586$$$@0#stateCombinationTable_free +^6622 19580@6@5@1@0@0^@3@0@0#stateCombinationTable_unparse +*1 (Constant) +^6623 5$#metaState_error +^6624 1024@i0@0@4#metaStateInfo_undefined +*4 (Function) +^6625 19602@6@2@1@0@0$@3@0@0#metaStateInfo_create +^6626 19624$@0@@1@p0$@0#metaStateInfo_setDefaultRefValue +^6627 19626$@0@@1@p0$@0#metaStateInfo_setDefaultParamValue +^6628 19620$^$@0#metaStateInfo_getDefaultValue +^6629 19628$^$@0#metaStateInfo_getDefaultRefValue +^6630 19630$^$@0#metaStateInfo_getDefaultParamValue +^6631 19622$^$@0#metaStateInfo_getDefaultGlobalValue +^6632 19610@6@5@1@0@0^@19@3@0#metaStateInfo_getContext +^6633 19612@6@5@1@0@0^@19@3@0#metaStateInfo_getName +^6634 19614@6@5@1@0@0^@19@3@0#metaStateInfo_getLoc +^6635 19616$^@19@2@0#metaStateInfo_getTransferTable +^6636 19618$^@19@2@0#metaStateInfo_getMergeTable +^6637 19606@6@5@1@0@0^@2@0@0#metaStateInfo_unparse +^6638 19608@6@5@1@0@0^@19@3@0#metaStateInfo_unparseValue +^6639 19604$$$@0#metaStateInfo_free +*1 (Constant) +^6640 1020@i0@0@4#metaStateTable_undefined +^6641 5$#DEFAULT_MSTABLE_SIZE +*4 (Function) +^6642 19598$@0@@1@p0$@0#metaStateTable_insert +*6 (Iterator finalizer) +^6643 0@57#end_metaStateTable_elements +*5 (Iterator) +^6644 8295@57#metaStateTable_elements +*4 (Function) +^6645 19600@6@5@1@0@0$@3@0@0#metaStateTable_unparse +*1 (Constant) +^6646 1012@i0@0@4#annotationInfo_undefined +*4 (Function) +^6647 19650$^$@0#annotationInfo_matchesContext +^6648 19652$^$@0#annotationInfo_matchesContextRef +^6649 19644@6@5@1@0@0^@19@3@0#annotationInfo_getState +^6650 19648$^$@0#annotationInfo_getValue +^6651 19640@6@5@1@0@0^@19@3@0#annotationInfo_getName +^6652 19636@6@5@1@0@0^@2@0@0#annotationInfo_create +^6653 19642@6@5@1@0@0$@19@3@0#annotationInfo_unparse +^6654 19646@6@5@1@0@0^@19@3@0#annotationInfo_getLoc +^6655 19638$$$@0#annotationInfo_free +^6656 19654@6@5@1@0@0$@19@3@0#annotationInfo_dump +^6657 19656@6@5@1@0@0@0@@1@tp0@19@3@0#annotationInfo_undump +*1 (Constant) +^6658 1021@@0@4#annotationTable_undefined +^6659 5$#DEFAULT_ANNOTTABLE_SIZE +*4 (Function) +^6660 19634$$$@0#annotationTable_insert +^6661 19632@6@5@1@0@0$@2@0@0#annotationTable_unparse +*6 (Iterator finalizer) +^6662 0@59#end_annotationTable_elements +*5 (Iterator) +^6663 8347@59#annotationTable_elements +*4 (Function) +^6664 15902$$$@0#context_pushLoc +^6665 15904$$$@0#context_popLoc +^6666 15958$$$@0#context_doMerge +^6667 15956$$$@0#context_doDump +^6668 15596$$$@0#context_resetAllFlags +^6669 8361@6@5@1@0@0^@3@0@0#context_unparseFlagMarkers +^6670 15650$@0@s1@1@s1$@0#context_enterDoWhileClause +^6671 15714$$$@0#context_hasMods +^6672 15602$^$@0#context_isSystemDir +^6673 8369@6@5@1@0@0^@19@3@0#context_selectedLibrary +^6674 8371$^$@0#context_usingPosixLibrary +^6675 8373$^$@0#context_usingAnsiLibrary +^6676 8375$^$@0#context_getLibrary +^6677 15584$@0@s1@1@s1$@0#context_setLibrary +^6678 15518$@0@s1@1@s1$@0#context_setPreprocessing +^6679 15520$@0@s1@1@s1$@0#context_clearPreprocessing +^6680 15522$^$@0#context_isPreprocessing +^6681 15526$@0@s1@1@s1$@0#context_setInCommandLine +^6682 15528$@0@s1@1@s1$@0#context_clearInCommandLine +^6683 15530$^$@0#context_isInCommandLine +^6684 15524$^$@0#context_inXHFile +^6685 15806$$$@0#context_resetErrors +^6686 15978$^$@0#context_getLinesProcessed +^6687 15980$^$@0#context_getSpecLinesProcessed +^6688 15990$^$@0#context_setBoolName +^6689 15994@6@5@1@0@0^@19@3@0#context_getBoolName +^6690 15992@6@5@1@0@0^@19@3@0#context_printBoolName +^6691 15996@6@5@1@0@0^@19@3@0#context_getFalseName +^6692 15998@6@5@1@0@0^@19@3@0#context_getTrueName +^6693 16000@6@5@1@0@0^@19@3@0#context_getLarchPath +^6694 16002@6@5@1@0@0^@19@3@0#context_getLCLImportDir +^6695 15686$^$@0#context_checkExport +^6696 15694$^$@0#context_checkGlobMod +^6697 15688$$$@0#context_checkGlobUse +^6698 15690$$$@0#context_checkAliasGlob +^6699 15692$$$@0#context_checkInternalUse +^6700 15778$$$@0#context_recordFileModifies +^6701 16006$$$@0#context_clearJustPopped +^6702 16008$$$@0#context_justPopped +^6703 15656$$$@0#context_enterTrueClause +^6704 15666$$$@0#context_enterFalseClause +^6705 15740$$$@0#context_exitClause +^6706 15828$$$@0#context_exitInnerSafe +^6707 15820$@0@s1@1@s1$@0#context_exitInnerPlain +^6708 15906$$$@0#context_inGlobalScope +^6709 15908$$$@0#context_inInnerScope +^6710 15910$$$@0#context_setProtectVars +^6711 15926$^$@0#context_getLimit +^6712 15928$^$@0#context_unlimitedMessages +^6713 15930$$$@0#context_releaseVars +^6714 15932$$$@0#context_sizeofReleaseVars +^6715 15934$$$@0#context_inProtectVars +^6716 15704$$$@0#context_hasFileAccess +^6717 15936$$$@0#context_hideShowscan +^6718 15938$$$@0#context_unhideShowscan +^6719 15598$$$@0#context_setMode +^6720 15716$$$@0#context_exitAllClauses +^6721 15718$$$@0#context_exitAllClausesQuiet +^6722 15940$$$@0#context_inHeader +^6723 15942@6@5@1@0@0^@18@2@0#context_fileTable +^6724 15946@6@5@1@0@0$@19@2@0#context_messageLog +^6725 15944@6@5@1@0@0$@18@3@0#context_tmpdir +^6726 15564$@0@s1@1@s1$@0#context_enterMTfile +^6727 15566$@0@s1@1@s1$@0#context_exitMTfile +^6728 15568$$$@0#context_enterLCLfile +^6729 15574$$$@0#context_exitLCLfile +^6730 15968$$$@0#context_enterImport +^6731 15970$$$@0#context_leaveImport +^6732 15982$@0@s1@1@s1$@0#context_processedSpecLine +^6733 15924$^$@0#context_getLCLExpect +^6734 15900$^$@0#context_msgLh +^6735 15964$@1@s1@1@$@0#context_inLCLLib +^6736 15966$@1@s1@1@$@0#context_inImport +^6737 15984$@0@s1@1@s1$@0#context_resetSpecLines +^6738 15852$$$@0#context_exitMacroCache +^6739 15552$$$@0#context_enterSuppressRegion +^6740 15562$$$@0#context_exitSuppressRegion +^6741 15836$$$@0#context_enterMacroFile +^6742 15590$$$@0#context_fileAccessTypes +^6743 15604$$$@0#context_addFileAccessType +^6744 15606$$$@0#context_removeFileAccessType +^6745 15748@6@5@1@0@0$@19@3@0#context_getParams +^6746 15600$$$@0#context_isSpecialFile +^6747 15858@6@5@1@0@0^@19@3@0#context_inFunctionName +^6748 15816$^$@0#context_currentFunctionType +^6749 15850$$$@0#context_exitCFile +^6750 15668$$$@0#context_enterConstantMacro +^6751 15620$$$@0#context_enterMacro +^6752 15674$$$@0#context_enterFunction +^6753 15744$$$@0#context_exitFunction +^6754 15808$@1@s1@1@s1$@0#context_initMod +^6755 15818$$$@0#context_enterInnerContext +^6756 15822$$$@0#context_exitInner +^6757 15700$$$@0#context_globAccess +^6758 15750@6@5@1@0@0$@19@3@0#context_getUsedGlobs +^6759 15702$$$@0#context_hasAccess +^6760 15710$$$@0#context_couldHaveAccess +^6761 15814@6@5@1@0@0$@2@0@0#context_unparse +^6762 15672$$$@0#context_setFunctionDefined +^6763 15868$$$@0#context_setFlagTemp +^6764 16016$$$@0#context_showFilelocStack +^6765 15874$^$@0#context_getFlag +^6766 15876$^$@0#context_flagOn +^6767 15790$^$@0#context_getValue +^6768 15788$@0@s1@1@s1$@0#context_setValueAndFlag +^6769 15792$^$@0#context_getCounter +^6770 15794$@0@s1@1@s1$@0#context_incCounter +^6771 15796$@0@s1@1@s1$@0#context_decCounter +^6772 15872$^$@0#context_maybeSet +^6773 15804@6@5@1@0@0^@19@3@0#context_getString +^6774 15800$@0@s1@1@s1$@0#context_setString +^6775 15860$$$@0#context_userSetFlag +^6776 15922$^$@0#context_getExpect +^6777 15698@6@5@1@0@0$@19@3@0#context_modList +^6778 15670@6@5@1@0@0^@19@2@0#context_getHeader +^6779 15696$$$@0#context_usedGlobal +^6780 15592$$$@0#context_resetModeFlags +^6781 15810$$$@0#context_typeofZero +^6782 15812$$$@0#context_typeofOne +^6783 15834$$$@0#context_enterFile +^6784 15622$$$@0#context_enterUnknownMacro +^6785 15784$$$@0#context_getCommentMarkerChar +^6786 15782$$$@0#context_setCommentMarkerChar +^6787 15950$^$@0#context_inMacroConstant +^6788 15742$$$@0#context_returnFunction +^6789 15848$$$@0#context_processingMacros +^6790 15854$$$@0#context_saveLocation +^6791 15856@6@5@1@0@0$@2@0@0#context_getSaveLocation +^6792 15988$$$@0#context_setFileId +^6793 15882$@1@g2536@6@5@1@g2536$@0#context_setFilename +^6794 15862$$$@0#context_fileSetFlag +^6795 15706@6@5@1@0@0^@2@0@0#context_unparseAccess +^6796 15838$^$@0#context_inFunction +^6797 15840$^$@0#context_inFunctionLike +^6798 16010$$$@0#context_setMacroMissingParams +^6799 16012$$$@0#context_resetMacroMissingParams +^6800 16014$^$@0#context_isMacroMissingParams +^6801 15952$^$@0#context_inMacroUnknown +^6802 15960@6@5@1@0@0^@19@3@0#context_getDump +^6803 15962@6@5@1@0@0^@19@3@0#context_getMerge +^6804 15560$$$@0#context_incLineno +^6805 15550$^$@0#context_inSuppressRegion +^6806 15726$$$@0#context_exitTrueClause +^6807 15888$@1@s1@1@s1$@0#context_destroyMod +^6808 15536$$$@0#context_addMacroCache +^6809 15844$$$@0#context_processAllMacros +^6810 15538$$$@0#context_addComment +^6811 15556$$$@0#context_enterSuppressLine +^6812 15548$^$@0#context_inSuppressZone +^6813 15576$$$@0#context_dumpModuleAccess +^6814 15588$$$@0#context_loadModuleAccess +^6815 15974$^$@0#context_inIterDef +^6816 15972$^$@0#context_inMacro +^6817 15976$^$@0#context_inIterEnd +^6818 15712$^$@0#context_getRetType +^6819 15884$$$@0#context_enterIterDef +^6820 15886$$$@0#context_enterIterEnd +^6821 15756$$$@0#context_addBoolAccess +^6822 15760$$$@0#context_canAccessBool +^6823 15746$$$@0#context_quietExitFunction +^6824 15890$^$@0#context_msgBoolInt +^6825 15892$^$@0#context_msgCharInt +^6826 15894$^$@0#context_msgEnumInt +^6827 15896$^$@0#context_msgPointerArith +^6828 15898$^$@0#context_msgStrictOps +^6829 15826$$$@0#context_exitStructInnerContext +^6830 15824$$$@0#context_enterStructInnerContext +^6831 15842$^$@0#context_inRealFunction +^6832 15642$$$@0#context_exitOrClause +^6833 15640$$$@0#context_exitAndClause +^6834 15626$$$@0#context_enterOrClause +^6835 15624$$$@0#context_enterAndClause +^6836 15654$$$@0#context_enterForClause +^6837 15652$$$@0#context_enterWhileClause +^6838 15648$$$@0#context_enterIterClause +^6839 15728$$$@0#context_exitIterClause +^6840 15732$$$@0#context_exitWhileClause +^6841 15734$$$@0#context_exitDoWhileClause +^6842 15736$$$@0#context_exitForClause +^6843 15708@6@5@1@0@0^@2@0@0#context_unparseClauses +^6844 15754@6@5@1@0@0^@19@3@0#context_getGlobs +^6845 15768@6@5@1@0@0$@2@0@0#context_getMessageAnnote +^6846 15766$$$@0#context_clearMessageAnnote +^6847 15764$$$@0#context_hasMessageAnnote +^6848 15762$$$@0#context_setMessageAnnote +^6849 15544$$$@0#context_suppressFlagMsg +^6850 15546$$$@0#context_suppressNotFlagMsg +^6851 15662$$$@0#context_enterCaseClause +^6852 15658$$$@0#context_enterSwitch +^6853 15660$$$@0#context_exitSwitch +^6854 15798$$$@0#context_showFunction +^6855 15954$$$@0#context_setShownFunction +^6856 15774$$$@0#context_clearAliasAnnote +^6857 15776@6@5@1@0@0$@3@0@0#context_getAliasAnnote +^6858 15772$$$@0#context_hasAliasAnnote +^6859 15770$$$@0#context_setAliasAnnote +^6860 15628$@1@s1@1@$@0#context_inDeepLoop +^6861 15632$@1@s1@1@$@0#context_inDeepLoopSwitch +^6862 15638$@1@s1@1@$@0#context_inConditional +^6863 15630$@1@s1@1@$@0#context_inDeepSwitch +^6864 15634$$$@0#context_breakClause +^6865 15636$$$@0#context_nextBreakClause +^6866 15912$@1@s1@1@$@0#context_anyErrors +^6867 15914$@0@s1@1@s1$@0#context_hasError +^6868 15916$@1@s1@1@$@0#context_numErrors +^6869 15918$$$@0#context_neednl +^6870 15920$$$@0#context_setNeednl +^6871 15986$@1@s1@1@$@0#context_inGlobalContext +^6872 15948$@1@s1@1@$@0#context_inMacroFunction +^6873 8775@6@5@1@0@0^@19@3@0#context_moduleName +^6874 15780$$$@0#context_recordFileGlobals +^6875 15558$@0@g2537@0@0@1@g2537$@0#context_checkSuppressCounts +^6876 15612$@1@s1@1@$@0#context_inFunctionHeader +^6877 15608$@0@s1@1@s1$@0#context_enterFunctionHeader +^6878 15610$@0@s1@1@s1$@0#context_exitFunctionHeader +^6879 15618$@1@s1@1@$@0#context_inFunctionDeclaration +^6880 15614$@0@s1@1@s1$@0#context_enterFunctionDeclaration +^6881 15616$@0@s1@1@s1$@0#context_exitFunctionDeclaration +^6882 8793$^$@0#context_boolImplementationType +^6883 16022@6@5@1@0@0^@19@3@0#context_lookupAnnotation +^6884 16018@6@5@1@0@0@1@s1@1@@19@3@0#context_getMetaStateTable +^6885 16020@6@5@1@0@0@1@s1@1@@19@3@0#context_lookupMetaStateInfo +^6886 16024$@0@s1@1@s1$@0#context_addAnnotation +^6887 16026$@0@s1@1@s1$@0#context_addMetaState +^6888 16028@6@5@1@0@0@1@s1@1@@3@0@0#context_createValueTable +^6889 8807@6@5@1@0@0@1@s1@1@@3@0@0#context_createGlobalMarkerValueTable +*1 (Constant) +^6890 23$#RCFILE +^6891 1117@@0@5#LARCH_PATH +^6892 23$#LCLIMPORTDIR#LLSTDLIBS_NAME#LLSTRICTLIBS_NAME#LLUNIXLIBS_NAME#LLUNIXSTRICTLIBS_NAME#LLPOSIXLIBS_NAME#LLPOSIXSTRICTLIBS_NAME +^6899 1117@@0@5#REFSNAME +^6900 23$#DUMP_SUFFIX +^6901 5$#MAX_NAME_LENGTH#MAX_LINE_LENGTH#MAX_DUMP_LINE_LENGTH#MINLINELEN +^6905 23$#LLMRCODE#PPMRCODE#DEFAULT_SYSTEMDIR +^6908 4$#DEFAULT_COMMENTCHAR +^6909 5$#DEFAULT_LINELEN#DEFAULT_BUGSLIMIT#DEFAULT_INDENTSPACES#DEFAULT_EXTERNALNAMELEN#DEFAULT_INTERNALNAMELEN#DEFAULT_CONTROLNESTDEPTH#DEFAULT_STRINGLITERALLEN#DEFAULT_INCLUDENEST#DEFAULT_NUMSTRUCTFIELDS#DEFAULT_NUMENUMMEMBERS#DEFAULT_LIMIT +^6920 4$#PFX_UPPERCASE#PFX_LOWERCASE#PFX_ANY#PFX_DIGIT#PFX_NOTUPPER#PFX_NOTLOWER#PFX_ANYLETTER#PFX_ANYLETTERDIGIT +^6928 23$#DEFAULT_BOOLTYPE#PRAGMA_EXPAND +^6930 5$#PRAGMA_LEN_EXPAND#MAX_PRAGMA_LEN +^6932 16$#LCLINT_LIBVERSION +^6933 23$#BEFORE_COMMENT_MARKER#AFTER_COMMENT_MARKER#SYSTEM_LIBDIR#DEFAULT_LARCHPATH#DEFAULT_LCLIMPORTDIR +*3 (Variable) +^6938 2|@1|^#g_expectingTypeName +*4 (Function) +^6939 9105@6@5@1@0@0$@18@3@0#coerceId +^6940 9107@6@5@1@0@0$@19@3@0#coerceIterId +^6941 8815@6@5@1@0@0$@19@3@0#LastIdentifier +^6942 20370$$$@33#exprNode_checkAllMods +^6943 20392$$$@33#exprNode_checkCallModifyVal +^6944 20378$$$@0#exprChecks_checkEmptyMacroBody +^6945 20394$$$@0#exprChecks_checkExport +^6946 20376$$$@33#exprNode_checkFunction +^6947 20374$$$@33#exprNode_checkFunctionBody +^6948 20380$$$@33#exprNode_checkIterBody +^6949 20382$$$@33#exprNode_checkIterEnd +^6950 20372$$$@33#exprNode_checkMacroBody +^6951 20358$$$@33#exprNode_checkModify +^6952 20360$$$@33#exprNode_checkModifyVal +^6953 20362$$$@0#exprChecks_checkNullReturn +^6954 20366$$$@33#exprNode_checkPred +^6955 20364$$$@33#exprNode_checkReturn +^6956 20352$$$@33#exprNode_checkStatement +^6957 20368$$$@0#exprChecks_checkUsedGlobs +*8 (Union tag) +^6958 8852@8853#$!216 +*0 (Datatype) +^6959 19538@-@-@0@0@0@0@8854#YYSTYPE +*3 (Variable) +^6960 23|@1|6@0@0&#yytext +*4 (Function) +^6961 8868$$$@0#printState +^6962 17452$$$@0#lsllex +*7 (Struct tag) +^6963 8877@8873#@yy_buffer_state +*0 (Datatype) +^6964 8874@-@+@0@0@0@0@8875#YY_BUFFER_STATE +^6965 6@-@-@0@0@0@0@8876#yy_size_t +*4 (Function) +^6966 10380$$$@0#yyrestart +^6967 9025$$$@0#yy_switch_to_buffer +^6968 8883$$$@0#yy_load_buffer_state +^6969 9030$$@3@0@0#yy_create_buffer +^6970 9033$$$@0#yy_delete_buffer +^6971 9038$$$@0#yy_init_buffer +^6972 9041$$$@0#yy_flush_buffer +^6973 9044$$@3@0@0#yy_scan_buffer +^6974 9047$$@3@0@0#yy_scan_string +^6975 9050$$@3@0@0#yy_scan_bytes +*0 (Datatype) +^6976 3@-@-@0@0@0@0@8906#YY_CHAR +^6977 5@-@-@0@0@0@0@8907#yy_state_type +*8 (Union tag) +^6978 8930@8931#$!217 +*0 (Datatype) +^6979 4842@+@=@0@5@0@0@8932#fileIdList +*6 (Iterator finalizer) +^6980 0@195#end_fileIdList_elements +*5 (Iterator) +^6981 8935@195#fileIdList_elements +*1 (Constant) +^6982 23$#INCLUDE_VAR#CONNECTSTR +^6984 4$#CONNECTCHAR#SEPCHAR +^6986 23$#DEFAULT_TMPDIR +*7 (Struct tag) +^6987 9065@9066#@skeyword +*3 (Variable) +^6988 9067|@1|^#s_parsetable#s_keytable +^6990 2946|@1|0@5@2&#g_currentImports +^6991 4092|@1|0@0@2&#g_symtab +*8 (Union tag) +^6992 9128@9129#$!218 +*4 (Function) +^6993 19660$@0@@1@s0@3@0@0#mttok_create +^6994 19658@6@5@1@0@0^@2@0@0#mttok_unparse +^6995 19664$$$@0#mttok_free +^6996 19662@6@5@1@0@0@0@@1@p0@2@0@0#mttok_stealLoc +^6997 19666$^$@0#mttok_isIdentifier +^6998 9557$@0@s1@1@s1$@0#mtreader_readFile +^6999 9559$@0@s1@1@s1$@0#mtreader_processDeclaration +^7000 9561$@0@s1@1@s1$@0#mtreader_processGlobalDeclaration +^7001 19668$^@3@0@0#mtDeclarationNode_create +^7002 19678@6@5@1@0@0^@19@3@0#mtDeclarationNode_getName +^7003 19676@6@5@1@0@0^@19@3@0#mtDeclarationNode_getLoc +^7004 19670@6@5@1@0@0^@3@0@0#mtDeclarationNode_unparse +^7005 19672$@0@s1@1@s1$@0#mtDeclarationNode_process +^7006 19674$$$@0#mtDeclarationNode_free +*2 (Enum member) +^7007 9168$#MTP_DEAD#MTP_CONTEXT#MTP_VALUES#MTP_DEFAULTS#MTP_DEFAULTVALUE#MTP_ANNOTATIONS#MTP_MERGE#MTP_TRANSFERS#MTP_PRECONDITIONS#MTP_POSTCONDITIONS#MTP_LOSERS +*9 (Enum tag) +^7018 9168@9169#&!219 +*0 (Datatype) +^7019 9169@-@-@0@0@0@0@9170#mtPieceKind +*1 (Constant) +^7020 1051@i0@0@4#mtDeclarationPiece_undefined +*4 (Function) +^7021 19692@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createContext +^7022 19694@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createValues +^7023 19696@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createDefaults +^7024 19698@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createValueDefault +^7025 19700@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createAnnotations +^7026 19702@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createMerge +^7027 19704@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createTransfers +^7028 19708@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createPostconditions +^7029 19706@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createPreconditions +^7030 19710@6@5@1@0@0^@3@0@0#mtDeclarationPiece_createLosers +^7031 19716@6@5@1@0@0^@19@3@0#mtDeclarationPiece_getContext +^7032 19718@6@5@1@0@0@0@@1@p0@2@0@0#mtDeclarationPiece_stealContext +^7033 19736$^@19@3@0#mtDeclarationPiece_getValues +^7034 19720$^@19@3@0#mtDeclarationPiece_getDefaults +^7035 19724$^@19@3@0#mtDeclarationPiece_getAnnotations +^7036 19726$^@19@3@0#mtDeclarationPiece_getMerge +^7037 19728@6@5@1@0@0^@19@3@0#mtDeclarationPiece_getTransfers +^7038 19732@6@5@1@0@0^@19@3@0#mtDeclarationPiece_getPostconditions +^7039 19730@6@5@1@0@0^@19@3@0#mtDeclarationPiece_getPreconditions +^7040 19722@6@5@1@0@0^@19@3@0#mtDeclarationPiece_getDefaultValue +^7041 19734@6@5@1@0@0^@19@3@0#mtDeclarationPiece_getLosers +^7042 19714$^$@0#mtDeclarationPiece_matchKind +^7043 19738$$$@0#mtDeclarationPiece_free +^7044 19712@6@5@1@0@0^@2@0@0#mtDeclarationPiece_unparse +*1 (Constant) +^7045 1054@i0@0@4#mtDeclarationPieces_undefined +*4 (Function) +^7046 19680@6@5@1@0@0^@3@0@0#mtDeclarationPieces_create +^7047 19682@6@5@1@0@0@0@@1@p0@2@0@0#mtDeclarationPieces_append +^7048 19686@6@5@1@0@0^@19@2@0#mtDeclarationPieces_findPiece +^7049 19684@6@5@1@0@0^@3@0@0#mtDeclarationPieces_unparse +^7050 19688$$$@0#mtDeclarationPieces_free +*2 (Enum member) +^7051 9239$#MTC_ANY#MTC_PARAM#MTC_REFERENCE#MTC_CLAUSE +*9 (Enum tag) +^7055 9239@9240#&!220 +*0 (Datatype) +^7056 9240@-@-@0@0@0@0@9241#mtContextKind +*1 (Constant) +^7057 1057@i0@0@4#mtContextNode_undefined +*4 (Function) +^7058 19764@6@5@1@0@0^@3@0@0#mtContextNode_unparse +^7059 9248@6@5@1@0@0^@3@0@0#mtContextNode_createAny +^7060 19748@6@5@1@0@0^@3@0@0#mtContextNode_createParameter +^7061 19750@6@5@1@0@0^@3@0@0#mtContextNode_createReference +^7062 19752@6@5@1@0@0^@3@0@0#mtContextNode_createClause +^7063 19754$$$@0#mtContextNode_free +^7064 19770$^$@0#mtContextNode_isRef +^7065 19768$^$@0#mtContextNode_isParameter +^7066 19766$^$@0#mtContextNode_isClause +^7067 19756$^$@0#mtContextNode_matchesEntry +^7068 19758$^$@0#mtContextNode_matchesRef +^7069 19760$^$@0#mtContextNode_matchesRefStrict +^7070 19772$^@3@0@0#mtValuesNode_create +^7071 19774$$$@0#mtValuesNode_free +^7072 19776@6@5@1@0@0^@3@0@0#mtValuesNode_unparse +^7073 19778$^@3@0@0#mtDefaultsNode_create +^7074 19780$$$@0#mtDefaultsNode_free +^7075 19782@6@5@1@0@0^@3@0@0#mtDefaultsNode_unparse +^7076 19905@6@5@1@0@0^@3@0@0#mtDefaultsDecl_unparse +^7077 19901$^@3@0@0#mtDefaultsDecl_create +^7078 19903$$$@0#mtDefaultsDecl_free +*0 (Datatype) +^7079 1069@-@+@0@0@2@0@9300#o_mtDefaultsDecl +*1 (Constant) +^7080 1066@i0@0@4#mtDefaultsDeclList_undefined +*4 (Function) +^7081 19897@6@5@1@0@0^@3@0@0#mtDefaultsDeclList_unparseSep +^7082 9312@6@5@1@0@0^@2@0@0#mtDefaultsDeclList_new +^7083 19889@6@5@1@0@0^@2@0@0#mtDefaultsDeclList_single +^7084 19891@6@5@1@0@0@0@@1@p0$@0#mtDefaultsDeclList_add +^7085 19893@6@5@1@0@0@0@@1@p0$@0#mtDefaultsDeclList_prepend +^7086 19895@6@5@1@0@0$@2@0@0#mtDefaultsDeclList_unparse +^7087 19899$$$@0#mtDefaultsDeclList_free +*1 (Constant) +^7088 5$#mtDefaultsDeclListBASESIZE +*6 (Iterator finalizer) +^7089 0@89#end_mtDefaultsDeclList_elements +*5 (Iterator) +^7090 9323@89#mtDefaultsDeclList_elements +*4 (Function) +^7091 19784$^@3@0@0#mtAnnotationsNode_create +^7092 19788@6@5@1@0@0^@3@0@0#mtAnnotationsNode_unparse +^7093 19786$$$@0#mtAnnotationsNode_free +*1 (Constant) +^7094 1075@i0@0@4#mtAnnotationList_undefined +*4 (Function) +^7095 19810@6@5@1@0@0^@3@0@0#mtAnnotationList_unparseSep +^7096 9344@6@5@1@0@0^@2@0@0#mtAnnotationList_new +^7097 19802@6@5@1@0@0^@2@0@0#mtAnnotationList_single +^7098 19804@6@5@1@0@0@0@@1@p0$@0#mtAnnotationList_add +^7099 19806@6@5@1@0@0@0@@1@p0$@0#mtAnnotationList_prepend +^7100 19808@6@5@1@0@0$@2@0@0#mtAnnotationList_unparse +^7101 19812$$$@0#mtAnnotationList_free +*1 (Constant) +^7102 5$#mtAnnotationListBASESIZE +*6 (Iterator finalizer) +^7103 0@95#end_mtAnnotationList_elements +*5 (Iterator) +^7104 9355@95#mtAnnotationList_elements +*4 (Function) +^7105 19818@6@5@1@0@0^@3@0@0#mtAnnotationDecl_unparse +^7106 19814$^@3@0@0#mtAnnotationDecl_create +^7107 19816@6@5@1@0@0@0@@1@p0@2@0@0#mtAnnotationDecl_stealContext +^7108 19790$^@3@0@0#mtMergeNode_create +^7109 19792$$$@0#mtMergeNode_free +^7110 19794@6@5@1@0@0^@3@0@0#mtMergeNode_unparse +*0 (Datatype) +^7111 1096@-@+@0@0@2@0@9380#o_mtTransferClause +*1 (Constant) +^7112 1093@i0@0@4#mtTransferClauseList_undefined +*4 (Function) +^7113 19835@6@5@1@0@0^@3@0@0#mtTransferClauseList_unparseSep +^7114 9392@6@5@1@0@0^@2@0@0#mtTransferClauseList_new +^7115 19827@6@5@1@0@0^@2@0@0#mtTransferClauseList_single +^7116 19829@6@5@1@0@0@0@@1@p0$@0#mtTransferClauseList_add +^7117 19831@6@5@1@0@0@0@@1@p0$@0#mtTransferClauseList_prepend +^7118 19833@6@5@1@0@0$@2@0@0#mtTransferClauseList_unparse +^7119 19837$$$@0#mtTransferClauseList_free +*1 (Constant) +^7120 5$#mtTransferClauseListBASESIZE +*6 (Iterator finalizer) +^7121 0@107#end_mtTransferClauseList_elements +*5 (Iterator) +^7122 9403@107#mtTransferClauseList_elements +*4 (Function) +^7123 19843@6@5@1@0@0^@3@0@0#mtTransferClause_unparse +^7124 19839$^@3@0@0#mtTransferClause_create +^7125 19841$$$@0#mtTransferClause_free +*0 (Datatype) +^7126 1102@-@+@0@0@2@0@9419#o_mtLoseReference +*1 (Constant) +^7127 1099@i0@0@4#mtLoseReferenceList_undefined +*4 (Function) +^7128 19872@6@5@1@0@0^@3@0@0#mtLoseReferenceList_unparseSep +^7129 9431@6@5@1@0@0^@2@0@0#mtLoseReferenceList_new +^7130 19864@6@5@1@0@0^@2@0@0#mtLoseReferenceList_single +^7131 19866@6@5@1@0@0@0@@1@p0$@0#mtLoseReferenceList_add +^7132 19868@6@5@1@0@0@0@@1@p0$@0#mtLoseReferenceList_prepend +^7133 19870@6@5@1@0@0$@2@0@0#mtLoseReferenceList_unparse +^7134 19874$$$@0#mtLoseReferenceList_free +*1 (Constant) +^7135 5$#mtLoseReferenceListBASESIZE +*6 (Iterator finalizer) +^7136 0@111#end_mtLoseReferenceList_elements +*5 (Iterator) +^7137 9442@111#mtLoseReferenceList_elements +*4 (Function) +^7138 19880@6@5@1@0@0^@3@0@0#mtLoseReference_unparse +^7139 19876$^@3@0@0#mtLoseReference_create +^7140 19878$$$@0#mtLoseReference_free +*2 (Enum member) +^7141 9456$#MTAK_VALUE#MTAK_ERROR +*9 (Enum tag) +^7143 9456@9457#&!221 +*4 (Function) +^7144 19855$$$@0#mtTransferAction_free +^7145 19853@6@5@1@0@0^@3@0@0#mtTransferAction_unparse +^7146 19845$^@3@0@0#mtTransferAction_createValue +^7147 19851@6@5@1@0@0^@19@3@0#mtTransferAction_getMessage +^7148 19847$^@3@0@0#mtTransferAction_createError +^7149 19849$^@3@0@0#mtTransferAction_createErrorMessage +*2 (Enum member) +^7150 9477$#MTMK_VALUE#MTMK_STAR +*9 (Enum tag) +^7152 9477@9478#&!222 +*4 (Function) +^7153 19913$$$@0#mtMergeItem_free +^7154 19911@6@5@1@0@0^@3@0@0#mtMergeItem_unparse +^7155 19907$^@3@0@0#mtMergeItem_createValue +^7156 19909$^@3@0@0#mtMergeItem_createStar +^7157 19919@6@5@1@0@0^@3@0@0#mtMergeClause_unparse +^7158 19915$$@3@0@0#mtMergeClause_create +^7159 19917$$$@0#mtMergeClause_free +*0 (Datatype) +^7160 1090@-@+@0@0@2@0@9509#o_mtMergeClause +*1 (Constant) +^7161 1087@i0@0@4#mtMergeClauseList_undefined +*4 (Function) +^7162 19936@6@5@1@0@0^@3@0@0#mtMergeClauseList_unparseSep +^7163 9521@6@5@1@0@0^@2@0@0#mtMergeClauseList_new +^7164 19928@6@5@1@0@0^@2@0@0#mtMergeClauseList_single +^7165 19930@6@5@1@0@0@0@@1@p0$@0#mtMergeClauseList_add +^7166 19932@6@5@1@0@0@0@@1@p0$@0#mtMergeClauseList_prepend +^7167 19934@6@5@1@0@0$@2@0@0#mtMergeClauseList_unparse +^7168 19938$$$@0#mtMergeClauseList_free +*1 (Constant) +^7169 5$#mtMergeClauseListBASESIZE +*6 (Iterator finalizer) +^7170 0@103#end_mtMergeClauseList_elements +*5 (Iterator) +^7171 9532@103#mtMergeClauseList_elements +*4 (Function) +^7172 10378$$$@0#mtparse +^7173 9546$@0@s1@1@s1$@0#mtscanner_reset +^7174 9548$@0@s1@1@s1,p0$@0#mtlex +^7175 9555$@0@@1@p0$@0#mtscanner_lookupType +*1 (Constant) +^7176 5$#MT_TOKENTABLESIZE +*8 (Union tag) +^7177 9566@9567#$!223 +*3 (Variable) +^7178 5|@1|^#mtdebug +*0 (Datatype) +^7179 988@-@+@0@5@18@0@9581#d_exprNode +*7 (Struct tag) +^7180 9583@9584#@!224 +*0 (Datatype) +^7181 9585@+@=@0@0@0@0@9586#exprNodeSList +*6 (Iterator finalizer) +^7182 0@199#end_exprNodeSList_elements +*5 (Iterator) +^7183 9587@199#exprNodeSList_elements +*4 (Function) +^7184 9589$$@2@0@0#exprNodeSList_new +^7185 16476$$@2@0@0#exprNodeSList_singleton +^7186 16472$$$@0#exprNodeSList_addh +^7187 16478@6@5@1@0@0$@2@0@0#exprNodeSList_unparse +^7188 16480$$$@0#exprNodeSList_free +^7189 16474$$$@0#exprNodeSList_append +*1 (Constant) +^7190 5$#exprNodeSListBASESIZE +*6 (Iterator finalizer) +^7191 0@121#end_constraintList_elements_private_only +*5 (Iterator) +^7192 9938@121#constraintList_elements_private_only +*6 (Iterator finalizer) +^7193 0@121#end_constraintList_elements_private +*5 (Iterator) +^7194 9940@121#constraintList_elements_private +*7 (Struct tag) +^7195 10224@10168#@cppBuffer +*0 (Datatype) +^7196 10168@-@+@0@0@0@0@10169#cppBuffer +*7 (Struct tag) +^7197 10261@10170#@cppOptions +*0 (Datatype) +^7198 10170@-@+@0@0@0@0@10171#cppOptions +*7 (Struct tag) +^7199 10325@10172#@hashnode +*0 (Datatype) +^7200 10172@-@+@0@0@0@0@10173#cppHashNode +*2 (Enum member) +^7201 10174$#CPP_EOF#CPP_OTHER#CPP_COMMENT#CPP_HSPACE#CPP_VSPACE#CPP_NAME#CPP_NUMBER#CPP_CHAR#CPP_STRING#CPP_DIRECTIVE#CPP_LPAREN#CPP_RPAREN#CPP_LBRACE#CPP_RBRACE#CPP_COMMA#CPP_SEMICOLON#CPP_3DOTS#CPP_POP +*9 (Enum tag) +^7219 10174@10175#&cpp_token +*7 (Struct tag) +^7220 10230@10176#@cppReader +*0 (Datatype) +^7221 10176@-@+@0@0@0@0@10177#cppReader +*3 (Variable) +^7222 10177|@1|^#g_cppState +*4 (Function) +^7223 10391$$$@0#cppProcess +^7224 10393$$$@0#cppAddIncludeDir +^7225 10183$$$@0#cppReader_initMod +^7226 10395$$$@0#cppDoDefine +^7227 10397$$$@0#cppDoUndefine +^7228 10189$$$@0#cppReader_saveDefinitions +^7229 10191$$$@0#cppReader_initialize +*0 (Datatype) +^7230 10172@-@+@0@0@0@0@10192#HASHNODE +^7231 10197@-@+@0@0@0@0@10198#parseUnderflow +^7232 10203@-@+@0@0@0@0@10204#parseCleanup +*7 (Struct tag) +^7233 10207@10205#@parse_marker +^7234 10210@10208#@arglist +*4 (Function) +^7235 10762$$$@0#cppGetToken +^7236 10639$$$@0#cppSkipHspace +^7237 10782$$$@0#cppCleanup +*7 (Struct tag) +^7238 10298@10219#@file_name_list +^7239 10280@10222#@if_stack +^7240 0@10225#@cpp_pending +^7241 10768@10226#@file_name_map_list +*1 (Constant) +^7242 5$#CPP_STACK_MAX#cppReader_fatalErrorLimit +*4 (Function) +^7244 10811$^$@0#cppBufPeek +^7245 10806$@0@@1@s0@19@2@0@S:2.0.0.fbuffer.tp0$#cppReader_getBufferSafe +^7246 10828$^@19@2@0#cppBuffer_prevBuffer +*2 (Enum member) +^7247 10259$#DUMP_NONE#DUMP_NAMES#DUMP_DEFINITIONS +*9 (Enum tag) +^7250 10259@10260#&!225 +*2 (Enum member) +^7251 10266$#T_NONE#T_DEFINE#T_INCLUDE#T_INCLUDE_NEXT#T_IFDEF#T_IFNDEF#T_IF#T_ELSE#T_PRAGMA#T_ELIF#T_UNDEF#T_LINE#T_ERROR#T_WARNING#T_ENDIF#T_IDENT#T_SPECLINE#T_DATE#T_FILE#T_BASE_FILE#T_INCLUDE_LEVEL#T_VERSION#T_SIZE_TYPE#T_PTRDIFF_TYPE#T_WCHAR_TYPE#T_USER_LABEL_PREFIX_TYPE#T_REGISTER_PREFIX_TYPE#T_TIME#T_CONST#T_MACRO#T_DISABLED#T_SPEC_DEFINED#T_PCSTRING#T_UNUSED +*9 (Enum tag) +^7285 10266@10267#&node_type +*7 (Struct tag) +^7286 10272@10268#@macrodef +*0 (Datatype) +^7287 10268@-@+@0@0@0@0@10269#MACRODEF +*7 (Struct tag) +^7288 10279@10270#@definition +*0 (Datatype) +^7289 10270@-@+@0@0@0@0@10273#DEFINITION +*7 (Struct tag) +^7290 10276@10274#@reflist +*8 (Union tag) +^7291 10277@10278#$!226 +*0 (Datatype) +^7292 10222@-@+@0@0@0@0@10281#cppIfStackFrame +*4 (Function) +^7293 10680$$$@0#cppBuffer_lineAndColumn +^7294 10683@6@5@1@0@0$@19@2@0#cppReader_fileBuffer +^7295 10612$$$@0#cppReader_growBuffer +^7296 10853$$$@0#cppReader_parseEscape +^7297 10670$@0@@1@p0@19@2@0#cppReader_popBuffer +^7298 10643$$$@0#cppReader_skipRestOfLine +*1 (Constant) +^7299 23$#GCC_INCLUDE_DIR#GCC_INCLUDE_DIR2 +*7 (Struct tag) +^7301 10765@10296#@file_name_map +*4 (Function) +^7302 10620$@0@@1@p0,p1$@0@S:2.0.0.fopts.tp0,fmax_include_len.tp0$#cppReader_addIncludeChain +^7303 10614$$$@0#cppReader_define +^7304 10780$$$@0#cppReader_finish +^7305 10778$$$@0#cppReader_init +^7306 10624$$$@0#cppOptions_init +^7307 10797$@0@@1@p0$@0#cppReader_initializeReader +^7308 10800$$$@0#cppReader_startProcess +^7309 10608$^$@0#isIdentifierChar +*1 (Constant) +^7310 5$#INCLUDE_LEN_FUDGE +*4 (Function) +^7311 10654$$$@0#cppReader_checkMacroName +*7 (Struct tag) +^7312 10841@10317#@operation +*4 (Function) +^7313 10843$$@3@0@0#cppReader_parseNumber +*1 (Constant) +^7314 5$#CPP_HASHSIZE +*8 (Union tag) +^7315 10321@10322#$hashval +*4 (Function) +^7316 10899$@0@s1@1@s1,tp0$@0#cppReader_deleteMacro +^7317 10902$$@19@2@0#cppReader_install +^7318 10907$$$@0#cppReader_hashCleanup +^7319 10894@6@5@1@0@0$@19@2@0#cppReader_lookup +^7320 10897@6@5@1@0@0$@19@2@0#cppReader_lookupExpand +^7321 10341$$$@0#cppReader_saveHashtab +^7322 10343$$$@0#cppReader_restoreHashtab +^7323 10891$$$@0#hashf +^7324 10905$$@19@2@0#cppReader_installMacro +^7325 10919$$$@0#cppReader_fatalError +^7326 10921@6@0@6@0@0$$@0#cppReader_pfatalWithName +^7327 10925$$$@0#cppReader_errorLit +^7328 10941$$$@0#cppReader_pedwarnWithLine +^7329 10927$$$@0#cppReader_error +^7330 10931$$$@0#cppReader_warning +^7331 10929$$$@0#cppReader_warningLit +^7332 10935$$$@0#cppReader_pedwarn +^7333 10933$$$@0#cppReader_pedwarnLit +^7334 10937$$$@0#cppReader_errorWithLine +^7335 10943$$$@0#cppReader_perrorWithName +^7336 20446$@1@g2536@14@5,g2545@13@0,g2546@14@5,g2547@14@5,g2538@14@0,g2537@12@0,s1,s3@1@g2536,g2545,g2546,g2547,g2538,s1,s3$@0#main +^7337 20474@6@0@6@0@0$$@0#llexit +^7338 20440$$$@0#showHerald +^7339 10382$$$@0#ylparse +^7340 10384$$$@0#lslparse +^7341 15388$$$@0#dumpState +^7342 15396$$$@0#loadState +^7343 10405$$$@0#loadStandardState +^7344 15384$$$@0#lcllib_isSkipHeader +^7345 10861$$$@0#cppReader_parseExpression +*1 (Constant) +^7346 23$#LCLINT_MAINTAINER#CPP_VERSION +^7348 5$#MAXPATHLEN +*2 (Enum member) +^7349 10410$#OSD_FILEFOUND#OSD_FILENOTFOUND#OSD_PATHTOOLONG +*9 (Enum tag) +^7352 10410@10411#&!227 +*0 (Datatype) +^7353 10411@-@-@0@0@0@0@10412#filestatus +*4 (Function) +^7354 16211@6@5@1@0@0^@2@0@0#LSLRootName +^7355 16219$@0@@1@tp2$@0#osd_getPath +^7356 16223$@0@@1@tp2$@0#osd_getExePath +^7357 16227$^$@0#osd_fileExists +^7358 16213@6@5@1@0@0^@19@3@0#osd_getEnvironment +^7359 16217$@0@@1@tp1$@0#osd_findOnLarchPath +^7360 10426@6@5@1@0@0^@19@3@0#osd_getHomeDir +^7361 16233@6@5@1@0@0$@19@3@0#osd_getEnvironmentVariable +*1 (Constant) +^7362 5$#CALL_SUCCESS +*4 (Function) +^7363 16237$@0@s3@1@s3$@0#osd_system +^7364 16241$@0@s3@1@s3$@0#osd_unlink +^7365 16245@6@5@1@0@0$@3@0@0#osd_fixDefine +^7366 16247$$$@0#osd_fileIsReadable +^7367 16249$^$@0#osd_isConnectChar +^7368 10440$$$@0#osd_getPid +*1 (Constant) +^7369 5$#IMPORT_FOUND#SKIP_INCLUDE#IMPORT_NOT_FOUND#STDC_VALUE +^7373 4$#PATH_SEPARATOR +^7374 23$#SIZE_TYPE#PTRDIFF_TYPE#WCHAR_TYPE#USER_LABEL_PREFIX#REGISTER_PREFIX +*2 (Enum member) +^7379 10562$#same_file#enter_file#leave_file +*9 (Enum tag) +^7382 10562@10563#&file_change_code +*7 (Struct tag) +^7383 10568@10569#@directive +*1 (Constant) +^7384 10220$#SELF_DIR_DUMMY +*7 (Struct tag) +^7385 10599@10600#@default_include +^7386 10663@10664#@argdata +*1 (Constant) +^7387 5$#FNAME_HASHSIZE +^7388 23$#FILE_NAME_MAP_FILE +^7389 5$#BITS_PER_UNIT +^7390 63$#BITS_PER_CHAR#BITS_PER_WORD#HOST_BITS_PER_INT#HOST_BITS_PER_LONG +^7394 4$#TARGET_BELL#TARGET_BS#TARGET_FF#TARGET_NEWLINE#TARGET_CR#TARGET_TAB#TARGET_VT +^7401 63$#INT_TYPE_SIZE#LONG_TYPE_SIZE#WCHAR_TYPE_SIZE#CHAR_TYPE_SIZE#MAX_CHAR_TYPE_SIZE#MAX_LONG_TYPE_SIZE#MAX_WCHAR_TYPE_SIZE +^7408 7$#CPPREADER_ERRORTOK +^7409 5$#OROR#ANDAND#CPP_EQUALTOK#NOTEQUAL#LEQ#GEQ#LSH#RSH#NAME +^7418 7$#CPPEXP_INT#CPPEXP_CHAR +^7420 5$#LEFT_OPERAND_REQUIRED#RIGHT_OPERAND_REQUIRED#HAVE_VALUE +*7 (Struct tag) +^7423 10844@10845#@token +*1 (Constant) +^7424 5$#PAREN_INNER_PRIO#COMMA_PRIO#COND_PRIO#OROR_PRIO#ANDAND_PRIO#OR_PRIO#XOR_PRIO#AND_PRIO#CPP_EQUAL_PRIO#LESS_PRIO#SHIFT_PRIO#PLUS_PRIO#MUL_PRIO#UNARY_PRIO#PAREN_OUTER_PRIO#INIT_STACK_SIZE +*0 (Datatype) +^7440 10221@-@+@0@0@2@0@10865#o_HASHNODE +*4 (Function) +^7441 12892@6@5@1@0@0$@2@0@0#makeStruct +^7442 12894@6@5@1@0@0$@2@0@0#makeUnion +^7443 12896@6@5@1@0@0$@2@0@0#makeEnum +^7444 12888@6@5@1@0@0$@2@0@0#makeParam +^7445 12898$$$@0#setTagNo +^7446 12900$^$@0#isFakeTag +^7447 10957@6@5@1@0@0$@2@0@0#fakeTag +^7448 12886@6@5@1@0@0$@2@0@0#fixTagName +^7449 12890@6@5@1@0@0$@19@3@0#fixParamName +^7450 12884@6@5@1@0@0^@19@3@0#plainTagName +^7451 13126$@0@g2537@0@0@1@g2537,p0$@0#checkCppName +^7452 13120$@0@g2537@0@0@1@g2537,p0$@0#checkExternalName +^7453 13122$@0@g2537@0@0@1@g2537,p0$@0#checkLocalName +^7454 13124$@0@g2537@0@0@1@g2537,p0$@0#checkFileScopeName +^7455 13112$@0@g2537@0@0@1@g2537,p0$@0#checkPrefix +^7456 13131$@0@g2537@0@0@1@g2537,p0$@0#checkAnsiName +^7457 13135$@0@g2537@0@0@1@g2537$@0#checkParamNames +*1 (Constant) +^7458 5$#MCEBASESIZE#DNE +*7 (Struct tag) +^7460 12003@11872#@s_ctbase +*0 (Datatype) +^7461 11873@+@=@0@5@0@0@11874#ctbase +*7 (Struct tag) +^7462 11875@11876#@!228 +*0 (Datatype) +^7463 11877@-@+@0@0@0@0@11878#ctentry +^7464 11878@-@+@0@0@2@0@11879#o_ctentry +*7 (Struct tag) +^7465 11881@11882#@!229 +*0 (Datatype) +^7466 11881@-@-@0@0@0@0@11883#cttable +*7 (Struct tag) +^7467 11980@11981#@!230 +*0 (Datatype) +^7468 11982@-@+@0@0@0@0@11983#cfcn +*7 (Struct tag) +^7469 11984@11985#@!231 +*0 (Datatype) +^7470 11986@-@+@0@0@0@0@11987#tsu +*7 (Struct tag) +^7471 11988@11989#@!232 +*0 (Datatype) +^7472 11990@-@+@0@0@0@0@11991#tconj +*7 (Struct tag) +^7473 11992@11993#@!233 +*0 (Datatype) +^7474 11994@-@+@0@0@0@0@11995#tenum +*7 (Struct tag) +^7475 11996@11997#@!234 +*0 (Datatype) +^7476 11998@-@+@0@0@0@0@11999#tfixed +*8 (Union tag) +^7477 12000@12001#$!235 +*0 (Datatype) +^7478 12000@-@-@0@0@0@0@12002#uconts +*1 (Constant) +^7479 11874@i0@0@4#ctbase_undefined +*4 (Function) +^7480 12204$$$@0#ctbase_getArraySize +^7481 12228$$$@0#cttable_print +^7482 17959$$$@0#doDeclareConstant +^7483 17963$$$@0#doDeclareVar +^7484 17971$$$@0#doDeclareType +^7485 17977$$$@0#doDeclareFcn +^7486 17973$$$@0#declareIter +*1 (Constant) +^7487 4$#MARKCHAR_STRUCT#MARKCHAR_UNION#MARKCHAR_ENUM#MARKCHAR_PARAM +*4 (Function) +^7491 12947$^$@0#alkind_resolve +^7492 12974$@0@g2537@0@0@1@g2537$@0#checkGlobalDestroyed +^7493 12976$@0@g2537@0@0@1@g2537$@0#checkLocalDestroyed +^7494 13004$$$@0#checkAssignTransfer +^7495 12986$$$@0#checkPassTransfer +^7496 12982$$$@0#checkReturnTransfer +^7497 12988$$$@0#checkGlobReturn +^7498 12990$$$@0#checkParamReturn +^7499 12992$$$@0#checkLoseRef +^7500 13028$$$@0#canLoseReference +^7501 13002$$$@0#checkInitTransfer +^7502 12978$$$@0#checkStructDestroyed +*2 (Enum member) +^7503 12927$#TT_FCNRETURN#TT_DOASSIGN#TT_FIELDASSIGN#TT_FCNPASS#TT_GLOBPASS#TT_GLOBRETURN#TT_PARAMRETURN#TT_LEAVETRANS#TT_GLOBINIT +*9 (Enum tag) +^7512 12927@12928#&!236 +*0 (Datatype) +^7513 12928@-@-@0@0@0@0@12929#transferKind +*2 (Enum member) +^7514 12966$#DSC_GLOB#DSC_LOCAL#DSC_PARAM#DSC_STRUCT +*9 (Enum tag) +^7518 12966@12967#&!237 +*0 (Datatype) +^7519 12967@-@-@0@0@0@0@12968#dscCode +*6 (Iterator finalizer) +^7520 0@0#end_excludeFlagCodes +*5 (Iterator) +^7521 13102@0#excludeFlagCodes +*1 (Constant) +^7522 5$#NRESERVEDNAMES#NCPPNAMES +*2 (Enum member) +^7524 13457$#XINVALID#XCHAR#XSTRING#XSTRINGFREE#XTSTRINGFREE#XINT#XFLOAT#XBOOL#XUENTRY#XPERCENT#XCTYPE#XPLURAL#XREPREFIX#XFILELOC +*9 (Enum tag) +^7538 13457@13458#&!238 +*0 (Datatype) +^7539 13458@-@-@0@0@0@0@13459#ccode +*1 (Constant) +^7540 5$#NUM_RANDOM +*3 (Variable) +^7541 13578|@1|6@0@0&#g_randomNumbers +*1 (Constant) +^7542 4224@i0@0@6#hbucket_undefined +^7543 5$#MAXSEARCH#MINLINE +*0 (Datatype) +^7545 23@-@+@0@5@18@0@13714#nd_charp +*1 (Constant) +^7546 5$#ATINVALID +*0 (Datatype) +^7547 971@-@+@0@5@17@0@13924#ow_sRef +*7 (Struct tag) +^7548 13926@13927#@!239 +*0 (Datatype) +^7549 13928@+@=@0@5@0@0@13929#sRefTable +*1 (Constant) +^7550 5$#sRefTableBASESIZE +^7551 13929@i0@0@4#sRefTable_undefined +*4 (Function) +^7552 13955@6@5@1@0@0^@2@0@0#sRefTable_unparse +^7553 13957$@0@@1@p0$@0#sRefTable_free +^7554 13951$@0@@1@p0$@0#sRefTable_clear +^7555 13949@6@5@1@0@0@0@@1@p0$@0#sRefTable_add +*1 (Constant) +^7556 4259@i0@0@6#ghbucket_undefined +^7557 5$#MAXBASEDEPTH +*8 (Union tag) +^7558 15359@15360#$!240 +*3 (Variable) +^7559 8854|@1|^#yllval +*4 (Function) +^7560 19531$@0@g2537@0@0@1@tg2537$@0#ylerror +^7561 19449$@1@s1@1@s1$@0#yllex +*3 (Variable) +^7562 2|@1|^#g_inTypeDef +*4 (Function) +^7563 19451@6@5@1@0@0@0@s1@1@s1@18@2@0#LCLScanNextToken +^7564 19455$@0@s1@1@s1$@0#LCLScanFreshToken +^7565 19457@6@5@1@0@0^@19@2@0#LCLScanSource +^7566 19459$@0@s1@1@s1$@0#LCLScanInit +^7567 19461$@0@s1@1@s1$@0#LCLScanReset +^7568 19463$@0@s1@1@s1$@0#LCLScanCleanup +*1 (Constant) +^7569 23$#LCL_VERSION#LCL_PARSE_VERSION#LCL_COMPILE +^7572 5$#NUMLIBS#NUMPOSIXLIBS#BUFLEN +*7 (Struct tag) +^7575 15423@15424#@!241 +*0 (Datatype) +^7576 15425@+@=@0@5@0@0@15426#filelocStack +*1 (Constant) +^7577 15426@i0@0@4#filelocStack_undefined +*4 (Function) +^7578 16312$$$@0#filelocStack_includeDepth +^7579 16314$@0@g2537@0@0@1@g2537$@0#filelocStack_printIncludes +^7580 16306$@0@@1@p0$@0#filelocStack_clear +^7581 15438@6@5@1@0@0^@2@0@0#filelocStack_new +^7582 16304@6@5@1@0@0^@19@3@0#filelocStack_nextTop +^7583 16308$@0@@1@p0$@0#filelocStack_popPushFile +^7584 16310@6@5@1@0@0^@2@0@0#filelocStack_unparse +^7585 16316$$$@0#filelocStack_free +*1 (Constant) +^7586 5$#filelocStackBASESIZE +*7 (Struct tag) +^7587 15447@15448#@!242 +*0 (Datatype) +^7588 15449@+@=@0@0@0@0@15450#intSet +*6 (Iterator finalizer) +^7589 0@274#end_intSet_elements +*5 (Iterator) +^7590 15451@274#intSet_elements +*4 (Function) +^7591 15453$$@2@0@0#intSet_new +^7592 16714$$$@0#intSet_insert +^7593 16716$$$@0#intSet_member +^7594 16720@6@5@1@0@0$@2@0@0#intSet_unparse +^7595 16722$$$@0#intSet_free +^7596 16718@6@5@1@0@0$@2@0@0#intSet_unparseText +*1 (Constant) +^7597 5$#intSetBASESIZE +*7 (Struct tag) +^7598 15468@15469#@!243 +*0 (Datatype) +^7599 15468@-@-@0@0@0@0@15470#maccesst +*2 (Enum member) +^7600 15471$#CX_ERROR#CX_GLOBAL#CX_INNER#CX_FUNCTION#CX_FCNHEADER#CX_FCNDECLARATION#CX_MACROFCN#CX_MACROCONST#CX_UNKNOWNMACRO#CX_ITERDEF#CX_ITEREND#CX_LCL#CX_LCLLIB#CX_MT +*9 (Enum tag) +^7614 15471@15472#&!244 +*0 (Datatype) +^7615 15472@-@-@0@0@0@0@15473#kcontext +*8 (Union tag) +^7616 15489@15490#$!245 +*7 (Struct tag) +^7617 15491@15492#@!246 +^7618 16033@16034#@!247 +*0 (Datatype) +^7619 16033@-@-@0@0@0@0@16035#flagcatinfo +*2 (Enum member) +^7620 16037$#ARG_NONE#ARG_VALUE#ARG_STRING#ARG_SPECIAL +*9 (Enum tag) +^7624 16037@16038#&!248 +*0 (Datatype) +^7625 16038@-@-@0@0@0@0@16039#argcode +*7 (Struct tag) +^7626 16040@16041#@!249 +*0 (Datatype) +^7627 16040@-@-@0@0@0@0@16042#fflag +^7628 16043@-@-@0@0@0@0@16044#flaglist +*6 (Iterator finalizer) +^7629 0@0#end_allFlags +*5 (Iterator) +^7630 16045@0#allFlags +*6 (Iterator finalizer) +^7631 0@0#end_allModes +*5 (Iterator) +^7632 16047@0#allModes +*1 (Constant) +^7633 5$#TISTABLEBASESIZE +*0 (Datatype) +^7634 4657@-@+@0@5@2@0@16723#o_usymIdSet +*4 (Function) +^7635 17622$$$@0#checkSort +^7636 17618@6@5@1@0@0$$@0#computePossibleSorts +^7637 17626$$$@0#checkLclPredicate +^7638 17388@6@5@1@0@0@0@s1@1@s1@19@2@0#LSLInsertToken +^7639 17390$@0@s1@1@s1$@0#LSLUpdateToken +^7640 17394@6@5@1@0@0^@19@2@0#LSLGetToken +^7641 17396@6@5@1@0@0@0@s1@1@s1@19@2@0#LSLReserveToken +^7642 17392$@0@s1@1@s1$@0#LSLSetTokenHasSyn +^7643 17400$@0@s1@1@s1$@0#ltokenTableInit +^7644 17402$@0@s1@1@s1$@0#ltokenTableCleanup +^7645 19554$$$@0#PrintToken +*8 (Union tag) +^7646 17405@17406#$!250 +*4 (Function) +^7647 17454@6@5@1@0@0@0@s1@1@s1@3@0@0#LSLScanNextToken +^7648 17458$@0@s1@1@s1$@0#LSLScanFreshToken +^7649 17460@6@5@1@0@0^@19@2@0#LSLScanSource +^7650 17462$@0@s1@1@s1$@0#LSLScanInit +^7651 17464$@0@s1@1@s1$@0#LSLScanReset +^7652 17466$@0@s1@1@s1$@0#LSLScanCleanup +*1 (Constant) +^7653 5$#LASTCHAR +^7654 4$#CHAREXTENDER +*2 (Enum member) +^7655 17421$#CHC_NULL#IDCHAR#OPCHAR#SLASHCHAR#WHITECHAR#CHC_EXTENSION#SINGLECHAR#PERMCHAR +*9 (Enum tag) +^7663 17421@17422#&!251 +*0 (Datatype) +^7664 17422@-@-@0@0@0@0@17423#charCode +*7 (Struct tag) +^7665 17424@17425#@!252 +*0 (Datatype) +^7666 17424@-@-@0@0@0@0@17426#charClassData +*4 (Function) +^7667 17487$$$@0#lscanLine +^7668 17489@6@5@1@0@0$@3@0@0#LSLScanEofToken +^7669 17491$$$@0#LSLReportEolTokens +^7670 17495$$$@0#lscanLineInit +^7671 17497$$$@0#lscanLineReset +^7672 17499$$$@0#lscanLineCleanup +^7673 17501$$$@0#lscanCharClass +^7674 17503$$$@0#LSLIsEndComment +^7675 17505$$$@0#lsetCharClass +^7676 17507$$$@0#lsetEndCommentChar +*1 (Constant) +^7677 5$#MAXLINE +*4 (Function) +^7678 17901$@0@s1@1@s1$@0#LSLAddSyn +^7679 17903@6@5@1@0@0@1@s1@1@@19@2@0#LSLGetTokenForSyn +^7680 17905$@1@s1@1@$@0#LSLIsSyn +^7681 17909$@1@s1@1@s1$@0#lsynTableInit +^7682 17911$@0@s1@1@s1$@0#lsynTableReset +^7683 17913$@0@s1@1@s1$@0#lsynTableCleanup +*2 (Enum member) +^7684 17508$#INITFILE1#INITLINES1#INITLINES2#INITLINES3#INITLINE1#INITLINE2#CLASSIFICATION1#CLASSIFICATION2#CLASSIFICATION3#CHARCLASS1#CHARCLASS2#CHARCLASS3#CHARCLASS4#CHARCLASS5#CHARCLASS6#LRC_ENDCOMMENT1#LRC_ENDCOMMENT2#IDCHARS1#IDCHARS2#OPCHARS1#OPCHARS2#LRC_EXTENSIONCHAR1#SINGCHARS1#SINGCHARS2#WHITECHARS1#WHITECHARS2#LRC_ENDCOMMENTCHAR1#IDCHAR1#OPCHAR1#SINGCHAR1#WHITECHAR1#TOKENCLASS1#TOKENCLASS2#TOKENCLASS3#TOKENCLASS4#TOKENCLASS5#TOKENCLASS6#TOKENCLASS7#TOKENCLASS8#TOKENCLASS9#TOKENCLASS10#TOKENCLASS11#TOKENCLASS12#TOKENCLASS13#QUANTIFIERSYMTOKS1#QUANTIFIERSYMTOKS2#LOGICALOPTOKS1#LOGICALOPTOKS2#LRC_EQOPTOKS1#LRC_EQOPTOKS2#LRC_EQUATIONSYMTOKS1#LRC_EQUATIONSYMTOKS2#LRC_EQSEPSYMTOKS1#LRC_EQSEPSYMTOKS2#SELECTSYMTOKS1#SELECTSYMTOKS2#OPENSYMTOKS1#OPENSYMTOKS2#SEPSYMTOKS1#SEPSYMTOKS2#CLOSESYMTOKS1#CLOSESYMTOKS2#SIMPLEIDTOKS1#SIMPLEIDTOKS2#MAPSYMTOKS1#MAPSYMTOKS2#MARKERSYMTOKS1#MARKERSYMTOKS2#COMMENTSYMTOKS1#COMMENTSYMTOKS2#QUANTIFIERSYMTOK1#LOGICALOPTOK1#LRC_EQOPTOK1#LRC_EQUATIONSYMTOK1#LRC_EQSEPSYMTOK1#SELECTSYMTOK1#OPENSYMTOK1#SEPSYMTOK1#CLOSESYMTOK1#SIMPLEIDTOK1#MAPSYMTOK1#MARKERSYMTOK1#COMMENTSYMTOK1#SYNCLASS1#OLDTOKEN1#NEWTOKEN1 +*9 (Enum tag) +^7770 17508@17509#&!253 +*0 (Datatype) +^7771 17509@-@-@0@0@0@0@17510#LSLInitRuleCode +*4 (Function) +^7772 17782$$$@0#LSLProcessInitFile +^7773 17896$$$@0#LSLProcessInitFileInit +*3 (Variable) +^7774 3540|@1|0@5@18&#g_importedlslOp +^7775 2|@1|^#g_lslParsingTraits +^7776 5|@1|^#lsldebug +*4 (Function) +^7777 17532$$$@0#processTraitSortId +^7778 17528$$$@0#parseSignatures +^7779 17530$$@2@0@0#parseOpLine +^7780 17550$$$@0#readlsignatures +^7781 17546$$$@0#callLSL +^7782 17600$@0@s1,s3@1@s1,s3$@0#lhCleanup +^7783 17602$@0@s1@1@s1$@0#lhIncludeBool +^7784 17604$@1@s1,s3@1@s1,s3$@0#lhInit +^7785 17606$@0@s1@1@s1$@0#lhOutLine +^7786 17608$@0@s1@1@s1$@0#lhExternals +^7787 17598@6@5@1@0@0$@3@0@0#lhVarDecl +^7788 17594@6@5@1@0@0$@3@0@0#lhType +^7789 17584@6@5@1@0@0$@3@0@0#lhFunction +^7790 17590$@0@s1@1@s1$@0#lhForwardStruct +^7791 17592$@0@s1@1@s1$@0#lhForwardUnion +*7 (Struct tag) +^7792 17571@17572#@!254 +*0 (Datatype) +^7793 17571@-@-@0@0@0@0@17573#outFile +*7 (Struct tag) +^7794 17637@17638#@!255 +*0 (Datatype) +^7795 17637@-@-@0@0@0@0@17639#Lclctype2sortType +*4 (Function) +^7796 17656$$$@0#processImport +^7797 17652$$$@0#outputLCSFile +^7798 17654$$$@0#importCTrait +^7799 19437$$$@0#LSLGenShift +^7800 19439$$$@0#LSLGenShiftOnly +^7801 19441@6@5@1@0@0$@2@0@0#LSLGenTopPopShiftStack +^7802 19443$$$@0#LSLGenInit +*0 (Datatype) +^7803 2931@-@+@0@0@0@0@17897#lsymbolTable +*4 (Function) +^7804 18722$$$@0#LCLAddSyn +^7805 18724@6@5@1@0@0$@19@2@0#LCLGetTokenForSyn +^7806 18726$$$@0#LCLIsSyn +^7807 18730$$$@0#LCLSynTableInit +^7808 18732$$$@0#LCLSynTableReset +^7809 18734$$$@0#LCLSynTableCleanup +^7810 18698$@0@s1@1@s1,p0$@0#LCLScanLine +^7811 18700@6@5@1@0@0^@19@2@0#LCLScanEofToken +^7812 18702$@0@s1@1@s1$@0#LCLReportEolTokens +^7813 18706$@0@s1@1@s1$@0#LCLScanLineInit +^7814 18708$@0@s1@1@s1$@0#LCLScanLineReset +^7815 18710$@0@s1@1@s1$@0#LCLScanLineCleanup +^7816 18714$^$@0#LCLScanCharClass +^7817 18712$^$@0#LCLIsEndComment +^7818 18716$@0@s1@1@s1$@0#LCLSetCharClass +^7819 18718$@0@s1@1@s1$@0#LCLSetEndCommentChar +^7820 18738@6@5@1@0@0@0@s1@1@s1@19@2@0#LCLInsertToken +^7821 18740$@0@s1@1@s1$@0#LCLUpdateToken +^7822 18742$@0@s1@1@s1$@0#LCLSetTokenHasSyn +^7823 18744@6@5@1@0@0^@19@2@0#LCLGetToken +^7824 18746@6@5@1@0@0@0@s1@1@s1@19@2@0#LCLReserveToken +^7825 18750$$$@0#LCLTokenTableInit +^7826 18752$$$@0#LCLTokenTableCleanup +*1 (Constant) +^7827 5$#CHARSIZE +*2 (Enum member) +^7828 18650$#STARTCNUM#STARTCNUMDOT#STARTCSTR#STARTCCHAR#STARTWIDE#STARTSLASH#STARTOTHER +*9 (Enum tag) +^7835 18650@18651#&!256 +*0 (Datatype) +^7836 18651@-@-@0@0@0@0@18652#StartCharType +^7837 2575@-@+@0@0@2@0@18809#o_sortNode +*1 (Constant) +^7838 5$#MAX_SORT_DEPTH +*2 (Enum member) +^7839 19006$#SYMK_FCN#SYMK_SCOPE#SYMK_TYPE#SYMK_VAR +*9 (Enum tag) +^7843 19006@19007#&!257 +*0 (Datatype) +^7844 19007@-@-@0@0@0@0@19008#symKind +*8 (Union tag) +^7845 19009@19010#$!258 +*7 (Struct tag) +^7846 19011@19012#@!259 +*0 (Datatype) +^7847 19011@-@-@0@0@0@0@19013#idTableEntry +*7 (Struct tag) +^7848 19015@19016#@!260 +*0 (Datatype) +^7849 19015@-@-@0@0@0@0@19017#idTable +^7850 4041@-@+@0@0@2@0@19133#o_fctInfo +^7851 17510@-@-@0@0@0@0@19193#LCLInitRuleCode +*4 (Function) +^7852 19317$$$@0#LCLProcessInitFile +^7853 19427$$$@0#LCLProcessInitFileInit +^7854 19429$$$@0#LCLProcessInitFileReset +^7855 19431$$$@0#LCLProcessInitFileCleanup +*8 (Union tag) +^7856 19444@19445#$!261 +*1 (Constant) +^7857 5$#NULLFACTOR +*0 (Datatype) +^7858 1143@-@-@0@0@0@0@19464#CharIndex +*7 (Struct tag) +^7859 19465@19466#@!262 +*0 (Datatype) +^7860 19465@-@-@0@0@0@0@19467#StringEntry +*1 (Constant) +^7861 5$#MAPPING_SIZE +*8 (Union tag) +^7862 19519@19520#$!263 +*4 (Function) +^7863 19550$$$@0#lslerror +*3 (Variable) +^7864 3540|@1|6@5@18&#importedlslOp +*8 (Union tag) +^7865 19538@19539#$!264 +;; Library constraints +fgets +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +2 +2 +Param 5 1 +e2 +2 +3 +-1 +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Param 23 0 +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Param 23 0 +r +0 +1 +e1 +2 +2 +Param 5 1 +e2 +2 +3 +-1 +;; end precondition constraints +calloc +pre:EMPTY +post: +C +0@1@4 +l +1 +1 +2 +2 +Result +r +0 +1 +e1 +2 +2 +Param 63 0 +e2 +2 +3 +-1 +;; end precondition constraints +malloc +pre:EMPTY +post: +C +0@1@4 +l +1 +1 +2 +2 +Result +r +0 +1 +e1 +2 +2 +Param 63 0 +e2 +2 +3 +-1 +;; end precondition constraints +realloc +pre:EMPTY +post: +C +0@1@3 +l +1 +1 +2 +2 +Result +r +0 +1 +e1 +2 +2 +Param 63 1 +e2 +2 +3 +-1 +;; end precondition constraints +memcpy +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 20 0 +r +2 +2 +Param 63 2 +C +0@1@3 +l +1 +3 +2 +2 +Param 20 1 +r +2 +2 +Param 63 2 +;; end precondition constraints +post:EMPTY +memmove +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 20 0 +r +2 +2 +Param 63 2 +C +0@1@3 +l +1 +3 +2 +2 +Param 20 1 +r +2 +2 +Param 63 2 +;; end precondition constraints +post:EMPTY +strcpy +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +post: +C +0@1@4 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@4 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 1 +C +0@1@4 +l +1 +3 +2 +2 +Param 23 0 +r +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +strncpy +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +post: +C +0@1@1 +l +1 +3 +2 +2 +Param 23 0 +r +2 +2 +Param 63 2 +C +0@1@3 +l +1 +3 +2 +2 +Param 23 1 +r +1 +3 +2 +2 +Param 23 0 +;; end precondition constraints +strcat +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +post: +C +0@1@4 +l +1 +3 +2 +2 +Result +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +1 +3 +2 +2 +Param 23 1 +;; end precondition constraints +strncat +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 23 0 +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +2 +2 +Param 5 2 +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Result +r +0 +1 +e1 +1 +3 +2 +2 +Param 23 0 +e2 +2 +2 +Param 5 2 +;; end precondition constraints +strchr +pre:EMPTY +post: +C +0@1@3 +l +1 +3 +2 +2 +Result +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +C +0@1@1 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@3 +l +1 +1 +2 +2 +Result +r +2 +3 +0 +;; end precondition constraints +strrchr +pre:EMPTY +post: +C +0@1@3 +l +1 +3 +2 +2 +Result +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +C +0@1@1 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@3 +l +1 +1 +2 +2 +Result +r +2 +3 +0 +;; end precondition constraints +strstr +pre:EMPTY +post: +C +0@1@3 +l +1 +3 +2 +2 +Result +r +2 +3 +0 +C +0@1@1 +l +1 +3 +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +C +0@1@1 +l +1 +1 +2 +2 +Result +r +1 +1 +2 +2 +Param 23 0 +C +0@1@3 +l +1 +1 +2 +2 +Result +r +2 +3 +0 +;; end precondition constraints +memset +pre: +C +0@1@3 +l +1 +1 +2 +2 +Param 20 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +post: +C +0@1@3 +l +1 +3 +2 +2 +Param 20 0 +r +0 +1 +e1 +2 +2 +Param 63 2 +e2 +2 +3 +-1 +;; end precondition constraints +strlen +pre:EMPTY +post: +C +0@1@4 +l +2 +2 +Result +r +1 +3 +2 +2 +Param 23 0 +;; end precondition constraints +asctime +pre:EMPTY +post: +C +0@1@4 +l +1 +3 +2 +2 +Result +r +2 +3 +25 +C +0@1@4 +l +1 +1 +2 +2 +Result +r +2 +3 +25 +;; end precondition constraints +ctime +pre:EMPTY +post: +C +0@1@4 +l +1 +3 +2 +2 +Result +r +2 +3 +25 +C +0@1@4 +l +1 +1 +2 +2 +Result +r +2 +3 +25 +;; end precondition constraints ;; Modules access lltX_bool#1@ types#1@ ansi#9@ posix#14@ -lclForwardTypes#17@ -forwardTypes#46@ -bool#48@ -fileId#49@ -cstringSList#50@ -cstringList#51@ -qualList#52@ -paramNodeList#54@ -ltokenList#56@ -importNodeList#57@ -sortList#58@ -lsymbolList#59@ -lsymbolSet#60@ -sortSet#61@ -pairNodeList#62@ -declaratorInvNodeList#63@ -declaratorNodeList#65@ -varNodeList#66@ -quantifierNodeList#67@ -storeRefNodeList#68@ -letDeclNodeList#69@ -programNodeList#70@ -initDeclNodeList#71@ -varDeclarationNodeList#72@ -fcnNodeList#73@ -stDeclNodeList#74@ -typeNameNodeList#76@ -sigNodeSet#77@ -lslOpSet#78@ -replaceNodeList#79@ -traitRefNodeList#80@ -interfaceNodeList#81@ -sortSetList#83@ -lslOpList#84@ -exprNodeList#85@ -cprim#86@ -filelocList#87@ -enumNameList#88@ -enumNameSList#178@ -ekind#90@ -usymIdSet#91@ -uentryList#92@ -globSet#93@ -ctypeList#94@ -lctype#95@ -qtype#96@ -specialClauses#98@ -constraintTerm#137@ -idDeclList#102@ -sRefSetList#103@ -flagMarkerList#104@ -fileTable#155@ -messageLog#106@ -clauseStack#107@ -cppmain#45@ -cpplib#45@ -cpphash#45@ -uentry#112@ -macrocache#45@ -ctbase#120@ -cttable#130@ -ctype#45@ -clabstract#45@ -aliasChecks#45@ -exprNodeSList#133@ -constraintExpr#141@ -constraint#141@ -constraintList#45@ -constraintResolve#143@ -constraintGeneration#141@ -forjunk#146@ -fileIdList#150@ -fileloc#49@ -source#45@ -llerror#45@ -sRefTable#159@ -usymtab#169@ -sRef#45@ -filelocStack#174@ -intSet#175@ -context#177@ -typeIdSet#91@ -imports#45@ -exprNode#186@ -exprChecks#141@ -llmain#45@ -cgrammar#45@ -cscanner#45@ +lclForwardTypes#19@ +forwardTypes#126@ +fileId#129@ +flagSpec#130@ +qual#131@ +cstringSList#132@ +cstringList#277@ +qualList#134@ +mapping#135@ +paramNodeList#137@ +ltokenList#139@ +importNodeList#140@ +sortList#141@ +lsymbolList#142@ +lsymbolSet#143@ +sortSet#144@ +pairNodeList#145@ +declaratorNodeList#146@ +declaratorInvNodeList#147@ +varNodeList#149@ +quantifierNodeList#150@ +storeRefNodeList#151@ +letDeclNodeList#152@ +initDeclNodeList#154@ +varDeclarationNodeList#155@ +fcnNodeList#156@ +stDeclNodeList#158@ +typeNameNodeList#160@ +sigNodeSet#162@ +lslOpSet#163@ +replaceNodeList#164@ +traitRefNodeList#165@ +interfaceNodeList#166@ +sortSetList#169@ +lslOpList#170@ +exprNodeList#171@ +cprim#172@ +filelocList#173@ +enumNameList#174@ +enumNameSList#278@ +ekind#176@ +usymIdSet#177@ +uentryList#279@ +ctypeList#179@ +lctype#180@ +qtype#181@ +valueTable#252@ +constraintTerm#201@ +idDeclList#185@ +sRefSetList#186@ +flagMarkerList#281@ +fileTable#250@ +messageLog#253@ +clauseStack#190@ +stateCombinationTable#285@ +metaStateTable#321@ +cgrammar#125@ +fileIdList#195@ +cscanner#125@ +mtscanner#125@ +mtreader#125@ +mtgrammar#125@ +exprNodeSList#199@ +constraintExpr#206@ +constraint#209@ +constraintList#125@ +constraintResolve#208@ +constraintGeneration#209@ +forjunk#217@ +cppmain#125@ +cpplib#125@ +cpphash#125@ +uentry#223@ +macrocache#125@ +stateClause#125@ +stateClauseList#125@ +ctbase#232@ +cttable#241@ +ctype#239@ +clabstract#125@ +warnClause#125@ +transferChecks#125@ +nameChecks#125@ +fileloc#129@ +inputStream#125@ +stateValue#125@ +llerror#125@ +flagMarker#125@ +aliasTable#125@ +sRefTable#259@ +genericTable#125@ +usymtab#268@ +sRef#125@ +lcllib#125@ +fileLib#125@ +filelocStack#273@ +intSet#274@ +context#276@ +flags#125@ +osd#125@ +typeIdSet#177@ +imports#125@ +metaStateInfo#125@ +mttok#125@ +mtDeclarationNode#125@ +mtDeclarationPiece#303@ +mtContextNode#125@ +mtValuesNode#125@ +mtMergeNode#125@ +mtMergeItem#125@ +exprNode#311@ +exprChecks#209@ +llmain#125@ ;;End diff --git a/src/lclint.lclintrc b/src/lclint.lclintrc index bd278b2..8ff3067 100644 --- a/src/lclint.lclintrc +++ b/src/lclint.lclintrc @@ -67,8 +67,9 @@ ### Some ANSI limits exceeded (tsk, tsk, tsk...) -controlnestdepth 25 --numenummembers 415 - +-numenummembers 512 ++internalnamelen 50 + +posixlib ### this should be builtin to pp? @@ -80,3 +81,5 @@ -boolfalse FALSE +numliteral + +-indentspaces 3 diff --git a/src/lcllib.c b/src/lcllib.c index a46de44..6ff82e4 100644 --- a/src/lcllib.c +++ b/src/lcllib.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -49,7 +49,7 @@ # include "portab.h" /*@-incondefs@*/ /*@-redecl@*/ -extern /*@dependent@*/ FILE *yyin; +extern /*@open@*/ /*@dependent@*/ FILE *yyin; /*@=incondefs@*/ /*@=redecl@*/ /*@constant int NUMLIBS; @*/ @@ -95,7 +95,7 @@ static ob_mstring stdlibs[NUMLIBS] = "wchar" } ; -static bool loadStateFile (FILE * p_f, cstring p_name); +static bool loadLCDFile (FILE * p_f, cstring p_name); bool lcllib_isSkipHeader (cstring sname) @@ -103,18 +103,20 @@ lcllib_isSkipHeader (cstring sname) int i; bool posixlib = FALSE; char *libname; - char *name = cstring_toCharsSafe (sname); char *matchname; + cstring xname; llassert (cstring_isDefined (sname)); - name = removeExtension (name, ".h"); + xname = fileLib_withoutExtension (sname, cstring_makeLiteralTemp (".h")); - libname = strrchr (name, CONNECTCHAR); + /*@access cstring@*/ + llassert (cstring_isDefined (xname)); + libname = strrchr (xname, CONNECTCHAR); matchname = libname; if (libname == NULL) { - libname = name; + libname = xname; } else { @@ -135,7 +137,7 @@ lcllib_isSkipHeader (cstring sname) tmp); fileloc_free (tmp); - sfree (name); + sfree (xname); return TRUE; } @@ -147,7 +149,7 @@ lcllib_isSkipHeader (cstring sname) { if (mstring_equal (libname, stdlibs[i])) { - sfree (name); + sfree (xname); return TRUE; } } @@ -159,7 +161,7 @@ lcllib_isSkipHeader (cstring sname) { char *ptr; - if ((ptr = strstr (name, posixlibs[i])) != NULL) + if ((ptr = strstr (xname, posixlibs[i])) != NULL) { if (ptr[strlen (posixlibs[i])] == '\0') { @@ -191,7 +193,7 @@ lcllib_isSkipHeader (cstring sname) { if (context_getFlag (FLG_SKIPPOSIXHEADERS)) { - sfree (name); + sfree (xname); return TRUE; } } @@ -214,7 +216,8 @@ lcllib_isSkipHeader (cstring sname) } } - sfree (name); + cstring_free (xname); + /*@noaccess cstring@*/ return FALSE; } @@ -232,20 +235,18 @@ void dumpState (cstring cfname) { FILE *f; - char *fname = cstring_toCharsSafe (cfname); + cstring fname = fileLib_addExtension (cfname, cstring_makeLiteralTemp (DUMP_SUFFIX)); - fname = addExtension (fname, DUMP_SUFFIX); - - f = fopen (fname, "w"); + f = fopen (cstring_toCharsSafe (fname), "w"); if (context_getFlag (FLG_SHOWSCAN)) { - fprintf (stderr, "< Dumping to %s ", fname); + fprintf (stderr, "< Dumping to %s ", cstring_toCharsSafe (fname)); } if (f == NULL) { - llgloberror (message ("Cannot open dump file for writing: %s", cfname)); + llgloberror (message ("Cannot open dump file for writing: %s", fname)); } else { @@ -256,29 +257,39 @@ dumpState (cstring cfname) printDot (); + /* + DPRINTF (("Before prepare dump:")); + ctype_printTable (); + DPRINTF (("Preparing dump...")); + */ + usymtab_prepareDump (); /* - ** Be careful, these lines must match loadStateFile checking. + ** Be careful, these lines must match loadLCDFile checking. */ - fprintf (f, ";;LCLint Dump: %s\n", fname); + fprintf (f, ";;LCLint Dump: %s\n", cstring_toCharsSafe (fname)); fprintf (f, ";;%s\n", LCL_VERSION); fprintf (f, ";;lib:%d\n", (int) context_getLibrary ()); fprintf (f, ";;ctTable\n"); - + + DPRINTF (("Dumping types...")); printDot (); - ctype_dumpTable (f); + ctype_dumpTable (f); printDot (); - + + DPRINTF (("Dumping type sets...")); fprintf (f, ";;tistable\n"); typeIdSet_dumpTable (f); printDot (); - - fprintf (f, ";;symTable\n"); + + DPRINTF (("Dumping usymtab...")); + fprintf (f, ";;symTable\n"); usymtab_dump (f); printDot (); + DPRINTF (("Dumping modules...")); fprintf (f, ";; Modules access\n"); context_dumpModuleAccess (f); fprintf (f, ";;End\n"); @@ -290,17 +301,17 @@ dumpState (cstring cfname) fprintf (g_msgstream, " >\n"); } - sfree (fname); + cstring_free (fname); } bool loadStandardState () { - char *fpath; + cstring fpath; FILE *stdlib; bool result; - char *libname = addExtension (context_selectedLibrary (), DUMP_SUFFIX); - + cstring libname = fileLib_addExtension (context_selectedLibrary (), + cstring_makeLiteralTemp (DUMP_SUFFIX)); if (osd_findOnLarchPath (libname, &fpath) != OSD_FILEFOUND) { @@ -308,18 +319,18 @@ loadStandardState () cstring_makeLiteralTemp (context_getFlag (FLG_STRICTLIB) ? "strict " : (context_getFlag (FLG_UNIXLIB) ? "unix " : "")), - cstring_makeLiteralTemp (libname))); + libname)); lldiagmsg (cstring_makeLiteral (" Check LARCH_PATH environment variable.")); result = FALSE; } else { - stdlib = fopen (fpath, "r"); + stdlib = fopen (cstring_toCharsSafe (fpath), "r"); if (stdlib == NULL) { lldiagmsg (message ("Cannot read standard library: %s", - cstring_fromChars (fpath))); + fpath)); lldiagmsg (cstring_makeLiteral (" Check LARCH_PATH environment variable.")); result = FALSE; @@ -331,12 +342,12 @@ loadStandardState () char *t = mstring_create (MAX_NAME_LENGTH); char *ot = t; - if (fgets (t, MAX_NAME_LENGTH, stdlib) == NULL) + if ((t = reader_readLine (stdlib, t, MAX_NAME_LENGTH)) == NULL) { llfatalerror (cstring_makeLiteral ("Standard library format invalid")); } - if (fgets (t, MAX_NAME_LENGTH, stdlib) != NULL) + if ((t = reader_readLine (stdlib, t, MAX_NAME_LENGTH)) != NULL) { if (*t == ';' && *(t + 1) == ';') { @@ -347,7 +358,7 @@ loadStandardState () if (t == NULL) { lldiagmsg (message ("Standard library: %s ", - cstring_fromChars (fpath))); + fpath)); } else { @@ -357,37 +368,40 @@ loadStandardState () if (tt != NULL) *tt = '\0'; - lldiagmsg (message ("Standard library: %s", cstring_fromChars (fpath))); + lldiagmsg (message ("Standard library: %s", fpath)); lldiagmsg (message (" (created using %s)", cstring_fromChars (t))); } sfree (ot); check (fclose (stdlib) == 0); - stdlib = fopen (fpath, "r"); + stdlib = fopen (cstring_toCharsSafe (fpath), "r"); } llassert (stdlib != NULL); fileloc_reallyFree (g_currentloc); - g_currentloc = fileloc_createLib (cstring_makeLiteralTemp (libname)); + g_currentloc = fileloc_createLib (libname); + + DPRINTF (("Loading: %s", fpath)); if (context_getDebug (FLG_SHOWSCAN)) { - context_hideShowscan (); - result = loadStateFile (stdlib, cstring_fromChars (fpath)); - context_unhideShowscan (); + fprintf (g_msgstream, "< loading standard library %s ", + cstring_toCharsSafe (fpath)); + result = loadLCDFile (stdlib, fpath); + fprintf (g_msgstream, " >\n"); } else { - result = loadStateFile (stdlib, cstring_fromChars (fpath)); + result = loadLCDFile (stdlib, fpath); } check (fclose (stdlib) == 0); } } - sfree (libname); + cstring_free (libname); return result; } @@ -395,36 +409,36 @@ loadStandardState () # define BUFLEN 128 static bool -loadStateFile (FILE *f, cstring name) +loadLCDFile (FILE *f, cstring name) { char buf[BUFLEN]; /* - ** Check version. Should be >= LCL_MIN_VERSION + ** Check version. Should be >= LCLINT_LIBVERSION */ - if ((fgets (buf, BUFLEN, f) == NULL) + if (reader_readLine (f, buf, BUFLEN) == NULL || !mstring_equalPrefix (buf, ";;LCLint Dump:")) { loadllmsg (message ("Load library %s is not in LCLint library format. Attempting " - "to continue without library.", name)); + "to continue without library.", name)); return FALSE; } - if (fgets (buf, BUFLEN, f) != NULL) + if (reader_readLine (f, buf, BUFLEN) != NULL) { if (!mstring_equalPrefix (buf, ";;")) { loadllmsg (message ("Load library %s is not in LCLint library format. Attempting " - "to continue without library.", name)); + "to continue without library.", name)); return FALSE; } else if (mstring_equalPrefix (buf, ";;ctTable")) { loadllmsg (message ("Load library %s is in obsolete LCLint library format. Attempting " - "to continue anyway, but results may be incorrect. Rebuild " - "the library with this version of lclint.", - name)); + "to continue anyway, but results may be incorrect. Rebuild " + "the library with this version of lclint.", + name)); } else { @@ -433,21 +447,18 @@ loadStateFile (FILE *f, cstring name) if (sscanf (buf, ";;LCLint %f", &version) != 1) { loadllmsg (message ("Load library %s is not in LCLint library format (missing version " - "number). Attempting " - "to continue without library.", name)); + "number). Attempting " + "to continue without library.", name)); return FALSE; } else { - if ((LCL_MIN_VERSION - version) >= FLT_EPSILON) + if ((LCLINT_LIBVERSION - version) >= FLT_EPSILON) { cstring vname; char *nl = strchr (buf, '\n'); - /*drl7x this is evans is code I think - I'll need is find out if code is safe or if I - broke it somehow... */ - /*@i223*/ *nl = '\0'; + *nl = '\0'; vname = cstring_fromChars (buf + 9); @@ -459,7 +470,7 @@ loadStateFile (FILE *f, cstring name) } else { - if ((fgets (buf, BUFLEN, f) == NULL)) + if (reader_readLine (f, buf, BUFLEN) == NULL) { loadllmsg (message ("Load library %s is not in LCLint library " "format (missing library code). Attempting " @@ -490,9 +501,10 @@ loadStateFile (FILE *f, cstring name) } else { - loadllmsg (message ("Load library %s has invalid library code. " + loadllmsg (message ("Load library %s has invalid library code (%s). " "Attempting to continue without library.", - name)); + name, + flagcode_unparse (code))); return FALSE; } @@ -532,26 +544,24 @@ void loadState (cstring cfname) { FILE *f; - char *fname = cstring_toCharsSafe (cfname); - cstring ofname = cstring_copy (cfname); - - fname = addExtension (fname, DUMP_SUFFIX); + cstring fname = fileLib_addExtension (cfname, cstring_makeLiteralTemp (DUMP_SUFFIX)); - f = fopen (fname, "r"); + f = fopen (cstring_toCharsSafe (fname), "r"); if (f == NULL) { if (context_getDebug (FLG_SHOWSCAN)) fprintf (g_msgstream, " >\n"); - llfatalerror (message ("Cannot open dump file for loading: %s", cfname)); + llfatalerror (message ("Cannot open dump file for loading: %s", + fname)); } else { fileloc_reallyFree (g_currentloc); - g_currentloc = fileloc_createLib (ofname); + g_currentloc = fileloc_createLib (cfname); - if (!loadStateFile (f, ofname)) + if (!loadLCDFile (f, cfname)) { if (!loadStandardState ()) { @@ -562,7 +572,7 @@ loadState (cstring cfname) check (fclose (f) == 0); } - cstring_free (ofname); - sfree (fname); + /* usymtab_printAll (); */ + cstring_free (fname); } diff --git a/src/lclscan.c b/src/lclscan.c index 86abdd9..40997ff 100644 --- a/src/lclscan.c +++ b/src/lclscan.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -58,7 +58,7 @@ extern bool g_inTypeDef; # include "lclscanline.h" # include "lcltokentable.h" -static tsource *scanFile; /* file to scan */ +static inputStream scanFile; /* file to scan */ static o_ltoken TokenList[MAXLINE]; /* available tokens */ static bool restore = FALSE; /* wasn't static! */ static YYSTYPE restoretok; @@ -127,7 +127,7 @@ LCLScanNextToken (void) { lastToken = 0; lineNumber++; - line = tsource_nextLine (scanFile); + line = inputStream_nextLine (scanFile); if (line != (char *) 0) { @@ -157,7 +157,7 @@ LCLScanLookAhead (void) else { lastToken = 0; - line = tsource_nextLine (scanFile); + line = inputStream_nextLine (scanFile); if (line != (char *) 0) { LCLScanLine (line); @@ -184,7 +184,7 @@ LCLScanFreshToken (/*@only@*/ ltoken tok) } } -tsource *LCLScanSource (void) +inputStream LCLScanSource (void) { return scanFile; } @@ -196,7 +196,7 @@ LCLScanInit (void) } void -LCLScanReset (tsource * s) +LCLScanReset (inputStream s) { scanFile = s; lastToken = 0; diff --git a/src/lclscanline.c b/src/lclscanline.c index 0500b50..0c086da 100644 --- a/src/lclscanline.c +++ b/src/lclscanline.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -122,8 +122,8 @@ static charClassData LCLcharClass[LASTCHAR + 1]; /* evs - sounds bogus to me! */ -static unsigned int colNumber; -static unsigned int startCol; +static int colNumber; +static int startCol; static char *currentLine; static char currentChar; static ltokenCode tokenCode; @@ -1609,8 +1609,8 @@ LCLScanLine (char *line) } ltoken_setCol (newToken, startCol); - ltoken_setLine (newToken, tsource_thisLineNumber (LCLScanSource ())); - ltoken_setFileName (newToken, tsource_fileName (LCLScanSource ())); + ltoken_setLine (newToken, inputStream_thisLineNumber (LCLScanSource ())); + ltoken_setFileName (newToken, inputStream_fileName (LCLScanSource ())); if (ltoken_getCode (newToken) == commentSym) { @@ -1694,8 +1694,8 @@ LCLScanEofToken (void) } ltoken_setCol (t, colNumber); - ltoken_setLine (t, tsource_thisLineNumber (LCLScanSource ())); - ltoken_setFileName (t, tsource_fileName (LCLScanSource ())); + ltoken_setLine (t, inputStream_thisLineNumber (LCLScanSource ())); + ltoken_setFileName (t, inputStream_fileName (LCLScanSource ())); return t; } @@ -1709,10 +1709,10 @@ LCLReportEolTokens (bool setting) static void LocalUserError (char *msg) { - tsource *s = LCLScanSource (); - llfatalerror (message ("%s:%u,%u: %s", - cstring_fromChars (tsource_fileName (s)), - tsource_thisLineNumber (s), + inputStream s = LCLScanSource (); + llfatalerror (message ("%s:%d,%d: %s", + inputStream_fileName (s), + inputStream_thisLineNumber (s), colNumber, cstring_fromChars (msg))); } diff --git a/src/lclsyntable.c b/src/lclsyntable.c index 01193b1..ebea441 100644 --- a/src/lclsyntable.c +++ b/src/lclsyntable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lcltokentable.c b/src/lcltokentable.c index b1e124d..8ed0b3e 100644 --- a/src/lcltokentable.c +++ b/src/lcltokentable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/letDeclNodeList.c b/src/letDeclNodeList.c index 4bc9fb9..16b8cff 100644 --- a/src/letDeclNodeList.c +++ b/src/letDeclNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lh.c b/src/lh.c index bde0e58..19b0612 100644 --- a/src/lh.c +++ b/src/lh.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -55,19 +55,16 @@ /*@constant static char TABOUTCH; @*/ # define TABOUTCH '\3' -/*@constant static observer char *LHTMP_SUFFIX; @*/ -# define LHTMP_SUFFIX ".lh_tmp" - /* # define TAB fputc (TABCH, LhFile.f); # define TABIN fputc (TABINCH, LhFile.f); # define TABOUT fputc (TABOUTCH, LhFile.f); */ -typedef struct +/*@private@*/ typedef struct { - /*@dependent@*/ /*@null@*/ /*@reldef@*/ FILE *f; - /*@reldef@*/ char *name; + /*@open@*/ /*@dependent@*/ /*@null@*/ /*@reldef@*/ FILE *f; + /*@reldef@*/ cstring name; } outFile; static bool genLh; @@ -86,16 +83,12 @@ static cstring lhTypeSpecNode (lclTypeSpecNode p_typespec); static /*@only@*/ cstring lhTypeExpr (/*@null@*/ typeExpr p_x); static /*@only@*/ cstring lhDeclaratorNode (declaratorNode p_x); -static /*@dependent@*/ /*@null@*/ FILE *out_open (char *name, char *suffix) /*@modifies fileSystem@*/ +static /*@open@*/ /*@dependent@*/ /*@null@*/ FILE *out_open (cstring name, cstring suffix) + /*@modifies fileSystem@*/ { - char *fullname = (char *) - mstring_create (size_toInt (strlen (name) + strlen (suffix))); - FILE *ret; - - strcpy (fullname, name); - strcat (fullname, suffix); - ret = fopen (fullname, "w+"); - sfree (fullname); + cstring fullname = cstring_concat (name, suffix); + FILE *ret = fopen (cstring_toCharsSafe (fullname), "w+"); + cstring_free (fullname); return ret; } @@ -299,22 +292,18 @@ lhCleanup (void) { FILE *f; int c, col = 0, tabcol = 0; - char *fullname; - - - fullname = mstring_create - (size_toInt (strlen (LhFile.name) + strlen (LHTMP_SUFFIX))); + cstring fullname; - f = out_open (LhFile.name, LH_SUFFIX); + f = out_open (LhFile.name, LH_EXTENSION); llassert (LhFile.f != NULL); - - strcpy (fullname, LhFile.name); - strcat (fullname, LHTMP_SUFFIX); + + fullname = cstring_concat (LhFile.name, LHTMP_EXTENSION); if (f == NULL) { + /*@i25534 check this! does it report the right filename? */ lldiagmsg (message ("Cannot open lh file for output: %s", - cstring_fromChars (fullname))); + fullname)); } else { @@ -365,7 +354,7 @@ lhCleanup (void) LhFile.f = NULL; } - sfree (fullname); + cstring_free (fullname); } } @@ -401,7 +390,7 @@ lhIncludeBool (void) **-- */ -void lhInit (tsource * f) /*@globals undef LhFile; @*/ +void lhInit (inputStream f) /*@globals undef LhFile; @*/ { static bool lherror = FALSE; @@ -413,16 +402,18 @@ void lhInit (tsource * f) /*@globals undef LhFile; @*/ return; } - LhFile.name = LSLRootName (tsource_fileName (f)); - LhFile.f = out_open (LhFile.name, LHTMP_SUFFIX); + LhFile.name = LSLRootName (inputStream_fileName (f)); + LhFile.f = out_open (LhFile.name, LHTMP_EXTENSION); if (LhFile.f == NULL) { genLh = FALSE; if (!lherror) { - lclplainerror (message ("Cannot write .lh file: %s.lh", - cstring_fromChars (LhFile.name))); + lclplainerror (message ("Cannot write temporary %s file: %s%s", + LH_EXTENSION, + LhFile.name, + LHTMP_EXTENSION)); lherror = TRUE; } } diff --git a/src/llerror.c b/src/llerror.c index 9b984d4..b4bcd64 100644 --- a/src/llerror.c +++ b/src/llerror.c @@ -1,7 +1,6 @@ -#include /*drl take this out*/ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -35,6 +34,10 @@ # include "llmain.h" # include "version.h" +/* Don't allow possibly-recursive assertion failures. */ +# undef llassert +# define llassert llassertprotect + static void printIndentMessage (FILE *p_stream, /*@only@*/ cstring p_sc, int p_indent) /*@modifies *p_stream@*/ ; @@ -48,16 +51,31 @@ static int mcount = 0; static /*@only@*/ cstring saveOneMessage = cstring_undefined; static /*@only@*/ fileloc lastparseerror = fileloc_undefined; static /*@only@*/ fileloc lastbug = fileloc_undefined; -static bool llgenerrorreal (/*@only@*/ cstring p_s, fileloc p_fl, bool p_iserror, bool p_indent) +static bool llgenerrorreal (char *p_srcFile, int p_srcLine, + /*@only@*/ cstring p_s, fileloc p_fl, bool p_iserror, bool p_indent) /*@modifies g_msgstream@*/ ; -static bool llgenerroraux (/*@only@*/ cstring p_s, fileloc p_fl, bool p_iserror, bool p_indent) +static bool llgenerroraux (char *p_srcFile, int p_srcLine, + /*@only@*/ cstring p_s, fileloc p_fl, bool p_iserror, bool p_indent) /*@modifies g_msgstream@*/ ; + static void printError (FILE *p_stream, /*@only@*/ cstring p_sc) /*@globals lastfileloclen @*/ /*@modifies *p_stream@*/ ; static void printMessage (FILE *p_stream, /*@only@*/ cstring p_s) /*@modifies *p_stream@*/ ; +static void llgenhint (/*@only@*/ cstring p_s) /*@modifies g_msgstream@*/ ; + +static void showSourceLoc (char *srcFile, int srcLine) + /*@modifies g_msgstream@*/ +{ + if (context_getFlag (FLG_SHOWSOURCELOC)) { + llgenhint (message ("%s:%d: Source code error generation point.", + cstring_fromChars (srcFile), srcLine)); + } + +} + static /*@null@*/ char * maxcp (/*@null@*/ /*@returned@*/ char *a, /*@null@*/ /*@returned@*/ char *b) { @@ -98,7 +116,7 @@ void closeMessage (void) llflush (); fprintf (stderr, "< more preprocessing ."); - llassert (!s_needsPrepare); + llassertprotect (!s_needsPrepare); s_needsPrepare = TRUE; } else @@ -154,8 +172,12 @@ void flagWarning (cstring s) static void llgenhint (/*@only@*/ cstring s) /*@modifies g_msgstream@*/ { + int indent = context_getIndentSpaces () - 1; + + if (indent < 0) indent = 0; + context_setNeednl (); - printIndentMessage (g_msgstream, s, 2); + printIndentMessage (g_msgstream, s, indent); } void @@ -189,11 +211,56 @@ llshowhint (flagcode f) } } +static void +llsuppresshint2 (char c, flagcode f1, flagcode f2) +{ + + if (context_getFlag (FLG_HINTS)) + { + if ((flagcode_numReported (f1) == 0 + || flagcode_numReported (f2) == 0) + || context_getFlag (FLG_FORCEHINTS)) + { + cstring desc = flagcodeHint (f1); + context_setNeednl (); + lastfileloclen = 8; + + if (cstring_isUndefined (desc)) + { + desc = flagcodeHint (f2); + } + + if (flagcode_isNamePrefixFlag (f1)) + { + f1 = FLG_NAMECHECKS; + } + + if (flagcode_isNamePrefixFlag (f2)) + { + f2 = FLG_NAMECHECKS; + } + + if (cstring_isDefined (desc)) + { + llgenhint (message ("%s (Setting either %h%s or %h%s will suppress message)", desc, + c, + flagcode_unparse (f1), + c, + flagcode_unparse (f2))); + } + else + { + llgenhint (message ("(Setting either %h%s or %h%s will suppress message)", c, + flagcode_unparse (f1), + c, flagcode_unparse (f2))); + } + } + } +} static void llsuppresshint (char c, flagcode f) { - if (context_getFlag (FLG_HINTS)) { if ((flagcode_numReported (f) == 0) || context_getFlag (FLG_FORCEHINTS)) @@ -210,12 +277,12 @@ llsuppresshint (char c, flagcode f) if (cstring_isDefined (desc)) { llgenhint (message ("%s (%h%s will suppress message)", desc, c, - flagcode_name (f))); + flagcode_unparse (f))); } else { llgenhint (message ("(%h%s will suppress message)", c, - flagcode_name (f))); + flagcode_unparse (f))); } } } @@ -224,7 +291,6 @@ llsuppresshint (char c, flagcode f) static void llnosuppresshint (flagcode f) { - if (context_getFlag (FLG_FORCEHINTS)) { cstring desc = flagcodeHint (f); @@ -254,9 +320,12 @@ mstring_split (/*@returned@*/ char **sp, char *nl; char *t; char *s = *sp; + char *osp = *sp; *tp = NULL; + DPRINTF (("Split: %s / %d", *sp, maxline)); + if (maxline < MINLINELEN) { maxline = MINLINELEN; @@ -265,6 +334,7 @@ mstring_split (/*@returned@*/ char **sp, if (*indentchars > 0) { s = *sp = mstring_concatFree1 (mstring_spaces (*indentchars), s); + osp = s; } nl = strchr (s, '\n'); @@ -292,6 +362,7 @@ mstring_split (/*@returned@*/ char **sp, if (*t == '\0') { + llassertprotect (*tp == NULL || (*tp > osp)); return; } @@ -299,13 +370,14 @@ mstring_split (/*@returned@*/ char **sp, { *indentchars += (int) (*t - '\1') + 1; t++; - } - + } + *tp = t; return; } else if (size_toInt (strlen (s)) < maxline) { + llassertprotect (*tp == NULL || (*tp > osp)); return; } else @@ -327,11 +399,14 @@ mstring_split (/*@returned@*/ char **sp, splitat = maxcp (lcolon, lsemi); if (splitat != NULL && ((int)(splitat - s) > MINLINE) - && *(splitat + 1) == ' ' && *(splitat + 2) != '}') + && *(splitat) != '\0' + && *(splitat + 1) == ' ' + && (*(splitat + 2) != '}' && (*(splitat + 2) != '\0'))) { *(splitat + 1) = '\0'; t = splitat + 2; *tp = t; + llassertprotect (*tp == NULL || (*tp > osp)); return; } @@ -343,24 +418,28 @@ mstring_split (/*@returned@*/ char **sp, if (*t != ' ' && *t != '\t') { + llassertprotect (maxline > 0); t = mstring_copy (s + maxline); *(s + maxline) = '\0'; if (*t == '\0') { sfree (t); + llassertprotect (*tp == NULL || (*tp > osp)); return; } mstring_markFree (t); *tp = t; + /* Won't be true since t is a copy: llassertprotect (*tp == NULL || (*tp > osp)); */ return; } else { + *t = '\0'; t++; - + if (*t == '\0') return; /* @@ -368,9 +447,22 @@ mstring_split (/*@returned@*/ char **sp, */ *tp = t; + +# if 0 + /* Hack to prevent error case for wierd strings. */ + if (t <= osp) + { + *tp = NULL; + return; + } + llassertprotect (*tp == NULL || (*tp > osp)); +# endif + return; } } + + BADBRANCH; } static @@ -448,7 +540,7 @@ llgenindentmsg (/*@only@*/ cstring s, fileloc fl) cstring flstring = fileloc_unparse (fl); prepareMessage (); - (void) printIndentMessage (g_msgstream, message ("%q: %q", flstring, s), 3); + (void) printIndentMessage (g_msgstream, message ("%q: %q", flstring, s), context_getIndentSpaces ()); closeMessage (); } @@ -456,13 +548,14 @@ void llgenindentmsgnoloc (/*@only@*/ cstring s) { prepareMessage (); - (void) printIndentMessage (g_msgstream, s, 3); + (void) printIndentMessage (g_msgstream, s, context_getIndentSpaces ()); closeMessage (); } static bool - llgentypeerroraux (flagcode ocode, ctype t1, exprNode e1, ctype t2, exprNode e2, - /*@only@*/ cstring s, fileloc fl) +llgentypeerroraux (char *srcFile, int srcLine, + flagcode ocode, ctype t1, exprNode e1, ctype t2, exprNode e2, + /*@only@*/ cstring s, fileloc fl) { cstring hint = cstring_undefined; flagcode code = ocode; @@ -662,7 +755,7 @@ static bool } else { - if (llgenerroraux (s, fl, TRUE, FALSE)) + if (llgenerroraux (srcFile, srcLine, s, fl, TRUE, FALSE)) { if (hcode != INVALID_FLAG && hcode != ocode) { @@ -684,23 +777,25 @@ static bool } bool -llgentypeerror (ctype t1, exprNode e1, ctype t2, exprNode e2, - /*@only@*/ cstring s, fileloc fl) +xllgentypeerror (char *srcFile, int srcLine, + ctype t1, exprNode e1, ctype t2, exprNode e2, + /*@only@*/ cstring s, fileloc fl) { - return llgentypeerroraux (FLG_TYPE, t1, e1, t2, e2, s, fl); + return llgentypeerroraux (srcFile, srcLine, FLG_TYPE, t1, e1, t2, e2, s, fl); } bool -llgenformattypeerror (ctype t1, exprNode e1, ctype t2, exprNode e2, - /*@only@*/ cstring s, fileloc fl) +xllgenformattypeerror (char *srcFile, int srcLine, + ctype t1, exprNode e1, ctype t2, exprNode e2, + /*@only@*/ cstring s, fileloc fl) { - return llgentypeerroraux (FLG_FORMATTYPE, t1, e1, t2, e2, s, fl); + return llgentypeerroraux (srcFile, srcLine, FLG_FORMATTYPE, t1, e1, t2, e2, s, fl); } bool -llgenerror (flagcode o, /*@only@*/ cstring s, fileloc fl) +xllgenerror (char *srcFile, int srcLine, flagcode o, /*@only@*/ cstring s, fileloc fl) { - if (llgenerroraux (s, fl, TRUE, FALSE)) + if (llgenerroraux (srcFile, srcLine, s, fl, TRUE, FALSE)) { llnosuppresshint (o); flagcode_recordError (o); @@ -715,12 +810,13 @@ llgenerror (flagcode o, /*@only@*/ cstring s, fileloc fl) } bool -llgenhinterror (flagcode o, /*@only@*/ cstring s, /*@only@*/ cstring hint, - fileloc fl) +xllgenhinterror (char *srcFile, int srcLine, + flagcode o, /*@only@*/ cstring s, /*@only@*/ cstring hint, + fileloc fl) { if (!context_suppressFlagMsg (o, fl)) { - if (llgenerroraux (s, fl, TRUE, FALSE)) + if (llgenerroraux (srcFile, srcLine, s, fl, TRUE, FALSE)) { flagcode_recordError (o); @@ -750,15 +846,15 @@ llgenhinterror (flagcode o, /*@only@*/ cstring s, /*@only@*/ cstring hint, } static bool -llrealerror (/*@only@*/ cstring s, fileloc fl) +llrealerror (char *srcFile, int srcLine, /*@only@*/ cstring s, fileloc fl) { - return (llgenerrorreal (s, fl, TRUE, FALSE)); + return (llgenerrorreal (srcFile, srcLine, s, fl, TRUE, FALSE)); } static bool -llgenerroraux (/*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) +llgenerroraux (char *srcFile, int srcLine, + /*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) { - if (context_inSuppressZone (fl)) { cstring_free (s); @@ -769,19 +865,30 @@ llgenerroraux (/*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) ; } - return (llgenerrorreal (s, fl, iserror, indent)); + if (llgenerrorreal (srcFile, srcLine, s, fl, iserror, indent)) { + return TRUE; + } else { + return FALSE; + } } -void -llforceerror (flagcode code, /*@only@*/ cstring s, fileloc fl) +bool +xllforceerror (char *srcFile, int srcLine, + flagcode code, /*@only@*/ cstring s, fileloc fl) { flagcode_recordError (code); - (void) llgenerrorreal (s, fl, TRUE, FALSE); - closeMessage (); + + if (llgenerrorreal (srcFile, srcLine, s, fl, TRUE, FALSE)) { + closeMessage (); + return TRUE; + } else { + return FALSE; + } } static bool -llgenerrorreal (/*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) +llgenerrorreal (char *srcFile, int srcLine, + /*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) { cstring flstring; @@ -789,6 +896,8 @@ llgenerrorreal (/*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) if (!messageLog_add (context_messageLog (), fl, s)) { + DPRINTF (("Duplicate message suppressed! %s / %s", + fileloc_unparse (fl), s)); cstring_free (s); return FALSE; } @@ -846,6 +955,8 @@ llgenerrorreal (/*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) } } + DPRINTF (("Here...")); + if (context_hasAliasAnnote ()) { char *sc = cstring_toCharsSafe (s); @@ -929,7 +1040,6 @@ llgenerrorreal (/*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) } flstring = fileloc_unparse (fl); - lastfileloclen = cstring_length (flstring); if (indent) @@ -941,6 +1051,7 @@ llgenerrorreal (/*@only@*/ cstring s, fileloc fl, bool iserror, bool indent) printError (g_msgstream, message ("%q: %q", flstring, s)); } + showSourceLoc (srcFile, srcLine); return TRUE; } @@ -963,22 +1074,29 @@ void printMessage (FILE *stream, /*@only@*/ cstring s) static void printIndentMessage (FILE *stream, /*@only@*/ cstring sc, int indent) { + static bool inbody = FALSE; int maxlen = context_getLineLen (); char *s = cstring_toCharsSafe (sc); + char *olds = NULL; + llassertprotect (!inbody); + inbody = TRUE; do { char *t = NULL; char *st = s; + llassertprotect (st != olds); + olds = st; mstring_split (&st, &t, maxlen, &indent); fprintf (stream, "%s\n", st); - llassert (t != s); + llassertprotect (t != s); s = t; } while (s != NULL) ; cstring_free (sc); + inbody = FALSE; } static @@ -993,6 +1111,8 @@ void printError (FILE *stream, /*@only@*/ cstring sc) char *os = s; char *t = NULL; + DPRINTF (("Print error: [%s]", sc)); + if (len < (maxlen + nextlen) && (strchr (s, '\n') == NULL)) { mstring_split (&s, &t, maxlen, &indent); @@ -1033,6 +1153,8 @@ void printError (FILE *stream, /*@only@*/ cstring sc) } else { + DPRINTF (("Here 1: [%s]", sc)); + if (len < (maxlen + maxlen - 1) && (strchr (s, '\n') != NULL)) { nspaces = ((maxlen + maxlen - 1) - len) / 2; @@ -1073,7 +1195,9 @@ void printError (FILE *stream, /*@only@*/ cstring sc) nspaces = 4; nextlen = maxlen - nspaces; + DPRINTF (("Here 2: [%s]", s)); mstring_split (&s, &t, maxlen, &indent); + DPRINTF (("Here 3: [%s] [%s]", s, t)); fprintf (stream, "%s\n", s); @@ -1092,8 +1216,11 @@ void printError (FILE *stream, /*@only@*/ cstring sc) while (t != NULL) { char *st = t; + DPRINTF (("Loop: [%s]", t)); mstring_split (&st, &t, nextlen, &indent); + DPRINTF (("Split: [%s] [%s]", st, t)); fprintf (stream, "%s%s\n", spaces, st); + DPRINTF (("Next...")); } sfree (spaces); @@ -1101,15 +1228,17 @@ void printError (FILE *stream, /*@only@*/ cstring sc) } } + DPRINTF (("Done")); sfree (os); } void -llfatalbug (/*@only@*/ cstring s) +xllfatalbug (char *srcFile, int srcLine, /*@only@*/ cstring s) { prepareMessage (); printError (stderr, message ("%q: *** Fatal bug: %q", fileloc_unparse (g_currentloc), s)); + showSourceLoc (srcFile, srcLine); printCodePoint (); printBugReport (); llexit (LLFAILURE); @@ -1160,12 +1289,17 @@ void llbugaux (cstring file, int line, /*@only@*/ cstring s) prepareMessage (); + /*@i3232@*/ + /* if (fileloc_isRealLib (g_currentloc)) { - llfatalerror (message ("%q: Library file appears to be corrupted. Error: %q:%s", - fileloc_unparse (g_currentloc), - fileloc_unparseRaw (file, line), s)); + DPRINTF (("Here we are!")); + llfatalerror (message ("%q: Library file appears to be corrupted. Error: %q: %s", + fileloc_unparse (g_currentloc), + fileloc_unparseRaw (file, line), + s)); } + */ if (fileloc_withinLines (lastparseerror, g_currentloc, 7)) { @@ -1188,12 +1322,12 @@ void llbugaux (cstring file, int line, /*@only@*/ cstring s) numbugs++; - if (numbugs > 5 && fileloc_withinLines (lastbug, g_currentloc, 2)) + if (numbugs > context_getBugsLimit () && fileloc_withinLines (lastbug, g_currentloc, 2)) { - llfatalerror (message ("%q: Cannot recover from last bug.", + llfatalerror (message ("%q: Cannot recover from last bug. (If you really want LCLint to try to continue, use -bugslimit .)", fileloc_unparse (g_currentloc))); } - + fprintf (stderr, " (attempting to continue, results may be incorrect)\n"); fileloc_free (lastbug); lastbug = fileloc_copy (g_currentloc); @@ -1201,7 +1335,6 @@ void llbugaux (cstring file, int line, /*@only@*/ cstring s) (void) fflush (stderr); inbug = FALSE; - assert(FALSE); /*drl take this out*/ } # ifndef NOLCL @@ -1233,15 +1366,12 @@ llfatalerrorLoc (/*@only@*/ cstring s) (void) fflush (g_msgstream); printError (stderr, message ("%q: %q", fileloc_unparse (g_currentloc), s)); printError (stderr, cstring_makeLiteral ("*** Cannot continue.")); + (void) fflush (g_msgstream); llexit (LLFAILURE); } -/* -** free's s! -*/ - void -llgloberror (/*@only@*/ cstring s) +xllgloberror (char *srcFile, int srcLine, /*@only@*/ cstring s) { if (context_inSuppressRegion ()) { @@ -1254,6 +1384,7 @@ llgloberror (/*@only@*/ cstring s) context_hasError (); flagcode_recordError (FLG_SPECIAL); printError (g_msgstream, s); + showSourceLoc (srcFile, srcLine); closeMessage (); } } @@ -1288,7 +1419,7 @@ lclNumberErrors (void) } void -lclerror (ltoken t, /*@only@*/ cstring msg) +xlclerror (char *srcFile, int srcLine, ltoken t, /*@only@*/ cstring msg) { lclerrors++; @@ -1299,10 +1430,12 @@ lclerror (ltoken t, /*@only@*/ cstring msg) lastfileloclen = cstring_length (loc); printError (g_msgstream, message ("%q: %q", loc, msg)); + showSourceLoc (srcFile, srcLine); } else { printError (g_msgstream, msg); + showSourceLoc (srcFile, srcLine); } } @@ -1462,21 +1595,29 @@ static void llreportparseerror (/*@only@*/ cstring s) } } -bool lloptgenerror (flagcode o, /*@only@*/ cstring s, fileloc loc) +bool xlloptgenerror (char *srcFile, int srcLine, + flagcode o, /*@only@*/ cstring s, fileloc loc) { - if (llrealerror (s, loc)) + DPRINTF (("xllopt: %s", s)); + + if (llrealerror (srcFile, srcLine, s, loc)) { + DPRINTF (("Here we are!")); llsuppresshint ('-', o); closeMessage (); flagcode_recordError (o); return TRUE; } - - flagcode_recordSuppressed (o); - return FALSE; + else + { + DPRINTF (("Suppressed!")); + flagcode_recordSuppressed (o); + return FALSE; + } } -bool optgenerror2 (flagcode f1, flagcode f2, /*@only@*/ cstring s, fileloc loc) +bool xoptgenerror2 (char *srcFile, int srcLine, + flagcode f1, flagcode f2, /*@only@*/ cstring s, fileloc loc) { if (context_suppressFlagMsg (f1, loc)) { @@ -1492,21 +1633,25 @@ bool optgenerror2 (flagcode f1, flagcode f2, /*@only@*/ cstring s, fileloc loc) } else { - if (llrealerror (s, loc)) + if (llrealerror (srcFile, srcLine, s, loc)) { - llsuppresshint ('-', f2); + llsuppresshint2 ('-', f1, f2); flagcode_recordError (f2); closeMessage (); return TRUE; } - - flagcode_recordSuppressed (f2); + else + { + flagcode_recordSuppressed (f2); + } } } + return FALSE; } -bool optgenerror2n (flagcode f1, flagcode f2, /*@only@*/ cstring s, fileloc loc) +bool xoptgenerror2n (char *srcFile, int srcLine, + flagcode f1, flagcode f2, /*@only@*/ cstring s, fileloc loc) { if (context_suppressFlagMsg (f1, loc)) @@ -1523,7 +1668,7 @@ bool optgenerror2n (flagcode f1, flagcode f2, /*@only@*/ cstring s, fileloc loc) } else { - if (llrealerror (s, loc)) + if (llrealerror (srcFile, srcLine, s, loc)) { llsuppresshint ('+', f2); flagcode_recordError (f2); @@ -1537,9 +1682,10 @@ bool optgenerror2n (flagcode f1, flagcode f2, /*@only@*/ cstring s, fileloc loc) return FALSE; } -bool llnoptgenerror (flagcode o, /*@only@*/ cstring s, fileloc loc) +bool xllnoptgenerror (char *srcFile, int srcLine, + flagcode o, /*@only@*/ cstring s, fileloc loc) { - if (llrealerror (s, loc)) + if (llrealerror (srcFile, srcLine, s, loc)) { llsuppresshint ('+', o); flagcode_recordError (o); @@ -1604,6 +1750,31 @@ void llparseerror (cstring s) } } +bool xfsgenerror (char *srcFile, int srcLine, + flagSpec fs, /*@only@*/ cstring s, fileloc fl) +{ + if (flagSpec_isOn (fs, fl)) + { + if (llgenerroraux (srcFile, srcLine, s, fl, TRUE, FALSE)) + { + llsuppresshint ('-', flagSpec_getFirstOn (fs, fl)); + flagcode_recordError (flagSpec_getFirstOn (fs, fl)); + return TRUE; + } + else + { + flagcode_recordSuppressed (flagSpec_getFirstOn (fs, fl)); + return FALSE; + } + } + else + { + flagcode_recordSuppressed (flagSpec_getDominant (fs)); + cstring_free (s); + return FALSE; + } +} + bool doCheck (bool x, cstring pred, cstring file, int line) { if (!x) { diff --git a/src/llmain.c b/src/llmain.c index ab163de..500a324 100644 --- a/src/llmain.c +++ b/src/llmain.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -77,6 +77,7 @@ # include "llmain.h" # include "portab.h" # include "cpp.h" +# include "mtreader.h" # include extern /*@external@*/ int yydebug; @@ -92,17 +93,20 @@ static void describePrefixCodes (void); static void cleanupFiles (void); static void showHelp (void); static void interrupt (int p_i); -static void loadrc (FILE *p_rcfile, cstringSList *p_passThroughArgs); +static void loadrc (/*@open@*/ FILE *p_rcfile, cstringSList *p_passThroughArgs) + ; // /*@ensures closed p_rcfile@*/ ; static void describeVars (void); static bool specialFlagsHelp (char *p_next); static bool hasShownHerald = FALSE; +static char *specFullName (char *p_specfile, /*@out@*/ char **p_inpath) + /*@modifies *p_inpath@*/ ; static bool anylcl = FALSE; static clock_t inittime; -static /*@only@*/ /*@null@*/ tsource *initFile = (tsource *) 0; +static /*@only@*/ /*@null@*/ inputStream initFile = inputStream_undefined; -static fileIdList preprocessFiles (fileIdList) +static fileIdList preprocessFiles (fileIdList, bool) /*@modifies fileSystem@*/ ; # ifndef NOLCL @@ -150,34 +154,36 @@ static */ cstring larchpath = context_getLarchPath (); - tsource *LSLinitFile = (tsource *) 0; + inputStream LSLinitFile = inputStream_undefined; setCodePoint (); - if (initFile == (tsource *) 0) + if (inputStream_isUndefined (initFile)) { - initFile = tsource_create (INITFILENAME, LCLINIT_SUFFIX, FALSE); + initFile = inputStream_create (cstring_makeLiteral (INITFILENAME), + cstring_makeLiteralTemp (LCLINIT_SUFFIX), + FALSE); - if (!tsource_getPath (cstring_toCharsSafe (larchpath), initFile)) + if (!inputStream_getPath (larchpath, initFile)) { lldiagmsg (message ("Continuing without LCL init file: %s", - cstring_fromChars (tsource_fileName (initFile)))); + inputStream_fileName (initFile))); } else { - if (!tsource_open (initFile)) + if (!inputStream_open (initFile)) { lldiagmsg (message ("Continuing without LCL init file: %s", - cstring_fromChars (tsource_fileName (initFile)))); + inputStream_fileName (initFile))); } } } else { - if (!tsource_open (initFile)) + if (!inputStream_open (initFile)) { lldiagmsg (message ("Continuing without LCL init file: %s", - cstring_fromChars (tsource_fileName (initFile)))); + inputStream_fileName (initFile))); } } @@ -202,9 +208,9 @@ static setCodePoint (); /* need this to initialize LCL checker */ - llassert (initFile != NULL); - - if (tsource_isOpen (initFile)) + + llassert (inputStream_isDefined (initFile)); + if (inputStream_isOpen (initFile)) { setCodePoint (); @@ -217,24 +223,26 @@ static LCLProcessInitFileCleanup (); setCodePoint (); - check (tsource_close (initFile)); + check (inputStream_close (initFile)); } /* Initialize LSL init files, for parsing LSL signatures from LSL */ - LSLinitFile = tsource_create ("lslinit.lsi", ".lsi", FALSE); + LSLinitFile = inputStream_create (cstring_makeLiteral ("lslinit.lsi"), + cstring_makeLiteralTemp (".lsi"), + FALSE); - if (!tsource_getPath (cstring_toCharsSafe (larchpath), LSLinitFile)) + if (!inputStream_getPath (larchpath, LSLinitFile)) { lldiagmsg (message ("Continuing without LSL init file: %s", - cstring_fromChars (tsource_fileName (LSLinitFile)))); + inputStream_fileName (LSLinitFile))); } else { - if (!tsource_open (LSLinitFile)) + if (!inputStream_open (LSLinitFile)) { lldiagmsg (message ("Continuing without LSL init file: %s", - cstring_fromChars (tsource_fileName (LSLinitFile)))); + inputStream_fileName (LSLinitFile))); } } @@ -250,7 +258,7 @@ static lscanLineReset (); LSLScanInit (); - if (tsource_isOpen (LSLinitFile)) + if (inputStream_isOpen (LSLinitFile)) { setCodePoint (); LSLScanReset (LSLinitFile); @@ -258,10 +266,10 @@ static setCodePoint (); LSLProcessInitFile (); setCodePoint (); - check (tsource_close (LSLinitFile)); + check (inputStream_close (LSLinitFile)); } - tsource_free (LSLinitFile); + inputStream_free (LSLinitFile); if (lclHadError ()) { @@ -309,38 +317,42 @@ lslProcess (fileIdList lclfiles) fileIdList_elements (lclfiles, fid) { - char *actualName = (char *) dmalloc (sizeof (*actualName)); - char *oactualName = actualName; - char *fname = cstring_toCharsSafe (fileName (fid)); + cstring actualName = cstring_undefined; + cstring fname = fileName (fid); - if (osd_getPath (g_localSpecPath, fname, &actualName) == OSD_FILENOTFOUND) + if (osd_getPath (cstring_fromChars (g_localSpecPath), + fname, &actualName) == OSD_FILENOTFOUND) { if (mstring_equal (g_localSpecPath, ".")) { - lldiagmsg (message ("Spec file not found: %s", - cstring_fromChars (fname))); + lldiagmsg (message ("Spec file not found: %s", fname)); } else { lldiagmsg (message ("Spec file not found: %s (on %s)", - cstring_fromChars (fname), + fname, cstring_fromChars (g_localSpecPath))); } } else { - tsource *specFile; - - while (*actualName == '.' && *(actualName + 1) == CONNECTCHAR) + inputStream specFile; + /*@access cstring@*/ + char *namePtr = actualName; + + while (*namePtr == '.' && *(namePtr + 1) == CONNECTCHAR) { - actualName += 2; + namePtr += 2; } + /*@noaccess cstring@*/ + + g_currentSpec = cstring_fromCharsNew (namePtr); + + specFile = inputStream_create (cstring_copy (g_currentSpec), + LCL_EXTENSION, TRUE); - specFile = tsource_create (actualName, LCL_SUFFIX, TRUE); - llassert (specFile != (tsource *) 0); + llassert (inputStream_isDefined (specFile)); - g_currentSpec = cstring_fromChars (mstring_copy (actualName)); - g_currentSpecName = specFullName (cstring_toCharsSafe (g_currentSpec), &path); @@ -354,11 +366,11 @@ lslProcess (fileIdList lclfiles) /* Open source file */ - if (!tsource_open (specFile)) + if (!inputStream_open (specFile)) { lldiagmsg (message ("Cannot open file: %s", - cstring_fromChars (tsource_fileName (specFile)))); - tsource_free (specFile); + inputStream_fileName (specFile))); + inputStream_free (specFile); } else { @@ -387,32 +399,31 @@ lslProcess (fileIdList lclfiles) { if (overallStatus) { - outputLCSFile (path, "%%FAILED Output from ", + outputLCSFile (path, "%FAILED Output from ", g_currentSpecName); } else { - outputLCSFile (path, "%%PASSED Output from ", + outputLCSFile (path, "%PASSED Output from ", g_currentSpecName); } } - (void) tsource_close (specFile); - tsource_free (specFile); + (void) inputStream_close (specFile); + inputStream_free (specFile); symtable_exitScope (g_symtab); - } + } } - - sfree (oactualName); + cstring_free (actualName); } end_fileIdList_elements; - + /* Can cleanup lsl stuff right away */ - - lslCleanup (); - - g_currentSpec = cstring_undefined; - g_currentSpecName = NULL; + + lslCleanup (); + + g_currentSpec = cstring_undefined; + g_currentSpecName = NULL; } # endif @@ -485,7 +496,7 @@ static void handlePassThroughFlag (char *arg) ** them. This is an artifact of UNIX command line? */ - def = osd_fixDefine (arg + 1); + def = osd_fixDefine (cstring_fromChars (arg + 1)); DPRINTF (("Do define: %s", def)); cppDoDefine (def); DPRINTF (("After define")); @@ -524,6 +535,21 @@ static void addFile (fileIdList files, /*@only@*/ cstring s) } } +static void addXHFile (fileIdList files, /*@only@*/ cstring s) +{ + if (fileTable_exists (context_fileTable (), s)) + { + showHerald (); + lldiagmsg (message ("File listed multiple times: %s", s)); + cstring_free (s); + } + else + { + fileIdList_add (files, fileTable_addXHFile (context_fileTable (), s)); + cstring_free (s); + } +} + /* ** Disable MSVC++ warning about return value. Methinks humbly lclint control ** comments are a mite more legible. @@ -561,13 +587,12 @@ int main (int argc, char *argv[]) bool showhelp = FALSE; bool allhelp = TRUE; bool expsuccess; - tsource *sourceFile = (tsource *) 0; + inputStream sourceFile = inputStream_undefined; fileIdList dercfiles; cstringSList fl = cstringSList_undefined; cstringSList passThroughArgs = cstringSList_undefined; - fileIdList cfiles; - fileIdList lclfiles; + fileIdList cfiles, xfiles, lclfiles, mtfiles; clock_t before, lcltime, libtime, pptime, cptime, rstime; int i = 0; @@ -577,18 +602,21 @@ int main (int argc, char *argv[]) (void) signal (SIGSEGV, interrupt); cfiles = fileIdList_create (); + xfiles = fileIdList_create (); lclfiles = fileIdList_create (); + mtfiles = fileIdList_create (); flags_initMod (); + clabstract_initMod (); typeIdSet_initMod (); cppReader_initMod (); - setCodePoint (); - + g_currentloc = fileloc_createBuiltin (); - + before = clock (); context_initMod (); + context_setInCommandLine (); if (argc <= 1) @@ -605,26 +633,28 @@ int main (int argc, char *argv[]) */ { - char *incval = mstring_copy (osd_getEnvironmentVariable (INCLUDE_VAR)); + cstring incval = cstring_copy + (osd_getEnvironmentVariable (cstring_makeLiteralTemp (INCLUDE_VAR))); - if (incval != NULL) + if (cstring_isDefined (incval)) { /* ** Each directory on the include path is a system include directory. */ DPRINTF (("include: %s", incval)); - context_setString (FLG_SYSTEMDIRS, cstring_fromCharsNew (incval)); + context_setString (FLG_SYSTEMDIRS, cstring_copy (incval)); - while (incval != NULL) + while (cstring_isDefined (incval)) { + /*@access cstring@*/ char *nextsep = strchr (incval, SEPCHAR); if (nextsep != NULL) { cstring dir; *nextsep = '\0'; - dir = cstring_fromCharsNew (incval); + dir = cstring_copy (incval); if (cstring_length (dir) == 0 || !isalpha ((int) cstring_firstChar (dir))) @@ -636,20 +666,23 @@ int main (int argc, char *argv[]) } else { - DPRINTF (("Add include: %s", dir)); cppAddIncludeDir (dir); } *nextsep = SEPCHAR; - incval = nextsep + 1; + incval = cstring_fromChars (nextsep + 1); cstring_free (dir); } else { break; } + + /*@noaccess cstring@*/ } } + + cstring_free (incval); } /* @@ -657,7 +690,7 @@ int main (int argc, char *argv[]) */ { - cstring home = cstring_fromChars (osd_getHomeDir ()); + cstring home = osd_getHomeDir (); char *fname = NULL; FILE *rcfile; bool defaultf = TRUE; @@ -869,21 +902,26 @@ int main (int argc, char *argv[]) thisarg++; /* skip '-' */ flagname = cstring_fromChars (thisarg); - + + DPRINTF (("Flag: %s", flagname)); opt = identifyFlag (flagname); - + DPRINTF (("Flag: %s", flagcode_unparse (opt))); + if (flagcode_isSkip (opt)) { - ; + DPRINTF (("Skipping!")); } else if (flagcode_isInvalid (opt)) { + DPRINTF (("Invalid: %s", flagname)); + if (isMode (flagname)) { context_setMode (flagname); } else { + DPRINTF (("Error!")); llgloberror (message ("Unrecognized option: %s", cstring_fromChars (thisarg))); } @@ -952,15 +990,30 @@ int main (int argc, char *argv[]) else if (opt == FLG_INIT) { # ifndef NOLCL - initFile = tsource_create - (cstring_toCharsSafe (arg), - LCLINIT_SUFFIX, FALSE); + initFile = inputStream_create + (arg, + cstring_makeLiteralTemp (LCLINIT_SUFFIX), + FALSE); # endif break; } else { - setStringFlag (opt, arg); + DPRINTF (("String flag: %s / %s", + flagcode_unparse (opt), arg)); + if (opt == FLG_MTSFILE) + { + /* + ** arg identifies mts files + */ + + addFile (mtfiles, message ("%s%s", arg, MTS_EXTENSION)); + addXHFile (xfiles, message ("%s%s", arg, XH_EXTENSION)); + } + else + { + setStringFlag (opt, arg); + } } } else @@ -980,6 +1033,7 @@ int main (int argc, char *argv[]) } else /* its a filename */ { + DPRINTF (("Adding filename: %s", thisarg)); fl = cstringSList_add (fl, cstring_fromChars (thisarg)); } } @@ -993,35 +1047,44 @@ int main (int argc, char *argv[]) cstringSList_elements (fl, current) { - char *fname = cstring_toCharsSafe (current); - char *ext = strrchr (fname, '.'); - - if (ext == NULL) + cstring ext = fileLib_getExtension (current); + + if (cstring_isUndefined (ext)) { /* no extension --- both C and LCL with default extensions */ - addFile (cfiles, message ("%s.c", cstring_fromChars (fname))); - addFile (lclfiles, message ("%s.lcl", cstring_fromChars (fname))); + addFile (cfiles, message ("%s%s", current, C_EXTENSION)); + addFile (lclfiles, message ("%s%s", current, LCL_EXTENSION)); + } + else if (cstring_equal (ext, XH_EXTENSION)) + { + addXHFile (xfiles, cstring_copy (current)); + } + else if (cstring_equal (ext, LCL_EXTENSION)) + { + addFile (lclfiles, cstring_copy (current)); } - else if (isCext (ext)) + else if (fileLib_isCExtension (ext)) { - addFile (cfiles, cstring_fromCharsNew (fname)); + addFile (cfiles, cstring_copy (current)); + } + else if (cstring_equal (ext, MTS_EXTENSION)) + { + addFile (mtfiles, cstring_copy (current)); } else { - if (!mstring_equal (ext, ".lcl")) - { - lldiagmsg (message ("Unrecognized file extension: %s (assuming lcl)", - cstring_fromChars (ext))); - } - - addFile (lclfiles, cstring_fromCharsNew (fname)); + voptgenerror + (FLG_FILEEXTENSIONS, + message ("Unrecognized file extension: %s (assuming %s is C source code)", + current, ext), + g_currentloc); + + addFile (cfiles, cstring_copy (current)); } } end_cstringSList_elements; - - showHerald (); - + showHerald (); /*@i723 move earlier? */ if (showhelp) { @@ -1032,6 +1095,7 @@ int main (int argc, char *argv[]) fprintf (g_msgstream, "\n"); fileIdList_free (cfiles); + fileIdList_free (xfiles); fileIdList_free (lclfiles); llexit (LLSUCCESS); @@ -1087,8 +1151,24 @@ int main (int argc, char *argv[]) fileloc_free (g_currentloc); g_currentloc = fileloc_createBuiltin (); + /* + ** Read metastate files (must happen before loading libraries) + */ + + fileIdList_elements (mtfiles, mtfile) + { + context_setFileId (mtfile); + + if (context_getFlag (FLG_SHOWSCAN)) + { + lldiagmsg (message ("< processing %s >", rootFileName (mtfile))); + } + + mtreader_readFile (cstring_copy (fileName (mtfile))); + } end_fileIdList_elements; + libtime = clock (); - + if (anylcl) { # ifdef NOLCL @@ -1098,6 +1178,8 @@ int main (int argc, char *argv[]) # endif } + usymtab_initGlobalMarker (); + /* ** pre-processing ** @@ -1108,8 +1190,6 @@ int main (int argc, char *argv[]) context_setInCommandLine (); - cppReader_initialize (); - DPRINTF (("Pass through: %s", cstringSList_unparse (passThroughArgs))); cstringSList_elements (passThroughArgs, thisarg) { @@ -1120,12 +1200,16 @@ int main (int argc, char *argv[]) cleanupMessages (); + DPRINTF (("Initializing cpp reader!")); + cppReader_initialize (); cppReader_saveDefinitions (); context_clearInCommandLine (); if (!context_getFlag (FLG_NOPP)) { + fileIdList tfiles; + llflush (); if (context_getFlag (FLG_SHOWSCAN)) @@ -1136,7 +1220,11 @@ int main (int argc, char *argv[]) lcltime = clock (); context_setPreprocessing (); - dercfiles = preprocessFiles (cfiles); + dercfiles = preprocessFiles (xfiles, TRUE); + tfiles = preprocessFiles (cfiles, FALSE); + dercfiles = fileIdList_append (dercfiles, tfiles); + fileIdList_free (tfiles); + context_clearPreprocessing (); fileIdList_free (cfiles); @@ -1151,10 +1239,10 @@ int main (int argc, char *argv[]) else { lcltime = clock (); - dercfiles = cfiles; + dercfiles = fileIdList_append (cfiles, xfiles); pptime = clock (); } - + /* ** now, check all the corresponding C files ** @@ -1173,30 +1261,33 @@ int main (int argc, char *argv[]) # endif } + DPRINTF (("Initializing...")); + exprNode_initMod (); + DPRINTF (("Okay...")); + fileIdList_elements (dercfiles, fid) { - sourceFile = tsource_create (cstring_toCharsSafe (fileName (fid)), - C_SUFFIX, TRUE); + sourceFile = inputStream_create (cstring_copy (fileName (fid)), C_EXTENSION, TRUE); context_setFileId (fid); /* Open source file */ - if (sourceFile == (tsource *) 0 || (!tsource_open (sourceFile))) + if (inputStream_isUndefined (sourceFile) || (!inputStream_open (sourceFile))) { /* previously, this was ignored ?! */ llbug (message ("Could not open temp file: %s", fileName (fid))); } else { - yyin = sourceFile->file; /*< shared <- only */ + yyin = inputStream_getFile (sourceFile); /*< shared <- only */ llassert (yyin != NULL); if (context_getFlag (FLG_SHOWSCAN)) { - lldiagmsg (message ("< checking %s >", rootFileName (fid))); + lldiagmsg (message ("< checking %s >", rootFileName (fid))); } /* @@ -1213,13 +1304,13 @@ int main (int argc, char *argv[]) first_time = FALSE; } + DPRINTF (("Entering...")); context_enterFile (); (void) yyparse (); - context_exitFile (); + context_exitCFile (); - (void) tsource_close (sourceFile); - } - + (void) inputStream_close (sourceFile); + } } end_fileIdList_elements; cptime = clock (); @@ -1313,7 +1404,7 @@ int main (int argc, char *argv[]) if (nspecErrors == context_getLCLExpect ()) { specErrors = - message ("%d spec error%p found, as expected\n ", + message ("%d spec error%& found, as expected\n ", nspecErrors); } else @@ -1321,13 +1412,13 @@ int main (int argc, char *argv[]) if (context_getLCLExpect () > 0) { specErrors = - message ("%d spec error%p found, expected %d\n ", + message ("%d spec error%& found, expected %d\n ", nspecErrors, (int) context_getLCLExpect ()); } else { - specErrors = message ("%d spec error%p found\n ", + specErrors = message ("%d spec error%& found\n ", nspecErrors); expsuccess = FALSE; } @@ -1350,7 +1441,7 @@ int main (int argc, char *argv[]) { if (!isQuiet) { llmsg (message ("Finished LCLint checking --- " - "%s%d code error%p found, as expected", + "%s%d code error%& found, as expected", specErrors, context_numErrors ())); } } @@ -1361,7 +1452,7 @@ int main (int argc, char *argv[]) if (!isQuiet) { llmsg (message ("Finished LCLint checking --- " - "%s%d code error%p found, expected %d", + "%s%d code error%& found, expected %d", specErrors, context_numErrors (), (int) context_getExpect ())); } @@ -1371,11 +1462,12 @@ int main (int argc, char *argv[]) else { - if (!isQuiet) { - llmsg (message ("Finished LCLint checking --- " - "%s%d code error%p found", - specErrors, context_numErrors ())); - } + if (!isQuiet) + { + llmsg (message ("Finished LCLint checking --- " + "%s%d code error%& found", + specErrors, context_numErrors ())); + } expsuccess = FALSE; } @@ -1481,19 +1573,21 @@ int main (int argc, char *argv[]) llexit (expsuccess ? LLSUCCESS : LLFAILURE); } +# ifdef WIN32 /* ** Reenable return value warnings. */ - -#pragma warning (default:4035) +# pragma warning (default:4035) +# endif void showHelp (void) { showHerald (); - llmsglit ("Source files are .c, .h and .lcl files. If there is no suffix,"); - llmsglit (" LCLint will look for .c and .lcl."); + llmsg (message ("Source files are .c, .h and %s files. If there is no suffix,", + LCL_EXTENSION)); + llmsg (message (" LCLint will look for .c and %s.", LCL_EXTENSION)); llmsglit (""); llmsglit ("Use lclint -help for more information"); llmsglit (""); @@ -1578,8 +1672,9 @@ printParseErrors (void) llmsglit (" ..."); llmsglit (" # endif"); llmsglit (""); + /* evans 2000-12-21 fixed typo reported by Jeroen Ruigrok/Asmodai */ llmsglit ("Missing type definitions --- an undefined type name will usually " - "lead to a parse error. This ofter occurs when a standard header " + "lead to a parse error. This often occurs when a standard header " "file defines some type that is not part of the standard library. "); llmsglit ("By default, LCLint does not process the local files corresponding " "to standard library headers, but uses a library specification " @@ -1623,7 +1718,7 @@ printAnnotations (void) llmsglit ("Annotations"); llmsglit ("-----------"); llmsglit (""); - llmsglit ("Annotations are stylized comments that document certain " + llmsglit ("Annotations are semantic comments that document certain " "assumptions about functions, variables, parameters, and types. "); llmsglit (""); llmsglit ("They may be used to indicate where the representation of a " @@ -1881,12 +1976,12 @@ void describeVars (void) { cstring eval; - char *def; + cstring def; eval = context_getLarchPath (); def = osd_getEnvironmentVariable (LARCH_PATH); - if (def != NULL || + if (cstring_isDefined (def) || !cstring_equal (eval, cstring_fromChars (DEFAULT_LARCHPATH))) { llmsg (message ("LARCH_PATH = %s", eval)); @@ -1900,9 +1995,9 @@ describeVars (void) llmsglit (" --- path used to find larch initialization files and LSL traits"); eval = context_getLCLImportDir (); - def = osd_getEnvironmentVariable (LCLIMPORTDIR); + def = osd_getEnvironmentVariable (cstring_makeLiteralTemp (LCLIMPORTDIR)); - if (def != NULL || + if (cstring_isDefined (def) || !cstring_equal (eval, cstring_fromChars (DEFAULT_LCLIMPORTDIR))) { llmsg (message ("%q = %s", cstring_makeLiteral (LCLIMPORTDIR), eval)); @@ -2035,7 +2130,8 @@ llexit (int status) } void -loadrc (FILE *rcfile, cstringSList *passThroughArgs) +loadrc (/*@open@*/ FILE *rcfile, cstringSList *passThroughArgs) + // /*@ensures closed rcfile@*/ { char *s = mstring_create (MAX_LINE_LENGTH); char *os = s; @@ -2044,7 +2140,7 @@ loadrc (FILE *rcfile, cstringSList *passThroughArgs) s = os; - while (fgets (s, MAX_LINE_LENGTH, rcfile) != NULL) + while (reader_readLine (rcfile, s, MAX_LINE_LENGTH) != NULL) { char c; bool set = FALSE; @@ -2053,9 +2149,8 @@ loadrc (FILE *rcfile, cstringSList *passThroughArgs) DPRINTF (("Line: %s", s)); DPRINTF (("Pass through: %s", cstringSList_unparse (*passThroughArgs))); - incLine (); - while (*s == ' ' || *s == '\t' || *s == '\n') + while (*s == ' ' || *s == '\t') { s++; incColumn (); @@ -2152,6 +2247,8 @@ loadrc (FILE *rcfile, cstringSList *passThroughArgs) } else if (flagcode_isInvalid (opt)) { + DPRINTF (("Invalid: %s", thisflag)); + if (isMode (cstring_fromChars (thisflag))) { context_setMode (cstring_fromChars (thisflag)); @@ -2282,12 +2379,12 @@ loadrc (FILE *rcfile, cstringSList *passThroughArgs) else if (opt == FLG_INIT) { # ifndef NOLCL - llassert (initFile == NULL); + llassert (inputStream_isUndefined (initFile)); - initFile = tsource_create - (cstring_toCharsSafe (extra), - LCLINIT_SUFFIX, FALSE); - cstring_markOwned (extra); + initFile = inputStream_create + (extra, + cstring_makeLiteralTemp (LCLINIT_SUFFIX), + FALSE); # else cstring_free (extra); # endif @@ -2347,7 +2444,7 @@ loadrc (FILE *rcfile, cstringSList *passThroughArgs) check (fclose (rcfile) == 0); } -static fileIdList preprocessFiles (fileIdList fl) +static fileIdList preprocessFiles (fileIdList fl, bool xhfiles) /*@modifies fileSystem@*/ { bool msg = (context_getFlag (FLG_SHOWSCAN) && fileIdList_size (fl) > 10); @@ -2360,18 +2457,46 @@ static fileIdList preprocessFiles (fileIdList fl) fileIdList_elements (fl, fid) { - char *ppfname = cstring_toCharsSafe (fileName (fid)); + cstring ppfname = fileName (fid); - if (!(osd_fileIsReadable (ppfname))) + if (xhfiles) { - lldiagmsg (message ("Cannot open file: %s", - cstring_fromChars (ppfname))); + cstring fpath; + + if (osd_findOnLarchPath (ppfname, &fpath) == OSD_FILEFOUND) + { + if (cstring_equal (ppfname, fpath)) + { + ; + } + else + { + DPRINTF (("xh file: %s", fpath)); + ppfname = fpath; + fileTable_setFilePath (context_fileTable (), fid, fpath); + } + } + else + { + lldiagmsg (message ("Cannot find .xh file on LARCH_PATH: %s", ppfname)); + lldiagmsg (cstring_makeLiteral (" Check LARCH_PATH environment variable.")); + ppfname = cstring_undefined; + } } else { - fileId dfile = fileTable_addCTempFile (context_fileTable (), fid); + if (!(osd_fileIsReadable (ppfname))) + { + lldiagmsg (message ("Cannot open file: %s", ppfname)); + ppfname = cstring_undefined; + } + } + + if (cstring_isDefined (ppfname)) + { + fileId dfile = fileTable_addCTempFile (context_fileTable (), fid); - llassert (!mstring_isEmpty (ppfname)); + llassert (cstring_isNonEmpty (ppfname)); if (msg) { @@ -2389,8 +2514,7 @@ static fileIdList preprocessFiles (fileIdList fl) filesprocessed++; } - if (cppProcess (cstring_fromChars (ppfname), - fileName (dfile)) != 0) + if (cppProcess (ppfname, fileName (dfile)) != 0) { llfatalerror (message ("Preprocessing error for file: %s", rootFileName (fid))); @@ -2402,3 +2526,75 @@ static fileIdList preprocessFiles (fileIdList fl) return dfiles; } + +/* This should be in an lclUtils.c file... */ +# ifndef NOLCL +char *specFullName (char *specfile, /*@out@*/ char **inpath) +{ + /* extract the path and the specname associated with the given file */ + char *specname = (char *) dmalloc (sizeof (*specname) + * (strlen (specfile) + 9)); + char *ospecname = specname; + char *path = (char *) dmalloc (sizeof (*path) * (strlen (specfile))); + size_t size; + long int i, j; + + /* initialized path to empty string or may have accidental garbage */ + *path = '\0'; + + /*@-mayaliasunique@*/ + strcpy (specname, specfile); + /*@=mayaliasunique@*/ + + /* trim off pathnames in specfile */ + size = strlen (specname); + + for (i = size_toInt (size) - 1; i >= 0; i--) + { + if (specname[i] == CONNECTCHAR) + { + /* strcpy (specname, (char *)specname+i+1); */ + for (j = 0; j <= i; j++) /* include '/' */ + { + path[j] = specname[j]; + } + + path[i + 1] = '\0'; + specname += i + 1; + break; + } + } + + /* + ** also remove .lcl file extension, assume it's the last extension + ** of the file name + */ + + size = strlen (specname); + + for (i = size_toInt (size) - 1; i >= 0; i--) + { + if (specname[i] == '.') + { + specname[i] = '\0'; + break; + } + } + + *inpath = path; + + /* + ** If specname no longer points to the original char, + ** we need to allocate a new pointer and copy the string. + */ + + if (specname != ospecname) { + char *rspecname = (char *) dmalloc (sizeof (*rspecname) * (strlen (specname) + 1)); + strcpy (rspecname, specname); /* evs 2000-05-16: Bug: was ospecname! */ + sfree (ospecname); + return rspecname; + } + + return specname; +} +# endif diff --git a/src/lltok.c b/src/lltok.c index e5936c5..73048c8 100644 --- a/src/lltok.c +++ b/src/lltok.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -238,8 +238,7 @@ lltok_unparse (lltok tok) case QRELEASES: lit = "releases"; break; case QSETBUFFERSIZE: lit = "setBufferSize"; break; case QSETSTRINGLENGTH: lit = "setStringLength"; break; - default: lit = "bad "; break; - // BADDEFAULT; + BADDEFAULT; } return cstring_makeLiteralTemp (lit); @@ -261,3 +260,9 @@ void lltok_release (lltok t) fileloc_free (t.loc); } +fileloc lltok_stealLoc (lltok t) +{ + fileloc res = t.loc; + t.loc = fileloc_undefined; + return res; +} diff --git a/src/lslOpList.c b/src/lslOpList.c index 5b5bfe6..628e0c7 100644 --- a/src/lslOpList.c +++ b/src/lslOpList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lslOpSet.c b/src/lslOpSet.c index de9bd3d..1b12a85 100644 --- a/src/lslOpSet.c +++ b/src/lslOpSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lslinit.c b/src/lslinit.c index 9a3deb4..cdebf62 100644 --- a/src/lslinit.c +++ b/src/lslinit.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lslparse.c b/src/lslparse.c index 01ddf6b..3273075 100644 --- a/src/lslparse.c +++ b/src/lslparse.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -49,43 +49,42 @@ /*@dependent@*/ /*@null@*/ lslOp g_importedlslOp = NULL; bool g_lslParsingTraits = FALSE; -static void invokeLSL (char *p_infile, char *p_outfile, bool p_deletep); +static void invokeLSL (cstring p_infile, cstring p_outfile, bool p_deletep); int parseSignatures (cstring infile) { - char *cinfile = cstring_toCharsSafe (infile); - tsource *sourceFile; + inputStream sourceFile; ltoken *id = (ltoken *) dmalloc (sizeof (*id)); int status = 0; /* parse traits */ - *id = LSLInsertToken (LST_SIMPLEID, lsymbol_fromChars (cinfile), 0, FALSE); - ltoken_setFileName (*id, cinfile); + *id = LSLInsertToken (LST_SIMPLEID, lsymbol_fromString (infile), 0, FALSE); + ltoken_setFileName (*id, infile); ltoken_setLine (*id, 0); ltoken_setCol (*id, 0); - sourceFile = tsource_create (cinfile, "", FALSE); + sourceFile = inputStream_create (infile, cstring_undefined, FALSE); - if (!tsource_getPath (cstring_toCharsSafe (context_getLarchPath ()), sourceFile)) + if (!inputStream_getPath (context_getLarchPath (), sourceFile)) { lclplainerror (message ("LSL signature parsing: can't find file %s containing trait", - cstring_fromChars (tsource_fileName (sourceFile)))); + inputStream_fileName (sourceFile))); status = 1; sfree (id); - tsource_free (sourceFile); + inputStream_free (sourceFile); return status; } - if (!tsource_open (sourceFile)) + if (!inputStream_open (sourceFile)) { lclplainerror (cstring_makeLiteral ("LSL parsing: can't open file containing trait")); status = 2; sfree (id); - tsource_free (sourceFile); + inputStream_free (sourceFile); return status; } @@ -100,8 +99,8 @@ parseSignatures (cstring infile) /* symtable_dump (symtab, stdout, TRUE); */ g_lslParsingTraits = FALSE; - (void) tsource_close (sourceFile); - tsource_free (sourceFile); + (void) inputStream_close (sourceFile); + inputStream_free (sourceFile); sfree (id); @@ -110,14 +109,14 @@ parseSignatures (cstring infile) } /*@only@*/ lslOp -parseOpLine (char *fname, char *line) +parseOpLine (cstring fname, cstring line) { - tsource *sourceFile; + inputStream sourceFile; bool status; - sourceFile = tsource_fromString (fname, line); + sourceFile = inputStream_fromString (fname, line); - if (check (tsource_open (sourceFile))) + if (check (inputStream_open (sourceFile))) { LSLScanReset (sourceFile); LSLReportEolTokens (FALSE); /* 0 by default, lslParsingTraits = 0; */ @@ -133,14 +132,13 @@ parseOpLine (char *fname, char *line) if (status) { - lclplainfatalerror (message ("Error in parsing line: %s", - cstring_fromChars (line))); + lclplainfatalerror (message ("Error in parsing line: %s", line)); } - (void) tsource_close (sourceFile); + (void) inputStream_close (sourceFile); } - tsource_free (sourceFile); + inputStream_free (sourceFile); llassert (g_importedlslOp != NULL); return (lslOp_copy (g_importedlslOp)); @@ -184,7 +182,7 @@ printTypeName2 (typeNameNode n) if (!sort_isValidSort (lclSort)) { err = lclTypeSpecNode_errorToken (p->type); - /* errorShowPoint (tsource_thisLine (lclsource), ltoken_getCol (err)); */ + /* errorShowPoint (inputStream_thisLine (lclsource), ltoken_getCol (err)); */ lclerror (err, message ("Unrecognized type in uses: %q", typeNameNode_unparse (n))); } @@ -222,7 +220,7 @@ printTypeName2 (typeNameNode n) } */ sn = sort_lookup (lclSort); - s = cstring_copy (cstring_fromChars (lsymbol_toChars (sn.name))); + s = cstring_copy (cstring_fromChars (lsymbol_toChars (sn->name))); /* s = string_paste (s, AbstDeclaratorNode_unparse (p->abst)); */ } } @@ -350,7 +348,7 @@ printRenamingNode2 (renamingNode x) } static /*@only@*/ cstring -printTraitRefList2 (traitRefNodeList x) +printTraitRefList2 (traitRefNodeList x) /*@*/ { cstring s = cstring_undefined; @@ -362,6 +360,7 @@ printTraitRefList2 (traitRefNodeList x) { s = message ("%q(%q)", s, printRenamingNode2 (i->rename)); } + s = message ("%q\n", s); } end_traitRefNodeList_elements; @@ -369,7 +368,7 @@ printTraitRefList2 (traitRefNodeList x) } void -callLSL (/*@unused@*/ char *specfile, /*@only@*/ char *text) +callLSL (/*@unused@*/ cstring specfile, /*@only@*/ cstring text) { /* specfile is the name of the LCL file that contains "uses" Create an intermediate file named @@ -381,76 +380,79 @@ callLSL (/*@unused@*/ char *specfile, /*@only@*/ char *text) symbols. */ - char *infile, *outfile; - char *tmp1, *tmp2; + cstring infile; + cstring outfile; + cstring nopath; + cstring noext; FILE *inptr; - infile = cstring_toCharsSafe (fileName (fileTable_addltemp (context_fileTable ()))); - - inptr = fopen (infile, "w"); + infile = fileName (fileTable_addltemp (context_fileTable ())); + inptr = fopen (cstring_toCharsSafe (infile), "w"); if (inptr == NULL) { /* fopen fails */ llfatalerror (message ("Unable to write intermediate file: %s", - cstring_fromChars (infile))); + infile)); } - tmp1 = removePath (infile); - tmp2 = removeAnyExtension (tmp1); + nopath = fileLib_removePath (infile); + noext = fileLib_removeAnyExtension (nopath); + + fprintf (inptr, "%s : trait\n", cstring_toCharsSafe (noext)); - fprintf (inptr, "%s : trait\n", tmp2); - sfree (tmp1); - sfree (tmp2); + cstring_free (noext); + cstring_free (nopath); - fprintf (inptr, "%s", text); + fprintf (inptr, "%s", cstring_toCharsSafe (text)); check (fclose (inptr) == 0); /* the default is to delete the input file */ - outfile = cstring_toCharsSafe (fileName (fileTable_addltemp (context_fileTable ()))); + outfile = fileName (fileTable_addltemp (context_fileTable ())); invokeLSL (infile, outfile, context_getFlag (FLG_KEEP)); - sfree (text); + cstring_free (text); } -static void invokeLSL (char *infile, char *outfile, bool deletep) +static void invokeLSL (cstring infile, cstring outfile, bool deletep) { /* run lsl on infile and leave result in outfile */ FILE *outptr; filestatus status; int callstatus; cstring call; - char *returnPath = NULL; + cstring returnPath = cstring_undefined; /* ** Ensures that outfile can be written into, should find a better ** way to do this. */ - outptr = fopen (outfile, "w"); + outptr = fopen (cstring_toCharsSafe (outfile), "w"); if (outptr == NULL) { /* fopen fails */ llfatalerror (message ("Unable to write intermediate file: %s", - cstring_fromChars (outfile))); + outfile)); } check (fclose (outptr) == 0); /* set call to the right command */ - status = osd_getExePath ("PATH", "lsl", &returnPath); + status = osd_getExePath (cstring_makeLiteralTemp ("PATH"), + cstring_makeLiteralTemp ("lsl"), + &returnPath); if (status == OSD_FILEFOUND) { - call = message ("%s -syms %s > %s", cstring_fromChars (returnPath), - cstring_fromChars (infile), cstring_fromChars (outfile)); + call = message ("%s -syms %s > %s", returnPath, infile, outfile); /* before calling, make sure old file is removed */ (void) osd_unlink (outfile); - callstatus = osd_system (cstring_toCharsSafe (call)); + callstatus = osd_system (call); cstring_free (call); @@ -459,10 +461,8 @@ static void invokeLSL (char *infile, char *outfile, bool deletep) /* ** lsl errors: call lsl again without -syms, sending output to stdout */ - cstring syscal = message ("%s %s", cstring_fromChars (returnPath), - cstring_fromChars (infile)); - - (void) osd_system (cstring_toCharsSafe (syscal)); + cstring syscal = message ("%s %s", returnPath, infile); + (void) osd_system (syscal); cstring_free (syscal); llfatalerror (cstring_makeLiteral ("LSL trait used contains errors.")); @@ -470,7 +470,7 @@ static void invokeLSL (char *infile, char *outfile, bool deletep) else { /* ok, go ahead */ /* Now parse the LSL output and store info in symbol table */ - callstatus = parseSignatures (cstring_fromChars (outfile)); + callstatus = parseSignatures (cstring_copy (outfile)); if (callstatus == 0) { @@ -505,8 +505,5 @@ void readlsignatures (interfaceNode n) { /* assume n->kind = usesKIND */ - char *content; - - content = cstring_toCharsSafe (printTraitRefList2 (n->content.uses)); - callLSL (cstring_toCharsSafe (g_currentSpec), content); + callLSL (g_currentSpec, printTraitRefList2 (n->content.uses)); } diff --git a/src/lsymbol.c b/src/lsymbol.c index 9b3654a..a386be5 100644 --- a/src/lsymbol.c +++ b/src/lsymbol.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lsymbolList.c b/src/lsymbolList.c index fee5c1a..8762f27 100644 --- a/src/lsymbolList.c +++ b/src/lsymbolList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/lsymbolSet.c b/src/lsymbolSet.c index d40a6fd..fbe470c 100644 --- a/src/lsymbolSet.c +++ b/src/lsymbolSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/ltoken.c b/src/ltoken.c index 8694393..1b4352c 100644 --- a/src/ltoken.c +++ b/src/ltoken.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -87,7 +87,7 @@ static /*@notnull@*/ ltoken ltoken_new (void) return tok; } -ltoken ltoken_create (unsigned int code, lsymbol text) +ltoken ltoken_create (ltokenCode code, lsymbol text) { ltoken tok = ltoken_new (); @@ -97,7 +97,7 @@ ltoken ltoken_create (unsigned int code, lsymbol text) return tok; } -ltoken ltoken_createRaw (unsigned int code, lsymbol text) +ltoken ltoken_createRaw (ltokenCode code, lsymbol text) { ltoken tok = ltoken_new (); @@ -107,7 +107,7 @@ ltoken ltoken_createRaw (unsigned int code, lsymbol text) return tok; } -ltoken ltoken_createType (unsigned int code, SimpleIdCode idtype, lsymbol text) +ltoken ltoken_createType (ltokenCode code, SimpleIdCode idtype, lsymbol text) { ltoken tok = ltoken_new (); @@ -120,9 +120,9 @@ ltoken ltoken_createType (unsigned int code, SimpleIdCode idtype, lsymbol text) return tok; } -ltoken ltoken_createFull (unsigned int code, lsymbol text, - cstring file, unsigned int line, - unsigned int col) +ltoken ltoken_createFull (ltokenCode code, lsymbol text, + cstring file, int line, + int col) { ltoken tok = (ltoken) dmalloc (sizeof (*tok)); @@ -138,7 +138,7 @@ ltoken ltoken_createFull (unsigned int code, lsymbol text, return tok; } -static /*@only@*/ cstring LCLTokenCode_unparseCodeName (unsigned int t) +static /*@only@*/ cstring LCLTokenCode_unparseCodeName (ltokenCode t) { switch (t) { @@ -294,15 +294,10 @@ lsymbol ltoken_getRawText (ltoken tok) { if (ltoken_getCode (t) != NOTTOKEN) { - if (context_getFlag (FLG_SHOWCOL)) - { - return (message ("%s:%u,%u", ltoken_fileName (t), - ltoken_getLine (t), ltoken_getCol (t))); - } - else - { - return (message ("%s:%u", ltoken_fileName (t), ltoken_getLine (t))); - } + cstring res = fileloc_unparseRawCol (ltoken_fileName (t), + ltoken_getLine (t), + ltoken_getCol (t)); + return res; } else { diff --git a/src/ltokenList.c b/src/ltokenList.c index 8e764ef..af97f70 100644 --- a/src/ltokenList.c +++ b/src/ltokenList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/macrocache.c b/src/macrocache.c index 2db8944..6160051 100644 --- a/src/macrocache.c +++ b/src/macrocache.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -43,7 +43,7 @@ ** Temporary file used for processing macros. */ -static /*@null@*/ FILE *s_macFile = NULL; +static /*@open@*/ /*@null@*/ FILE *s_macFile = NULL; /* ** mcDisable is set to TRUE when a macro is being processed, so @@ -179,6 +179,7 @@ macrocache_addEntry (macrocache s, /*@only@*/ fileloc fl, /*@only@*/ cstring def void macrocache_addComment (macrocache s, /*@only@*/ fileloc fl, /*@only@*/ cstring def) { + DPRINTF (("Add comment: %s / %s", fileloc_unparse (fl), def)); macrocache_addGenEntry (s, fl, def, TRUE); } @@ -313,11 +314,15 @@ macrocache_processMacro (macrocache m, int i) if (context_inSuppressRegion () && !insup) { - llerrorlit (FLG_SYNTAX, "Macro ends in ignore region"); + voptgenerror + (FLG_SYNTAX, + message ("Macro ends in ignore region: %s", m->contents[i]->def), + fl); } } incLine (); + context_exitAllClauses (); context_exitMacroCache (); } @@ -352,7 +357,8 @@ extern void macrocache_processUndefinedElements (macrocache m) { if (!fileloc_isLib (fl)) { - lldiagmsg (message ("< checking macros %s >", fileloc_filename (fl))); + lldiagmsg (message ("< checking macros %s >", + fileloc_filename (fl))); } } diff --git a/src/maketags b/src/maketags index 937fc8d..100b599 100755 --- a/src/maketags +++ b/src/maketags @@ -1,3 +1,4 @@ #!/bin/sh -etags --langmap=c:+.i.h *.y Headers/* *.c *.h *.l *.i +etags --langmap=c:+.i.h *.y Headers/* *.c *.h *.l *.i || etags *.y Headers/* *.c *.h *.l *.i; + diff --git a/src/mapping.c b/src/mapping.c index 65589c3..2dabdd4 100644 --- a/src/mapping.c +++ b/src/mapping.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -56,7 +56,7 @@ static void mappair_free (/*@null@*/ /*@only@*/ mappair *p) } } -void mapping_free (/*@only@*/ mapping *m) +void mapping_free (/*@only@*/ mapping m) { int i; @@ -69,11 +69,11 @@ void mapping_free (/*@only@*/ mapping *m) sfree (m); } -/*@only@*/ mapping * +/*@only@*/ mapping mapping_create (void) { int i; - mapping *t = (mapping *) dmalloc (sizeof (*t)); + mapping t = (mapping) dmalloc (sizeof (*t)); t->buckets = (mappair **) dmalloc ((MAPPING_SIZE + 1) * sizeof (*t->buckets)); t->count = 0; @@ -87,7 +87,7 @@ mapping_create (void) } lsymbol -mapping_find (mapping * t, lsymbol domain) +mapping_find (mapping t, lsymbol domain) { mappair *entry; unsigned int key; @@ -104,7 +104,7 @@ mapping_find (mapping * t, lsymbol domain) } void -mapping_bind (mapping *t, lsymbol domain, lsymbol range) +mapping_bind (mapping t, lsymbol domain, lsymbol range) { /* add the binding (domain -> range) to t */ /* can assume that the binding is a new one in m, so no need diff --git a/src/message.c b/src/message.c index 53fe670..56b29c6 100644 --- a/src/message.c +++ b/src/message.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -49,8 +49,7 @@ typedef enum ** advances *c to next character. */ -static ccode - identify_control (char **s) +static ccode identify_control (char **s) { char c; @@ -64,7 +63,7 @@ static ccode if (c >= '0' && c <= '9') { - modcode = getInt (s); + modcode = reader_getInt (s); } c = **s; @@ -102,7 +101,7 @@ static ccode return (XCTYPE); case 'l': return (XFILELOC); - case 'p': + case '&': return (XPLURAL); case 'r': return (XREPREFIX); diff --git a/src/messageLog.c b/src/messageLog.c index 56470da..d8c5250 100644 --- a/src/messageLog.c +++ b/src/messageLog.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -51,6 +51,11 @@ msgentry_create (fileloc loc, cstring mess) return msg; } +static /*@unused@*/ cstring msgentry_unparse (msgentry msg) /*@*/ +{ + return message ("%q:%s", fileloc_unparse (msg->loc), msg->msg); +} + static void msgentry_free (/*@only@*/ msgentry msg) { fileloc_free (msg->loc); @@ -152,6 +157,9 @@ bool messageLog_add (messageLog s, fileloc fl, cstring mess) { if (msgentry_equal (msg, s->elements[ind + 1])) { + DPRINTF (("Messages equivalent: %s / %s", + msgentry_unparse (msg), + msgentry_unparse (s->elements[ind+1]))); msgentry_free (msg); return FALSE; } diff --git a/src/metaStateInfo.c b/src/metaStateInfo.c new file mode 100644 index 0000000..60937be --- /dev/null +++ b/src/metaStateInfo.c @@ -0,0 +1,171 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** metaStateInfo.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +/*@notnull@*/ metaStateInfo +metaStateInfo_create (cstring name, + cstringList valueNames, + mtContextNode context, + stateCombinationTable sctable, + stateCombinationTable mergetable, + fileloc loc) +{ + metaStateInfo res = (metaStateInfo) dmalloc (sizeof (*res)); + + res->name = name; + res->valueNames = valueNames; + res->context = context; + + res->sctable = sctable; + res->mergetable = mergetable; + res->loc = loc; + res->default_ref = stateValue_error; + res->default_parameter = stateValue_error; + + llassert (stateCombinationTable_size (res->sctable) + == cstringList_size (res->valueNames)); + return res; +} + +void metaStateInfo_free (/*@only@*/ metaStateInfo msinfo) +{ + if (metaStateInfo_isDefined (msinfo)) + { + cstring_free (msinfo->name); + cstringList_free (msinfo->valueNames); + stateCombinationTable_free (msinfo->sctable); + stateCombinationTable_free (msinfo->mergetable); + fileloc_free (msinfo->loc); + sfree (msinfo); + } +} + +cstring metaStateInfo_unparse (metaStateInfo info) +{ + llassert (metaStateInfo_isDefined (info)); + return message ("%s: %q\n%q", info->name, + cstringList_unparse (info->valueNames), + stateCombinationTable_unparse (info->sctable)); +} + +cstring metaStateInfo_unparseValue (metaStateInfo info, int value) +{ + llassert (metaStateInfo_isDefined (info)); + + DPRINTF (("unparse value: %s / %d", + metaStateInfo_unparse (info), value)); + + if (value < 0) + { + llassert (value == stateValue_error); + return cstring_makeLiteralTemp ("error"); + } + + llassert (value < cstringList_size (info->valueNames)); + return cstringList_get (info->valueNames, value); +} + +/*@observer@*/ mtContextNode metaStateInfo_getContext (metaStateInfo info) +{ + llassert (metaStateInfo_isDefined (info)); + return info->context; +} + +/*@observer@*/ cstring metaStateInfo_getName (metaStateInfo info) +{ + llassert (metaStateInfo_isDefined (info)); + return info->name; +} + +/*@observer@*/ fileloc metaStateInfo_getLoc (metaStateInfo info) +{ + llassert (metaStateInfo_isDefined (info)); + return info->loc; +} + +extern /*@exposed@*/ stateCombinationTable +metaStateInfo_getTransferTable (metaStateInfo info) /*@*/ +{ + llassert (metaStateInfo_isDefined (info)); + return info->sctable; +} + +extern /*@exposed@*/ stateCombinationTable +metaStateInfo_getMergeTable (metaStateInfo info) /*@*/ +{ + llassert (metaStateInfo_isDefined (info)); + return info->mergetable; +} + +extern int metaStateInfo_getDefaultValue (metaStateInfo info, sRef s) +{ + llassert (metaStateInfo_isDefined (info)); + llassert (mtContextNode_matchesRef (metaStateInfo_getContext (info), s)); + + if (sRef_isParam (s)) + { + return info->default_parameter; + } + else + { + return info->default_ref; + } +} + +extern int metaStateInfo_getDefaultGlobalValue (metaStateInfo info) +{ + llassert (metaStateInfo_isDefined (info)); + return info->default_ref; +} + +void metaStateInfo_setDefaultRefValue (metaStateInfo info, int val) +{ + llassert (metaStateInfo_isDefined (info)); + llassert (info->default_ref == stateValue_error); + info->default_ref = val; +} + +void metaStateInfo_setDefaultParamValue (metaStateInfo info, int val) +{ + llassert (metaStateInfo_isDefined (info)); + llassert (info->default_parameter == stateValue_error); + info->default_parameter = val; +} + +int metaStateInfo_getDefaultRefValue (metaStateInfo info) +{ + llassert (metaStateInfo_isDefined (info)); + return info->default_ref; +} + +int metaStateInfo_getDefaultParamValue (metaStateInfo info) +{ + llassert (metaStateInfo_isDefined (info)); + return info->default_parameter; +} diff --git a/src/metaStateTable.c b/src/metaStateTable.c new file mode 100644 index 0000000..cbb63fd --- /dev/null +++ b/src/metaStateTable.c @@ -0,0 +1,53 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** metaStateTable.c +** Based on genericTable.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "randomNumbers.h" + +extern void metaStateTable_insert (metaStateTable h, + /*@only@*/ cstring key, + /*@only@*/ metaStateInfo metaState) +{ + llassert (metaStateInfo_isDefined (metaState)); + genericTable_insert ((genericTable) h, key, (void *) metaState); +} + +cstring metaStateTable_unparse (metaStateTable h) +{ + cstring res = cstring_newEmpty (); + + metaStateTable_elements (h, key, el) { + res = cstring_concatFree (res, message ("%s: %x\n", key, metaStateInfo_unparse (el))); + } end_metaStateTable_elements ; + + return res; +} + + + diff --git a/src/modifiesClause.c b/src/modifiesClause.c new file mode 100644 index 0000000..0bd1f00 --- /dev/null +++ b/src/modifiesClause.c @@ -0,0 +1,91 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** modifiesClause.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +extern modifiesClause +modifiesClause_createNoMods (lltok tok) +{ + modifiesClause res = (modifiesClause) dmalloc (sizeof (*res)); + + res->isnomods = TRUE; + res->srs = sRefSet_undefined; + + res->loc = fileloc_copy (lltok_getLoc (tok)); + lltok_release (tok); + + return res; +} + +extern modifiesClause +modifiesClause_create (lltok tok, sRefSet rfs) +{ + modifiesClause res = (modifiesClause) dmalloc (sizeof (*res)); + + res->isnomods = FALSE; + res->srs = rfs; + + res->loc = fileloc_copy (lltok_getLoc (tok)); + lltok_release (tok); + + return res; +} + +extern void modifiesClause_free (modifiesClause mclause) +{ + sRefSet_free (mclause->srs); + fileloc_free (mclause->loc); + sfree (mclause); +} + +extern cstring modifiesClause_unparse (modifiesClause node) +{ + if (node->isnomods) + { + return cstring_makeLiteral ("modifies nothing"); + } + else + { + return message ("modifies %q", sRefSet_unparse (node->srs)); + } +} + +extern sRefSet modifiesClause_getMods (modifiesClause m) +{ + llassert (!m->isnomods); + return m->srs; +} + +extern sRefSet modifiesClause_takeMods (modifiesClause m) +{ + sRefSet mods; + llassert (!m->isnomods); + mods = m->srs; + m->srs = sRefSet_undefined; + return mods; +} diff --git a/src/mtAnnotationDecl.c b/src/mtAnnotationDecl.c new file mode 100644 index 0000000..9848195 --- /dev/null +++ b/src/mtAnnotationDecl.c @@ -0,0 +1,60 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtAnnotationDecl.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtAnnotationDecl mtAnnotationDecl_create (mttok id, mtContextNode c, mttok value) +{ + mtAnnotationDecl res = (mtAnnotationDecl) dmalloc (sizeof (*res)); + + llassert (mttok_isIdentifier (id)); + res->name = mttok_getText (id); + res->context = c; + res->loc = mttok_stealLoc (id); + llassert (mttok_isIdentifier (value)); + res->value = mttok_getText (value); + mttok_free (id); + mttok_free (value); + return res; +} + +mtContextNode mtAnnotationDecl_stealContext (mtAnnotationDecl annot) +{ + mtContextNode mtc = annot->context; + annot->context = mtContextNode_undefined; + return mtc; +} + +extern cstring mtAnnotationDecl_unparse (mtAnnotationDecl node) +{ + return message ("%s %q ==> %s", + node->name, + mtContextNode_unparse (node->context), + node->value); +} diff --git a/src/mtAnnotationList.c b/src/mtAnnotationList.c new file mode 100644 index 0000000..e5ced2c --- /dev/null +++ b/src/mtAnnotationList.c @@ -0,0 +1,170 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtAnnotationList.c +** +** based on list_template.c +** +** where T has T_equal (or change this) and T_unparse +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +mtAnnotationList +mtAnnotationList_new () +{ + return mtAnnotationList_undefined; +} + +static /*@notnull@*/ mtAnnotationList +mtAnnotationList_newEmpty (void) +{ + mtAnnotationList s = (mtAnnotationList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = mtAnnotationListBASESIZE; + s->elements = (mtAnnotationDecl *) dmalloc (sizeof (*s->elements) * mtAnnotationListBASESIZE); + + return (s); +} + +static void +mtAnnotationList_grow (/*@notnull@*/ mtAnnotationList s) +{ + int i; + mtAnnotationDecl *newelements; + + s->nspace += mtAnnotationListBASESIZE; + + newelements = (mtAnnotationDecl *) dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); + + if (newelements == (mtAnnotationDecl *) 0) + { + llfatalerror (cstring_makeLiteral ("mtAnnotationList_grow: out of memory!")); + } + + for (i = 0; i < s->nelements; i++) + { + newelements[i] = s->elements[i]; + } + + sfree (s->elements); + s->elements = newelements; +} + +mtAnnotationList mtAnnotationList_single (/*@keep@*/ mtAnnotationDecl el) +{ + mtAnnotationList s = mtAnnotationList_new (); + s = mtAnnotationList_add (s, el); + return s; +} + +mtAnnotationList mtAnnotationList_add (mtAnnotationList s, /*@keep@*/ mtAnnotationDecl el) +{ + if (!mtAnnotationList_isDefined (s)) + { + s = mtAnnotationList_newEmpty (); + } + + if (s->nspace <= 0) + { + mtAnnotationList_grow (s); + } + + s->nspace--; + /*@i32@*/ s->elements[s->nelements] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +mtAnnotationList mtAnnotationList_prepend (mtAnnotationList s, /*@keep@*/ mtAnnotationDecl el) +{ + int i; + + if (!mtAnnotationList_isDefined (s)) + { + /*@i32@*/ return mtAnnotationList_single (el); + } + + if (s->nspace <= 0) + { + mtAnnotationList_grow (s); + } + + s->nspace--; + + for (i = s->nelements; i > 0; i--) + { + s->elements[i] = s->elements [i - 1]; + } + + /*@i32@*/ s->elements[0] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +cstring +mtAnnotationList_unparse (mtAnnotationList s) +{ + return mtAnnotationList_unparseSep (s, cstring_makeLiteralTemp (" ")); +} + +cstring +mtAnnotationList_unparseSep (mtAnnotationList s, cstring sep) +{ + cstring st = cstring_undefined; + + if (mtAnnotationList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) + { + if (i == 0) + { + st = mtAnnotationDecl_unparse (s->elements[i]); + } + else + st = message ("%q%s%q", st, sep, + mtAnnotationDecl_unparse (s->elements[i])); + } + } + + return st; +} + +void +mtAnnotationList_free (mtAnnotationList s) +{ + if (mtAnnotationList_isDefined (s)) + { + sfree (s->elements); + sfree (s); + } +} + diff --git a/src/mtAnnotationsNode.c b/src/mtAnnotationsNode.c new file mode 100644 index 0000000..4967dd9 --- /dev/null +++ b/src/mtAnnotationsNode.c @@ -0,0 +1,49 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtAnnotationsNode.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtAnnotationsNode mtAnnotationsNode_create (mtAnnotationList annots) +{ + mtAnnotationsNode res = (mtAnnotationsNode) dmalloc (sizeof (*res)); + res->annots = annots; + + return res; +} + +extern void mtAnnotationsNode_free (/*@only@*/ mtAnnotationsNode node) +{ + mtAnnotationList_free (node->annots); + sfree (node); +} + +extern cstring mtAnnotationsNode_unparse (mtAnnotationsNode node) +{ + return message ("annotations %q", mtAnnotationList_unparse (node->annots)); +} diff --git a/src/mtContextNode.c b/src/mtContextNode.c new file mode 100644 index 0000000..f0597e0 --- /dev/null +++ b/src/mtContextNode.c @@ -0,0 +1,218 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtContextNode.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +static bool mtContextNode_matchesType (mtContextNode, ctype) /*@*/ ; + +static /*@observer@*/ cstring mtContextKind_unparse (mtContextKind ck) +{ + switch (ck) + { + case MTC_ANY: return cstring_makeLiteralTemp ("any"); + case MTC_PARAM: return cstring_makeLiteralTemp ("param"); + case MTC_REFERENCE: return cstring_makeLiteralTemp ("reference"); + case MTC_CLAUSE: return cstring_makeLiteralTemp ("clause"); + } + + BADBRANCH; +} + +static mtContextNode mtContextNode_create (mtContextKind context, ctype ct) +{ + mtContextNode res = (mtContextNode) dmalloc (sizeof (*res)); + res->context = context; + res->type = ct; + DPRINTF (("Create: %s", mtContextNode_unparse (res))); + return res; +} + +extern mtContextNode mtContextNode_createAny () +{ + return mtContextNode_create (MTC_ANY, ctype_unknown); +} + +extern mtContextNode mtContextNode_createParameter (ctype ct) +{ + return mtContextNode_create (MTC_PARAM, ct); +} + +extern mtContextNode mtContextNode_createReference (ctype ct) +{ + return mtContextNode_create (MTC_REFERENCE, ct); +} + +extern mtContextNode mtContextNode_createClause (ctype ct) +{ + return mtContextNode_create (MTC_CLAUSE, ct); +} + +extern void mtContextNode_free (/*@only@*/ mtContextNode node) +{ + sfree (node); +} + +bool mtContextNode_matchesEntry (mtContextNode context, uentry ue) +{ + ctype ct; + + llassert (mtContextNode_isDefined (context)); + + DPRINTF (("Matches context: %s / %s", + mtContextNode_unparse (context), uentry_unparse (ue))); + + switch (context->context) + { + case MTC_ANY: break; /* everything matches */ + case MTC_PARAM: + if (!uentry_isParam (ue)) + { + return FALSE; + } + break; + case MTC_REFERENCE: + break; + case MTC_CLAUSE: + BADBRANCH; + } + + if (uentry_isFunction (ue)) + { + ct = ctype_getReturnType (uentry_getType (ue)); + } + else + { + ct = uentry_getType (ue); + } + + return mtContextNode_matchesType (context, ct); +} + +bool mtContextNode_matchesRef (mtContextNode context, sRef sr) +{ + ctype ct; + + llassert (mtContextNode_isDefined (context)); + + DPRINTF (("Matches context: %s / %s", + mtContextNode_unparse (context), sRef_unparse (sr))); + + switch (context->context) + { + case MTC_ANY: break; /* everything matches */ + case MTC_PARAM: + if (!sRef_isParam (sr)) + { + return FALSE; + } + break; + case MTC_REFERENCE: + break; + case MTC_CLAUSE: + BADBRANCH; + } + + ct = sRef_getType (sr); + return mtContextNode_matchesType (context, ct); +} + +bool mtContextNode_matchesRefStrict (mtContextNode context, sRef s) +{ + if (mtContextNode_matchesRef (context, s)) + { + if (ctype_isKnown (context->type) + && (ctype_isUnknown (sRef_getType (s)) + || ctype_isVoidPointer (sRef_getType (s)))) + { + return FALSE; + } + else + { + return TRUE; + } + } + + return FALSE; +} + +bool mtContextNode_matchesType (mtContextNode context, ctype ct) +{ + DPRINTF (("Context type...")); + + if (!ctype_match (context->type, ct)) + { + DPRINTF (("Type mismatch: %s / %s", + ctype_unparse (context->type), + ctype_unparse (ct))); + return FALSE; + } + else + { + DPRINTF (("Type okay: %s / %s", + ctype_unparse (context->type), + ctype_unparse (ct))); + } + + return TRUE; +} + +cstring mtContextNode_unparse (mtContextNode node) +{ + if (ctype_isKnown (node->type)) + { + return message ("%s %s", mtContextKind_unparse (node->context), + ctype_unparse (node->type)); + } + else + { + return message ("%s", mtContextKind_unparse (node->context)); + } +} + +bool mtContextNode_isClause (mtContextNode n) +{ + llassert (mtContextNode_isDefined (n)); + return (n->context == MTC_CLAUSE); +} + +bool mtContextNode_isParameter (mtContextNode n) +{ + llassert (mtContextNode_isDefined (n)); + return (n->context == MTC_PARAM); +} + +bool mtContextNode_isRef (mtContextNode n) +{ + llassert (mtContextNode_isDefined (n)); + return (n->context == MTC_REFERENCE); +} + + + + diff --git a/src/mtDeclarationNode.c b/src/mtDeclarationNode.c new file mode 100644 index 0000000..d8b171c --- /dev/null +++ b/src/mtDeclarationNode.c @@ -0,0 +1,686 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtDeclarationNode.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtDeclarationNode mtDeclarationNode_create (mttok name, mtDeclarationPieces pieces) /*@*/ +{ + mtDeclarationNode res = (mtDeclarationNode) dmalloc (sizeof (*res)); + + res->name = mttok_getText (name); + res->loc = mttok_stealLoc (name); + res->pieces = pieces; + + mttok_free (name); + return res; +} + +extern cstring mtDeclarationNode_unparse (mtDeclarationNode node) /*@*/ +{ + return message ("state %s %q", + node->name, + mtDeclarationPieces_unparse (node->pieces)); +} + +extern void mtDeclarationNode_process (mtDeclarationNode node, bool isglobal) +{ + int i; + int j; + + mtDeclarationPieces pieces; + mtDeclarationPiece mtp; + mtContextNode mtcontext; + stateCombinationTable tsc; + stateCombinationTable tmerge; + cstringList mvals; + metaStateInfo msinfo; + int nvalues; + + pieces = node->pieces; + + /* + ** First, we need to find the values piece. + */ + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_VALUES); + + if (mtDeclarationPiece_isUndefined (mtp)) + { + voptgenerror (FLG_SYNTAX, + message ("Metastate declaration missing values clause: %s", + mtDeclarationNode_getName (node)), + mtDeclarationNode_getLoc (node)); + return; + } + else + { + mtValuesNode mtv = mtDeclarationPiece_getValues (mtp); + mvals = mtValuesNode_getValues (mtv); + } + + /*@-usedef@*/ /*@i34 lclint should figure this out... */ + nvalues = cstringList_size (mvals); + /*@=usedef@*/ + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_CONTEXT); + + if (mtDeclarationPiece_isUndefined (mtp)) + { + ; /* No context, assume anywhere is okay. */ + mtcontext = mtContextNode_createAny (); + } + else + { + mtcontext = mtDeclarationPiece_stealContext (mtp); + } + + if (isglobal) + { + /* + ** For global state, instead of a transfers piece, we have constraints. + */ + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_TRANSFERS); + + if (!mtDeclarationPiece_isUndefined (mtp)) + { + voptgenerror (FLG_SYNTAX, + message ("Global state declaration uses transfers clause. Should use preconditions and postconsitions clauses instead: %s", + mtDeclarationNode_getName (node)), + mtDeclarationNode_getLoc (node)); + mtContextNode_free (mtcontext); + return; + } + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_PRECONDITIONS); + + if (mtDeclarationPiece_isUndefined (mtp)) + { + voptgenerror (FLG_SYNTAX, + message ("Metastate declaration missing preconditions clause: %s", + mtDeclarationNode_getName (node)), + mtDeclarationNode_getLoc (node)); + mtContextNode_free (mtcontext); + return; + } + else + { + mtTransferClauseList mtransfers = mtDeclarationPiece_getPreconditions (mtp); + tsc = stateCombinationTable_create (nvalues); + + mtTransferClauseList_elements (mtransfers, transfer) + { + cstring tfrom = mtTransferClause_getFrom (transfer); + cstring tto = mtTransferClause_getTo (transfer); + mtTransferAction taction = mtTransferClause_getAction (transfer); + cstring vname = mtTransferAction_getValue (taction); + + int fromindex; + int toindex; + int vindex; + + DPRINTF (("Transfer: %s", mtTransferClause_unparse (transfer))); + + if (cstringList_contains (mvals, tfrom)) + { + fromindex = cstringList_getIndex (mvals, tfrom); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Precondition clause uses unrecognized caller value %s: %q", + tfrom, mtTransferClause_unparse (transfer)), + mtTransferClause_getLoc (transfer)); + continue; + } + + if (cstringList_contains (mvals, tto)) + { + toindex = cstringList_getIndex (mvals, tto); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Precondition clause uses unrecognized constraint value %s: %q", + tto, mtTransferClause_unparse (transfer)), + mtTransferClause_getLoc (transfer)); + continue; + } + + if (mtTransferAction_isError (taction)) + { + vindex = metaState_error; + } + else + { + if (cstringList_contains (mvals, vname)) + { + vindex = cstringList_getIndex (mvals, vname); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Precondition clause uses unrecognized result state %s: %q", + vname, mtTransferClause_unparse (transfer)), + mtTransferClause_getLoc (transfer)); + continue; + } + } + + if (mtTransferAction_isError (taction)) + { + stateCombinationTable_set + (tsc, fromindex, toindex, + vindex, + cstring_copy (mtTransferAction_getMessage (taction))); + } + else + { + stateCombinationTable_set (tsc, fromindex, toindex, + vindex, + cstring_undefined); + } + } end_mtTransferClauseList_elements ; + } + } + else + { + mtp = mtDeclarationPieces_findPiece (pieces, MTP_PRECONDITIONS); + + if (!mtDeclarationPiece_isUndefined (mtp)) + { + voptgenerror + (FLG_SYNTAX, + message ("Non-global state declaration uses preconditions clause. " + "Should use transfers clause instead: %s", + mtDeclarationNode_getName (node)), + mtDeclarationNode_getLoc (node)); + mtContextNode_free (mtcontext); + return; + } + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_POSTCONDITIONS); + + if (!mtDeclarationPiece_isUndefined (mtp)) + { + voptgenerror + (FLG_SYNTAX, + message ("Non-global state declaration uses postconditions clause. " + "Should use transfers clause instead: %s", + mtDeclarationNode_getName (node)), + mtDeclarationNode_getLoc (node)); + mtContextNode_free (mtcontext); + return; + } + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_TRANSFERS); + + if (mtDeclarationPiece_isUndefined (mtp)) + { + voptgenerror (FLG_SYNTAX, + message ("Metastate declaration missing transfers clause: %s", + mtDeclarationNode_getName (node)), + mtDeclarationNode_getLoc (node)); + mtContextNode_free (mtcontext); + return; + } + else + { + mtTransferClauseList mtransfers = mtDeclarationPiece_getTransfers (mtp); + tsc = stateCombinationTable_create (nvalues); + + mtTransferClauseList_elements (mtransfers, transfer) + { + cstring tfrom = mtTransferClause_getFrom (transfer); + cstring tto = mtTransferClause_getTo (transfer); + mtTransferAction taction = mtTransferClause_getAction (transfer); + cstring vname = mtTransferAction_getValue (taction); + + int fromindex; + int toindex; + int vindex; + + DPRINTF (("Transfer: %s", mtTransferClause_unparse (transfer))); + + if (cstringList_contains (mvals, tfrom)) + { + fromindex = cstringList_getIndex (mvals, tfrom); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Transfer clause uses unrecognized from value %s: %q", + tfrom, mtTransferClause_unparse (transfer)), + mtTransferClause_getLoc (transfer)); + continue; + } + + if (cstringList_contains (mvals, tto)) + { + toindex = cstringList_getIndex (mvals, tto); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Transfer clause uses unrecognized to value %s: %q", + tto, mtTransferClause_unparse (transfer)), + mtTransferClause_getLoc (transfer)); + continue; + } + + if (mtTransferAction_isError (taction)) + { + vindex = metaState_error; + } + else + { + if (cstringList_contains (mvals, vname)) + { + vindex = cstringList_getIndex (mvals, vname); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Transfer clause uses unrecognized result state %s: %q", + vname, mtTransferClause_unparse (transfer)), + mtTransferClause_getLoc (transfer)); + continue; + } + } + + if (mtTransferAction_isError (taction)) + { + stateCombinationTable_set + (tsc, fromindex, toindex, + vindex, + cstring_copy (mtTransferAction_getMessage (taction))); + } + else + { + stateCombinationTable_set (tsc, fromindex, toindex, + vindex, + cstring_undefined); + } + } end_mtTransferClauseList_elements ; + } + } + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_LOSERS); + + if (mtDeclarationPiece_isDefined (mtp)) + { + mtLoseReferenceList mlosers = mtDeclarationPiece_getLosers (mtp); + + mtLoseReferenceList_elements (mlosers, loseref) + { + cstring tfrom = mtLoseReference_getFrom (loseref); + mtTransferAction taction = mtLoseReference_getAction (loseref); + int fromindex; + /* Losing reference is represented by transfer to nvalues */ + int toindex = nvalues; + int vindex = metaState_error; + + llassert (mtTransferAction_isError (taction)); + + if (cstringList_contains (mvals, tfrom)) + { + fromindex = cstringList_getIndex (mvals, tfrom); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Lose reference uses unrecognized from value %s: %q", + tfrom, mtLoseReference_unparse (loseref)), + mtLoseReference_getLoc (loseref)); + continue; + } + + /*@-usedef@*/ + stateCombinationTable_set + (tsc, fromindex, toindex, vindex, + cstring_copy (mtTransferAction_getMessage (taction))); + /*@=usedef@*/ + } end_mtLoseReferenceList_elements ; + } + + /*@-usedef@*/ + DPRINTF (("metastate: %s", metaStateInfo_unparse (msinfo))); + /*@=usedef@*/ + + tmerge = stateCombinationTable_create (nvalues); + + /* Default merge is to make all incompatible mergers errors. */ + + for (i = 0; i < nvalues; i++) + { + for (j = 0; j < nvalues; j++) + { + if (i != j) + { + stateCombinationTable_set + (tmerge, i, j, metaState_error, + cstring_makeLiteral ("Incompatible state merge (default behavior)")); + } + } + } + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_MERGE); + + if (mtDeclarationPiece_isDefined (mtp)) + { + mtMergeNode mtmerge = mtDeclarationPiece_getMerge (mtp); + mtMergeClauseList mclauses = mtMergeNode_getClauses (mtmerge); + + DPRINTF (("Merge node: %s", mtMergeNode_unparse (mtmerge))); + + mtMergeClauseList_elements (mclauses, merge) + { + mtMergeItem item1 = mtMergeClause_getItem1 (merge); + mtMergeItem item2 = mtMergeClause_getItem2 (merge); + mtTransferAction taction = mtMergeClause_getAction (merge); + int low1index, high1index; + int low2index, high2index; + int vindex; + + DPRINTF (("Merge %s X %s => %s", + mtMergeItem_unparse (item1), + mtMergeItem_unparse (item2), + mtTransferAction_unparse (taction))); + + if (!mtMergeItem_isStar (item1)) + { + if (cstringList_contains (mvals, mtMergeItem_getValue (item1))) + { + low1index = cstringList_getIndex (mvals, mtMergeItem_getValue (item1)); + high1index = low1index; + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Merge clause uses unrecognized first value %s: %q", + mtMergeItem_getValue (item1), + mtMergeClause_unparse (merge)), + mtMergeClause_getLoc (merge)); + continue; + } + } + else + { + low1index = 0; + high1index = nvalues - 1; + } + + if (!mtMergeItem_isStar (item2)) + { + if (cstringList_contains (mvals, mtMergeItem_getValue (item2))) + { + low2index = cstringList_getIndex (mvals, mtMergeItem_getValue (item2)); + high2index = low2index; + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Merge clause uses unrecognized second value %s: %q", + mtMergeItem_getValue (item2), + mtMergeClause_unparse (merge)), + mtMergeItem_getLoc (item2)); + continue; + } + } + else + { + low2index = 0; + high2index = nvalues - 1; + } + + if (mtTransferAction_isError (taction)) + { + vindex = metaState_error; + } + else + { + cstring vname = mtTransferAction_getValue (taction); + + if (cstringList_contains (mvals, vname)) + { + vindex = cstringList_getIndex (mvals, vname); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Merge clause uses unrecognized result state %s: %q", + vname, mtMergeClause_unparse (merge)), + mtTransferAction_getLoc (taction)); + continue; + } + } + + for (i = low1index; i <= high1index; i++) + { + for (j = low2index; j <= high2index; j++) + { + /*@i32 check for multiple definitions! */ + + if (mtTransferAction_isError (taction)) + { + stateCombinationTable_update + (tmerge, + i, j, + vindex, + cstring_copy (mtTransferAction_getMessage (taction))); + } + else + { + stateCombinationTable_update + (tmerge, + i, j, + vindex, + cstring_undefined); + } + } + } + } end_mtMergeClauseList_elements ; + } + + msinfo = metaStateInfo_create (cstring_copy (mtDeclarationNode_getName (node)), + cstringList_copy (mvals), + mtcontext, + /*@-usedef@*/ tsc, /*@=usedef@*/ + tmerge, + fileloc_copy (mtDeclarationNode_getLoc (node))); + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_ANNOTATIONS); + + if (mtDeclarationPiece_isDefined (mtp)) + { + mtAnnotationsNode mtannots = mtDeclarationPiece_getAnnotations (mtp); + mtAnnotationList mtalist = mtAnnotationsNode_getAnnotations (mtannots); + + DPRINTF (("Has annotations: %s", mtAnnotationList_unparse (mtalist))); + + mtAnnotationList_elements (mtalist, annot) + { + cstring aname = mtAnnotationDecl_getName (annot); + cstring avalue = mtAnnotationDecl_getValue (annot); + + DPRINTF (("Process annotation: %s", mtAnnotationDecl_unparse (annot))); + + if (cstringList_contains (mvals, avalue)) + { + int vindex = cstringList_getIndex (mvals, avalue); + mtContextNode acontext = mtAnnotationDecl_stealContext (annot); + + context_addAnnotation + (annotationInfo_create (cstring_copy (aname), msinfo, + acontext, vindex, + fileloc_copy (mtAnnotationDecl_getLoc (annot)))); + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Annotation declaration uses unrecognized value name %s: %q", + avalue, mtAnnotationDecl_unparse (annot)), + mtAnnotationDecl_getLoc (annot)); + } + + } end_mtAnnotationList_elements ; + } + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_DEFAULTS); + + if (mtDeclarationPiece_isDefined (mtp)) + { + mtDefaultsNode mdn = mtDeclarationPiece_getDefaults (mtp); + mtDefaultsDeclList mdecls = mtDefaultsNode_getDecls (mdn); + + llassert (!isglobal); + + mtDefaultsDeclList_elements (mdecls, mdecl) + { + mtContextNode mcontext = mtDefaultsDecl_getContext (mdecl); + cstring mvalue = mtDefaultsDecl_getValue (mdecl); + + if (cstringList_contains (mvals, mvalue)) + { + int vindex = cstringList_getIndex (mvals, mvalue); + + if (mtContextNode_isRef (mcontext)) + { + if (metaStateInfo_getDefaultRefValue (msinfo) != stateValue_error) + { + voptgenerror + (FLG_SYNTAX, + message ("Duplicate defaults declaration for context %q: %q", + mtContextNode_unparse (mcontext), + mtDefaultsDecl_unparse (mdecl)), + mtDefaultsDecl_getLoc (mdecl)); + } + else + { + metaStateInfo_setDefaultRefValue (msinfo, vindex); + } + } + else if (mtContextNode_isParameter (mcontext)) + { + if (metaStateInfo_getDefaultParamValue (msinfo) != stateValue_error) + { + voptgenerror + (FLG_SYNTAX, + message ("Duplicate defaults declaration for context %q: %q", + mtContextNode_unparse (mcontext), + mtDefaultsDecl_unparse (mdecl)), + mtDefaultsDecl_getLoc (mdecl)); + } + else + { + metaStateInfo_setDefaultParamValue (msinfo, vindex); + } + } + else + { + BADBRANCH; + } + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Defaults declaration uses unrecognized value name %s: %q", + mvalue, mtDefaultsDecl_unparse (mdecl)), + mtDefaultsDecl_getLoc (mdecl)); + } + } end_mtDefaultsDeclList_elements ; + } + + mtp = mtDeclarationPieces_findPiece (pieces, MTP_DEFAULTVALUE); + + if (mtDeclarationPiece_isDefined (mtp)) + { + cstring mvalue = mtDeclarationPiece_getDefaultValue (mtp); + llassert (isglobal); + + if (cstringList_contains (mvals, mvalue)) + { + int vindex = cstringList_getIndex (mvals, mvalue); + + if (metaStateInfo_getDefaultRefValue (msinfo) != stateValue_error) + { + voptgenerror + (FLG_SYNTAX, + message ("Duplicate default value declaration for global state: %s", + mvalue), + mtDeclarationNode_getLoc (node)); + } + else + { + metaStateInfo_setDefaultRefValue (msinfo, vindex); + } + } + else + { + voptgenerror + (FLG_SYNTAX, + message ("Default value declaration uses unrecognized value name: %s", + mvalue), + mtDeclarationNode_getLoc (node)); + } + } + + context_addMetaState (cstring_copy (mtDeclarationNode_getName (node)), + msinfo); +} + +extern void mtDeclarationNode_free (/*@only@*/ mtDeclarationNode node) +{ + mtDeclarationPieces_free (node->pieces); + cstring_free (node->name); + fileloc_free (node->loc); + sfree (node); +} + +extern fileloc mtDeclarationNode_getLoc (mtDeclarationNode node) +{ + return node->loc; +} + +extern /*@observer@*/ cstring mtDeclarationNode_getName (mtDeclarationNode node) +{ + return node->name; +} diff --git a/src/mtDeclarationPiece.c b/src/mtDeclarationPiece.c new file mode 100644 index 0000000..2b7612f --- /dev/null +++ b/src/mtDeclarationPiece.c @@ -0,0 +1,327 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtDeclarationPiece.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +static mtDeclarationPiece +mtDeclarationPiece_create (mtPieceKind kind, /*@null@*/ /*@only@*/ void *node) +{ + mtDeclarationPiece res = (mtDeclarationPiece) dmalloc (sizeof (*res)); + + res->kind = kind; + res->node = node; + + /*@i32@*/ return res; +} + +extern mtDeclarationPiece mtDeclarationPiece_createContext (mtContextNode node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_CONTEXT, (void *) node); +} + +extern mtDeclarationPiece mtDeclarationPiece_createValues (mtValuesNode node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_VALUES, (void *) node); +} + +extern mtDeclarationPiece mtDeclarationPiece_createDefaults (mtDefaultsNode node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_DEFAULTS, (void *) node); +} + +extern mtDeclarationPiece mtDeclarationPiece_createValueDefault (mttok node) /*@*/ +{ + llassert (mttok_isIdentifier (node)); + return mtDeclarationPiece_create (MTP_DEFAULTVALUE, (void *) node); +} + +extern mtDeclarationPiece mtDeclarationPiece_createAnnotations (mtAnnotationsNode node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_ANNOTATIONS, (void *) node); +} + +extern mtDeclarationPiece mtDeclarationPiece_createMerge (mtMergeNode node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_MERGE, (void *) node); +} + +extern mtDeclarationPiece mtDeclarationPiece_createTransfers (mtTransferClauseList node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_TRANSFERS, (void *) node); +} + +extern mtDeclarationPiece mtDeclarationPiece_createPreconditions (mtTransferClauseList node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_PRECONDITIONS, (void *) node); +} + +mtDeclarationPiece mtDeclarationPiece_createPostconditions (mtTransferClauseList node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_POSTCONDITIONS, (void *) node); +} + +mtDeclarationPiece mtDeclarationPiece_createLosers (mtLoseReferenceList node) /*@*/ +{ + return mtDeclarationPiece_create (MTP_LOSERS, (void *) node); +} + +/*@only@*/ cstring mtDeclarationPiece_unparse (mtDeclarationPiece p) +{ + if (mtDeclarationPiece_isUndefined (p)) + { + return cstring_undefined; + } + + switch (p->kind) + { + case MTP_CONTEXT: + /*@access mtContextNode@*/ + return mtContextNode_unparse ((mtContextNode) p->node); + /*@noaccess mtContextNode@*/ + case MTP_VALUES: + /*@access mtValuesNode@*/ + return mtValuesNode_unparse ((mtValuesNode) p->node); + /*@noaccess mtValuesNode@*/ + case MTP_DEFAULTS: + /*@access mtDefaultsNode@*/ + return mtDefaultsNode_unparse ((mtDefaultsNode) p->node); + /*@noaccess mtDefaultsNode@*/ + case MTP_DEFAULTVALUE: + /*@access mttok@*/ + return message ("default %q", mttok_getText ((mttok) p->node)); + /*@noaccess mttok@*/ + case MTP_ANNOTATIONS: + /*@access mtAnnotationsNode@*/ + return mtAnnotationsNode_unparse ((mtAnnotationsNode) p->node); + /*@noaccess mtAnnotationsNode@*/ + case MTP_MERGE: + /*@access mtMergeNode@*/ + return mtMergeNode_unparse ((mtMergeNode) p->node); + /*@noaccess mtMergeNode@*/ + case MTP_TRANSFERS: + case MTP_PRECONDITIONS: + case MTP_POSTCONDITIONS: + /*@access mtTransferClauseList@*/ + return mtTransferClauseList_unparse ((mtTransferClauseList) p->node); + /*@noaccess mtTransferClauseList@*/ + case MTP_LOSERS: + /*@access mtLoseReferenceList@*/ + return mtLoseReferenceList_unparse ((mtLoseReferenceList) p->node); + /*@noaccess mtLoseReferenceList@*/ + case MTP_DEAD: + return cstring_makeLiteral ("Dead Piece"); + } + + BADBRANCH; +} + +extern bool mtDeclarationPiece_matchKind (mtDeclarationPiece p, mtPieceKind kind) /*@*/ +{ + if (mtDeclarationPiece_isDefined (p)) + { + return (p->kind == kind); + } + else + { + return FALSE; + } +} + +extern mtContextNode mtDeclarationPiece_getContext (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_CONTEXT); + + /*@-abstract@*/ + return (mtContextNode) node->node; + /*@=abstract@*/ +} + +extern mtContextNode mtDeclarationPiece_stealContext (mtDeclarationPiece node) +{ + mtContextNode res; + + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_CONTEXT); + + /*@-abstract@*/ + res = (mtContextNode) node->node; + /*@=abstract@*/ + node->kind = MTP_DEAD; + node->node = NULL; + return res; +} + +extern mtDefaultsNode mtDeclarationPiece_getDefaults (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_DEFAULTS); + + /*@-abstract@*/ + return (mtDefaultsNode) node->node; + /*@=abstract@*/ +} + +extern cstring mtDeclarationPiece_getDefaultValue (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_DEFAULTVALUE); + + /*@-abstract@*/ + return mttok_observeText ((mttok) node->node); + /*@=abstract@*/ +} + +extern mtAnnotationsNode mtDeclarationPiece_getAnnotations (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_ANNOTATIONS); + + /*@-abstract@*/ + return (mtAnnotationsNode) node->node; + /*@=abstract@*/ +} + +extern mtMergeNode mtDeclarationPiece_getMerge (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_MERGE); + + /*@-abstract@*/ + return (mtMergeNode) node->node; + /*@=abstract@*/ +} + +extern mtTransferClauseList mtDeclarationPiece_getTransfers (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_TRANSFERS); + + /*@-abstract@*/ + return (mtTransferClauseList) node->node; + /*@=abstract@*/ +} + +extern mtTransferClauseList mtDeclarationPiece_getPreconditions (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_PRECONDITIONS); + + /*@-abstract@*/ + return (mtTransferClauseList) node->node; + /*@=abstract@*/ +} + +extern mtTransferClauseList mtDeclarationPiece_getPostconditions (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_POSTCONDITIONS); + + /*@-abstract@*/ + return (mtTransferClauseList) node->node; + /*@=abstract@*/ +} + +extern mtLoseReferenceList mtDeclarationPiece_getLosers (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_LOSERS); + + /*@-abstract@*/ + return (mtLoseReferenceList) node->node; + /*@=abstract@*/ +} + +extern mtValuesNode mtDeclarationPiece_getValues (mtDeclarationPiece node) +{ + llassert (mtDeclarationPiece_isDefined (node)); + llassert (node->kind == MTP_VALUES); + + /*@-abstract@*/ + return (mtValuesNode) node->node; + /*@=abstract@*/ +} + +extern void mtDeclarationPiece_free (/*@only@*/ mtDeclarationPiece node) +{ + if (node != NULL) + { + switch (node->kind) + { + case MTP_DEAD: + llassert (node->node == NULL); + break; + + case MTP_CONTEXT: + /*@access mtContextNode@*/ + mtContextNode_free ((mtContextNode) node->node); + break; + /*@noaccess mtContextNode@*/ + case MTP_VALUES: + /*@access mtValuesNode@*/ + mtValuesNode_free ((mtValuesNode) node->node); + break; + /*@noaccess mtValuesNode@*/ + case MTP_DEFAULTS: + /*@access mtDefaultsNode@*/ + mtDefaultsNode_free ((mtDefaultsNode) node->node); + break; + /*@noaccess mtDefaultsNode@*/ + case MTP_DEFAULTVALUE: + /*@access mttok@*/ + mttok_free ((mttok) node->node); + break; + /*@noaccess mttok@*/ + case MTP_ANNOTATIONS: + /*@access mtAnnotationsNode@*/ + mtAnnotationsNode_free ((mtAnnotationsNode) node->node); + break; + /*@noaccess mtAnnotationsNode@*/ + case MTP_MERGE: + /*@access mtMergeNode@*/ + mtMergeNode_free ((mtMergeNode) node->node); + break; + /*@noaccess mtMergeNode@*/ + case MTP_TRANSFERS: + case MTP_PRECONDITIONS: + case MTP_POSTCONDITIONS: + /*@access mtTransferClauseList@*/ + mtTransferClauseList_free ((mtTransferClauseList) node->node); + break; + /*@noaccess mtTransferClauseList@*/ + case MTP_LOSERS: + /*@access mtLoseReferenceList@*/ + mtLoseReferenceList_free ((mtLoseReferenceList) node->node); + break; + /*@noaccess mtLoseReferenceList@*/ + } + + sfree (node); + } +} diff --git a/src/mtDeclarationPieces.c b/src/mtDeclarationPieces.c new file mode 100644 index 0000000..51acb95 --- /dev/null +++ b/src/mtDeclarationPieces.c @@ -0,0 +1,116 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtDeclarationPieces.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtDeclarationPieces mtDeclarationPieces_create (void) /*@*/ +{ + return mtDeclarationPieces_undefined; +} + +extern mtDeclarationPieces mtDeclarationPieces_append (mtDeclarationPieces node, + /*@only@*/ mtDeclarationPiece piece) + /*@modifies node*/ +{ + mtDeclarationPieces tnode = node; + mtDeclarationPieces res = (mtDeclarationPieces) dmalloc (sizeof (*node)); + + res->thisPiece = piece; + res->rest = mtDeclarationPieces_undefined; + + if (mtDeclarationPieces_isUndefined (node)) { + return res; + } + + while (mtDeclarationPieces_isDefined (tnode->rest)) + { + tnode = tnode->rest; + } + + tnode->rest = res; + return node; +} + +extern cstring mtDeclarationPieces_unparse (mtDeclarationPieces node) /*@*/ +{ + cstring res = cstring_newEmpty (); + + while (mtDeclarationPieces_isDefined (node)) + { + res = message ("%q%q; ", res, mtDeclarationPiece_unparse (node->thisPiece)); + node = node->rest; + } + + return res; +} + +mtDeclarationPiece +mtDeclarationPieces_findPiece (mtDeclarationPieces pieces, mtPieceKind kind) +{ + bool foundone = FALSE; + mtDeclarationPiece res = mtDeclarationPiece_undefined; + + while (mtDeclarationPieces_isDefined (pieces)) + { + if (mtDeclarationPiece_matchKind (pieces->thisPiece, kind)) + { + if (foundone) + { + llassert (mtDeclarationPiece_isDefined (res)); + voptgenerror + (FLG_SYNTAX, + message ("Metastate declaration has duplicate pieces: %q / %q", + mtDeclarationPiece_unparse (res), + mtDeclarationPiece_unparse (pieces->thisPiece)), + g_currentloc); /*@i43 pieces's should have locs! */ + } + else + { + foundone = TRUE; + llassert (mtDeclarationPiece_isUndefined (res)); + res = pieces->thisPiece; + } + } + + pieces = pieces->rest; + } + + return res; +} + +extern void mtDeclarationPieces_free (/*@only@*/ mtDeclarationPieces node) +{ + if (mtDeclarationPieces_isDefined (node)) + { + mtDeclarationPiece_free (node->thisPiece); + mtDeclarationPieces_free (node->rest); + } + + sfree (node); +} diff --git a/src/mtDefaultsDecl.c b/src/mtDefaultsDecl.c new file mode 100644 index 0000000..4edfc3b --- /dev/null +++ b/src/mtDefaultsDecl.c @@ -0,0 +1,60 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtDefaultsDecl.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtDefaultsDecl +mtDefaultsDecl_create (/*@only@*/ mtContextNode context, + /*@only@*/ mttok value) +{ + mtDefaultsDecl res = (mtDefaultsDecl) dmalloc (sizeof (*res)); + + llassert (mttok_isIdentifier (value)); + + res->context = context; + res->loc = fileloc_copy (mttok_getLoc (value)); + res->value = mttok_getText (value); + + mttok_free (value); + return res; +} + +extern void mtDefaultsDecl_free (mtDefaultsDecl dd) +{ + cstring_free (dd->value); + fileloc_free (dd->loc); + mtContextNode_free (dd->context); + sfree (dd); +} + +extern cstring mtDefaultsDecl_unparse (mtDefaultsDecl node) +{ + return message ("%s %q", + node->value, mtContextNode_unparse (node->context)); +} diff --git a/src/mtDefaultsDeclList.c b/src/mtDefaultsDeclList.c new file mode 100644 index 0000000..7a1d2d6 --- /dev/null +++ b/src/mtDefaultsDeclList.c @@ -0,0 +1,175 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtDefaultsDeclList.c +** +** based on list_template.c +** +** where T has T_equal (or change this) and T_unparse +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +mtDefaultsDeclList +mtDefaultsDeclList_new () +{ + return mtDefaultsDeclList_undefined; +} + +static /*@notnull@*/ mtDefaultsDeclList +mtDefaultsDeclList_newEmpty (void) +{ + mtDefaultsDeclList s = (mtDefaultsDeclList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = mtDefaultsDeclListBASESIZE; + s->elements = (mtDefaultsDecl *) dmalloc (sizeof (*s->elements) * mtDefaultsDeclListBASESIZE); + + return (s); +} + +static void +mtDefaultsDeclList_grow (/*@notnull@*/ mtDefaultsDeclList s) +{ + int i; + mtDefaultsDecl *newelements; + + s->nspace += mtDefaultsDeclListBASESIZE; + + newelements = (mtDefaultsDecl *) dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); + + if (newelements == (mtDefaultsDecl *) 0) + { + llfatalerror (cstring_makeLiteral ("mtDefaultsDeclList_grow: out of memory!")); + } + + for (i = 0; i < s->nelements; i++) + { + newelements[i] = s->elements[i]; + } + + sfree (s->elements); + s->elements = newelements; +} + +mtDefaultsDeclList mtDefaultsDeclList_single (/*@keep@*/ mtDefaultsDecl el) +{ + mtDefaultsDeclList s = mtDefaultsDeclList_new (); + s = mtDefaultsDeclList_add (s, el); + return s; +} + +mtDefaultsDeclList mtDefaultsDeclList_add (mtDefaultsDeclList s, /*@keep@*/ mtDefaultsDecl el) +{ + if (!mtDefaultsDeclList_isDefined (s)) + { + s = mtDefaultsDeclList_newEmpty (); + } + + if (s->nspace <= 0) + { + mtDefaultsDeclList_grow (s); + } + + s->nspace--; + /*@i32@*/ s->elements[s->nelements] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +mtDefaultsDeclList mtDefaultsDeclList_prepend (mtDefaultsDeclList s, /*@keep@*/ mtDefaultsDecl el) +{ + int i; + + if (!mtDefaultsDeclList_isDefined (s)) + { + /*@i32@*/ return mtDefaultsDeclList_single (el); + } + + if (s->nspace <= 0) + { + mtDefaultsDeclList_grow (s); + } + + s->nspace--; + + for (i = s->nelements; i > 0; i--) + { + s->elements[i] = s->elements [i - 1]; + } + + /*@i32@*/ s->elements[0] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +cstring +mtDefaultsDeclList_unparse (mtDefaultsDeclList s) +{ + return mtDefaultsDeclList_unparseSep (s, cstring_makeLiteralTemp (" ")); +} + +cstring +mtDefaultsDeclList_unparseSep (mtDefaultsDeclList s, cstring sep) +{ + cstring st = cstring_undefined; + + if (mtDefaultsDeclList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) + { + if (i == 0) + { + st = mtDefaultsDecl_unparse (s->elements[i]); + } + else + st = message ("%q%s%q", st, sep, mtDefaultsDecl_unparse (s->elements[i])); + } + } + + return st; +} + +void +mtDefaultsDeclList_free (mtDefaultsDeclList s) +{ + if (mtDefaultsDeclList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) { + mtDefaultsDecl_free (s->elements[i]); + } + + sfree (s->elements); + sfree (s); + } +} + diff --git a/src/mtDefaultsNode.c b/src/mtDefaultsNode.c new file mode 100644 index 0000000..e3f4169 --- /dev/null +++ b/src/mtDefaultsNode.c @@ -0,0 +1,53 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtDefaultsNode.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtDefaultsNode mtDefaultsNode_create (mttok t, mtDefaultsDeclList decls) +{ + mtDefaultsNode res = (mtDefaultsNode) dmalloc (sizeof (*res)); + + res->decls = decls; + res->loc = mttok_stealLoc (t); + mttok_free (t); + + return res; +} + +void mtDefaultsNode_free (mtDefaultsNode node) +{ + mtDefaultsDeclList_free (node->decls); + fileloc_free (node->loc); + sfree (node); +} + +extern cstring mtDefaultsNode_unparse (mtDefaultsNode node) +{ + return message ("defaults %q", mtDefaultsDeclList_unparse (node->decls)); +} diff --git a/src/mtLoseReference.c b/src/mtLoseReference.c new file mode 100644 index 0000000..cc70e8f --- /dev/null +++ b/src/mtLoseReference.c @@ -0,0 +1,64 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtLoseReference.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtLoseReference mtLoseReference_create (mttok fromname, mtTransferAction action) +{ + mtLoseReference res = (mtLoseReference) dmalloc (sizeof (*res)); + + llassert (mttok_isIdentifier (fromname)); + res->fromname = mttok_getText (fromname); + + res->action = action; + res->loc = mttok_stealLoc (fromname); + + if (fileloc_isUndefined (res->loc)) + { + llbug (message ("Not fileloc: %q", mttok_unparse (fromname))); + } + + mttok_free (fromname); + return res; +} + +extern void mtLoseReference_free (mtLoseReference transfer) +{ + cstring_free (transfer->fromname); + fileloc_free (transfer->loc); + mtTransferAction_free (transfer->action); + sfree (transfer); +} + +extern cstring mtLoseReference_unparse (mtLoseReference node) +{ + return message ("%s ==> %q", + node->fromname, + mtTransferAction_unparse (node->action)); +} diff --git a/src/mtLoseReferenceList.c b/src/mtLoseReferenceList.c new file mode 100644 index 0000000..49ba549 --- /dev/null +++ b/src/mtLoseReferenceList.c @@ -0,0 +1,175 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtLoseReferenceList.c +** +** based on list_template.c +** +** where T has T_equal (or change this) and T_unparse +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +mtLoseReferenceList +mtLoseReferenceList_new () +{ + return mtLoseReferenceList_undefined; +} + +static /*@notnull@*/ mtLoseReferenceList +mtLoseReferenceList_newEmpty (void) +{ + mtLoseReferenceList s = (mtLoseReferenceList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = mtLoseReferenceListBASESIZE; + s->elements = (mtLoseReference *) dmalloc (sizeof (*s->elements) * mtLoseReferenceListBASESIZE); + + return (s); +} + +static void +mtLoseReferenceList_grow (/*@notnull@*/ mtLoseReferenceList s) +{ + int i; + mtLoseReference *newelements; + + s->nspace += mtLoseReferenceListBASESIZE; + + newelements = (mtLoseReference *) dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); + + if (newelements == (mtLoseReference *) 0) + { + llfatalerror (cstring_makeLiteral ("mtLoseReferenceList_grow: out of memory!")); + } + + for (i = 0; i < s->nelements; i++) + { + newelements[i] = s->elements[i]; + } + + sfree (s->elements); + s->elements = newelements; +} + +mtLoseReferenceList mtLoseReferenceList_single (/*@keep@*/ mtLoseReference el) +{ + mtLoseReferenceList s = mtLoseReferenceList_new (); + s = mtLoseReferenceList_add (s, el); + return s; +} + +mtLoseReferenceList mtLoseReferenceList_add (mtLoseReferenceList s, /*@keep@*/ mtLoseReference el) +{ + if (!mtLoseReferenceList_isDefined (s)) + { + s = mtLoseReferenceList_newEmpty (); + } + + if (s->nspace <= 0) + { + mtLoseReferenceList_grow (s); + } + + s->nspace--; + /*@i32@*/ s->elements[s->nelements] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +mtLoseReferenceList mtLoseReferenceList_prepend (mtLoseReferenceList s, /*@keep@*/ mtLoseReference el) +{ + int i; + + if (!mtLoseReferenceList_isDefined (s)) + { + /*@i32@*/ return mtLoseReferenceList_single (el); + } + + if (s->nspace <= 0) + { + mtLoseReferenceList_grow (s); + } + + s->nspace--; + + for (i = s->nelements; i > 0; i--) + { + s->elements[i] = s->elements [i - 1]; + } + + /*@i32@*/ s->elements[0] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +cstring +mtLoseReferenceList_unparse (mtLoseReferenceList s) +{ + return mtLoseReferenceList_unparseSep (s, cstring_makeLiteralTemp (" ")); +} + +cstring +mtLoseReferenceList_unparseSep (mtLoseReferenceList s, cstring sep) +{ + cstring st = cstring_undefined; + + if (mtLoseReferenceList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) + { + if (i == 0) + { + st = mtLoseReference_unparse (s->elements[i]); + } + else + st = message ("%q%s%q", st, sep, mtLoseReference_unparse (s->elements[i])); + } + } + + return st; +} + +void +mtLoseReferenceList_free (mtLoseReferenceList s) +{ + if (mtLoseReferenceList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) { + mtLoseReference_free (s->elements[i]); + } + + sfree (s->elements); + sfree (s); + } +} + diff --git a/src/mtMergeClause.c b/src/mtMergeClause.c new file mode 100644 index 0000000..99344e7 --- /dev/null +++ b/src/mtMergeClause.c @@ -0,0 +1,58 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtMergeClause.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtMergeClause +mtMergeClause_create (mtMergeItem item1, mtMergeItem item2, mtTransferAction action) +{ + mtMergeClause res = (mtMergeClause) dmalloc (sizeof (*res)); + + res->item1 = item1; + res->item2 = item2; + res->action = action; + return res; +} + +extern void mtMergeClause_free (mtMergeClause merge) +{ + mtMergeItem_free (merge->item1); + mtMergeItem_free (merge->item2); + mtTransferAction_free (merge->action); + sfree (merge); +} + +extern cstring mtMergeClause_unparse (mtMergeClause node) +{ + return message ("%q X %q ==> %q", + mtMergeItem_unparse (node->item1), + mtMergeItem_unparse (node->item2), + mtTransferAction_unparse (node->action)); +} + diff --git a/src/mtMergeClauseList.c b/src/mtMergeClauseList.c new file mode 100644 index 0000000..c75cc30 --- /dev/null +++ b/src/mtMergeClauseList.c @@ -0,0 +1,175 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtMergeClauseList.c +** +** based on list_template.c +** +** where T has T_equal (or change this) and T_unparse +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +mtMergeClauseList +mtMergeClauseList_new () +{ + return mtMergeClauseList_undefined; +} + +static /*@notnull@*/ mtMergeClauseList +mtMergeClauseList_newEmpty (void) +{ + mtMergeClauseList s = (mtMergeClauseList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = mtMergeClauseListBASESIZE; + s->elements = (mtMergeClause *) dmalloc (sizeof (*s->elements) * mtMergeClauseListBASESIZE); + + return (s); +} + +static void +mtMergeClauseList_grow (/*@notnull@*/ mtMergeClauseList s) +{ + int i; + mtMergeClause *newelements; + + s->nspace += mtMergeClauseListBASESIZE; + + newelements = (mtMergeClause *) dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); + + if (newelements == (mtMergeClause *) 0) + { + llfatalerror (cstring_makeLiteral ("mtMergeClauseList_grow: out of memory!")); + } + + for (i = 0; i < s->nelements; i++) + { + newelements[i] = s->elements[i]; + } + + sfree (s->elements); + s->elements = newelements; +} + +mtMergeClauseList mtMergeClauseList_single (/*@keep@*/ mtMergeClause el) +{ + mtMergeClauseList s = mtMergeClauseList_new (); + s = mtMergeClauseList_add (s, el); + return s; +} + +mtMergeClauseList mtMergeClauseList_add (mtMergeClauseList s, /*@keep@*/ mtMergeClause el) +{ + if (!mtMergeClauseList_isDefined (s)) + { + s = mtMergeClauseList_newEmpty (); + } + + if (s->nspace <= 0) + { + mtMergeClauseList_grow (s); + } + + s->nspace--; + /*@i32@*/ s->elements[s->nelements] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +mtMergeClauseList mtMergeClauseList_prepend (mtMergeClauseList s, /*@keep@*/ mtMergeClause el) +{ + int i; + + if (!mtMergeClauseList_isDefined (s)) + { + /*@i32@*/ return mtMergeClauseList_single (el); + } + + if (s->nspace <= 0) + { + mtMergeClauseList_grow (s); + } + + s->nspace--; + + for (i = s->nelements; i > 0; i--) + { + s->elements[i] = s->elements [i - 1]; + } + + /*@i32@*/ s->elements[0] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +cstring +mtMergeClauseList_unparse (mtMergeClauseList s) +{ + return mtMergeClauseList_unparseSep (s, cstring_makeLiteralTemp (" ")); +} + +cstring +mtMergeClauseList_unparseSep (mtMergeClauseList s, cstring sep) +{ + cstring st = cstring_undefined; + + if (mtMergeClauseList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) + { + if (i == 0) + { + st = mtMergeClause_unparse (s->elements[i]); + } + else + st = message ("%q%s%q", st, sep, mtMergeClause_unparse (s->elements[i])); + } + } + + return st; +} + +void +mtMergeClauseList_free (mtMergeClauseList s) +{ + if (mtMergeClauseList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) { + mtMergeClause_free (s->elements[i]); + } + + sfree (s->elements); + sfree (s); + } +} + diff --git a/src/mtMergeItem.c b/src/mtMergeItem.c new file mode 100644 index 0000000..51fd765 --- /dev/null +++ b/src/mtMergeItem.c @@ -0,0 +1,72 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtMergeItem.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtMergeItem mtMergeItem_createValue (mttok value) +{ + mtMergeItem res = (mtMergeItem) dmalloc (sizeof (*res)); + res->kind = MTMK_VALUE; + llassert (mttok_isIdentifier (value)); + res->value = mttok_getText (value); + res->loc = mttok_stealLoc (value); + mttok_free (value); + return res; +} + +extern mtMergeItem mtMergeItem_createStar (mttok value) +{ + mtMergeItem res = (mtMergeItem) dmalloc (sizeof (*res)); + + res->kind = MTMK_STAR; + res->loc = mttok_stealLoc (value); + res->value = cstring_undefined; + mttok_free (value); + DPRINTF (("Made star!")); + llassert (mtMergeItem_isStar (res)); + return res; +} + +extern cstring mtMergeItem_unparse (mtMergeItem node) +{ + switch (node->kind) { + case MTMK_VALUE: return cstring_copy (node->value); + case MTMK_STAR: return cstring_makeLiteral ("{*}"); + BADDEFAULT; + } + + BADBRANCH; +} + +extern void mtMergeItem_free (/*@only@*/ mtMergeItem node) +{ + cstring_free (node->value); + fileloc_free (node->loc); + sfree (node); +} diff --git a/src/mtMergeNode.c b/src/mtMergeNode.c new file mode 100644 index 0000000..9e12db4 --- /dev/null +++ b/src/mtMergeNode.c @@ -0,0 +1,50 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtMergeNode.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtMergeNode mtMergeNode_create (mtMergeClauseList mlist) +{ + mtMergeNode res = (mtMergeNode) dmalloc (sizeof (*res)); + res->mlist = mlist; + DPRINTF (("merge node: %s", mtMergeNode_unparse (res))); + return res; +} + +void mtMergeNode_free (/*@only@*/ mtMergeNode node) +{ + mtMergeClauseList_free (node->mlist); + sfree (node); +} + +extern cstring mtMergeNode_unparse (mtMergeNode node) +{ + return message ("merge %q", mtMergeClauseList_unparse (node->mlist)); +} + diff --git a/src/mtTransferAction.c b/src/mtTransferAction.c new file mode 100644 index 0000000..6f99efd --- /dev/null +++ b/src/mtTransferAction.c @@ -0,0 +1,97 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtTransferAction.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtTransferAction mtTransferAction_createValue (mttok value) +{ + mtTransferAction res = (mtTransferAction) dmalloc (sizeof (*res)); + + res->kind = MTAK_VALUE; + llassert (mttok_isIdentifier (value)); + res->value = mttok_getText (value); + res->message = cstring_undefined; + res->loc = mttok_stealLoc (value); + mttok_free (value); + return res; +} + +extern mtTransferAction mtTransferAction_createError (mttok tok) +{ + mtTransferAction res = (mtTransferAction) dmalloc (sizeof (*res)); + + res->kind = MTAK_ERROR; + res->value = cstring_undefined; + res->message = cstring_undefined; + res->loc = mttok_stealLoc (tok); + mttok_free (tok); + return res; +} + +extern mtTransferAction mtTransferAction_createErrorMessage (mttok message) +{ + mtTransferAction res = (mtTransferAction) dmalloc (sizeof (*res)); + + res->kind = MTAK_ERROR; + res->message = mttok_getText (message); + res->value = cstring_undefined; + res->loc = mttok_stealLoc (message); + mttok_free (message); + return res; +} + +extern cstring mtTransferAction_getMessage (mtTransferAction node) +{ + llassert (node->kind == MTAK_ERROR); + return node->message; +} + +extern cstring mtTransferAction_unparse (mtTransferAction node) +{ + switch (node->kind) { + case MTAK_VALUE: return cstring_copy (node->value); + case MTAK_ERROR: + if (cstring_isDefined (node->message)) { + return message ("error \"%s\"", node->message); + } else { + return cstring_makeLiteral (""); + } + BADDEFAULT; + } + + BADBRANCH; +} + +extern void mtTransferAction_free (/*@only@*/ mtTransferAction node) +{ + cstring_free (node->value); + cstring_free (node->message); + fileloc_free (node->loc); + sfree (node); +} diff --git a/src/mtTransferClause.c b/src/mtTransferClause.c new file mode 100644 index 0000000..cd27b84 --- /dev/null +++ b/src/mtTransferClause.c @@ -0,0 +1,68 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtTransferClause.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtTransferClause mtTransferClause_create (mttok fromname, mttok toname, mtTransferAction action) +{ + mtTransferClause res = (mtTransferClause) dmalloc (sizeof (*res)); + + llassert (mttok_isIdentifier (fromname)); + res->fromname = mttok_getText (fromname); + + llassert (mttok_isIdentifier (toname)); + res->toname = mttok_getText (toname); + + res->action = action; + res->loc = mttok_stealLoc (fromname); + if (fileloc_isUndefined (res->loc)) + { + llbug (message ("Not fileloc: %q", mttok_unparse (fromname))); + } + + mttok_free (fromname); + mttok_free (toname); + return res; +} + +extern void mtTransferClause_free (mtTransferClause transfer) +{ + cstring_free (transfer->fromname); + cstring_free (transfer->toname); + fileloc_free (transfer->loc); + mtTransferAction_free (transfer->action); + sfree (transfer); +} + +extern cstring mtTransferClause_unparse (mtTransferClause node) +{ + return message ("%s as %s ==> %q", + node->fromname, node->toname, + mtTransferAction_unparse (node->action)); +} diff --git a/src/mtTransferClauseList.c b/src/mtTransferClauseList.c new file mode 100644 index 0000000..e91c9d6 --- /dev/null +++ b/src/mtTransferClauseList.c @@ -0,0 +1,175 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtTransferClauseList.c +** +** based on list_template.c +** +** where T has T_equal (or change this) and T_unparse +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +mtTransferClauseList +mtTransferClauseList_new () +{ + return mtTransferClauseList_undefined; +} + +static /*@notnull@*/ mtTransferClauseList +mtTransferClauseList_newEmpty (void) +{ + mtTransferClauseList s = (mtTransferClauseList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = mtTransferClauseListBASESIZE; + s->elements = (mtTransferClause *) dmalloc (sizeof (*s->elements) * mtTransferClauseListBASESIZE); + + return (s); +} + +static void +mtTransferClauseList_grow (/*@notnull@*/ mtTransferClauseList s) +{ + int i; + mtTransferClause *newelements; + + s->nspace += mtTransferClauseListBASESIZE; + + newelements = (mtTransferClause *) dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); + + if (newelements == (mtTransferClause *) 0) + { + llfatalerror (cstring_makeLiteral ("mtTransferClauseList_grow: out of memory!")); + } + + for (i = 0; i < s->nelements; i++) + { + newelements[i] = s->elements[i]; + } + + sfree (s->elements); + s->elements = newelements; +} + +mtTransferClauseList mtTransferClauseList_single (/*@keep@*/ mtTransferClause el) +{ + mtTransferClauseList s = mtTransferClauseList_new (); + s = mtTransferClauseList_add (s, el); + return s; +} + +mtTransferClauseList mtTransferClauseList_add (mtTransferClauseList s, /*@keep@*/ mtTransferClause el) +{ + if (!mtTransferClauseList_isDefined (s)) + { + s = mtTransferClauseList_newEmpty (); + } + + if (s->nspace <= 0) + { + mtTransferClauseList_grow (s); + } + + s->nspace--; + /*@i32@*/ s->elements[s->nelements] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +mtTransferClauseList mtTransferClauseList_prepend (mtTransferClauseList s, /*@keep@*/ mtTransferClause el) +{ + int i; + + if (!mtTransferClauseList_isDefined (s)) + { + /*@i32@*/ return mtTransferClauseList_single (el); + } + + if (s->nspace <= 0) + { + mtTransferClauseList_grow (s); + } + + s->nspace--; + + for (i = s->nelements; i > 0; i--) + { + s->elements[i] = s->elements [i - 1]; + } + + /*@i32@*/ s->elements[0] = el; + s->nelements++; + + /*@i32@*/ return s; +} + +cstring +mtTransferClauseList_unparse (mtTransferClauseList s) +{ + return mtTransferClauseList_unparseSep (s, cstring_makeLiteralTemp (" ")); +} + +cstring +mtTransferClauseList_unparseSep (mtTransferClauseList s, cstring sep) +{ + cstring st = cstring_undefined; + + if (mtTransferClauseList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) + { + if (i == 0) + { + st = mtTransferClause_unparse (s->elements[i]); + } + else + st = message ("%q%s%q", st, sep, mtTransferClause_unparse (s->elements[i])); + } + } + + return st; +} + +void +mtTransferClauseList_free (mtTransferClauseList s) +{ + if (mtTransferClauseList_isDefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) { + mtTransferClause_free (s->elements[i]); + } + + sfree (s->elements); + sfree (s); + } +} + diff --git a/src/mtValuesNode.c b/src/mtValuesNode.c new file mode 100644 index 0000000..39d30b9 --- /dev/null +++ b/src/mtValuesNode.c @@ -0,0 +1,55 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtValuesNode.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +extern mtValuesNode mtValuesNode_create (cstringList values) +{ + mtValuesNode res = (mtValuesNode) dmalloc (sizeof (*res)); + + DPRINTF (("Values node: %s", cstringList_unparse (values))); + res->values = values; + return res; +} + +void mtValuesNode_free (mtValuesNode node) +{ + DPRINTF (("Free values: %s", mtValuesNode_unparse (node))); + cstringList_free (node->values); /*! why shouldn't we free this? */ + sfree (node); +} + +extern cstring mtValuesNode_unparse (mtValuesNode node) +{ + return message ("values %q", cstringList_unparse (node->values)); +} + + + + diff --git a/src/mtgrammar.c b/src/mtgrammar.c new file mode 100644 index 0000000..0337574 --- /dev/null +++ b/src/mtgrammar.c @@ -0,0 +1,1560 @@ +/* +** Inserted at beginning of c files generated by bison +** REMEMBER: Change bison.reset too. +*/ + +/*@-allmacros@*/ +/*@+boolint@*/ +/*@+charint@*/ +/*@-macroparams@*/ +/*@-macroundef@*/ +/*@-unreachable@*/ +/*@-macrospec@*/ +/*@-varuse@*/ +/*@+ignorequals@*/ +/*@-macrostmt@*/ +/*@-noeffect@*/ +/*@-shadow@*/ +/*@-exitarg@*/ +/*@-macroredef@*/ +/*@-uniondef@*/ +/*@-compdef@*/ +/*@-matchfields@*/ +/*@-exportlocal@*/ +/*@-evalorderuncon@*/ +/*@-exportheader@*/ +/*@-typeuse@*/ +/*@-redecl@*/ +/*@-redef@*/ +/*@-noparams@*/ +/*@-ansireserved@*/ +/*@-fielduse@*/ +/*@-ifblock@*/ +/*@-elseifcomplete@*/ +/*@-whileblock@*/ +/*@-forblock@*/ +/*@-branchstate@*/ +/*@-readonlytrans@*/ +/*@-namechecks@*/ +/*@-usedef@*/ +/*@-systemunrecog@*/ +/*@-dependenttrans@*/ +/*@-unqualifiedtrans@*/ +/*@-nullassign@*/ + +/* < end of bison.head > */ + + +/* A Bison parser, made from mtgrammar.y + by GNU Bison version 1.28 */ + +#define YYBISON 1 /* Identify Bison output. */ + +#define yyparse mtparse +#define yylex mtlex +#define yyerror mterror +#define yylval mtlval +#define yychar mtchar +#define yydebug mtdebug +#define yynerrs mtnerrs +#define MT_BADTOK 257 +#define MT_END 258 +#define MT_STATE 259 +#define MT_GLOBAL 260 +#define MT_CONTEXT 261 +#define MT_ONEOF 262 +#define MT_DEFAULTS 263 +#define MT_DEFAULT 264 +#define MT_REFERENCE 265 +#define MT_PARAMETER 266 +#define MT_CLAUSE 267 +#define MT_ANNOTATIONS 268 +#define MT_ARROW 269 +#define MT_MERGE 270 +#define MT_TRANSFERS 271 +#define MT_PRECONDITIONS 272 +#define MT_POSTCONDITIONS 273 +#define MT_LOSEREFERENCE 274 +#define MT_AS 275 +#define MT_ERROR 276 +#define MT_PLUS 277 +#define MT_STAR 278 +#define MT_BAR 279 +#define MT_LPAREN 280 +#define MT_RPAREN 281 +#define MT_LBRACKET 282 +#define MT_RBRACKET 283 +#define MT_LBRACE 284 +#define MT_RBRACE 285 +#define MT_COMMA 286 +#define MT_CHAR 287 +#define MT_INT 288 +#define MT_FLOAT 289 +#define MT_DOUBLE 290 +#define MT_VOID 291 +#define MT_ANYTYPE 292 +#define MT_INTEGRALTYPE 293 +#define MT_UNSIGNEDINTEGRALTYPE 294 +#define MT_SIGNEDINTEGRALTYPE 295 +#define MT_CONST 296 +#define MT_VOLATILE 297 +#define MT_STRINGLIT 298 +#define MT_IDENT 299 + +#line 25 "mtgrammar.y" + + +# include "bison.reset" +# include "lclintMacros.nf" +# include "llbasic.h" +# include "mtincludes.h" + +static /*@exits@*/ void mterror (char *); + +/*@-noparams@*/ /* Can't list params since YYSTYPE isn't defined yet. */ +static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */); +/*@=noparams@*/ + +# define YYPRINT(file, type, value) yyprint (file, type, value) + +# define YYDEBUG 1 + +# include "bison.head" + + +#line 48 "mtgrammar.y" +typedef union { + mttok tok; + mtDeclarationNode mtdecl; + mtDeclarationPiece mtpiece; + mtDeclarationPieces mtpieces; + mtContextNode mtcontext; + mtValuesNode mtvalues; + mtDefaultsNode mtdefaults; + mtDefaultsDeclList mtdeflist; + mtAnnotationsNode mtannotations; + mtAnnotationList mtannotlist; + mtAnnotationDecl mtannotdecl; + mtMergeNode mtmerge; + mtMergeItem mtmergeitem; + mtMergeClauseList mtmergeclauselist; + mtMergeClause mtmergeclause; + mtTransferClauseList mttransferclauselist; + mtTransferClause mttransferclause; + mtTransferAction mttransferaction; + mtLoseReferenceList mtlosereferencelist; + mtLoseReference mtlosereference; + + /*@only@*/ cstringList cstringlist; + ctype ctyp; + /*@only@*/ qtype qtyp; + int count; +} YYSTYPE; +#ifndef YYDEBUG +#define YYDEBUG 1 +#endif + +#include + +#ifndef __cplusplus +#ifndef __STDC__ +#define const +#endif +#endif + + + +#define YYFINAL 129 +#define YYFLAG -32768 +#define YYNTBASE 46 + +#define YYTRANSLATE(x) ((unsigned)(x) <= 299 ? yytranslate[x] : 89) + +static const char yytranslate[] = { 0, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 43, 44, 45 +}; + +#if YYDEBUG != 0 +static const short yyprhs[] = { 0, + 0, 1, 3, 7, 12, 15, 16, 19, 21, 23, + 25, 27, 29, 31, 33, 35, 37, 39, 42, 43, + 45, 48, 51, 54, 55, 57, 59, 62, 64, 68, + 71, 72, 74, 76, 78, 81, 83, 86, 89, 93, + 95, 97, 99, 102, 106, 109, 113, 115, 117, 119, + 121, 123, 125, 127, 129, 131, 133, 135, 138, 140, + 144, 147, 150, 154, 159, 162, 164, 167, 172, 175, + 177, 180, 186, 188, 190, 193, 196, 199, 202, 204, + 207, 211, 213, 216, 222, 224, 226, 228, 231 +}; + +static const short yyrhs[] = { -1, + 47, 0, 5, 48, 4, 0, 6, 5, 48, 4, + 0, 45, 49, 0, 0, 50, 49, 0, 51, 0, + 66, 0, 69, 0, 68, 0, 71, 0, 74, 0, + 80, 0, 78, 0, 79, 0, 81, 0, 7, 53, + 0, 0, 53, 0, 12, 54, 0, 11, 54, 0, + 13, 54, 0, 0, 55, 0, 56, 0, 56, 59, + 0, 57, 0, 56, 25, 55, 0, 64, 58, 0, + 0, 56, 0, 60, 0, 63, 0, 60, 63, 0, + 24, 0, 24, 62, 0, 24, 60, 0, 24, 62, + 60, 0, 42, 0, 43, 0, 61, 0, 62, 61, + 0, 26, 59, 27, 0, 28, 29, 0, 63, 28, + 29, 0, 33, 0, 34, 0, 35, 0, 36, 0, + 37, 0, 38, 0, 39, 0, 40, 0, 41, 0, + 65, 0, 45, 0, 8, 67, 0, 45, 0, 45, + 32, 67, 0, 10, 88, 0, 9, 70, 0, 53, + 15, 88, 0, 53, 15, 88, 70, 0, 14, 72, + 0, 73, 0, 73, 72, 0, 45, 52, 15, 88, + 0, 16, 75, 0, 76, 0, 76, 75, 0, 77, + 23, 77, 15, 86, 0, 88, 0, 24, 0, 18, + 84, 0, 19, 84, 0, 17, 84, 0, 20, 82, + 0, 83, 0, 83, 82, 0, 88, 15, 87, 0, + 85, 0, 85, 84, 0, 88, 21, 88, 15, 86, + 0, 88, 0, 87, 0, 22, 0, 22, 44, 0, + 45, 0 +}; + +#endif + +#if YYDEBUG != 0 +static const short yyrline[] = { 0, + 144, 145, 148, 150, 154, 158, 159, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 175, 179, 180, + 183, 184, 185, 192, 193, 196, 197, 200, 201, 205, + 208, 209, 213, 214, 215, 218, 219, 220, 221, 224, + 225, 228, 229, 232, 233, 234, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 256, 259, 262, 263, + 267, 270, 273, 275, 279, 282, 283, 287, 291, 294, + 295, 298, 302, 303, 306, 309, 312, 315, 318, 319, + 322, 325, 326, 329, 333, 334, 337, 338, 341 +}; +#endif + + +#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) + +static const char * const yytname[] = { "$","error","$undefined.","MT_BADTOK", +"MT_END","MT_STATE","MT_GLOBAL","MT_CONTEXT","MT_ONEOF","MT_DEFAULTS","MT_DEFAULT", +"MT_REFERENCE","MT_PARAMETER","MT_CLAUSE","MT_ANNOTATIONS","MT_ARROW","MT_MERGE", +"MT_TRANSFERS","MT_PRECONDITIONS","MT_POSTCONDITIONS","MT_LOSEREFERENCE","MT_AS", +"MT_ERROR","MT_PLUS","MT_STAR","MT_BAR","MT_LPAREN","MT_RPAREN","MT_LBRACKET", +"MT_RBRACKET","MT_LBRACE","MT_RBRACE","MT_COMMA","MT_CHAR","MT_INT","MT_FLOAT", +"MT_DOUBLE","MT_VOID","MT_ANYTYPE","MT_INTEGRALTYPE","MT_UNSIGNEDINTEGRALTYPE", +"MT_SIGNEDINTEGRALTYPE","MT_CONST","MT_VOLATILE","MT_STRINGLIT","MT_IDENT","file", +"mtsDeclaration","declarationNode","declarationPieces","declarationPiece","contextDeclaration", +"optContextSelection","contextSelection","optType","typeExpression","completeType", +"completeTypeAux","optCompleteType","abstractDecl","pointers","innerMods","innerModsList", +"abstractDeclBase","typeSpecifier","typeName","valuesDeclaration","valuesList", +"defaultNode","defaultsDeclaration","defaultDeclarationList","annotationsDeclaration", +"annotationsDeclarationList","annotationDeclaration","mergeDeclaration","mergeClauses", +"mergeClause","mergeItem","preconditionsDeclaration","postconditionsDeclaration", +"transfersDeclaration","loseReferenceDeclaration","lostClauses","lostClause", +"transferClauses","transferClause","transferAction","errorAction","valueChoice", NULL +}; +#endif + +static const short yyr1[] = { 0, + 46, 46, 47, 47, 48, 49, 49, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 51, 52, 52, + 53, 53, 53, 54, 54, 55, 55, 56, 56, 57, + 58, 58, 59, 59, 59, 60, 60, 60, 60, 61, + 61, 62, 62, 63, 63, 63, 64, 64, 64, 64, + 64, 64, 64, 64, 64, 64, 65, 66, 67, 67, + 68, 69, 70, 70, 71, 72, 72, 73, 74, 75, + 75, 76, 77, 77, 78, 79, 80, 81, 82, 82, + 83, 84, 84, 85, 86, 86, 87, 87, 88 +}; + +static const short yyr2[] = { 0, + 0, 1, 3, 4, 2, 0, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 0, 1, + 2, 2, 2, 0, 1, 1, 2, 1, 3, 2, + 0, 1, 1, 1, 2, 1, 2, 2, 3, 1, + 1, 1, 2, 3, 2, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 2, 1, 3, + 2, 2, 3, 4, 2, 1, 2, 4, 2, 1, + 2, 5, 1, 1, 2, 2, 2, 2, 1, 2, + 3, 1, 2, 5, 1, 1, 1, 2, 1 +}; + +static const short yydefact[] = { 1, + 0, 0, 2, 6, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 5, 6, 8, 9, + 11, 10, 12, 13, 15, 16, 14, 17, 3, 0, + 24, 24, 24, 18, 59, 58, 0, 62, 89, 61, + 19, 65, 66, 74, 69, 70, 0, 73, 77, 82, + 0, 75, 76, 78, 79, 0, 7, 4, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 57, 22, 25, + 26, 28, 31, 56, 21, 23, 0, 0, 0, 20, + 67, 71, 0, 83, 0, 80, 0, 36, 0, 0, + 0, 27, 33, 34, 32, 30, 60, 63, 0, 0, + 0, 87, 81, 40, 41, 38, 42, 37, 29, 0, + 45, 35, 0, 64, 68, 0, 0, 88, 39, 43, + 44, 46, 72, 86, 85, 84, 0, 0, 0 +}; + +static const short yydefgoto[] = { 127, + 3, 5, 17, 18, 19, 79, 37, 69, 70, 71, + 72, 96, 92, 93, 107, 108, 94, 73, 74, 20, + 36, 21, 22, 38, 23, 42, 43, 24, 45, 46, + 47, 25, 26, 27, 28, 54, 55, 49, 50, 123, + 124, 51 +}; + +static const short yypact[] = { 27, + -8, 29,-32768, 6, 40, -8, -2, 12, -2, 16, + 17, -16, 16, 16, 16, 16,-32768, 6,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 55, + 13, 13, 13,-32768, 28,-32768, 48,-32768,-32768,-32768, + -2,-32768, 17,-32768,-32768, -16, 41,-32768,-32768, 16, + 44,-32768,-32768,-32768, 16, 51,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, + -7,-32768, 13,-32768,-32768,-32768, 12, 16, 52,-32768, +-32768,-32768, -16,-32768, 16,-32768, 47, -12, 13, 14, + 42,-32768, 15, 46, 45,-32768,-32768, -2, 16, 57, + 61, 33,-32768,-32768,-32768,-32768,-32768, -12,-32768, 53, +-32768, 46, 49,-32768,-32768, -17, -17,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 79, 81,-32768 +}; + +static const short yypgoto[] = {-32768, +-32768, 76, 65,-32768,-32768,-32768, -6, 23, -5, 18, +-32768,-32768, -4, -81, -23,-32768, -3,-32768,-32768,-32768, + 10,-32768,-32768, -1,-32768, 50,-32768,-32768, 54,-32768, + 5,-32768,-32768,-32768,-32768, 37,-32768, -11,-32768, -22, + 7, -10 +}; + + +#define YYLAST 107 + + +static const short yytable[] = { 40, + 34, 48, 52, 53, 102, 56, 106, 44, 31, 32, + 33, 88, 7, 8, 9, 10, 88, 89, 90, 11, + 91, 12, 13, 14, 15, 16, 119, 39, 39, 104, + 105, 1, 2, 6, 80, 48, 4, 88, 84, 90, + 90, 91, 91, 29, 56, 59, 60, 61, 62, 63, + 64, 65, 66, 67, 75, 76, 35, 68, 58, 77, + 39, 41, 78, 83, 85, 87, 99, 98, 102, 89, + 111, 116, 48, 113, 101, 117, 118, 122, 128, 121, + 129, 30, 57, 109, 120, 110, 97, 100, 115, 112, + 95, 86, 81, 103, 126, 0, 114, 0, 0, 82, + 0, 0, 0, 0, 0, 125, 125 +}; + +static const short yycheck[] = { 10, + 7, 12, 14, 15, 22, 16, 88, 24, 11, 12, + 13, 24, 7, 8, 9, 10, 24, 25, 26, 14, + 28, 16, 17, 18, 19, 20, 108, 45, 45, 42, + 43, 5, 6, 5, 41, 46, 45, 24, 50, 26, + 26, 28, 28, 4, 55, 33, 34, 35, 36, 37, + 38, 39, 40, 41, 32, 33, 45, 45, 4, 32, + 45, 45, 15, 23, 21, 15, 15, 78, 22, 25, + 29, 15, 83, 28, 85, 15, 44, 29, 0, 27, + 0, 6, 18, 89, 108, 90, 77, 83, 99, 93, + 73, 55, 43, 87, 117, -1, 98, -1, -1, 46, + -1, -1, -1, -1, -1, 116, 117 +}; +#define YYPURE 1 + +/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ +#line 3 "/usr/lib/bison.simple" +/* This file comes from bison-1.28. */ + +/* Skeleton output parser for bison, + Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* This is the parser code that is written into each bison parser + when the %semantic_parser declaration is not specified in the grammar. + It was written by Richard Stallman by simplifying the hairy parser + used when %semantic_parser is specified. */ + +#ifndef YYSTACK_USE_ALLOCA +#ifdef alloca +#define YYSTACK_USE_ALLOCA +#else /* alloca not defined */ +#ifdef __GNUC__ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#else /* not GNU C. */ +#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) +#define YYSTACK_USE_ALLOCA +#include +#else /* not sparc */ +/* We think this test detects Watcom and Microsoft C. */ +/* This used to test MSDOS, but that is a bad idea + since that symbol is in the user namespace. */ +#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) +#if 0 /* No need for malloc.h, which pollutes the namespace; + instead, just don't use alloca. */ +#include +#endif +#else /* not MSDOS, or __TURBOC__ */ +#if defined(_AIX) +/* I don't know what this was needed for, but it pollutes the namespace. + So I turned it off. rms, 2 May 1997. */ +/* #include */ + #pragma alloca +#define YYSTACK_USE_ALLOCA +#else /* not MSDOS, or __TURBOC__, or _AIX */ +#if 0 +#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, + and on HPUX 10. Eventually we can turn this on. */ +#define YYSTACK_USE_ALLOCA +#define alloca __builtin_alloca +#endif /* __hpux */ +#endif +#endif /* not _AIX */ +#endif /* not MSDOS, or __TURBOC__ */ +#endif /* not sparc */ +#endif /* not GNU C */ +#endif /* alloca not defined */ +#endif /* YYSTACK_USE_ALLOCA not defined */ + +#ifdef YYSTACK_USE_ALLOCA +#define YYSTACK_ALLOC alloca +#else +#define YYSTACK_ALLOC malloc +#endif + +/* Note: there must be only one dollar sign in this file. + It is replaced by the list of actions, each action + as one case of the switch. */ + +#define yyerrok (yyerrstatus = 0) +#define yyclearin (yychar = YYEMPTY) +#define YYEMPTY -2 +#define YYEOF 0 +#define YYACCEPT goto yyacceptlab +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrlab1 +/* Like YYERROR except do call yyerror. + This remains here temporarily to ease the + transition to the new meaning of YYERROR, for GCC. + Once GCC version 2 has supplanted version 1, this can go. */ +#define YYFAIL goto yyerrlab +#define YYRECOVERING() (!!yyerrstatus) +#define YYBACKUP(token, value) \ +do \ + if (yychar == YYEMPTY && yylen == 1) \ + { yychar = (token), yylval = (value); \ + yychar1 = YYTRANSLATE (yychar); \ + YYPOPSTACK; \ + goto yybackup; \ + } \ + else \ + { yyerror ("syntax error: cannot back up"); YYERROR; } \ +while (0) + +#define YYTERROR 1 +#define YYERRCODE 256 + +#ifndef YYPURE +#define YYLEX yylex() +#endif + +#ifdef YYPURE +#ifdef YYLSP_NEEDED +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval, &yylloc) +#endif +#else /* not YYLSP_NEEDED */ +#ifdef YYLEX_PARAM +#define YYLEX yylex(&yylval, YYLEX_PARAM) +#else +#define YYLEX yylex(&yylval) +#endif +#endif /* not YYLSP_NEEDED */ +#endif + +/* If nonreentrant, generate the variables here */ + +#ifndef YYPURE + +int yychar; /* the lookahead symbol */ +YYSTYPE yylval; /* the semantic value of the */ + /* lookahead symbol */ + +#ifdef YYLSP_NEEDED +YYLTYPE yylloc; /* location data for the lookahead */ + /* symbol */ +#endif + +int yynerrs; /* number of parse errors so far */ +#endif /* not YYPURE */ + +#if YYDEBUG != 0 +int yydebug; /* nonzero means print parse trace */ +/* Since this is uninitialized, it does not stop multiple parsers + from coexisting. */ +#endif + +/* YYINITDEPTH indicates the initial size of the parser's stacks */ + +#ifndef YYINITDEPTH +#define YYINITDEPTH 200 +#endif + +/* YYMAXDEPTH is the maximum size the stacks can grow to + (effective only if the built-in stack extension method is used). */ + +#if YYMAXDEPTH == 0 +#undef YYMAXDEPTH +#endif + +#ifndef YYMAXDEPTH +#define YYMAXDEPTH 10000 +#endif + +/* Define __yy_memcpy. Note that the size argument + should be passed with type unsigned int, because that is what the non-GCC + definitions require. With GCC, __builtin_memcpy takes an arg + of type size_t, but it can handle unsigned int. */ + +#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ +#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) +#else /* not GNU C or C++ */ +#ifndef __cplusplus + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (to, from, count) + char *to; + char *from; + unsigned int count; +{ + register char *f = from; + register char *t = to; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#else /* __cplusplus */ + +/* This is the most reliable way to avoid incompatibilities + in available built-in functions on various systems. */ +static void +__yy_memcpy (char *to, char *from, unsigned int count) +{ + register char *t = to; + register char *f = from; + register int i = count; + + while (i-- > 0) + *t++ = *f++; +} + +#endif +#endif + +#line 217 "/usr/lib/bison.simple" + +/* The user can define YYPARSE_PARAM as the name of an argument to be passed + into yyparse. The argument should have type void *. + It should actually point to an object. + Grammar actions can access the variable by casting it + to the proper pointer type. */ + +#ifdef YYPARSE_PARAM +#ifdef __cplusplus +#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM +#define YYPARSE_PARAM_DECL +#else /* not __cplusplus */ +#define YYPARSE_PARAM_ARG YYPARSE_PARAM +#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; +#endif /* not __cplusplus */ +#else /* not YYPARSE_PARAM */ +#define YYPARSE_PARAM_ARG +#define YYPARSE_PARAM_DECL +#endif /* not YYPARSE_PARAM */ + +/* Prevent warning if -Wstrict-prototypes. */ +#ifdef __GNUC__ +#ifdef YYPARSE_PARAM +int yyparse (void *); +#else +int yyparse (void); +#endif +#endif + +int +yyparse(YYPARSE_PARAM_ARG) + YYPARSE_PARAM_DECL +{ + register int yystate; + register int yyn; + register short *yyssp; + register YYSTYPE *yyvsp; + int yyerrstatus; /* number of tokens to shift before error messages enabled */ + int yychar1 = 0; /* lookahead token as an internal (translated) token number */ + + short yyssa[YYINITDEPTH]; /* the state stack */ + YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ + + short *yyss = yyssa; /* refer to the stacks thru separate pointers */ + YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ + +#ifdef YYLSP_NEEDED + YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + YYLTYPE *yyls = yylsa; + YYLTYPE *yylsp; + +#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) +#else +#define YYPOPSTACK (yyvsp--, yyssp--) +#endif + + int yystacksize = YYINITDEPTH; + int yyfree_stacks = 0; + +#ifdef YYPURE + int yychar; + YYSTYPE yylval; + int yynerrs; +#ifdef YYLSP_NEEDED + YYLTYPE yylloc; +#endif +#endif + + YYSTYPE yyval; /* the variable used to return */ + /* semantic values from the action */ + /* routines */ + + int yylen; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Starting parse\n"); +#endif + + yystate = 0; + yyerrstatus = 0; + yynerrs = 0; + yychar = YYEMPTY; /* Cause a token to be read. */ + + /* Initialize stack pointers. + Waste one element of value and location stack + so that they stay on the same level as the state stack. + The wasted elements are never initialized. */ + + yyssp = yyss - 1; + yyvsp = yyvs; +#ifdef YYLSP_NEEDED + yylsp = yyls; +#endif + +/* Push a new state, which is found in yystate . */ +/* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. */ +yynewstate: + + *++yyssp = yystate; + + if (yyssp >= yyss + yystacksize - 1) + { + /* Give user a chance to reallocate the stack */ + /* Use copies of these so that the &'s don't force the real ones into memory. */ + YYSTYPE *yyvs1 = yyvs; + short *yyss1 = yyss; +#ifdef YYLSP_NEEDED + YYLTYPE *yyls1 = yyls; +#endif + + /* Get the current used size of the three stacks, in elements. */ + int size = yyssp - yyss + 1; + +#ifdef yyoverflow + /* Each stack pointer address is followed by the size of + the data in use in that stack, in bytes. */ +#ifdef YYLSP_NEEDED + /* This used to be a conditional around just the two extra args, + but that might be undefined if yyoverflow is a macro. */ + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yyls1, size * sizeof (*yylsp), + &yystacksize); +#else + yyoverflow("parser stack overflow", + &yyss1, size * sizeof (*yyssp), + &yyvs1, size * sizeof (*yyvsp), + &yystacksize); +#endif + + yyss = yyss1; yyvs = yyvs1; +#ifdef YYLSP_NEEDED + yyls = yyls1; +#endif +#else /* no yyoverflow */ + /* Extend the stack our own way. */ + if (yystacksize >= YYMAXDEPTH) + { + yyerror("parser stack overflow"); + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 2; + } + yystacksize *= 2; + if (yystacksize > YYMAXDEPTH) + yystacksize = YYMAXDEPTH; +#ifndef YYSTACK_USE_ALLOCA + yyfree_stacks = 1; +#endif + yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); + __yy_memcpy ((char *)yyss, (char *)yyss1, + size * (unsigned int) sizeof (*yyssp)); + yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); + __yy_memcpy ((char *)yyvs, (char *)yyvs1, + size * (unsigned int) sizeof (*yyvsp)); +#ifdef YYLSP_NEEDED + yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); + __yy_memcpy ((char *)yyls, (char *)yyls1, + size * (unsigned int) sizeof (*yylsp)); +#endif +#endif /* no yyoverflow */ + + yyssp = yyss + size - 1; + yyvsp = yyvs + size - 1; +#ifdef YYLSP_NEEDED + yylsp = yyls + size - 1; +#endif + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Stack size increased to %d\n", yystacksize); +#endif + + if (yyssp >= yyss + yystacksize - 1) + YYABORT; + } + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Entering state %d\n", yystate); +#endif + + goto yybackup; + yybackup: + +/* Do appropriate processing given the current state. */ +/* Read a lookahead token if we need one and don't already have one. */ +/* yyresume: */ + + /* First try to decide what to do without reference to lookahead token. */ + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yydefault; + + /* Not known => get a lookahead token if don't already have one. */ + + /* yychar is either YYEMPTY or YYEOF + or a valid token in external form. */ + + if (yychar == YYEMPTY) + { +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Reading a token: "); +#endif + yychar = YYLEX; + } + + /* Convert token to internal form (in yychar1) for indexing tables with */ + + if (yychar <= 0) /* This means end of input. */ + { + yychar1 = 0; + yychar = YYEOF; /* Don't call YYLEX any more */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Now at end of input.\n"); +#endif + } + else + { + yychar1 = YYTRANSLATE(yychar); + +#if YYDEBUG != 0 + if (yydebug) + { + fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); + /* Give the individual parser a way to print the precise meaning + of a token, for further debugging info. */ +#ifdef YYPRINT + YYPRINT (stderr, yychar, yylval); +#endif + fprintf (stderr, ")\n"); + } +#endif + } + + yyn += yychar1; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + goto yydefault; + + yyn = yytable[yyn]; + + /* yyn is what to do for this token type in this state. + Negative => reduce, -yyn is rule number. + Positive => shift, yyn is new state. + New state is final state => don't bother to shift, + just return success. + 0, or most negative number => error. */ + + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrlab; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrlab; + + if (yyn == YYFINAL) + YYACCEPT; + + /* Shift the lookahead token. */ + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); +#endif + + /* Discard the token being shifted unless it is eof. */ + if (yychar != YYEOF) + yychar = YYEMPTY; + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + /* count tokens shifted since error; after three, turn off error status. */ + if (yyerrstatus) yyerrstatus--; + + yystate = yyn; + goto yynewstate; + +/* Do the default action for the current state. */ +yydefault: + + yyn = yydefact[yystate]; + if (yyn == 0) + goto yyerrlab; + +/* Do a reduction. yyn is the number of a rule to reduce with. */ +yyreduce: + yylen = yyr2[yyn]; + if (yylen > 0) + yyval = yyvsp[1-yylen]; /* implement default value of the action */ + +#if YYDEBUG != 0 + if (yydebug) + { + int i; + + fprintf (stderr, "Reducing via rule %d (line %d), ", + yyn, yyrline[yyn]); + + /* Print the symbols being reduced, and their result. */ + for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) + fprintf (stderr, "%s ", yytname[yyrhs[i]]); + fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); + } +#endif + + + switch (yyn) { + +case 1: +#line 144 "mtgrammar.y" +{; + break;} +case 2: +#line 145 "mtgrammar.y" +{; + break;} +case 3: +#line 149 "mtgrammar.y" +{ mtreader_processDeclaration (yyvsp[-1].mtdecl); ; + break;} +case 4: +#line 151 "mtgrammar.y" +{ mtreader_processGlobalDeclaration (yyvsp[-1].mtdecl); ; + break;} +case 5: +#line 155 "mtgrammar.y" +{ yyval.mtdecl = mtDeclarationNode_create (yyvsp[-1].tok, yyvsp[0].mtpieces); ; + break;} +case 6: +#line 158 "mtgrammar.y" +{ yyval.mtpieces = mtDeclarationPieces_create (); ; + break;} +case 7: +#line 160 "mtgrammar.y" +{ yyval.mtpieces = mtDeclarationPieces_append (yyvsp[0].mtpieces, yyvsp[-1].mtpiece); ; + break;} +case 8: +#line 163 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createContext (yyvsp[0].mtcontext); ; + break;} +case 9: +#line 164 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createValues (yyvsp[0].mtvalues); ; + break;} +case 10: +#line 165 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createDefaults (yyvsp[0].mtdefaults); ; + break;} +case 11: +#line 166 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createValueDefault (yyvsp[0].tok); ; + break;} +case 12: +#line 167 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createAnnotations (yyvsp[0].mtannotations); ; + break;} +case 13: +#line 168 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createMerge (yyvsp[0].mtmerge); ; + break;} +case 14: +#line 169 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createTransfers (yyvsp[0].mttransferclauselist); ; + break;} +case 15: +#line 170 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createPreconditions (yyvsp[0].mttransferclauselist); ; + break;} +case 16: +#line 171 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createPostconditions (yyvsp[0].mttransferclauselist); ; + break;} +case 17: +#line 172 "mtgrammar.y" +{ yyval.mtpiece = mtDeclarationPiece_createLosers (yyvsp[0].mtlosereferencelist); ; + break;} +case 18: +#line 175 "mtgrammar.y" +{ yyval.mtcontext = yyvsp[0].mtcontext; ; + break;} +case 19: +#line 179 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createAny (); ; + break;} +case 21: +#line 183 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createParameter (yyvsp[0].ctyp); ; + break;} +case 22: +#line 184 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createReference (yyvsp[0].ctyp); ; + break;} +case 23: +#line 185 "mtgrammar.y" +{ yyval.mtcontext = mtContextNode_createClause (yyvsp[0].ctyp); ; + break;} +case 24: +#line 192 "mtgrammar.y" +{ yyval.ctyp = ctype_unknown; ; + break;} +case 25: +#line 193 "mtgrammar.y" +{ DPRINTF (("Type: %s", qtype_unparse (yyvsp[0].qtyp))); yyval.ctyp = qtype_getType (yyvsp[0].qtyp); ; + break;} +case 27: +#line 197 "mtgrammar.y" +{ yyval.qtyp = qtype_newBase (yyvsp[-1].qtyp, yyvsp[0].ctyp); ; + break;} +case 28: +#line 200 "mtgrammar.y" +{ yyval.qtyp = yyvsp[0].qtyp; ; + break;} +case 29: +#line 202 "mtgrammar.y" +{ yyval.qtyp = qtype_mergeAlt (yyvsp[-2].qtyp, yyvsp[0].qtyp); ; + break;} +case 30: +#line 205 "mtgrammar.y" +{ yyval.qtyp = qtype_combine (yyvsp[0].qtyp, yyvsp[-1].ctyp); ; + break;} +case 31: +#line 208 "mtgrammar.y" +{ yyval.qtyp = qtype_unknown (); ; + break;} +case 32: +#line 209 "mtgrammar.y" +{ yyval.qtyp = yyvsp[0].qtyp; ; + break;} +case 33: +#line 213 "mtgrammar.y" +{ yyval.ctyp = ctype_adjustPointers (yyvsp[0].count, ctype_unknown); ; + break;} +case 35: +#line 215 "mtgrammar.y" +{ yyval.ctyp = ctype_adjustPointers (yyvsp[-1].count, yyvsp[0].ctyp); ; + break;} +case 36: +#line 218 "mtgrammar.y" +{ yyval.count = 1; ; + break;} +case 37: +#line 219 "mtgrammar.y" +{ yyval.count = 1; ; + break;} +case 38: +#line 220 "mtgrammar.y" +{ yyval.count = 1 + yyvsp[0].count; ; + break;} +case 39: +#line 221 "mtgrammar.y" +{ yyval.count = 1 + yyvsp[0].count; ; + break;} +case 40: +#line 224 "mtgrammar.y" +{ /* ignored for now */; ; + break;} +case 41: +#line 225 "mtgrammar.y" +{ ; ; + break;} +case 42: +#line 228 "mtgrammar.y" +{ ; ; + break;} +case 43: +#line 229 "mtgrammar.y" +{ ; ; + break;} +case 44: +#line 232 "mtgrammar.y" +{ yyval.ctyp = ctype_expectFunction (yyvsp[-1].ctyp); ; + break;} +case 45: +#line 233 "mtgrammar.y" +{ yyval.ctyp = ctype_makeArray (ctype_unknown); ; + break;} +case 46: +#line 234 "mtgrammar.y" +{ yyval.ctyp = ctype_makeArray (yyvsp[-2].ctyp); ; + break;} +case 47: +#line 241 "mtgrammar.y" +{ yyval.ctyp = ctype_char; ; + break;} +case 48: +#line 242 "mtgrammar.y" +{ yyval.ctyp = ctype_int; ; + break;} +case 49: +#line 243 "mtgrammar.y" +{ yyval.ctyp = ctype_float; ; + break;} +case 50: +#line 244 "mtgrammar.y" +{ yyval.ctyp = ctype_double; ; + break;} +case 51: +#line 245 "mtgrammar.y" +{ yyval.ctyp = ctype_void; ; + break;} +case 52: +#line 246 "mtgrammar.y" +{ yyval.ctyp = ctype_unknown; ; + break;} +case 53: +#line 247 "mtgrammar.y" +{ yyval.ctyp = ctype_anyintegral; ; + break;} +case 54: +#line 248 "mtgrammar.y" +{ yyval.ctyp = ctype_unsignedintegral; ; + break;} +case 55: +#line 249 "mtgrammar.y" +{ yyval.ctyp = ctype_signedintegral; ; + break;} +case 57: +#line 256 "mtgrammar.y" +{ yyval.ctyp = mtscanner_lookupType (yyvsp[0].tok); ; + break;} +case 58: +#line 259 "mtgrammar.y" +{ yyval.mtvalues = mtValuesNode_create (yyvsp[0].cstringlist); ; + break;} +case 59: +#line 262 "mtgrammar.y" +{ yyval.cstringlist = cstringList_single (mttok_getText (yyvsp[0].tok)); ; + break;} +case 60: +#line 264 "mtgrammar.y" +{ yyval.cstringlist = cstringList_prepend (yyvsp[0].cstringlist, mttok_getText (yyvsp[-2].tok)); ; + break;} +case 61: +#line 267 "mtgrammar.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +case 62: +#line 270 "mtgrammar.y" +{ yyval.mtdefaults = mtDefaultsNode_create (yyvsp[-1].tok, yyvsp[0].mtdeflist); ; + break;} +case 63: +#line 274 "mtgrammar.y" +{ yyval.mtdeflist = mtDefaultsDeclList_single (mtDefaultsDecl_create (yyvsp[-2].mtcontext, yyvsp[0].tok)); ; + break;} +case 64: +#line 276 "mtgrammar.y" +{ yyval.mtdeflist = mtDefaultsDeclList_prepend (yyvsp[0].mtdeflist, mtDefaultsDecl_create (yyvsp[-3].mtcontext, yyvsp[-1].tok)); ; + break;} +case 65: +#line 279 "mtgrammar.y" +{ yyval.mtannotations = mtAnnotationsNode_create (yyvsp[0].mtannotlist); ; + break;} +case 66: +#line 282 "mtgrammar.y" +{ yyval.mtannotlist = mtAnnotationList_single (yyvsp[0].mtannotdecl); ; + break;} +case 67: +#line 284 "mtgrammar.y" +{ yyval.mtannotlist = mtAnnotationList_prepend (yyvsp[0].mtannotlist, yyvsp[-1].mtannotdecl); ; + break;} +case 68: +#line 288 "mtgrammar.y" +{ yyval.mtannotdecl = mtAnnotationDecl_create (yyvsp[-3].tok, yyvsp[-2].mtcontext, yyvsp[0].tok); ; + break;} +case 69: +#line 291 "mtgrammar.y" +{ yyval.mtmerge = mtMergeNode_create (yyvsp[0].mtmergeclauselist); ; + break;} +case 70: +#line 294 "mtgrammar.y" +{ yyval.mtmergeclauselist = mtMergeClauseList_single (yyvsp[0].mtmergeclause); ; + break;} +case 71: +#line 295 "mtgrammar.y" +{ yyval.mtmergeclauselist = mtMergeClauseList_prepend (yyvsp[0].mtmergeclauselist, yyvsp[-1].mtmergeclause); ; + break;} +case 72: +#line 299 "mtgrammar.y" +{ yyval.mtmergeclause = mtMergeClause_create (yyvsp[-4].mtmergeitem, yyvsp[-2].mtmergeitem, yyvsp[0].mttransferaction); ; + break;} +case 73: +#line 302 "mtgrammar.y" +{ yyval.mtmergeitem = mtMergeItem_createValue (yyvsp[0].tok); ; + break;} +case 74: +#line 303 "mtgrammar.y" +{ yyval.mtmergeitem = mtMergeItem_createStar (yyvsp[0].tok); ; + break;} +case 75: +#line 306 "mtgrammar.y" +{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ; + break;} +case 76: +#line 309 "mtgrammar.y" +{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ; + break;} +case 77: +#line 312 "mtgrammar.y" +{ yyval.mttransferclauselist = yyvsp[0].mttransferclauselist; ; + break;} +case 78: +#line 315 "mtgrammar.y" +{ yyval.mtlosereferencelist = yyvsp[0].mtlosereferencelist; ; + break;} +case 79: +#line 318 "mtgrammar.y" +{ yyval.mtlosereferencelist = mtLoseReferenceList_single (yyvsp[0].mtlosereference); ; + break;} +case 80: +#line 319 "mtgrammar.y" +{ yyval.mtlosereferencelist = mtLoseReferenceList_prepend (yyvsp[0].mtlosereferencelist, yyvsp[-1].mtlosereference); ; + break;} +case 81: +#line 322 "mtgrammar.y" +{ yyval.mtlosereference = mtLoseReference_create (yyvsp[-2].tok, yyvsp[0].mttransferaction); ; + break;} +case 82: +#line 325 "mtgrammar.y" +{ yyval.mttransferclauselist = mtTransferClauseList_single (yyvsp[0].mttransferclause); ; + break;} +case 83: +#line 326 "mtgrammar.y" +{ yyval.mttransferclauselist = mtTransferClauseList_prepend (yyvsp[0].mttransferclauselist, yyvsp[-1].mttransferclause); ; + break;} +case 84: +#line 330 "mtgrammar.y" +{ yyval.mttransferclause = mtTransferClause_create (yyvsp[-4].tok, yyvsp[-2].tok, yyvsp[0].mttransferaction); ; + break;} +case 85: +#line 333 "mtgrammar.y" +{ yyval.mttransferaction = mtTransferAction_createValue (yyvsp[0].tok); ; + break;} +case 86: +#line 334 "mtgrammar.y" +{ yyval.mttransferaction = yyvsp[0].mttransferaction; ; + break;} +case 87: +#line 337 "mtgrammar.y" +{ yyval.mttransferaction = mtTransferAction_createError (yyvsp[0].tok); ; + break;} +case 88: +#line 338 "mtgrammar.y" +{ yyval.mttransferaction = mtTransferAction_createErrorMessage (yyvsp[0].tok); ; + break;} +case 89: +#line 341 "mtgrammar.y" +{ yyval.tok = yyvsp[0].tok; ; + break;} +} + /* the action file gets copied in in place of this dollarsign */ +#line 543 "/usr/lib/bison.simple" + + yyvsp -= yylen; + yyssp -= yylen; +#ifdef YYLSP_NEEDED + yylsp -= yylen; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + + *++yyvsp = yyval; + +#ifdef YYLSP_NEEDED + yylsp++; + if (yylen == 0) + { + yylsp->first_line = yylloc.first_line; + yylsp->first_column = yylloc.first_column; + yylsp->last_line = (yylsp-1)->last_line; + yylsp->last_column = (yylsp-1)->last_column; + yylsp->text = 0; + } + else + { + yylsp->last_line = (yylsp+yylen-1)->last_line; + yylsp->last_column = (yylsp+yylen-1)->last_column; + } +#endif + + /* Now "shift" the result of the reduction. + Determine what state that goes to, + based on the state we popped back to + and the rule number reduced by. */ + + yyn = yyr1[yyn]; + + yystate = yypgoto[yyn - YYNTBASE] + *yyssp; + if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yytable[yystate]; + else + yystate = yydefgoto[yyn - YYNTBASE]; + + goto yynewstate; + +yyerrlab: /* here on detecting error */ + + if (! yyerrstatus) + /* If not already recovering from an error, report this error. */ + { + ++yynerrs; + +#ifdef YYERROR_VERBOSE + yyn = yypact[yystate]; + + if (yyn > YYFLAG && yyn < YYLAST) + { + int size = 0; + char *msg; + int x, count; + + count = 0; + /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + size += strlen(yytname[x]) + 15, count++; + msg = (char *) malloc(size + 15); + if (msg != 0) + { + strcpy(msg, "parse error"); + + if (count < 5) + { + count = 0; + for (x = (yyn < 0 ? -yyn : 0); + x < (sizeof(yytname) / sizeof(char *)); x++) + if (yycheck[x + yyn] == x) + { + strcat(msg, count == 0 ? ", expecting `" : " or `"); + strcat(msg, yytname[x]); + strcat(msg, "'"); + count++; + } + } + yyerror(msg); + free(msg); + } + else + yyerror ("parse error; also virtual memory exceeded"); + } + else +#endif /* YYERROR_VERBOSE */ + yyerror("parse error"); + } + + goto yyerrlab1; +yyerrlab1: /* here on error raised explicitly by an action */ + + if (yyerrstatus == 3) + { + /* if just tried and failed to reuse lookahead token after an error, discard it. */ + + /* return failure if at end of input */ + if (yychar == YYEOF) + YYABORT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); +#endif + + yychar = YYEMPTY; + } + + /* Else will try to reuse lookahead token + after shifting the error token. */ + + yyerrstatus = 3; /* Each real token shifted decrements this */ + + goto yyerrhandle; + +yyerrdefault: /* current state does not do anything special for the error token. */ + +#if 0 + /* This is wrong; only states that explicitly want error tokens + should shift them. */ + yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ + if (yyn) goto yydefault; +#endif + +yyerrpop: /* pop the current state because it cannot handle the error token */ + + if (yyssp == yyss) YYABORT; + yyvsp--; + yystate = *--yyssp; +#ifdef YYLSP_NEEDED + yylsp--; +#endif + +#if YYDEBUG != 0 + if (yydebug) + { + short *ssp1 = yyss - 1; + fprintf (stderr, "Error: state stack now"); + while (ssp1 != yyssp) + fprintf (stderr, " %d", *++ssp1); + fprintf (stderr, "\n"); + } +#endif + +yyerrhandle: + + yyn = yypact[yystate]; + if (yyn == YYFLAG) + goto yyerrdefault; + + yyn += YYTERROR; + if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) + goto yyerrdefault; + + yyn = yytable[yyn]; + if (yyn < 0) + { + if (yyn == YYFLAG) + goto yyerrpop; + yyn = -yyn; + goto yyreduce; + } + else if (yyn == 0) + goto yyerrpop; + + if (yyn == YYFINAL) + YYACCEPT; + +#if YYDEBUG != 0 + if (yydebug) + fprintf(stderr, "Shifting error token, "); +#endif + + *++yyvsp = yylval; +#ifdef YYLSP_NEEDED + *++yylsp = yylloc; +#endif + + yystate = yyn; + goto yynewstate; + + yyacceptlab: + /* YYACCEPT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 0; + + yyabortlab: + /* YYABORT comes here. */ + if (yyfree_stacks) + { + free (yyss); + free (yyvs); +#ifdef YYLSP_NEEDED + free (yyls); +#endif + } + return 1; +} +#line 343 "mtgrammar.y" + + +# include "bison.reset" + +extern char *yytext; + +static void mterror (char *s) +{ + llfatalbug + (cstring_makeLiteral + ("There has been a problem in the .mts parser.")); +} + +static void yyprint (FILE *file, int type, YYSTYPE value) +{ + cstring tname = mttok_unparse (value.tok); + fprintf (file, " (%s)", cstring_toCharsSafe (tname)); + cstring_free (tname); +} + + + + +/* +** Resets all flags in bison.head +*/ + + +/*@=allmacros@*/ +/*@=boolint@*/ +/*@=charint@*/ +/*@=macroparams@*/ +/*@=macroundef@*/ +/*@=unreachable@*/ +/*@=macrospec@*/ +/*@=varuse@*/ +/*@=ignorequals@*/ +/*@=macrostmt@*/ +/*@=noeffect@*/ +/*@=shadow@*/ +/*@=exitarg@*/ +/*@=macroredef@*/ +/*@=uniondef@*/ +/*@=compdef@*/ +/*@=matchfields@*/ +/*@=exportlocal@*/ +/*@=evalorderuncon@*/ +/*@=exportheader@*/ +/*@=typeuse@*/ +/*@=redecl@*/ +/*@=redef@*/ +/*@=noparams@*/ +/*@=ansireserved@*/ +/*@=fielduse@*/ +/*@=ifblock@*/ +/*@=elseifcomplete@*/ +/*@=whileblock@*/ +/*@=forblock@*/ +/*@=branchstate@*/ +/*@=readonlytrans@*/ +/*@=namechecks@*/ +/*@=usedef@*/ +/*@=systemunrecog@*/ +/*@=dependenttrans@*/ +/*@=unqualifiedtrans@*/ diff --git a/src/mtgrammar.y b/src/mtgrammar.y new file mode 100644 index 0000000..2281ece --- /dev/null +++ b/src/mtgrammar.y @@ -0,0 +1,365 @@ +/*;-*-C-*-; +** Copyright (c) Massachusetts Institute of Technology 1994-1998. +** All Rights Reserved. +** Unpublished rights reserved under the copyright laws of +** the United States. +** +** THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED +** OR IMPLIED. ANY USE IS AT YOUR OWN RISK. +** +** This code is distributed freely and may be used freely under the +** following conditions: +** +** 1. This notice may not be removed or altered. +** +** 2. Works derived from this code are not distributed for +** commercial gain without explicit permission from MIT +** (for permission contact lclint-request@sds.lcs.mit.edu). +*/ +/* +** mtgrammar.y +** +** Grammar for .mts files. +*/ + +%{ + +# include "bison.reset" +# include "lclintMacros.nf" +# include "llbasic.h" +# include "mtincludes.h" + +static /*@exits@*/ void mterror (char *); + +/*@-noparams@*/ /* Can't list params since YYSTYPE isn't defined yet. */ +static void yyprint (/*FILE *p_file, int p_type, YYSTYPE p_value */); +/*@=noparams@*/ + +# define YYPRINT(file, type, value) yyprint (file, type, value) + +# define YYDEBUG 1 + +# include "bison.head" + +%} + +%pure_parser + +%union { + mttok tok; + mtDeclarationNode mtdecl; + mtDeclarationPiece mtpiece; + mtDeclarationPieces mtpieces; + mtContextNode mtcontext; + mtValuesNode mtvalues; + mtDefaultsNode mtdefaults; + mtDefaultsDeclList mtdeflist; + mtAnnotationsNode mtannotations; + mtAnnotationList mtannotlist; + mtAnnotationDecl mtannotdecl; + mtMergeNode mtmerge; + mtMergeItem mtmergeitem; + mtMergeClauseList mtmergeclauselist; + mtMergeClause mtmergeclause; + mtTransferClauseList mttransferclauselist; + mtTransferClause mttransferclause; + mtTransferAction mttransferaction; + mtLoseReferenceList mtlosereferencelist; + mtLoseReference mtlosereference; + + /*@only@*/ cstringList cstringlist; + ctype ctyp; + /*@only@*/ qtype qtyp; + int count; +} + +/* Don't forget to enter all tokens in mtscanner.c */ +%token MT_BADTOK + +%token MT_END +%token MT_STATE MT_GLOBAL + +%token MT_CONTEXT +%token MT_ONEOF + +%token MT_DEFAULTS MT_DEFAULT +%token MT_REFERENCE MT_PARAMETER MT_CLAUSE + +%token MT_ANNOTATIONS +%token MT_ARROW + +%token MT_MERGE +%token MT_TRANSFERS MT_PRECONDITIONS MT_POSTCONDITIONS +%token MT_LOSEREFERENCE + +%token MT_AS +%token MT_ERROR + +%token MT_PLUS MT_STAR MT_BAR +%token MT_LPAREN MT_RPAREN +%token MT_LBRACKET MT_RBRACKET +%token MT_LBRACE MT_RBRACE +%token MT_COMMA + +%token MT_CHAR MT_INT MT_FLOAT MT_DOUBLE MT_VOID MT_ANYTYPE MT_INTEGRALTYPE MT_UNSIGNEDINTEGRALTYPE +%token MT_SIGNEDINTEGRALTYPE +%token MT_CONST MT_VOLATILE +%token MT_STRINGLIT +%token MT_IDENT + +%type pointers +%type optType typeSpecifier typeName abstractDecl abstractDeclBase +%type typeExpression +%type completeType completeTypeAux optCompleteType +%type declarationPiece +%type contextDeclaration +%type contextSelection optContextSelection +%type valuesDeclaration +%type defaultNode +%type defaultsDeclaration +%type defaultDeclarationList +%type annotationsDeclaration +%type annotationsDeclarationList +%type annotationDeclaration +%type mergeDeclaration +%type mergeItem +%type mergeClauses +%type mergeClause +%type transfersDeclaration transferClauses preconditionsDeclaration postconditionsDeclaration +%type transferClause +%type transferAction errorAction +%type loseReferenceDeclaration lostClauses +%type lostClause +%type valuesList +%type declarationNode +%type declarationPieces +%type valueChoice + + +%start file + +%% + +file +: {} +| mtsDeclaration {} + +mtsDeclaration +: MT_STATE declarationNode MT_END + { mtreader_processDeclaration ($2); } +| MT_GLOBAL MT_STATE declarationNode MT_END + { mtreader_processGlobalDeclaration ($3); } + +declarationNode +: MT_IDENT declarationPieces + { $$ = mtDeclarationNode_create ($1, $2); } + +declarationPieces +: { $$ = mtDeclarationPieces_create (); } +| declarationPiece declarationPieces + { $$ = mtDeclarationPieces_append ($2, $1); } + +declarationPiece +: contextDeclaration { $$ = mtDeclarationPiece_createContext ($1); } +| valuesDeclaration { $$ = mtDeclarationPiece_createValues ($1); } +| defaultsDeclaration { $$ = mtDeclarationPiece_createDefaults ($1); } +| defaultNode { $$ = mtDeclarationPiece_createValueDefault ($1); } +| annotationsDeclaration { $$ = mtDeclarationPiece_createAnnotations ($1); } +| mergeDeclaration { $$ = mtDeclarationPiece_createMerge ($1); } +| transfersDeclaration { $$ = mtDeclarationPiece_createTransfers ($1); } +| preconditionsDeclaration { $$ = mtDeclarationPiece_createPreconditions ($1); } +| postconditionsDeclaration { $$ = mtDeclarationPiece_createPostconditions ($1); } +| loseReferenceDeclaration { $$ = mtDeclarationPiece_createLosers ($1); } + +contextDeclaration +: MT_CONTEXT contextSelection { $$ = $2; } + /* ??? should it be a list? */ + +optContextSelection +: /* empty */ { $$ = mtContextNode_createAny (); } +| contextSelection + +contextSelection +: MT_PARAMETER optType { $$ = mtContextNode_createParameter ($2); } +| MT_REFERENCE optType { $$ = mtContextNode_createReference ($2); } +| MT_CLAUSE optType { $$ = mtContextNode_createClause ($2); } + +/* +** Wish I could share the C grammar here...cut-and-paste instead. +*/ + +optType +: /* empty */ { $$ = ctype_unknown; } +| typeExpression { DPRINTF (("Type: %s", qtype_unparse ($1))); $$ = qtype_getType ($1); } + +typeExpression +: completeType +| completeType abstractDecl { $$ = qtype_newBase ($1, $2); } + +completeType +: completeTypeAux { $$ = $1; } +| completeType MT_BAR typeExpression + { $$ = qtype_mergeAlt ($1, $3); } + +completeTypeAux +: typeSpecifier optCompleteType { $$ = qtype_combine ($2, $1); } + +optCompleteType +: /* empty */ { $$ = qtype_unknown (); } +| completeType { $$ = $1; } + + +abstractDecl + : pointers { $$ = ctype_adjustPointers ($1, ctype_unknown); } + | abstractDeclBase + | pointers abstractDeclBase { $$ = ctype_adjustPointers ($1, $2); } + +pointers + : MT_STAR { $$ = 1; } + | MT_STAR innerModsList { $$ = 1; } + | MT_STAR pointers { $$ = 1 + $2; } + | MT_STAR innerModsList pointers { $$ = 1 + $3; } + +innerMods + : MT_CONST { /* ignored for now */; } + | MT_VOLATILE { ; } + +innerModsList + : innerMods { ; } + | innerModsList innerMods { ; } + +abstractDeclBase + : MT_LPAREN abstractDecl MT_RPAREN { $$ = ctype_expectFunction ($2); } + | MT_LBRACKET MT_RBRACKET { $$ = ctype_makeArray (ctype_unknown); } + | abstractDeclBase MT_LBRACKET MT_RBRACKET { $$ = ctype_makeArray ($1); } +/* + | abstractDeclBase MT_LBRACKET constantExpr MT_RBRACKET + { $$ = ctype_makeFixedArray ($1, exprNode_getLongValue ($3)); } +*/ + +typeSpecifier +: MT_CHAR { $$ = ctype_char; } +| MT_INT { $$ = ctype_int; } +| MT_FLOAT { $$ = ctype_float; } +| MT_DOUBLE { $$ = ctype_double; } +| MT_VOID { $$ = ctype_void; } +| MT_ANYTYPE { $$ = ctype_unknown; } +| MT_INTEGRALTYPE { $$ = ctype_anyintegral; } +| MT_UNSIGNEDINTEGRALTYPE { $$ = ctype_unsignedintegral; } +| MT_SIGNEDINTEGRALTYPE { $$ = ctype_signedintegral; } +| typeName + /* | suSpc + | enumSpc + | typeModifier NotType { $$ = ctype_fromQual ($1); } */ + +typeName + : MT_IDENT { $$ = mtscanner_lookupType ($1); } + +valuesDeclaration +: MT_ONEOF valuesList { $$ = mtValuesNode_create ($2); } + +valuesList +: MT_IDENT { $$ = cstringList_single (mttok_getText ($1)); } +| MT_IDENT MT_COMMA valuesList + { $$ = cstringList_prepend ($3, mttok_getText ($1)); } + +defaultNode +: MT_DEFAULT valueChoice { $$ = $2; } + +defaultsDeclaration +: MT_DEFAULTS defaultDeclarationList { $$ = mtDefaultsNode_create ($1, $2); } + +defaultDeclarationList +: contextSelection MT_ARROW valueChoice +{ $$ = mtDefaultsDeclList_single (mtDefaultsDecl_create ($1, $3)); } +| contextSelection MT_ARROW valueChoice defaultDeclarationList +{ $$ = mtDefaultsDeclList_prepend ($4, mtDefaultsDecl_create ($1, $3)); } + +annotationsDeclaration +: MT_ANNOTATIONS annotationsDeclarationList { $$ = mtAnnotationsNode_create ($2); } + +annotationsDeclarationList +: annotationDeclaration { $$ = mtAnnotationList_single ($1); } +| annotationDeclaration annotationsDeclarationList + { $$ = mtAnnotationList_prepend ($2, $1); } + +annotationDeclaration +: MT_IDENT optContextSelection MT_ARROW valueChoice + { $$ = mtAnnotationDecl_create ($1, $2, $4); } + +mergeDeclaration +: MT_MERGE mergeClauses { $$ = mtMergeNode_create ($2); } + +mergeClauses +: mergeClause { $$ = mtMergeClauseList_single ($1); } +| mergeClause mergeClauses { $$ = mtMergeClauseList_prepend ($2, $1); } + +mergeClause +: mergeItem MT_PLUS mergeItem MT_ARROW transferAction + { $$ = mtMergeClause_create ($1, $3, $5); } + +mergeItem +: valueChoice { $$ = mtMergeItem_createValue ($1); } +| MT_STAR { $$ = mtMergeItem_createStar ($1); } + +preconditionsDeclaration +: MT_PRECONDITIONS transferClauses { $$ = $2; } + +postconditionsDeclaration +: MT_POSTCONDITIONS transferClauses { $$ = $2; } + +transfersDeclaration +: MT_TRANSFERS transferClauses { $$ = $2; } + +loseReferenceDeclaration +: MT_LOSEREFERENCE lostClauses { $$ = $2; } + +lostClauses +: lostClause { $$ = mtLoseReferenceList_single ($1); } +| lostClause lostClauses { $$ = mtLoseReferenceList_prepend ($2, $1); } + +lostClause +: valueChoice MT_ARROW errorAction { $$ = mtLoseReference_create ($1, $3); } + +transferClauses +: transferClause { $$ = mtTransferClauseList_single ($1); } +| transferClause transferClauses { $$ = mtTransferClauseList_prepend ($2, $1); } + +transferClause +: valueChoice MT_AS valueChoice MT_ARROW transferAction + { $$ = mtTransferClause_create ($1, $3, $5); } + +transferAction +: valueChoice { $$ = mtTransferAction_createValue ($1); } +| errorAction { $$ = $1; } + +errorAction +: MT_ERROR { $$ = mtTransferAction_createError ($1); } +| MT_ERROR MT_STRINGLIT { $$ = mtTransferAction_createErrorMessage ($2); } + +valueChoice + : MT_IDENT { $$ = $1; } + +%% + +# include "bison.reset" + +extern char *yytext; + +static void mterror (char *s) +{ + llfatalbug + (cstring_makeLiteral + ("There has been a problem in the .mts parser.")); +} + +static void yyprint (FILE *file, int type, YYSTYPE value) +{ + cstring tname = mttok_unparse (value.tok); + fprintf (file, " (%s)", cstring_toCharsSafe (tname)); + cstring_free (tname); +} + + + + diff --git a/src/mtreader.c b/src/mtreader.c new file mode 100644 index 0000000..c4e53a7 --- /dev/null +++ b/src/mtreader.c @@ -0,0 +1,101 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtreader.c +** +** Controls reading of .mts files. +*/ + +# include "lclintMacros.nf" +# include "llbasic.h" +# include "mtgrammar.h" +# include "mtscanner.h" + +void mtreader_readFile (cstring infile) +{ + inputStream sourceFile; + fileId fid; + cstring fname; + + sourceFile = inputStream_create (infile, cstring_undefined, FALSE); + + if (!inputStream_getPath (context_getLarchPath (), sourceFile)) + { + lldiagmsg + (message ("Metastate definition: can't find file %s", + inputStream_fileName (sourceFile))); + inputStream_free (sourceFile); + return; + } + + if (!inputStream_open (sourceFile)) + { + lldiagmsg + (message ("Cannot open metastate file: %s", + inputStream_fileName (sourceFile))); + inputStream_free (sourceFile); + + return; + } + + + fname = inputStream_fileName (sourceFile); + + if (fileTable_exists (context_fileTable (), fname)) + { + fid = fileTable_lookup (context_fileTable (), fname); + } + else + { + fid = fileTable_addMetastateFile (context_fileTable (), fname); + } + + context_setFileId (fid); + + if (context_getFlag (FLG_SHOWSCAN)) + { + lldiagmsg (message ("< reading metastate %s >", fname)); + } + + mtscanner_reset (sourceFile); + context_enterMTfile (); + (void) mtparse (); + context_exitMTfile (); + + inputStream_free (sourceFile); +} + +void mtreader_processDeclaration (mtDeclarationNode decl) +{ + DPRINTF (("Processing state %s", mtDeclarationNode_unparse (decl))); + mtDeclarationNode_process (decl, FALSE); + mtDeclarationNode_free (decl); +} + +void mtreader_processGlobalDeclaration (mtDeclarationNode decl) +{ + DPRINTF (("Processing state %s", mtDeclarationNode_unparse (decl))); + mtDeclarationNode_process (decl, TRUE); + mtDeclarationNode_free (decl); +} diff --git a/src/mtscanner.c b/src/mtscanner.c new file mode 100644 index 0000000..9f1ead7 --- /dev/null +++ b/src/mtscanner.c @@ -0,0 +1,312 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mtscanner.c +** +** Because flex is so lame, we can't use two flex scanners at once. Instead, +** we have to write a manual scanner. Should look into some real parser +** generator tools one day... +*/ + +# include "lclintMacros.nf" +# include "llbasic.h" +# include "mtgrammar.h" +# include "mtscanner.h" + +static inputStream scanFile; /* file to scan */ +static mttok mtscanner_getNextToken (void); +static /*@only@*/ cstringTable tokenTable = cstringTable_undefined; +static bool isInitialized = FALSE; + +/*@constant int MT_TOKENTABLESIZE@*/ +# define MT_TOKENTABLESIZE 64 + +static void mtscanner_initMod (void) +{ + llassert (cstringTable_isUndefined (tokenTable)); + tokenTable = cstringTable_create (MT_TOKENTABLESIZE); + + cstringTable_insert (tokenTable, cstring_makeLiteral ("state"), MT_STATE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("global"), MT_GLOBAL); + cstringTable_insert (tokenTable, cstring_makeLiteral ("context"), MT_CONTEXT); + cstringTable_insert (tokenTable, cstring_makeLiteral ("oneof"), MT_ONEOF); + cstringTable_insert (tokenTable, cstring_makeLiteral ("defaults"), MT_DEFAULTS); + cstringTable_insert (tokenTable, cstring_makeLiteral ("default"), MT_DEFAULT); + cstringTable_insert (tokenTable, cstring_makeLiteral ("parameter"), MT_PARAMETER); + cstringTable_insert (tokenTable, cstring_makeLiteral ("reference"), MT_REFERENCE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("clause"), MT_CLAUSE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("annotations"), MT_ANNOTATIONS); + cstringTable_insert (tokenTable, cstring_makeLiteral ("merge"), MT_MERGE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("transfers"), MT_TRANSFERS); + cstringTable_insert (tokenTable, cstring_makeLiteral ("preconditions"), MT_PRECONDITIONS); + cstringTable_insert (tokenTable, cstring_makeLiteral ("postconditions"), MT_POSTCONDITIONS); + cstringTable_insert (tokenTable, cstring_makeLiteral ("losereference"), MT_LOSEREFERENCE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("error"), MT_ERROR); + cstringTable_insert (tokenTable, cstring_makeLiteral ("end"), MT_END); + cstringTable_insert (tokenTable, cstring_makeLiteral ("as"), MT_AS); + + /* + ** C Types + */ + + cstringTable_insert (tokenTable, cstring_makeLiteral ("char"), MT_CHAR); + cstringTable_insert (tokenTable, cstring_makeLiteral ("int"), MT_INT); + cstringTable_insert (tokenTable, cstring_makeLiteral ("float"), MT_FLOAT); + cstringTable_insert (tokenTable, cstring_makeLiteral ("double"), MT_DOUBLE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("void"), MT_VOID); + cstringTable_insert (tokenTable, cstring_makeLiteral ("anytype"), MT_ANYTYPE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("integraltype"), MT_INTEGRALTYPE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("unsignedintegraltype"), MT_UNSIGNEDINTEGRALTYPE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("signedintegraltype"), MT_SIGNEDINTEGRALTYPE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("const"), MT_CONST); + cstringTable_insert (tokenTable, cstring_makeLiteral ("volatile"), MT_VOLATILE); + + /* + ** Punctuation + */ + + cstringTable_insert (tokenTable, cstring_makeLiteral ("==>"), MT_ARROW); + cstringTable_insert (tokenTable, cstring_makeLiteral ("+"), MT_PLUS); + cstringTable_insert (tokenTable, cstring_makeLiteral ("*"), MT_STAR); + cstringTable_insert (tokenTable, cstring_makeLiteral ("{"), MT_LBRACE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("}"), MT_RBRACE); + cstringTable_insert (tokenTable, cstring_makeLiteral ("("), MT_LPAREN); + cstringTable_insert (tokenTable, cstring_makeLiteral (")"), MT_RPAREN); + cstringTable_insert (tokenTable, cstring_makeLiteral ("["), MT_LBRACKET); + cstringTable_insert (tokenTable, cstring_makeLiteral ("]"), MT_RBRACKET); + cstringTable_insert (tokenTable, cstring_makeLiteral (","), MT_COMMA); + cstringTable_insert (tokenTable, cstring_makeLiteral ("|"), MT_BAR); + + isInitialized = TRUE; +} + +void mtscanner_reset (inputStream sourceFile) +{ + if (!isInitialized) + { + mtscanner_initMod (); + } + + scanFile = sourceFile; +} + +int mtlex (YYSTYPE *mtlval) +{ + llassert (isInitialized); + + /* This is important! Bison expects this */ + + /*@ignore@*/ + mtlval->tok = mtscanner_getNextToken (); + DPRINTF (("Return token: %s", mttok_unparse (mtlval->tok))); + llassert (fileloc_isDefined (mttok_getLoc (mtlval->tok))); + return (mttok_getTok (mtlval->tok)); + /*@end@*/ +} + +static void skipComments (void) +{ + int tchar; + bool gotone = FALSE; + tchar = inputStream_peekChar (scanFile); + + if (tchar == (int) '/' && inputStream_peekNChar (scanFile, 1) == (int) '*') + { + check ((int) '/' == inputStream_nextChar (scanFile)); + check ((int) '*' == inputStream_nextChar (scanFile)); + + while ((tchar = inputStream_nextChar (scanFile)) != EOF) + { + if (tchar == (int) '*' && inputStream_peekChar (scanFile) == (int) '/') + { + tchar = inputStream_nextChar (scanFile); + break; + } + } + + if (tchar == EOF) + { + llfatalerror + (cstring_makeLiteral ("Reached end of metastate file inside comment.")); + BADBRANCH; + } + else + { + check ((int) '/' == tchar); + gotone = TRUE; + } + } + + if (isspace (tchar)) + { + while (isspace (inputStream_peekChar (scanFile))) + { + tchar = inputStream_nextChar (scanFile); + } + + gotone = TRUE; + } + + if (gotone) + { + /* If there was a comment or whitespace, need to skip again... */ + skipComments (); + } +} + +static mttok mtscanner_getNextToken () +{ + int tchar; + int mtcode; + cstring tok; + mttok res; + fileloc loc; + + skipComments (); + loc = fileloc_copy (g_currentloc); + tchar = inputStream_nextChar (scanFile); + + if (tchar == EOF) + { + return mttok_create (EOF, cstring_undefined, loc); + } + + tok = cstring_newEmpty (); + + DPRINTF (("tchar: %c", (char) tchar)); + + if (tchar == (int) '\"') + { + bool escaped = FALSE; + + /* String literal */ + while ((tchar = inputStream_peekChar (scanFile)) != EOF) { + if (escaped) { + escaped = FALSE; + } else if (tchar == (int) '\\') { + escaped = TRUE; + } else if (tchar == (int) '\"') { + break; + } else { + ; + } + + tok = cstring_appendChar (tok, (char) tchar); + check (tchar == inputStream_nextChar (scanFile)); + } + + if (tchar == EOF) + { + llfatalerror + (cstring_makeLiteral ("Reached end of metastate file inside string literal.")); + } + else + { + check ((int) '\"' == inputStream_nextChar (scanFile)); + return mttok_create (MT_STRINGLIT, tok, loc); + } + } + + tok = cstring_appendChar (tok, (char) tchar); + + DPRINTF (("tok: %s", tok)); + + if (isalpha (tchar)) + { + while ((tchar = inputStream_peekChar (scanFile)) != EOF) { + if (!isalnum (tchar) && (tchar != (int) '_') && (tchar != (int) '$')) { + break; + } + + tok = cstring_appendChar (tok, (char) tchar); + check (tchar == inputStream_nextChar (scanFile)); + } + + mtcode = cstringTable_lookup (tokenTable, tok); + + if (mtcode == NOT_FOUND) { + DPRINTF (("Returning identifier: %s", tok)); + return mttok_create (MT_IDENT, tok, loc); + } + } + else + { + /* Read until next space */ + DPRINTF (("Here we are: %s", tok)); + + while ((tchar = inputStream_peekChar (scanFile)) != EOF) { + if (isspace (tchar) || isalnum (tchar)) { + break; + } + + tok = cstring_appendChar (tok, (char) tchar); + DPRINTF (("Here we are: %s", tok)); + check (tchar == inputStream_nextChar (scanFile)); + } + + DPRINTF (("Here we are: [%s]", tok)); + mtcode = cstringTable_lookup (tokenTable, tok); + + if (mtcode == NOT_FOUND) { + mtcode = MT_BADTOK; + } + } + + DPRINTF (("Read %s / %d", tok, mtcode)); + cstring_free (tok); + + res = mttok_create (mtcode, cstring_undefined, loc); + DPRINTF (("Return token: %s", mttok_unparse (res))); + return res; +} + +ctype mtscanner_lookupType (mttok tok) +{ + cstring tname; + uentry ue; + + llassert (mttok_isIdentifier (tok)); + tname = mttok_observeText (tok); + + DPRINTF (("Lookup type: %s", tname)); + + ue = usymtab_lookupSafe (tname); + + if (uentry_isValid (ue) && uentry_isDatatype (ue)) + { + DPRINTF (("Found it: %s / %s", uentry_unparse (ue), + ctype_unparse (uentry_getAbstractType (ue)))); + + return uentry_getAbstractType (ue); + } + else + { + ctype ct; + ue = uentry_makeDatatype (tname, ctype_unknown, MAYBE, MAYBE, mttok_stealLoc (tok)); + DPRINTF (("Making mts entry: %s", uentry_unparse (ue))); + ct = usymtab_supForwardTypeEntry (ue); + DPRINTF (("Type: %s", ctype_unparse (ct))); + return ct; + } +} diff --git a/src/mttok.c b/src/mttok.c new file mode 100644 index 0000000..69e6a99 --- /dev/null +++ b/src/mttok.c @@ -0,0 +1,122 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** mttok.c - based on lltok.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +# include "mtgrammar.h" + +cstring +mttok_unparse (mttok tok) +{ + char *lit; + + switch (tok->tok) + { + case EOF: lit = ""; break; + case MT_STATE: lit = "state"; break; + case MT_GLOBAL: lit = "global"; break; + case MT_CONTEXT: lit = "context"; break; + case MT_ONEOF: lit = "oneof"; break; + case MT_AS: lit = "as"; break; + case MT_END: lit = "end"; break; + case MT_DEFAULTS: lit = "defaults"; break; + case MT_DEFAULT: lit = "default"; break; + case MT_REFERENCE: lit = "reference"; break; + case MT_PARAMETER: lit = "parameter"; break; + case MT_CLAUSE: lit = "clause"; break; + case MT_ANNOTATIONS: lit = "annotations"; break; + case MT_ARROW: lit = "==>"; break; + case MT_MERGE: lit = "merge"; break; + case MT_TRANSFERS: lit = "transfers"; break; + case MT_PRECONDITIONS: lit = "preconditions"; break; + case MT_POSTCONDITIONS: lit = "postconditions"; break; + case MT_ERROR: lit = "error"; break; + case MT_PLUS: lit = "+"; break; + case MT_STAR: lit = "*"; break; + case MT_LPAREN: lit = "("; break; + case MT_RPAREN: lit = ")"; break; + case MT_LBRACE: lit = "{"; break; + case MT_RBRACE: lit = "}"; break; + case MT_LBRACKET: lit = "["; break; + case MT_RBRACKET: lit = "]"; break; + case MT_COMMA: lit =","; break; + case MT_BAR: lit = "|"; break; + case MT_CHAR: lit = "char"; break; + case MT_INT: lit = "int"; break; + case MT_FLOAT: lit = "float"; break; + case MT_DOUBLE: lit = "double"; break; + case MT_VOID: lit = "void"; break; + case MT_ANYTYPE: lit = "anytype"; break; + case MT_INTEGRALTYPE: lit = "integraltype"; break; + case MT_UNSIGNEDINTEGRALTYPE: lit = "unsignedintegraltype"; break; + case MT_SIGNEDINTEGRALTYPE: lit = "signedintegraltype"; break; + case MT_CONST: lit = "const"; break; + case MT_VOLATILE: lit = "volatile"; break; + + case MT_IDENT: return (message ("identifier: <%s>", tok->text)); + case MT_STRINGLIT: return (message ("literal: <%s>", tok->text)); + case MT_BADTOK: lit = ""; break; + default: + DPRINTF (("Bad token: [%d]", tok->tok)); + BADBRANCH; + /* BADDEFAULT; */ + } + + return cstring_makeLiteral (lit); +} + +mttok +mttok_create (int tok, cstring text, fileloc loc) +{ + mttok l = (mttok) dmalloc (sizeof (*l)); + + l->tok = tok; + l->text = text; + l->loc = loc; + + return (l); +} + +fileloc mttok_stealLoc (mttok t) +{ + fileloc res = t->loc; + t->loc = fileloc_undefined; + return res; +} + +void mttok_free (mttok t) +{ + fileloc_free (t->loc); + cstring_free (t->text); + sfree (t); +} + +bool mttok_isIdentifier (mttok t) +{ + return ((t)->tok == MT_IDENT); +} diff --git a/src/multiVal.c b/src/multiVal.c index cf054be..426b050 100644 --- a/src/multiVal.c +++ b/src/multiVal.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -230,13 +230,13 @@ bool multiVal_isString (multiVal m) { case 'i': (*s)++; - return multiVal_makeInt (getInt (s)); + return multiVal_makeInt (reader_getInt (s)); case 'c': (*s)++; - return multiVal_makeChar ((char) getInt (s)); + return multiVal_makeChar ((char) reader_getInt (s)); case 'd': (*s)++; - return multiVal_makeDouble (getDouble (s)); + return multiVal_makeDouble (reader_getDouble (s)); case 's': { cstring st = cstring_undefined; diff --git a/src/nameChecks.c b/src/nameChecks.c index 0d1318e..486cd8b 100644 --- a/src/nameChecks.c +++ b/src/nameChecks.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -131,7 +131,6 @@ static bool matchPrefix (cstring name, cstring prefix) { n++; - while (n <= namelen) { nc = (int) cstring_getChar (name, n); @@ -140,6 +139,7 @@ static bool matchPrefix (cstring name, cstring prefix) { return FALSE; } + n++; } @@ -149,7 +149,8 @@ static bool matchPrefix (cstring name, cstring prefix) { if (n > namelen) { - if ((cstring_length (prefix) >= n + 1) + if (namelen > 1 + && (cstring_length (prefix) >= n + 1) && cstring_getChar (prefix, n + 1) == '*') { return TRUE; @@ -238,7 +239,7 @@ namespaceName (flagcode flag) /*@*/ } } -void +void checkPrefix (uentry ue) { cstring name = cstring_undefined; @@ -264,7 +265,7 @@ checkPrefix (uentry ue) { flag = FLG_FILESTATICPREFIX; } - else if (uentry_isGlobal (ue)) + else if (uentry_isGlobalVariable (ue)) { flag = FLG_GLOBPREFIX; } @@ -335,8 +336,7 @@ checkPrefix (uentry ue) if (context_getFlag (flag)) { - name = uentry_getName (ue); - + name = uentry_observeRealName (ue); if (!matchPrefix (name, context_getString (flag))) { @@ -413,7 +413,7 @@ checkPrefix (uentry ue) { if (cstring_isUndefined (name)) { - name = uentry_getName (ue); + name = uentry_observeRealName (ue); } if (matchPrefix (name, context_getString (rcode))) @@ -439,8 +439,6 @@ checkPrefix (uentry ue) } } } end_excludeFlagCodes ; - - cstring_free (name); } static void @@ -468,7 +466,7 @@ checkNationalName (uentry ue) } else if (uentry_isVariable (ue)) { - if (uentry_isGlobal (ue) && context_getFlag (FLG_GLOBPREFIX)) + if (uentry_isGlobalVariable (ue) && context_getFlag (FLG_GLOBPREFIX)) { /* prefix checks supercede national naming checks */ return; @@ -480,7 +478,7 @@ checkNationalName (uentry ue) } else if (uentry_isConstant (ue)) { - if (uentry_isGlobal (ue) && context_getFlag (FLG_CONSTPREFIX)) + if (uentry_isGlobalVariable (ue) && context_getFlag (FLG_CONSTPREFIX)) { /* prefix checks supercede national naming checks */ return; @@ -1095,7 +1093,7 @@ static bool checkSlovakName (uentry ue, flagcode slovakflag, bool report) } void -checkGlobalName (uentry ue) +checkExternalName (uentry ue) { if (!uentry_isStatic (ue) && uentry_hasName (ue)) { @@ -1110,7 +1108,23 @@ checkGlobalName (uentry ue) void checkLocalName (/*@unused@*/ uentry ue) { - ; + /* + ** No local checks (yet) + */ + + return; +} + +void +checkFileScopeName (/*@unused@*/ uentry ue) +{ + /* + ** No file scope checks (yet) + */ + + /*@i423 add a file scope naming convention policy? */ + + return; } /* @@ -1126,8 +1140,11 @@ checkLocalName (/*@unused@*/ uentry ue) /*@constant int NCPPNAMES@*/ # define NCPPNAMES 39 -bool checkCppName (cstring name, fileloc loc) +void +checkCppName (uentry ue) { + cstring name = uentry_observeRealName (ue); + static ob_mstring cppNames[NCPPNAMES] = { "and", "and_eq", "asm", @@ -1146,20 +1163,22 @@ bool checkCppName (cstring name, fileloc loc) if (cstring_isDefined (cstring_bsearch (name, &cppNames[0], NCPPNAMES))) { - return (optgenerror - (FLG_CPPNAMES, - message ("Name %s is a keyword or reserved word in C++", - name), - loc)); + if (optgenerror + (FLG_CPPNAMES, + message ("Name %s is a keyword or reserved word in C++", + name), + uentry_whereLast (ue))) + { + uentry_setHasNameError (ue); + } } - - return FALSE; } -bool -checkAnsiName (cstring name, fileloc loc) +void +checkAnsiName (uentry ue) { bool hasError = FALSE; + cstring name = uentry_observeRealName (ue); int length = cstring_length (name); char fchar = (length >= 1) ? cstring_firstChar (name) : '\0'; char schar = (length >= 2) ? cstring_secondChar (name) : '\0'; @@ -1178,12 +1197,11 @@ checkAnsiName (cstring name, fileloc loc) # include "reservedNames.nf" } ; - if (fileloc_isSystemFile (loc) || fileloc_isBuiltin (loc)) - { - return FALSE; /* no errors for system files */ - } - # if 0 + /* + ** This code is for checking reservedNames.nf + */ + { int i = 0; char *lastname = NULL; @@ -1201,26 +1219,56 @@ checkAnsiName (cstring name, fileloc loc) nreservedNames = i - 1; } # endif + + if (fileloc_isSystemFile (uentry_whereLast (ue)) || fileloc_isBuiltin (uentry_whereLast (ue))) + { + return; /* no errors for system files */ + } if (cstring_isDefined (cstring_bsearch (name, &reservedNames[0], NRESERVEDNAMES))) { - return (optgenerror - (FLG_ANSIRESERVED, - message ("Name %s is reserved for the standard library", - name), - loc)); + hasError |= optgenerror + (FLG_ANSIRESERVED, + message ("Name %s is reserved for the standard library", + name), + uentry_whereLast (ue)); } - if (fchar == '_') + if (uentry_isFileStatic (ue) || uentry_isVisibleExternally (ue) || uentry_isAnyTag (ue) + || context_getFlag (FLG_ANSIRESERVEDLOCAL)) { - hasError = optgenerror - (FLG_ANSIRESERVED, - message - ("Name %s is in the implementation name space (any identifier " - "beginning with underscore)", - name), - loc); + if (fchar == '_') + { + hasError |= optgenerror + (FLG_ANSIRESERVED, + message + ("Name %s is in the implementation name space (any identifier " + "beginning with underscore)", + name), + uentry_whereLast (ue)); + } + } + else + { + /* + ** ISO 7.1.3: + ** - All identifiers that begin with an underscore and either an uppercase + ** letter or another underscore are always reserved for any use. + */ + + if (fchar == '_' + && (schar == '_' || isupper ((int) schar))) + { + hasError |= optgenerror + (FLG_ANSIRESERVED, + message + ("Name %s is in the implementation name space (any identifier " + "beginning with underscore and either an uppercase letter or " + "another underscore is always reserved for any use)", + name), + uentry_whereLast (ue)); + } } /* @@ -1228,181 +1276,215 @@ checkAnsiName (cstring name, fileloc loc) ** ** Macros that begin with E and a digit or E and an uppercase letter ... */ - - else if (fchar == 'E' && (isdigit ((int) schar) - || isupper ((int) schar))) + + if (fchar == 'E' && (isdigit ((int) schar) + || isupper ((int) schar))) { - hasError = optgenerror + hasError |= optgenerror (FLG_ANSIRESERVED, message ("Name %s is reserved for future ANSI library extensions. " "Macros beginning with E and a digit or uppercase letter " "may be added to . (See ANSI, Section 4.13.1)", name), - loc); + uentry_whereLast (ue)); } - - /* - ** 4.13.2 Character Handling - ** - ** Function names that begin with either "is" or "to" and a lowercase letter ... - */ - else if (((fchar == 'i' && schar == 's') - || (fchar == 't' && schar == 'o')) - && (islower ((int) tchar))) - { - hasError = optgenerror - (FLG_ANSIRESERVED, - message - ("Name %s is reserved for future ANSI library extensions. " - "Functions beginning with \"is\" or \"to\" and a lowercase " - "letter may be added to . (See ANSI, Section 4.13.2)", - name), - loc); - } - /* ** 4.13.3 Localization ** ** Macros that begin with LC_ and an uppercase letter ... */ - - else if (length >= 4 - && ((fchar == 'L') - && (schar == 'C') - && (tchar == '_')) - && (isupper ((int) rchar))) + + if (length >= 4 + && ((fchar == 'L') + && (schar == 'C') + && (tchar == '_')) + && (isupper ((int) rchar))) { - hasError = optgenerror + hasError |= optgenerror (FLG_ANSIRESERVED, message ("Name %s is reserved for future ANSI library extensions. " "Macros beginning with \"LC_\" and an uppercase letter may " "be added to . (See ANSI, Section 4.13.3)", name), - loc); + uentry_whereLast (ue)); } - - /* - ** 4.13.4 Mathematics - ** - ** The names of all existing functions declared in the header, - ** suffixed with f or l... - */ - else if ((cstring_lastChar (name) == 'f' || cstring_lastChar (name) == 'l') - && - (((length == 4) - && ((cstring_equalPrefix (name, "cos") || - cstring_equalPrefix (name, "sin") || - cstring_equalPrefix (name, "tan") || - cstring_equalPrefix (name, "exp") || - cstring_equalPrefix (name, "log") || - cstring_equalPrefix (name, "pow")))) - || ((length == 5) - && ((cstring_equalPrefix (name, "acos") || - cstring_equalPrefix (name, "asin") || - cstring_equalPrefix (name, "atan") || - cstring_equalPrefix (name, "cosh") || - cstring_equalPrefix (name, "sinh") || - cstring_equalPrefix (name, "sqrt") || - cstring_equalPrefix (name, "ceil") || - cstring_equalPrefix (name, "fabs") || - cstring_equalPrefix (name, "fmod") || - cstring_equalPrefix (name, "tanh") || - cstring_equalPrefix (name, "modf")))) - || ((length == 6) - && ((cstring_equalPrefix (name, "atan2") || - cstring_equalPrefix (name, "floor") || - cstring_equalPrefix (name, "frexp") || - cstring_equalPrefix (name, "ldexp") || - cstring_equalPrefix (name, "log10")))))) - { - hasError = optgenerror - (FLG_ANSIRESERVED, - message - ("Name %s is reserved for future ANSI library extensions. " - "The names of all existing functions in suffixed " - "with 'f' or 'l' may be added to . (See ANSI, Section 4.13.4)", - name), - loc); - } - /* ** 4.13.5 Signal Handling ** ** Macros that begin with either SIG or SIG_ and an uppercase letter or... */ - - else if (fchar == 'S' && schar == 'I' && tchar == 'G' + + if (fchar == 'S' && schar == 'I' && tchar == 'G' && ((rchar == '_' && ((length >= 5 && isupper ((int) cstring_getChar (name, 5))))) || (isupper ((int) rchar)))) { - hasError = optgenerror + hasError |= optgenerror (FLG_ANSIRESERVED, message ("Name %s is reserved for future ANSI library extensions. " "Macros that begin with SIG and an uppercase letter or SIG_ " "and an uppercase letter may be added to " - ". (See ANSI, Section 4.13.5)", + ". (See ISO99 7.14 or ANSI 4.13.5)", name), - loc); + uentry_whereLast (ue)); } - - /* - ** 4.13.6 Input/Output - ** - ** (nothing to check) - */ - /* - ** 4.13.7 General Utilities - ** - ** Functions names that begin with str and a lowercase letter may be added to . - */ + DPRINTF (("Here...")); - else if (fchar == 's' && schar == 't' && tchar == 'r' - && (islower ((int) rchar))) + if ((uentry_isVisibleExternally (ue) && !uentry_isAnyTag (ue)) + || context_getFlag (FLG_ANSIRESERVEDLOCAL)) { - hasError = optgenerror - (FLG_ANSIRESERVED, - message - ("Name %s is reserved for future ANSI library extensions. " - "Functions that begin with \"str\" and a lowercase letter " - "may be added to or . (See ANSI, Section 4.13.7)", - name), - loc); - } - - /* - ** 4.13.8 String Handling - ** - ** Function names that begin with str, mem, or wcs and a lowercase letter ... - ** - ** (Note: already checked "str" above.) - */ + flagcode flg; - else if (((fchar == 'm' && schar == 'e' && tchar == 'm') - || (fchar == 'w' && schar == 'c' && tchar == 's')) - && (islower ((int) rchar))) - { - hasError = optgenerror - (FLG_ANSIRESERVED, - message - ("Name %s is reserved for future ANSI library extensions. " - "Functions that begin with \"mem\" or \"wcs\" and a " - "lowercase letter letter may be added to . (See ANSI, Section 4.13.8)", - name), - loc); + DPRINTF (("Okay...: %s", uentry_unparse (ue))); + + if (uentry_isVisibleExternally (ue) && !uentry_isAnyTag (ue)) + { + flg = FLG_ANSIRESERVED; + } + else + { + flg = FLG_ANSIRESERVEDLOCAL; + } + + /* + ** These restrictions only apply to identifiers with global linkage. + */ + + /* + ** 4.13.2 Character Handling + ** + ** Function names that begin with either "is" or "to" and a lowercase letter ... + */ + + if (((fchar == 'i' && schar == 's') + || (fchar == 't' && schar == 'o')) + && (islower ((int) tchar))) + { + hasError |= optgenerror + (flg, + message + ("Name %s is reserved for future ANSI library extensions. " + "Functions beginning with \"is\" or \"to\" and a lowercase " + "letter may be added to . (See ANSI, Section 4.13.2)", + name), + uentry_whereLast (ue)); + + DPRINTF (("Externally visible: %s / %s", + uentry_unparseFull (ue), + bool_unparse (uentry_isVisibleExternally (ue)))); + } + + + /* + ** 4.13.4 Mathematics + ** + ** The names of all existing functions declared in the header, + ** suffixed with f or l... + */ + + DPRINTF (("Check name: %s", name)); + + if ((cstring_lastChar (name) == 'f' || cstring_lastChar (name) == 'l') + && + (((length == 4) + && ((cstring_equalPrefix (name, "cos") || + cstring_equalPrefix (name, "sin") || + cstring_equalPrefix (name, "tan") || + cstring_equalPrefix (name, "exp") || + cstring_equalPrefix (name, "log") || + cstring_equalPrefix (name, "pow")))) + || ((length == 5) + && ((cstring_equalPrefix (name, "acos") || + cstring_equalPrefix (name, "asin") || + cstring_equalPrefix (name, "atan") || + cstring_equalPrefix (name, "cosh") || + cstring_equalPrefix (name, "sinh") || + cstring_equalPrefix (name, "sqrt") || + cstring_equalPrefix (name, "ceil") || + cstring_equalPrefix (name, "fabs") || + cstring_equalPrefix (name, "fmod") || + cstring_equalPrefix (name, "tanh") || + cstring_equalPrefix (name, "modf")))) + || ((length == 6) + && ((cstring_equalPrefix (name, "atan2") || + cstring_equalPrefix (name, "floor") || + cstring_equalPrefix (name, "frexp") || + cstring_equalPrefix (name, "ldexp") || + cstring_equalPrefix (name, "log10")))))) + { + hasError |= optgenerror + (flg, + message + ("Name %s is reserved for future ANSI library extensions. " + "The names of all existing functions in suffixed " + "with 'f' or 'l' may be added to . (See ANSI, Section 4.13.4)", + name), + uentry_whereLast (ue)); + } + + /* + ** 4.13.6 Input/Output + ** + ** (nothing to check) + */ + + /* + ** 4.13.7 General Utilities + ** + ** Functions names that begin with str and a lowercase letter may be added to . + */ + + if (fchar == 's' && schar == 't' && tchar == 'r' + && (islower ((int) rchar))) + { + hasError |= optgenerror + (flg, + message + ("Name %s is reserved for future ANSI library extensions. " + "Functions that begin with \"str\" and a lowercase letter " + "may be added to or . (See ANSI, Section 4.13.7)", + name), + uentry_whereLast (ue)); + } + + /* + ** 4.13.8 String Handling + ** + ** Function names that begin with str, mem, or wcs and a lowercase letter ... + ** + ** (Note: already checked "str" above.) + */ + + if (((fchar == 'm' && schar == 'e' && tchar == 'm') + || (fchar == 'w' && schar == 'c' && tchar == 's')) + && (islower ((int) rchar))) + { + hasError |= optgenerror + (flg, + message + ("Name %s is reserved for future ANSI library extensions. " + "Functions that begin with \"mem\" or \"wcs\" and a " + "lowercase letter letter may be added to . (See ANSI, Section 4.13.8)", + name), + uentry_whereLast (ue)); + } } else { - ; + DPRINTF (("Not checked: [%s] %s", bool_unparse (uentry_isVisibleExternally (ue)), + uentry_unparseFull (ue))); } - return hasError; + if (hasError) + { + uentry_setHasNameError (ue); + } } void checkParamNames (uentry ue) @@ -1433,7 +1515,7 @@ void checkParamNames (uentry ue) } else { - cstring pname = uentry_getName (p); + cstring pname = uentry_observeRealName (p); if (!cstring_equalPrefix (pname, cstring_toCharsSafe (fpfx))) { @@ -1450,7 +1532,6 @@ void checkParamNames (uentry ue) } } } - cstring_free (pname); } } } end_uentryList_elements ; diff --git a/src/osd.c b/src/osd.c index 4c06580..8090539 100644 --- a/src/osd.c +++ b/src/osd.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -62,11 +62,13 @@ static bool osd_executableFileExists (char *); static bool nextdir (char **p_current_dir, /*@out@*/ char **p_dir, /*@out@*/ size_t *p_len); -extern char *LSLRootName (char *filespec) +extern cstring LSLRootName (cstring filespec) { + /*@access cstring@*/ char *result, *startName, *tail; size_t nameLength; + llassert (cstring_isDefined (filespec)); tail = strrchr (filespec, CONNECTCHAR); startName = (tail == NULL ? filespec : &tail[1]); tail = strrchr (startName, '.'); @@ -76,11 +78,13 @@ extern char *LSLRootName (char *filespec) strncpy (result, startName, nameLength); result[(int) nameLength] = '\0'; return result; + /*@noaccess cstring@*/ } -extern /*@observer@*/ char * -osd_getEnvironment (char *env, /*@returned@*/ char *def) +extern /*@observer@*/ cstring +osd_getEnvironment (cstring env, /*@returned@*/ cstring def) { + /*@access cstring@*/ char *ret = osd_getEnvironmentVariable (env); if (ret == NULL) @@ -91,6 +95,7 @@ osd_getEnvironment (char *env, /*@returned@*/ char *def) { return ret; } + /*@noaccess cstring@*/ } @@ -128,43 +133,47 @@ osd_getEnvironment (char *env, /*@returned@*/ char *def) **-- */ -extern /*@null@*/ /*@observer@*/ char * - osd_getHomeDir () +extern /*@observer@*/ cstring osd_getHomeDir () { /* Would something different be better for windows? */ - return (osd_getEnvironmentVariable ("HOME")); + return (osd_getEnvironmentVariable (cstring_makeLiteralTemp ("HOME"))); } -filestatus osd_findOnLarchPath (char *file, char **returnPath) +filestatus osd_findOnLarchPath (cstring file, cstring *returnPath) { - return (osd_getPath (cstring_toCharsSafe (context_getLarchPath ()), file, returnPath)); + return (osd_getPath (context_getLarchPath (), file, returnPath)); } extern filestatus -osd_getPath (char *path, char *file, char **returnPath) +osd_getPath (cstring path, cstring file, cstring *returnPath) { char *fullPath; char *dirPtr; size_t dirLen; char aPath[MAXPATHLEN]; filestatus rVal = OSD_FILENOTFOUND; /* assume file not found. */ - + + /*@access cstring@*/ + fullPath = path; - - if (fullPath == NULL || + llassert (cstring_isDefined (file)); + + if (fullPath == NULL + || # if defined(OS2) || defined(MSDOS) || defined(WIN32) - /* under OS/2 and MSDOS the includePath may be empty, if so, search - * the current directory. */ - *fullPath == '\0' || - (*file == CONNECTCHAR || (file[0] != '\0' && file[1] == ':'))) + /* under OS/2 and MSDOS the includePath may be empty, if so, search + * the current directory. */ + *fullPath == '\0' || + (*file == CONNECTCHAR || (file[0] != '\0' && file[1] == ':')) # else - (*file == CONNECTCHAR)) + (*file == CONNECTCHAR) # endif + ) { - /* No path specified. Look for it in the current directory. */ - + /* No path specified. Look for it in the current directory. */ + strcpy (&aPath[0], file); - + if (osd_fileExists (&aPath[0])) { rVal = OSD_FILEFOUND; @@ -174,20 +183,20 @@ osd_getPath (char *path, char *file, char **returnPath) } else { - /* Path specified. Loop through directories in path looking for the */ - /* first occurrence of the file. */ - + /* Path specified. Loop through directories in path looking for the */ + /* first occurrence of the file. */ + while (nextdir (&fullPath, &dirPtr, &dirLen) && rVal == OSD_FILENOTFOUND) { if ((dirLen + strlen (file) + 2) <= MAXPATHLEN) { - /* Cat directory and filename, and see if file exists. */ + /* Cat directory and filename, and see if file exists. */ strncpy (&aPath[0], dirPtr, dirLen); strcpy (&aPath[0] + dirLen, ""); /* Null terminate aPath. */ strcat (&aPath[0], CONNECTSTR); strcat (&aPath[0], file); - + if (osd_fileExists (&aPath[0])) { rVal = OSD_FILEFOUND; @@ -201,27 +210,29 @@ osd_getPath (char *path, char *file, char **returnPath) } } } - + return rVal; + /*@noaccess cstring@*/ } extern filestatus -osd_getExePath (char *path, char *file, char **returnPath) +osd_getExePath (cstring path, cstring file, cstring *returnPath) { char *fullPath; char *dirPtr; size_t dirLen; char aPath[MAXPATHLEN]; filestatus rVal = OSD_FILENOTFOUND; /* assume file not found. */ + /*@access cstring@*/ fullPath = osd_getEnvironmentVariable (path); - + if (fullPath == NULL) { - /* No path specified. Look for it in the current directory. */ - + /* No path specified. Look for it in the current directory. */ + llassert (cstring_isDefined (file)); strcpy (&aPath[0], file); - + if (osd_fileExists (&aPath[0])) { rVal = OSD_FILEFOUND; @@ -239,7 +250,9 @@ osd_getExePath (char *path, char *file, char **returnPath) while (nextdir (&fullPath, &dirPtr, &dirLen) && rVal == OSD_FILENOTFOUND) { - if ((dirLen + strlen (file) + 2) <= MAXPATHLEN) + llassert (cstring_isDefined (file)); + + if ((dirLen + cstring_length (file) + 2) <= MAXPATHLEN) { /* Cat directory and filename, and see if file exists. */ strncpy (&aPath[0], dirPtr, dirLen); @@ -262,26 +275,28 @@ osd_getExePath (char *path, char *file, char **returnPath) } return rVal; + /*@noaccess cstring@*/ } bool -osd_fileExists (char *filespec) +osd_fileExists (cstring filespec) { # ifdef UNIX struct stat buf; - return (stat (filespec, &buf) == 0); + return (stat (cstring_toCharsSafe (filespec), &buf) == 0); # else # if defined (WIN32) || defined (OS2) - FILE *test = fopen (filespec, "r"); + FILE *test = fopen (cstring_toCharsSafe (filespec), "r"); + if (test != NULL) - { - (void) fclose (test); - return TRUE; - } + { + (void) fclose (test); + return TRUE; + } else - { - return FALSE; - } + { + return FALSE; + } # else return FALSE; # endif @@ -389,20 +404,21 @@ nextdir (d_char *current_dir, d_char *dir, size_t *len) return TRUE; } -/*@observer@*/ /*@null@*/ char *osd_getEnvironmentVariable (char *var) +/*@observer@*/ /*@null@*/ cstring osd_getEnvironmentVariable (cstring var) { -# ifdef UNIX - return getenv (var); -# else -# if defined(OS2) || defined(MSDOS) - return getenv (var); -# else -# if defined(WIN32) - return getenv (var); +# if defined(UNIX) || defined(OS) || defined(MSDOS) || defined(WIN32) + char *val = getenv (cstring_toCharsSafe (var)); + + if (val == NULL) + { + return cstring_undefined; + } + else + { + return cstring_makeLiteralTemp (val); + } # else - return NULL; -# endif -# endif + return cstring_undefined; # endif } @@ -415,7 +431,7 @@ extern /*@external@*/ int _flushall (void) /*@modifies fileSystem@*/ ; # ifndef system extern /*@external@*/ int system (const char *) /*@modifies fileSystem@*/ ; # endif -int osd_system (const char *cmd) +int osd_system (cstring cmd) { int res; /* system ("printenv"); */ @@ -423,7 +439,7 @@ int osd_system (const char *cmd) (void) _flushall (); # endif - res = system (cmd); + res = system (cstring_toCharsSafe (cmd)); return res; } # endif @@ -434,16 +450,16 @@ extern /*@external@*/ int unlink (const char *) /*@modifies fileSystem@*/ ; /*@=redecl@*/ # endif -int osd_unlink (const char *fname) +int osd_unlink (cstring fname) { int res; - res = unlink (fname); + res = unlink (cstring_toCharsSafe (fname)); if (res != 0) { llcontbug (message ("Cannot remove temporary file: %s (%s)", - cstring_fromChars (fname), + fname, cstring_fromChars (strerror (errno)))); } @@ -466,14 +482,16 @@ osd_getPid () # if defined (WIN32) || defined (OS2) && defined (__IBMC__) int pid = _getpid (); # else - pid_t pid = getpid (); + pid_t pid = getpid (); # endif return (int) pid; } -cstring osd_fixDefine (char *x) +cstring osd_fixDefine (cstring x) { + /*@access cstring@*/ + llassert (cstring_isDefined (x)); # ifdef UNIX if (strchr (x, '\'') != NULL) { /* @@ -507,12 +525,13 @@ cstring osd_fixDefine (char *x) # endif - return cstring_fromCharsNew (x); + return cstring_copy (x); + /*@noaccess cstring@*/ } -bool osd_fileIsReadable (char *f) +bool osd_fileIsReadable (cstring f) { - FILE *fl = fopen (f, "r"); + FILE *fl = fopen (cstring_toCharsSafe (f), "r"); if (fl != (FILE *) 0) { diff --git a/src/pairNodeList.c b/src/pairNodeList.c index 2ee744b..7510b27 100644 --- a/src/pairNodeList.c +++ b/src/pairNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/paramNodeList.c b/src/paramNodeList.c index 3e7ed07..28133a3 100644 --- a/src/paramNodeList.c +++ b/src/paramNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/programNodeList.c b/src/programNodeList.c index 6357ea9..1e3b17d 100644 --- a/src/programNodeList.c +++ b/src/programNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/qtype.c b/src/qtype.c index 854114b..adfc27b 100644 --- a/src/qtype.c +++ b/src/qtype.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/qual.c b/src/qual.c index 0e52b66..c0d7d8c 100644 --- a/src/qual.c +++ b/src/qual.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -30,88 +30,196 @@ # include "lclintMacros.nf" # include "basic.h" -static bool qual_isValid (int q) +static qual qual_createPlainAux (int i) { - return ((qual)q >= QU_UNKNOWN - && ((qual)q < QU_LAST)); + qual res = (qual) dmalloc (sizeof (*res)); + res->kind = (quenum) i; + res->info = annotationInfo_undefined; + + /*@i23@*/ return res; +} + +extern qual qual_createPlain (quenum q) +{ + static bool isinit = FALSE; + static qual qtable[QU_LAST]; + + if (!isinit) { + int i = (int) QU_UNKNOWN; + + while (i < (int) QU_LAST) { + qtable[i] = qual_createPlainAux (i); + i++; + } + + isinit = TRUE; + } + + llassert (q != QU_USERANNOT && q < QU_LAST); + return qtable[(int) q]; +} + +extern qual qual_createMetaState (annotationInfo info) +{ + qual res; + + res = (qual) dmalloc (sizeof (*res)); + res->kind = QU_USERANNOT; + /*@i423@*/ res->info = info; + + /*@i2583@*/ return res; +} + +static bool quenum_isValid (int q) +{ + return ((quenum) q >= QU_UNKNOWN + && ((quenum) q < QU_LAST)); } qual qual_fromInt (int q) { - llassertprint (qual_isValid (q), ("Invalid qual: %d", q)); - return (qual) q; + llassertprint (quenum_isValid (q), ("Invalid qual: %d", q)); + return (qual_createPlain ((quenum) q)); } cstring qual_unparse (qual q) { - switch (q) + if (q->kind == QU_USERANNOT) { + return (annotationInfo_unparse (q->info)); + } else { + switch (q->kind) + { + case QU_UNKNOWN: return cstring_makeLiteralTemp ("unknown"); + case QU_ABSTRACT: return cstring_makeLiteralTemp ("abstract"); + case QU_CONCRETE: return cstring_makeLiteralTemp ("concrete"); + case QU_MUTABLE: return cstring_makeLiteralTemp ("mutable"); + case QU_IMMUTABLE: return cstring_makeLiteralTemp ("immutable"); + case QU_SHORT: return cstring_makeLiteralTemp ("short"); + case QU_LONG: return cstring_makeLiteralTemp ("long"); + case QU_SIGNED: return cstring_makeLiteralTemp ("signed"); + case QU_UNSIGNED: return cstring_makeLiteralTemp ("unsigned"); + case QU_CONST: return cstring_makeLiteralTemp ("const"); + case QU_VOLATILE: return cstring_makeLiteralTemp ("volatile"); + case QU_INLINE: return cstring_makeLiteralTemp ("inline"); + case QU_EXTERN: return cstring_makeLiteralTemp ("extern"); + case QU_STATIC: return cstring_makeLiteralTemp ("static"); + case QU_AUTO: return cstring_makeLiteralTemp ("auto"); + case QU_REGISTER: return cstring_makeLiteralTemp ("register"); + case QU_OUT: return cstring_makeLiteralTemp ("out"); + case QU_IN: return cstring_makeLiteralTemp ("in"); + case QU_RELDEF: return cstring_makeLiteralTemp ("reldef"); + case QU_ONLY: return cstring_makeLiteralTemp ("only"); + case QU_IMPONLY: return cstring_makeLiteralTemp ("only"); + case QU_PARTIAL: return cstring_makeLiteralTemp ("partial"); + case QU_SPECIAL: return cstring_makeLiteralTemp ("special"); + case QU_KEEP: return cstring_makeLiteralTemp ("keep"); + case QU_KEPT: return cstring_makeLiteralTemp ("kept"); + case QU_YIELD: return cstring_makeLiteralTemp ("yield"); + case QU_TEMP: return cstring_makeLiteralTemp ("temp"); + case QU_SHARED: return cstring_makeLiteralTemp ("shared"); + case QU_UNIQUE: return cstring_makeLiteralTemp ("unique"); + case QU_UNCHECKED: return cstring_makeLiteralTemp ("unchecked"); + case QU_CHECKED: return cstring_makeLiteralTemp ("checked"); + case QU_CHECKMOD: return cstring_makeLiteralTemp ("checkmod"); + case QU_CHECKEDSTRICT: return cstring_makeLiteralTemp ("checkedstrict"); + case QU_TRUENULL: return cstring_makeLiteralTemp ("truenull"); + case QU_FALSENULL: return cstring_makeLiteralTemp ("falsenull"); + case QU_NULL: return cstring_makeLiteralTemp ("null"); + case QU_ISNULL: return cstring_makeLiteralTemp ("isnull"); + case QU_RELNULL: return cstring_makeLiteralTemp ("relnull"); + case QU_NOTNULL: return cstring_makeLiteralTemp ("notnull"); + case QU_NULLTERMINATED: return cstring_makeLiteralTemp ("nullterminated"); + case QU_RETURNED: return cstring_makeLiteralTemp (" returned"); + case QU_EXPOSED: return cstring_makeLiteralTemp ("exposed"); + case QU_EXITS: return cstring_makeLiteralTemp ("exits"); + case QU_MAYEXIT: return cstring_makeLiteralTemp ("mayexit"); + case QU_UNUSED: return cstring_makeLiteralTemp ("unused"); + case QU_EXTERNAL: return cstring_makeLiteralTemp ("external"); + case QU_SEF: return cstring_makeLiteralTemp ("sef"); + case QU_OBSERVER: return cstring_makeLiteralTemp ("observer"); + case QU_REFCOUNTED: return cstring_makeLiteralTemp ("refcounted"); + case QU_REFS: return cstring_makeLiteralTemp ("refs"); + case QU_NEWREF: return cstring_makeLiteralTemp ("newref"); + case QU_KILLREF: return cstring_makeLiteralTemp ("killref"); + case QU_TEMPREF: return cstring_makeLiteralTemp ("tempref"); + case QU_OWNED: return cstring_makeLiteralTemp ("owned"); + case QU_DEPENDENT: return cstring_makeLiteralTemp ("dependent"); + case QU_NEVEREXIT: return cstring_makeLiteralTemp ("neverexit"); + case QU_TRUEEXIT: return cstring_makeLiteralTemp ("trueexit"); + case QU_FALSEEXIT: return cstring_makeLiteralTemp ("falseexit"); + case QU_UNDEF: return cstring_makeLiteralTemp ("undef"); + case QU_KILLED: return cstring_makeLiteralTemp ("killed"); + case QU_PRINTFLIKE: return cstring_makeLiteralTemp ("printflike"); + case QU_SCANFLIKE: return cstring_makeLiteralTemp ("scanflike"); + case QU_MESSAGELIKE:return cstring_makeLiteralTemp ("messagelike"); + case QU_SETBUFFERSIZE: return cstring_makeLiteralTemp(""); + case QU_LAST: return cstring_makeLiteralTemp ("< last >"); + case QU_USERANNOT: return cstring_makeLiteralTemp (""); + } + } + + BADEXIT; +} + +extern bool qual_match (qual q1, qual q2) +{ + if (q1->kind == q2->kind) { + if (q1->kind == QU_USERANNOT) { + return (annotationInfo_equal (q1->info, q2->info)); + } else { + return TRUE; + } + } + + return FALSE; +} + +extern annotationInfo qual_getAnnotationInfo (qual q) +{ + llassert (qual_isMetaState (q)); + return q->info; +} + +/* Cannot call qual_create after this... */ + +/*@i23@*/ static void qual_free (qual q) +{ + llassert (FALSE); + sfree (q); +} + +extern cstring qual_dump (qual q) +{ + if (q->kind == QU_USERANNOT) { - case QU_UNKNOWN: return cstring_makeLiteralTemp ("unknown"); - case QU_ABSTRACT: return cstring_makeLiteralTemp ("abstract"); - case QU_CONCRETE: return cstring_makeLiteralTemp ("concrete"); - case QU_MUTABLE: return cstring_makeLiteralTemp ("mutable"); - case QU_IMMUTABLE: return cstring_makeLiteralTemp ("immutable"); - case QU_SHORT: return cstring_makeLiteralTemp ("short"); - case QU_LONG: return cstring_makeLiteralTemp ("long"); - case QU_SIGNED: return cstring_makeLiteralTemp ("signed"); - case QU_UNSIGNED: return cstring_makeLiteralTemp ("unsigned"); - case QU_CONST: return cstring_makeLiteralTemp ("const"); - case QU_VOLATILE: return cstring_makeLiteralTemp ("volatile"); - case QU_INLINE: return cstring_makeLiteralTemp ("inline"); - case QU_EXTERN: return cstring_makeLiteralTemp ("extern"); - case QU_STATIC: return cstring_makeLiteralTemp ("static"); - case QU_AUTO: return cstring_makeLiteralTemp ("auto"); - case QU_REGISTER: return cstring_makeLiteralTemp ("register"); - case QU_OUT: return cstring_makeLiteralTemp ("out"); - case QU_IN: return cstring_makeLiteralTemp ("in"); - case QU_RELDEF: return cstring_makeLiteralTemp ("reldef"); - case QU_ONLY: return cstring_makeLiteralTemp ("only"); - case QU_IMPONLY: return cstring_makeLiteralTemp ("only"); - case QU_PARTIAL: return cstring_makeLiteralTemp ("partial"); - case QU_SPECIAL: return cstring_makeLiteralTemp ("special"); - case QU_KEEP: return cstring_makeLiteralTemp ("keep"); - case QU_KEPT: return cstring_makeLiteralTemp ("kept"); - case QU_YIELD: return cstring_makeLiteralTemp ("yield"); - case QU_TEMP: return cstring_makeLiteralTemp ("temp"); - case QU_SHARED: return cstring_makeLiteralTemp ("shared"); - case QU_UNIQUE: return cstring_makeLiteralTemp ("unique"); - case QU_UNCHECKED: return cstring_makeLiteralTemp ("unchecked"); - case QU_CHECKED: return cstring_makeLiteralTemp ("checked"); - case QU_CHECKMOD: return cstring_makeLiteralTemp ("checkmod"); - case QU_CHECKEDSTRICT: return cstring_makeLiteralTemp ("checkedstrict"); - case QU_TRUENULL: return cstring_makeLiteralTemp ("truenull"); - case QU_FALSENULL: return cstring_makeLiteralTemp ("falsenull"); - case QU_NULL: return cstring_makeLiteralTemp ("null"); - case QU_RELNULL: return cstring_makeLiteralTemp ("relnull"); - case QU_NOTNULL: return cstring_makeLiteralTemp ("notnull"); - case QU_NULLTERMINATED: return cstring_makeLiteralTemp ("nullterminated"); - case QU_RETURNED: return cstring_makeLiteralTemp (" returned"); - case QU_EXPOSED: return cstring_makeLiteralTemp ("exposed"); - case QU_EXITS: return cstring_makeLiteralTemp ("exits"); - case QU_MAYEXIT: return cstring_makeLiteralTemp ("mayexit"); - case QU_UNUSED: return cstring_makeLiteralTemp ("unused"); - case QU_EXTERNAL: return cstring_makeLiteralTemp ("external"); - case QU_SEF: return cstring_makeLiteralTemp ("sef"); - case QU_OBSERVER: return cstring_makeLiteralTemp ("observer"); - case QU_REFCOUNTED: return cstring_makeLiteralTemp ("refcounted"); - case QU_REFS: return cstring_makeLiteralTemp ("refs"); - case QU_NEWREF: return cstring_makeLiteralTemp ("newref"); - case QU_KILLREF: return cstring_makeLiteralTemp ("killref"); - case QU_TEMPREF: return cstring_makeLiteralTemp ("tempref"); - case QU_OWNED: return cstring_makeLiteralTemp ("owned"); - case QU_DEPENDENT: return cstring_makeLiteralTemp ("dependent"); - case QU_NEVEREXIT: return cstring_makeLiteralTemp ("neverexit"); - case QU_TRUEEXIT: return cstring_makeLiteralTemp ("trueexit"); - case QU_FALSEEXIT: return cstring_makeLiteralTemp ("falseexit"); - case QU_UNDEF: return cstring_makeLiteralTemp ("undef"); - case QU_KILLED: return cstring_makeLiteralTemp ("killed"); - case QU_PRINTFLIKE: return cstring_makeLiteralTemp ("printflike"); - case QU_SCANFLIKE: return cstring_makeLiteralTemp ("scanflike"); - case QU_MESSAGELIKE:return cstring_makeLiteralTemp ("messagelike"); - case QU_LAST: return cstring_makeLiteralTemp ("< last >"); - case QU_SETBUFFERSIZE: return cstring_makeLiteralTemp(""); + return message ("%d.%s", + (int) q->kind, + annotationInfo_dump (q->info)); } + else + { + return message ("%d", (int) q->kind); + } +} - BADEXIT; + +extern qual qual_undump (char **s) +{ + quenum q = (quenum) reader_getInt (s); + + if (q == QU_USERANNOT) + { + annotationInfo ai; + + reader_checkChar (s, '.'); + ai = annotationInfo_undump (s); + + return qual_createMetaState (ai); + } + else + { + return qual_createPlain (q); + } } + diff --git a/src/qualList.c b/src/qualList.c index 29d1e6f..aa34524 100644 --- a/src/qualList.c +++ b/src/qualList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -205,9 +205,9 @@ requires: p is defined returns: true if qual is present in qualList modifies: none */ -bool qualList_hasNullTerminatedQualifier(qualList q) { - qualList_elements(q, qu) { - if( qual_equal(qu, QU_NULLTERMINATED) ) return TRUE; +bool qualList_hasNullTerminatedQualifier(qualList s) { + qualList_elements(s, qu) { + if( qual_isNullTerminated(qu) ) return TRUE; } end_qualList_elements ; return FALSE; diff --git a/src/quantifierNodeList.c b/src/quantifierNodeList.c index 2adf2a6..2ebb4b8 100644 --- a/src/quantifierNodeList.c +++ b/src/quantifierNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/randomNumbers.c b/src/randomNumbers.c new file mode 100644 index 0000000..40d13e8 --- /dev/null +++ b/src/randomNumbers.c @@ -0,0 +1,35 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** randomNumbers.c +*/ + +# include "randomNumbers.h" + +/*@+ignoresigns@*/ +unsigned int g_randomNumbers[NUM_RANDOM] = +{ +#include "256_random_numbers.nf" +} ; +/*@=ignoresigns@*/ diff --git a/src/reader.c b/src/reader.c new file mode 100644 index 0000000..a1ed271 --- /dev/null +++ b/src/reader.c @@ -0,0 +1,250 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** reader.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +int reader_getInt (char **s) +{ + bool gotOne = FALSE; + int i = 0; + + while (**s == ' ') + { + (*s)++; + } + + if (**s == '-') + { + (*s)++; + if (**s < '0' || **s > '9') + { + llbug (message ("getInt: bad int: %s", cstring_fromChars (*s))); + } + else + { + i = -1 * (int) (**s - '0'); + gotOne = TRUE; + } + + (*s)++; + } + + while (**s >= '0' && **s <= '9') + { + i *= 10; + i += (int) (**s - '0'); + (*s)++; + gotOne = TRUE; + } + + if (!gotOne) + { + llbug (message ("No int to read: %s", cstring_fromChars (*s))); + } + + while (**s == '\n' || **s == ' ' || **s == '\t') + { + (*s)++; + } + + return i; +} + +char +reader_loadChar (char **s) +{ + char ret; + + while (**s == ' ') + { + (*s)++; + } + + ret = **s; + (*s)++; + return ret; +} + +/* +** not sure if this works... +*/ + +double +reader_getDouble (char **s) +{ + char *end = mstring_createEmpty (); + double ret; + + ret = strtod (*s, &end); + + *s = end; + return ret; +} + +/* +** read to ' ', '\t'. '\n', '#', ',' or '\0' +*/ + +char * +reader_getWord (char **s) +{ + char *res; + char *t = *s; + char c; + + while ((c = **s) != '\0' && (c != ' ') && (c != ',') + && (c != '\n') && (c != '\t') && (c != '#')) + { + (*s)++; + } + + if (*s == t) + { + return NULL; + } + + **s = '\0'; + res = mstring_copy (t); + **s = c; + return res; +} + +/* +** read up to x +*/ + +cstring +reader_readUntil (char **s, char x) +{ + cstring res; + char *t = *s; + char c; + + while ((c = **s) != '\0' && (c != x)) + { + (*s)++; + } + + llassert (**s != '\0'); + llassert (*s != t); + + **s = '\0'; + res = cstring_fromChars (mstring_copy (t)); + **s = c; + return res; +} + +cstring +reader_readUntilOne (char **s, char *x) +{ + cstring res; + char *t = *s; + char c; + + while ((c = **s) != '\0' && (!mstring_containsChar (x, c))) + { + (*s)++; + } + + llassert (**s != '\0'); + llassert (*s != t); + + **s = '\0'; + res = cstring_fromChars (mstring_copy (t)); + **s = c; + return res; +} + +bool +reader_optCheckChar (char **s, char c) +{ + if (**s == c) + { + (*s)++; + return TRUE; + } + else + { + return FALSE; + } +} + +void +reader_doCheckChar (char **s, char c, char *file, int line) +{ + /*@unchecked@*/ static int nbadchars = 0; + + if (**s == c) + { + (*s)++; + } + else + { + nbadchars++; + + if (nbadchars > 5) + { + llfatalbug (cstring_makeLiteral + ("checkChar: Too many errors. Check library is up to date.")); + } + else + { + llbug (message ("checkChar: %q: Bad char, expecting %h: %s", + fileloc_unparseRaw (cstring_fromChars (file), line), + c, + cstring_fromChars (*s))); + } + } +} + +void reader_checkUngetc (int c, FILE *f) +{ + int res; + + llassert (c != EOF); + res = ungetc (c, f); + llassert (res == c); +} + +char *reader_readLine (FILE *f, char *s, int max) +{ + char *res = fgets (s, MAX_DUMP_LINE_LENGTH, f); + + if (res != NULL) + { + if (strlen (res) == size_fromInt (MAX_DUMP_LINE_LENGTH - 1)) + { + llfatalerrorLoc (message ("Maximum line length exceeded (%d): %s", max, + cstring_fromChars (s))); + } + + incLine (); + } + + return res; +} diff --git a/src/replaceNodeList.c b/src/replaceNodeList.c index affdc89..ec74838 100644 --- a/src/replaceNodeList.c +++ b/src/replaceNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/sRef.c b/src/sRef.c index 2decf92..b73a1f0 100644 --- a/src/sRef.c +++ b/src/sRef.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -37,7 +37,7 @@ # include "lclintMacros.nf" # include "basic.h" # include "exprChecks.h" -# include "aliasChecks.h" +# include "transferChecks.h" # include "sRefTable.h" # include "structNames.h" @@ -51,11 +51,15 @@ /*@notfunction@*/ # define AND(a,b) (a ? b : (b, FALSE)) +static void sRef_checkValidAux (sRef p_s, sRefSet p_checkedsofar) /*@modifies p_checkedsofar@*/ ; + static bool sRef_isDerived (sRef p_s) /*@*/ ; static /*@exposed@*/ sRef sRef_fixDirectBase (sRef p_s, sRef p_base) /*@modifies p_base@*/ ; +static void sRef_updateNullState (sRef p_res, sRef p_other) /*@modifies p_res@*/ ; + static bool sRef_isAllocatedStorage (sRef p_s) /*@*/ ; static void sRef_setNullErrorLoc (sRef p_s, fileloc) /*@*/ ; @@ -71,9 +75,9 @@ static void /*@modifies p_s@*/ ; static void - sRef_innerAliasSetCompleteParam (void (p_predf) (sRef, sRef), sRef p_s, sRef p_t) - /*@modifies p_s@*/ ; - +sRef_innerAliasSetCompleteParam (void (p_predf) (sRef, sRef), sRef p_s, sRef p_t) + /*@modifies p_s@*/ ; + static void sRef_aliasSetCompleteParam (void (p_predf) (sRef, alkind, fileloc), sRef p_s, alkind p_kind, fileloc p_loc) @@ -82,10 +86,20 @@ static void static speckind speckind_fromInt (int p_i); static bool sRef_equivalent (sRef p_s1, sRef p_s2); static bool sRef_isDeepUnionField (sRef p_s); -static void sRef_addDeriv (/*@notnull@*/ sRef p_s, /*@notnull@*/ sRef p_t); -static sRef sRef_makeResultType (ctype p_ct) /*@*/ ; +static void sRef_addDeriv (/*@notnull@*/ sRef p_s, /*@notnull@*/ /*@exposed@*/ sRef p_t); +static /*@dependent@*/ sRef sRef_makeResultType (ctype p_ct) /*@*/ ; static bool sRef_checkModify (sRef p_s, sRefSet p_sl) /*@*/ ; +static void sRef_checkMutable (/*@unused@*/ sRef s) +{ + /*@i235@*/ + if (sRef_isValid (s) && s->immut) + { + llcontbug (message ("Modification to sRef marked immutable: %q", + sRef_unparseFull (s))); + } +} + static bool skind_isSimple (skind sk) { switch (sk) @@ -106,7 +120,7 @@ static /*@null@*/ sinfo sinfo_copy (/*@notnull@*/ sRef p_s) /*@*/ ; static void sRef_setPartsFromUentry (sRef p_s, uentry p_ue) /*@modifies p_s@*/ ; static bool checkDeadState (/*@notnull@*/ sRef p_el, bool p_tbranch, fileloc p_loc); -static sRef sRef_constructPointerAux (/*@notnull@*/ /*@exposed@*/ sRef p_t) /*@*/ ; +static /*@dependent@*/ sRef sRef_constructPointerAux (/*@notnull@*/ /*@exposed@*/ sRef p_t) /*@*/ ; static void sRef_combineExKinds (/*@notnull@*/ sRef p_res, /*@notnull@*/ sRef p_other) @@ -131,7 +145,6 @@ static void sRef_setStateFromAbstractUentry (sRef p_s, uentry p_ue) static void sinfo_update (/*@notnull@*/ /*@exposed@*/ sRef p_res, /*@notnull@*/ /*@exposed@*/ sRef p_other); -static /*@only@*/ alinfo alinfo_makeRefLoc (/*@exposed@*/ sRef p_ref, fileloc p_loc); static void sRef_setDefinedAux (sRef p_s, fileloc p_loc, bool p_clear) /*@modifies p_s@*/ ; static void sRef_setDefinedNoClear (sRef p_s, fileloc p_loc) @@ -187,13 +200,206 @@ static ntotrefers = 0; static nrefers = 0; # endif -/*@constant null alinfo alinfo_undefined; @*/ -# define alinfo_undefined ((alinfo) NULL) +static /*@checked@*/ bool protectDerivs = FALSE; -static /*@only@*/ /*@notnull@*/ alinfo alinfo_makeLoc (fileloc p_loc); -static /*@only@*/ alinfo alinfo_copy (alinfo p_a); +/* +** Result of sRef_alloc is dependent since allRefs may +** reference it. It is only if !inFunction. +*/ + +static /*@dependent@*/ /*@out@*/ /*@notnull@*/ sRef +sRef_alloc (void) +{ + sRef s = (sRef) dmalloc (sizeof (*s)); + + s->immut = FALSE; + + DPRINTF (("Alloc sref: [%p]", s)); + + if (inFunction) + { + allRefs = sRefTable_add (allRefs, s); + /*@-branchstate@*/ + } + else + { + DPRINTF (("Not in function!")); + } + + /*@=branchstate@*/ + +# ifdef DEBUGREFS + if (nsrefs >= maxnsrefs) + { + maxnsrefs = nsrefs; + } + + totnsrefs++; + nsrefs++; +# endif + + /*@-mustfree@*/ /*@-freshtrans@*/ + return s; + /*@=mustfree@*/ /*@=freshtrans@*/ +} + +static void sRef_checkValidAux (sRef s, sRefSet checkedsofar) +{ + llassert (FALSE); + + if (!sRef_isValid (s)) return; + + if (sRefSet_containsSameObject (checkedsofar, s)) + { + return; + } + + /*@-temptrans@*/ + checkedsofar = sRefSet_insert (checkedsofar, s); + /*@=temptrans@*/ /* checksofar will be destroyed before checkValid returns */ + + switch (s->kind) + { + case SK_UNCONSTRAINED: + llassert (cstring_length (s->info->fname) < 100); + break; + + case SK_CVAR: + llassert (s->info->cvar->lexlevel >= 0); + /* llassert (s->info->cvar->lexlevel <= usymtab_getCurrentDepth ()); */ + break; + + case SK_PARAM: + llassert (s->info->paramno >= -1); + llassert (s->info->paramno <= 50); /*@i32 bogus...*/ + break; + + case SK_ARRAYFETCH: + sRef_checkValidAux (s->info->arrayfetch->arr, checkedsofar); + break; + + case SK_FIELD: + sRef_checkValidAux (s->info->field->rec, checkedsofar); + llassert (cstring_length (s->info->field->field) < 100); + break; + + case SK_PTR: + sRef_checkValidAux (s->info->ref, checkedsofar); + break; + + case SK_ADR: + sRef_checkValidAux (s->info->ref, checkedsofar); + break; + + case SK_OBJECT: + /* check ctype s->info->object */ + break; + + case SK_CONJ: + sRef_checkValidAux (s->info->conj->a, checkedsofar); + sRef_checkValidAux (s->info->conj->b, checkedsofar); + break; + + case SK_NEW: + llassert (cstring_length (s->info->fname) < 100); + break; + + case SK_DERIVED: + sRef_checkValidAux (s->info->ref, checkedsofar); + break; + + case SK_EXTERNAL: + sRef_checkValidAux (s->info->ref, checkedsofar); + break; + + case SK_TYPE: + case SK_CONST: + case SK_RESULT: + /* check ctyp s->type */ + break; + + case SK_SPECIAL: + llassert (s->info->spec == SR_NOTHING + || s->info->spec == SR_INTERNAL + || s->info->spec == SR_SPECSTATE + || s->info->spec == SR_SYSTEM); + break; + + case SK_UNKNOWN: + break; + + BADDEFAULT; + } + + + sRefSet_elements (s->deriv, el) + { + sRef_checkValidAux (el, checkedsofar); + } end_sRefSet_elements ; +} + +void sRef_checkValid (/*@unused@*/ sRef s) +{ + return; + /* + sRefSet checkedsofar = sRefSet_new (); + sRef_checkValidAux (s, checkedsofar); + */ +} + +static /*@dependent@*/ /*@notnull@*/ /*@special@*/ sRef + sRef_new (void) + /*@defines result@*/ + /*@ensures isnull result->aliasinfo, result->definfo, + result->expinfo, result->info, result->deriv, result->state@*/ +{ + sRef s = sRef_alloc (); + + s->kind = SK_UNKNOWN; + s->safe = TRUE; + s->modified = FALSE; + s->immut = FALSE; + + s->type = ctype_unknown; + s->defstate = SS_UNKNOWN; + + /* start modifications */ + s->bufinfo.bufstate = BB_NOTNULLTERMINATED; + /* end modifications */ + + s->aliaskind = AK_UNKNOWN; + s->oaliaskind = AK_UNKNOWN; + + s->nullstate = NS_UNKNOWN; + + s->expkind = XO_UNKNOWN; + s->oexpkind = XO_UNKNOWN; + + s->aliasinfo = stateInfo_undefined; + s->definfo = stateInfo_undefined; + s->nullinfo = stateInfo_undefined; + s->expinfo = stateInfo_undefined; + + s->info = NULL; + s->deriv = sRefSet_undefined; + + s->state = valueTable_undefined; + + return s; +} + +static /*@dependent@*/ /*@notnull@*/ /*@special@*/ sRef + sRef_newRef (void) + /*@defines result@*/ + /*@ensures isnull result->aliasinfo, result->definfo, + result->expinfo, result->info, result->deriv@*/ +{ + sRef res = sRef_new (); + res->immut = FALSE; + res->state = valueTable_undefined; + return res; +} -static /*@checked@*/ bool protectDerivs = FALSE; void sRef_protectDerivs (void) /*@modifies protectDerivs@*/ { @@ -244,7 +450,7 @@ sRef_isRecursiveField (sRef s) } static void -sRef_addDeriv (/*@notnull@*/ sRef s, /*@notnull@*/ sRef t) +sRef_addDeriv (/*@notnull@*/ sRef s, /*@notnull@*/ /*@exposed@*/ sRef t) { if (!context_inProtectVars () && !protectDerivs @@ -260,7 +466,7 @@ sRef_addDeriv (/*@notnull@*/ sRef s, /*@notnull@*/ sRef t) return; } - if (sRef_isGlobal (s)) + if (sRef_isFileOrGlobalScope (s)) { if (context_inFunctionLike () && ctype_isKnown (sRef_getType (s)) @@ -290,6 +496,10 @@ sRef_addDeriv (/*@notnull@*/ sRef s, /*@notnull@*/ sRef t) } else { + DPRINTF (("Add deriv: [%p] %s / [%p] %s", + s, sRef_unparse (s), + t, sRef_unparse (t))); + s->deriv = sRefSet_insert (s->deriv, t); } } @@ -302,7 +512,7 @@ sRef_deepPred (bool (predf) (sRef), sRef s) { if ((*predf)(s)) return TRUE; - switch (s->kind) + switch (s->kind) { case SK_PTR: return (sRef_deepPred (predf, s->info->ref)); @@ -332,11 +542,13 @@ void sRef_setStateFromType (sRef s, ctype ct) { if (ctype_isUser (ct)) { + DPRINTF (("Here we are: %s", sRef_unparseFull (s))); sRef_setStateFromUentry (s, usymtab_getTypeEntry (ctype_typeId (ct))); } else if (ctype_isAbstract (ct)) { + DPRINTF (("Here we are: %s", sRef_unparseFull (s))); sRef_setStateFromAbstractUentry (s, usymtab_getTypeEntry (ctype_typeId (ct))); } @@ -355,93 +567,6 @@ static void sRef_setTypeState (sRef s) } } -static void alinfo_free (/*@only@*/ alinfo a) -{ - if (a != NULL) - { - fileloc_free (a->loc); - sfree (a); - } -} - -static /*@only@*/ alinfo alinfo_update (/*@only@*/ alinfo old, alinfo newinfo) -/* -** returns an alinfo with the same value as new. May reuse the -** storage of old. (i.e., same effect as copy, but more -** efficient.) -*/ -{ - if (old == NULL) - { - old = alinfo_copy (newinfo); - } - else if (newinfo == NULL) - { - alinfo_free (old); - return NULL; - } - else - { - old->loc = fileloc_update (old->loc, newinfo->loc); - old->ref = newinfo->ref; - old->ue = newinfo->ue; - } - - return old; -} - -static /*@only@*/ alinfo alinfo_updateLoc (/*@only@*/ alinfo old, fileloc loc) -{ - if (old == NULL) - { - old = alinfo_makeLoc (loc); - } - else - { - old->loc = fileloc_update (old->loc, loc); - old->ue = uentry_undefined; - old->ref = sRef_undefined; - } - - return old; -} - -static /*@only@*/ alinfo - alinfo_updateRefLoc (/*@only@*/ alinfo old, /*@dependent@*/ sRef ref, fileloc loc) -{ - if (old == NULL) - { - old = alinfo_makeRefLoc (ref, loc); - } - else - { - old->loc = fileloc_update (old->loc, loc); - old->ue = uentry_undefined; - old->ref = ref; - } - - return old; -} - -static /*@only@*/ alinfo -alinfo_copy (alinfo a) -{ - if (a == NULL) - { - return NULL; - } - else - { - alinfo ret = (alinfo) dmalloc (sizeof (*ret)); - - ret->loc = fileloc_copy (a->loc); /*< should report bug without copy! >*/ - ret->ue = a->ue; - ret->ref = a->ref; - - return ret; - } -} - static bool sRef_hasAliasInfoLoc (sRef s) { @@ -463,10 +588,29 @@ sRef_hasExpInfoLoc (sRef s) && (s->expinfo != NULL) && (fileloc_isDefined (s->expinfo->loc))); } +static /*@observer@*/ /*@unused@*/ stateInfo sRef_getInfo (sRef s, cstring key) +{ + stateValue sv; + + if (!sRef_isValid (s)) { + return stateInfo_undefined; + } + + sv = valueTable_lookup (s->state, key); + + if (stateValue_isDefined (sv)) + { + return stateValue_getInfo (sv); + } + + return stateInfo_undefined; +} + + static bool sRef_hasNullInfoLoc (sRef s) { - return (sRef_isValid (s) && (s->nullinfo != NULL) + return (sRef_isValid (s) && s->nullinfo != NULL && (fileloc_isDefined (s->nullinfo->loc))); } @@ -510,34 +654,15 @@ sRef_getNullInfoLoc (/*@exposed@*/ sRef s) } /*@observer@*/ sRef - sRef_getAliasInfoRef (/*@exposed@*/ sRef s) + sRef_getAliasInfoRef (/*@temp@*/ sRef s) { llassert (sRef_isValid (s) && s->aliasinfo != NULL); return (s->aliasinfo->ref); } -static /*@only@*/ /*@notnull@*/ alinfo -alinfo_makeLoc (fileloc loc) +bool sRef_inGlobalScope () { - alinfo ret = (alinfo) dmalloc (sizeof (*ret)); - - ret->loc = fileloc_copy (loc); /* don't need to copy! */ - ret->ue = uentry_undefined; - ret->ref = sRef_undefined; - - return ret; -} - -static /*@only@*/ alinfo -alinfo_makeRefLoc (/*@exposed@*/ sRef ref, fileloc loc) -{ - alinfo ret = (alinfo) dmalloc (sizeof (*ret)); - - ret->loc = fileloc_copy (loc); - ret->ref = ref; - ret->ue = uentry_undefined; - - return ret; + return !inFunction; } /* @@ -549,12 +674,14 @@ alinfo_makeRefLoc (/*@exposed@*/ sRef ref, fileloc loc) void sRef_setGlobalScope () { llassert (inFunction); + DPRINTF (("leave function")); inFunction = FALSE; } void sRef_clearGlobalScope () { llassert (!inFunction); + DPRINTF (("enter function")); inFunction = TRUE; } @@ -562,13 +689,15 @@ static bool oldInFunction = FALSE; void sRef_setGlobalScopeSafe () { - oldInFunction = inFunction; + oldInFunction = inFunction; + DPRINTF (("leave function")); inFunction = FALSE; } void sRef_clearGlobalScopeSafe () { inFunction = oldInFunction; + DPRINTF (("clear function: %s", bool_unparse (inFunction))); } void sRef_enterFunctionScope () @@ -576,6 +705,7 @@ void sRef_enterFunctionScope () llassert (!inFunction); llassert (sRefTable_isEmpty (allRefs)); inFunction = TRUE; + DPRINTF (("enter function")); } void sRef_exitFunctionScope () @@ -583,6 +713,7 @@ void sRef_exitFunctionScope () if (inFunction) { + DPRINTF (("Exit function scope.")); sRefTable_clear (allRefs); inFunction = FALSE; } @@ -601,74 +732,6 @@ void sRef_destroyMod () /*@globals killed allRefs;@*/ sRefTable_free (allRefs); } -/* -** Result of sRef_alloc is dependent since allRefs may -** reference it. It is only if !inFunction. -*/ - -static /*@dependent@*/ /*@out@*/ /*@notnull@*/ sRef -sRef_alloc (void) -{ - sRef s = (sRef) dmalloc (sizeof (*s)); - - if (inFunction) - { - allRefs = sRefTable_add (allRefs, s); - /*@-branchstate@*/ - } - /*@=branchstate@*/ - -# ifdef DEBUGREFS - if (nsrefs >= maxnsrefs) - { - maxnsrefs = nsrefs; - } - - totnsrefs++; - nsrefs++; -# endif - - /*@-mustfree@*/ /*@-freshtrans@*/ - return s; - /*@=mustfree@*/ /*@=freshtrans@*/ -} - -static /*@dependent@*/ /*@notnull@*/ /*@special@*/ sRef - sRef_new (void) - /*@defines result@*/ - /*@post:isnull result->aliasinfo, result->definfo, result->nullinfo, - result->expinfo, result->info, result->deriv@*/ -{ - sRef s = sRef_alloc (); - - s->kind = SK_UNKNOWN; - s->safe = TRUE; - s->modified = FALSE; - s->type = ctype_unknown; - s->defstate = SS_UNKNOWN; - - /* start modifications */ - s->bufinfo.bufstate = BB_NOTNULLTERMINATED; - /* end modifications */ - - s->aliaskind = AK_UNKNOWN; - s->oaliaskind = AK_UNKNOWN; - - s->nullstate = NS_UNKNOWN; - - s->expkind = XO_UNKNOWN; - s->oexpkind = XO_UNKNOWN; - - s->aliasinfo = alinfo_undefined; - s->definfo = alinfo_undefined; - s->nullinfo = alinfo_undefined; - s->expinfo = alinfo_undefined; - - s->info = NULL; - s->deriv = sRefSet_undefined; - - return s; -} static /*@notnull@*/ /*@exposed@*/ sRef sRef_fixConj (/*@notnull@*/ sRef s) @@ -696,7 +759,7 @@ sRef_isExternallyVisibleAux (sRef s) if (sRef_isValid (base)) { - res = sRef_isParam (base) || sRef_isGlobal (base) || sRef_isExternal (base); + res = sRef_isParam (base) || sRef_isFileOrGlobalScope (base) || sRef_isExternal (base); } return res; @@ -748,7 +811,6 @@ sRef_updateSref (sRef s) sRef res; if (!sRef_isValid (s)) return sRef_undefined; - switch (s->kind) { @@ -756,13 +818,25 @@ sRef_updateSref (sRef s) case SK_OBJECT: case SK_NEW: case SK_TYPE: - case SK_EXTERNAL: case SK_DERIVED: case SK_UNCONSTRAINED: case SK_CONST: case SK_SPECIAL: case SK_RESULT: return s; + case SK_EXTERNAL: + { + sRef r = sRef_updateSref (s->info->ref); + + if (r != s->info->ref) + { + return sRef_makeExternal (r); + } + else + { + return s; + } + } case SK_PARAM: case SK_CVAR: { @@ -773,11 +847,12 @@ sRef_updateSref (sRef s) if (uentry_isUndefined (ue)) { - return s; + return s; } else { - return (uentry_getSref (ue)); + DPRINTF (("Update sref: %s", uentry_unparseFull (ue))); + return (uentry_getSref (ue)); } } case SK_ARRAYFETCH: @@ -917,23 +992,22 @@ void sRef_setModified (sRef s) if (sRef_isRefsField (s)) { sRef base = sRef_getBase (s); - + llassert (s->kind == SK_FIELD); - + if (sRef_isPointer (base)) { base = sRef_getBase (base); - } - + } + if (sRef_isRefCounted (base)) { base->aliaskind = AK_NEWREF; - } + } } - - } + } } /* @@ -975,6 +1049,8 @@ sRef_canModify (sRef s, sRefSet sl) static bool sRef_checkModifyVal (sRef s, sRefSet sl) { + DPRINTF (("Check modify val: %s", sRef_unparse (s))); + if (sRef_isInvalid (s)) { return TRUE; @@ -986,7 +1062,9 @@ bool sRef_checkModifyVal (sRef s, sRefSet sl) case SK_CONST: return TRUE; case SK_CVAR: - if (sRef_isGlobal (s)) + DPRINTF (("Modify var: %s", sRef_unparse (s))); + + if (sRef_isFileOrGlobalScope (s)) { if (context_checkGlobMod (s)) { @@ -1039,6 +1117,7 @@ bool sRef_checkModifyVal (sRef s, sRefSet sl) } case SR_SPECSTATE: return TRUE; case SR_SYSTEM: return (sRefSet_member (sl, s)); + case SR_GLOBALMARKER: BADBRANCH; } } case SK_RESULT: BADBRANCH; @@ -1062,7 +1141,7 @@ static bool sRef_checkModify (sRef s, sRefSet sl) case SK_CONST: return TRUE; case SK_CVAR: - if (sRef_isGlobal (s)) + if (sRef_isFileOrGlobalScope (s)) { if (context_checkGlobMod (s)) { @@ -1128,6 +1207,7 @@ static bool sRef_checkModify (sRef s, sRefSet sl) } case SR_SPECSTATE: return TRUE; case SR_SYSTEM: return (sRefSet_member (sl, s)); + case SR_GLOBALMARKER: BADBRANCH; } } case SK_RESULT: BADBRANCH; @@ -1187,7 +1267,7 @@ bool sRef_doModifyVal (sRef s, sRefSet sl) case SK_CONST: return TRUE; case SK_CVAR: - if (sRef_isGlobal (s)) + if (sRef_isFileOrGlobalScope (s)) { if (context_checkGlobMod (s)) @@ -1247,14 +1327,10 @@ bool sRef_doModifyVal (sRef s, sRefSet sl) (void) sRefSet_modifyMember (sl, s); return TRUE; } - case SR_SPECSTATE: - { - return TRUE; - } - case SR_SYSTEM: - { - return (sRefSet_modifyMember (sl, s)); - } + case SR_SPECSTATE: return TRUE; + case SR_SYSTEM: return (sRefSet_modifyMember (sl, s)); + case SR_GLOBALMARKER: BADBRANCH; + } } case SK_RESULT: BADBRANCH; @@ -1271,7 +1347,7 @@ bool sRef_doModifyVal (sRef s, sRefSet sl) static bool sRef_doModify (sRef s, sRefSet sl) { - llassert (sRef_isValid (s)); + llassert (sRef_isValid (s)); switch (s->kind) { @@ -1279,7 +1355,7 @@ bool sRef_doModify (sRef s, sRefSet sl) case SK_CONST: return TRUE; case SK_CVAR: - if (sRef_isGlobal (s)) + if (sRef_isFileOrGlobalScope (s)) { if (context_checkGlobMod (s)) { @@ -1340,6 +1416,7 @@ bool sRef_doModify (sRef s, sRefSet sl) case SR_INTERNAL: return TRUE; case SR_SPECSTATE: return TRUE; case SR_SYSTEM: return (sRefSet_modifyMember (sl, s)); + case SR_GLOBALMARKER: BADBRANCH; } } case SK_RESULT: BADBRANCH; @@ -1389,7 +1466,12 @@ int sRef_compare (sRef s1, sRef s2) INTCOMPARERETURN (s1->defstate, s2->defstate); INTCOMPARERETURN (s1->aliaskind, s2->aliaskind); - COMPARERETURN (nstate_compare (s1->nullstate, s2->nullstate)); + DPRINTF (("Compare null state: %s / %s", + sRef_unparseFull (s1), + sRef_unparseFull (s2))); + + COMPARERETURN (nstate_compare (sRef_getNullState (s1), + sRef_getNullState (s2))); switch (s1->kind) { @@ -1817,6 +1899,7 @@ sRef_includedBy (sRef small, sRef big) case SR_INTERNAL: return (sRef_isSpecInternalState (big) || sRef_isFileStatic (big)); case SR_SYSTEM: return (sRef_isSystemState (big)); + case SR_GLOBALMARKER: BADBRANCH; } } BADEXIT; @@ -1902,6 +1985,12 @@ sRef_realSame (sRef s1, sRef s2) BADEXIT; } +bool +sRef_sameObject (sRef s1, sRef s2) +{ + return (s1 == s2); +} + /* ** same is similar to similar, but not quite the same. ** @@ -2083,6 +2172,8 @@ sRef_closeEnough (sRef s1, sRef s2) temp = sRef_saveCopy(s); temp = sRef_fixBaseParam (temp, args); ce = constraintExpr_makeTermsRef (temp); + + sRef_free(temp); return ce; } case SK_CVAR: @@ -2090,6 +2181,7 @@ sRef_closeEnough (sRef s1, sRef s2) sRef temp; temp = sRef_saveCopy(s); ce = constraintExpr_makeTermsRef (temp); + sRef_free(temp); return ce; } case SK_PARAM: @@ -2108,6 +2200,8 @@ sRef_closeEnough (sRef s1, sRef s2) llcontbug ((message("Trying to do fixConstraintParam on nonparam, nonglobal: %q for function with arguments %q", sRef_unparse (s), exprNodeList_unparse(args) ) )); temp = sRef_saveCopy(s); ce = constraintExpr_makeTermsRef (temp); + + sRef_free(temp); return ce; } } @@ -2195,25 +2289,25 @@ sRef_undumpGlobal (char **c) { case 'g': { - usymId uid = usymId_fromInt (getInt (c)); + usymId uid = usymId_fromInt (reader_getInt (c)); sstate defstate; nstate nullstate; sRef ret; - checkChar (c, '@'); - defstate = sstate_fromInt (getInt (c)); + reader_checkChar (c, '@'); + defstate = sstate_fromInt (reader_getInt (c)); - checkChar (c, '@'); - nullstate = nstate_fromInt (getInt (c)); + reader_checkChar (c, '@'); + nullstate = nstate_fromInt (reader_getInt (c)); ret = sRef_makeGlobal (uid, ctype_unknown); - ret->nullstate = nullstate; + sRef_setNullStateN (ret, nullstate); ret->defstate = defstate; return ret; } case 's': { - int i = getInt (c); + int i = reader_getInt (c); speckind sk = speckind_fromInt (i); switch (sk) @@ -2222,6 +2316,7 @@ sRef_undumpGlobal (char **c) case SR_INTERNAL: return (sRef_makeInternalState ()); case SR_SPECSTATE: return (sRef_makeSpecState ()); case SR_SYSTEM: return (sRef_makeSystemState ()); + case SR_GLOBALMARKER: BADBRANCH; } BADEXIT; } @@ -2248,16 +2343,16 @@ sRef_undump (char **c) switch (p) { case 'g': - return (sRef_makeGlobal (usymId_fromInt (getInt (c)), ctype_unknown)); + return (sRef_makeGlobal (usymId_fromInt (reader_getInt (c)), ctype_unknown)); case 'p': - return (sRef_makeParam (getInt (c), ctype_unknown)); + return (sRef_makeParam (reader_getInt (c), ctype_unknown)); case 'r': return (sRef_makeResultType (ctype_undump (c))); case 'a': { if ((**c >= '0' && **c <= '9') || **c == '-') { - int i = getInt (c); + int i = reader_getInt (c); sRef arr = sRef_undump (c); sRef ret = sRef_buildArrayFetchKnown (arr, i); @@ -2289,7 +2384,7 @@ sRef_undump (char **c) } case 's': { - int i = getInt (c); + int i = reader_getInt (c); speckind sk = speckind_fromInt (i); switch (sk) @@ -2298,6 +2393,7 @@ sRef_undump (char **c) case SR_INTERNAL: return (sRef_makeInternalState ()); case SR_SPECSTATE: return (sRef_makeSpecState ()); case SR_SYSTEM: return (sRef_makeSystemState ()); + case SR_GLOBALMARKER: BADBRANCH; } BADEXIT; } @@ -2378,7 +2474,7 @@ sRef_dump (sRef s) sRef_dump (s->info->conj->a), sRef_dump (s->info->conj->b))); case SK_CVAR: - if (sRef_isGlobal (s)) + if (sRef_isFileOrGlobalScope (s)) { return (message ("g%d", usymtab_convertId (s->info->cvar->index))); @@ -2419,12 +2515,12 @@ cstring sRef_dumpGlobal (sRef s) switch (s->kind) { case SK_CVAR: - if (sRef_isGlobal (s)) + if (sRef_isFileOrGlobalScope (s)) { return (message ("g%d@%d@%d", usymtab_convertId (s->info->cvar->index), (int) s->defstate, - (int) s->nullstate)); + (int) sRef_getNullState (s))); } else { @@ -2459,7 +2555,14 @@ sRef_deriveType (sRef s, uentryList cl) case SK_UNCONSTRAINED: return (ctype_unknown); case SK_PARAM: - return uentry_getType (uentryList_getN (cl, s->info->paramno)); + if (s->info->paramno >= 0) + { + return uentry_getType (uentryList_getN (cl, s->info->paramno)); + } + else + { + return ctype_unknown; + } case SK_ARRAYFETCH: { ctype ca = sRef_deriveType (s->info->arrayfetch->arr, cl); @@ -2613,6 +2716,7 @@ sRef_unparse (sRef s) } else { + DPRINTF (("Not in function like: %s", context_unparse ())); return (sRef_unparseNoArgs (s)); } } @@ -2634,7 +2738,8 @@ sRef_unparseWithArgs (sRef s, uentryList args) return (cstring_copy (s->info->fname)); case SK_PARAM: { - if (s->info->paramno < uentryList_size (args)) + if (s->info->paramno < uentryList_size (args) + && s->info->paramno >= 0) { uentry ue = uentryList_getN (args, s->info->paramno); @@ -2715,12 +2820,15 @@ sRef_unparseWithArgs (sRef s, uentryList args) case SK_CONST: return (message ("", ctype_unparse (s->type))); case SK_SPECIAL: - return (cstring_makeLiteral - (s->info->spec == SR_NOTHING ? "nothing" - : s->info->spec == SR_INTERNAL ? "internal state" - : s->info->spec == SR_SPECSTATE ? "spec state" - : s->info->spec == SR_SYSTEM ? "file system state" - : "")); + switch (s->info->spec) + { + case SR_NOTHING: return cstring_makeLiteral ("nothing"); + case SR_INTERNAL: return cstring_makeLiteral ("internal state"); + case SR_SPECSTATE: return cstring_makeLiteral ("spec state"); + case SR_SYSTEM: return cstring_makeLiteral ("file system state"); + case SR_GLOBALMARKER: return cstring_makeLiteral (""); + } + BADBRANCH; case SK_RESULT: return cstring_makeLiteral ("result"); default: @@ -2735,7 +2843,11 @@ sRef_unparseWithArgs (sRef s, uentryList args) /*@only@*/ cstring sRef_unparseDebug (sRef s) { - if (sRef_isInvalid (s)) return (cstring_makeLiteral ("")); + if (sRef_isInvalid (s)) + { + return (cstring_makeLiteral ("")); + } + switch (s->kind) { @@ -2780,7 +2892,17 @@ sRef_unparseDebug (sRef s) return (message ("%q.%s", sRef_unparseDebug (s->info->field->rec), s->info->field->field)); case SK_PTR: - return (message ("*(%q)", sRef_unparseDebug (s->info->ref))); + if (sRef_isField (s->info->ref)) + { + sRef fld = s->info->ref; + + return (message ("%q->%s", sRef_unparseDebug (fld->info->field->rec), + fld->info->field->field)); + } + else + { + return (message ("*(%q)", sRef_unparseDebug (s->info->ref))); + } case SK_ADR: return (message ("&%q", sRef_unparseDebug (s->info->ref))); case SK_OBJECT: @@ -2831,7 +2953,8 @@ sRef_unparseNoArgs (sRef s) if (uentry_isInvalid (ce)) { - llcontbug (message ("sRef_unparseNoArgs: bad cvar: %q", sRef_unparseDebug (s))); + llcontbug (message ("sRef_unparseNoArgs: bad cvar: %q", + sRef_unparseDebug (s))); return (sRef_unparseDebug (s)); } else @@ -2927,9 +3050,9 @@ bool sRef_isUnconstrained (sRef s) static /*@dependent@*/ /*@notnull@*/ sRef sRef_makeCvarAux (int level, usymId index, ctype ct) { - sRef s = sRef_new (); - - s->kind = SK_CVAR; + sRef s = sRef_newRef (); + + s->kind = SK_CVAR; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->cvar = (cref) dmalloc (sizeof (*s->info->cvar)); @@ -2964,6 +3087,9 @@ static /*@dependent@*/ /*@notnull@*/ sRef llassert (level >= globScope); llassert (usymId_isValid (index)); + DPRINTF (("Made cvar: [%p] %s", s, sRef_unparseDebug (s))); + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } @@ -3001,6 +3127,7 @@ sRef_setParamNo (sRef s, int l) { llassert (sRef_isValid (s) && s->kind == SK_PARAM); s->info->paramno = l; + llassert (l >= -1); } /*@dependent@*/ sRef @@ -3013,8 +3140,12 @@ sRef_makeParam (int l, ctype ct) s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->paramno = l; - s->defstate = SS_UNKNOWN; /* (probably defined, unless its an out parameter) */ + llassert (l >= -1); + s->defstate = SS_UNKNOWN; + /* (probably defined, unless its an out parameter) */ + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } @@ -3076,12 +3207,12 @@ static bool sRef_isZerothArrayFetch (/*@notnull@*/ sRef s) } else { - sRef s = sRef_new (); + sRef s = sRef_newRef (); s->kind = SK_ADR; s->type = ctype_makePointer (t->type); s->info = (sinfo) dmalloc (sizeof (*s->info)); - s->info->ref = t; + s->info->ref = t; /* sRef_copy (t); */ /*@i32@*/ if (t->defstate == SS_UNDEFINED) /* no! it is allocated even still: && !ctype_isPointer (t->type)) */ @@ -3101,6 +3232,8 @@ static bool sRef_isZerothArrayFetch (/*@notnull@*/ sRef s) } } + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } } @@ -3267,38 +3400,48 @@ static int sRef_depth (sRef s) sRef sRef_makeObject (ctype o) { - sRef s = sRef_new (); + sRef s = sRef_newRef (); /*@i423 same line is bad...@*/ s->kind = SK_OBJECT; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->object = o; + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } -sRef sRef_makeExternal (/*@exposed@*/ sRef t) +/* +** This is used to represent storage referenced by a parameter. +*/ + +sRef sRef_makeExternal (sRef t) { - sRef s = sRef_new (); + sRef s = sRef_newRef (); llassert (sRef_isValid (t)); s->kind = SK_EXTERNAL; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->type = t->type; - s->info->ref = t; + s->info->ref = t; /* sRef_copy (t); */ /*@i32 was exposed@*/ + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } -sRef sRef_makeDerived (/*@exposed@*/ sRef t) +/*@dependent@*/ sRef sRef_makeDerived (/*@exposed@*/ sRef t) { if (sRef_isValid (t)) { - sRef s = sRef_new (); + sRef s = sRef_newRef (); s->kind = SK_DERIVED; s->info = (sinfo) dmalloc (sizeof (*s->info)); - s->info->ref = t; + s->info->ref = t; /* sRef_copy (t); */ /*@i32@*/ s->type = t->type; + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } else @@ -3325,7 +3468,7 @@ sRef_mergeStateQuiet (sRef res, sRef other) if (res->defstate == SS_UNKNOWN) { res->defstate = other->defstate; - res->definfo = alinfo_update (res->definfo, other->definfo); + res->definfo = stateInfo_update (res->definfo, other->definfo); } if (res->aliaskind == AK_UNKNOWN || @@ -3333,35 +3476,34 @@ sRef_mergeStateQuiet (sRef res, sRef other) { res->aliaskind = other->aliaskind; res->oaliaskind = other->oaliaskind; - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); } if (res->expkind == XO_UNKNOWN) { res->expkind = other->expkind; res->oexpkind = other->oexpkind; - res->expinfo = alinfo_update (res->expinfo, other->expinfo); + res->expinfo = stateInfo_update (res->expinfo, other->expinfo); } /* out takes precedence over implicitly defined */ if (res->defstate == SS_DEFINED && other->defstate != SS_UNKNOWN) { res->defstate = other->defstate; - res->definfo = alinfo_update (res->definfo, other->definfo); + res->definfo = stateInfo_update (res->definfo, other->definfo); } - if (other->nullstate == NS_ERROR || res->nullstate == NS_ERROR) + if (sRef_getNullState (other) == NS_ERROR || sRef_getNullState (res) == NS_ERROR) { - res->nullstate = NS_ERROR; + sRef_setNullState (res, NS_ERROR, fileloc_undefined); } else { - if (other->nullstate != NS_UNKNOWN - && (res->nullstate == NS_UNKNOWN || res->nullstate == NS_NOTNULL - || res->nullstate == NS_MNOTNULL)) + if (sRef_getNullState (other) != NS_UNKNOWN + && (sRef_getNullState (res) == NS_UNKNOWN || sRef_getNullState (res) == NS_NOTNULL + || sRef_getNullState (res) == NS_MNOTNULL)) { - res->nullstate = other->nullstate; - res->nullinfo = alinfo_update (res->nullinfo, other->nullinfo); + sRef_updateNullState (res, other); } } } @@ -3373,12 +3515,13 @@ sRef_mergeStateQuiet (sRef res, sRef other) */ void -sRef_mergeStateQuietReverse (sRef res, sRef other) +sRef_mergeStateQuietReverse (/*@dependent@*/ sRef res, /*@dependent@*/ sRef other) { bool changed = FALSE; llassert (sRef_isValid (res)); llassert (sRef_isValid (other)); + sRef_checkMutable (res); if (res->kind != other->kind) { @@ -3414,14 +3557,14 @@ sRef_mergeStateQuietReverse (sRef res, sRef other) changed = TRUE; res->aliaskind = other->aliaskind; res->oaliaskind = other->oaliaskind; - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); - } + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); + } if (other->expkind != XO_UNKNOWN && other->expkind != res->expkind) { changed = TRUE; res->expkind = other->expkind; - res->expinfo = alinfo_update (res->expinfo, other->expinfo); + res->expinfo = stateInfo_update (res->expinfo, other->expinfo); } if (other->oexpkind != XO_UNKNOWN) @@ -3439,21 +3582,20 @@ sRef_mergeStateQuietReverse (sRef res, sRef other) } } - if (other->nullstate == NS_ERROR || res->nullstate == NS_ERROR) + if (sRef_getNullState (other) == NS_ERROR || sRef_getNullState (res) == NS_ERROR) { - if (res->nullstate != NS_ERROR) + if (sRef_getNullState (res) != NS_ERROR) { - res->nullstate = NS_ERROR; + sRef_setNullStateN (res, NS_ERROR); changed = TRUE; } } else { - if (other->nullstate != NS_UNKNOWN && other->nullstate != res->nullstate) + if (sRef_getNullState (other) != NS_UNKNOWN && sRef_getNullState (other) != sRef_getNullState (res)) { changed = TRUE; - res->nullstate = other->nullstate; - res->nullinfo = alinfo_update (res->nullinfo, other->nullinfo); + sRef_updateNullState (res, other); } } @@ -3516,6 +3658,9 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, llassertfatal (sRef_isValid (res)); llassertfatal (sRef_isValid (other)); + sRef_checkMutable (res); + sRef_checkMutable (other); + res->modified = res->modified || other->modified; if (res->kind == other->kind @@ -3523,7 +3668,7 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, { sstate odef = other->defstate; sstate rdef = res->defstate; - nstate onull = other->nullstate; + nstate onull = sRef_getNullState (other); /* ** yucky stuff to handle @@ -3546,7 +3691,7 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, res->defstate = SS_DEAD; } - res->definfo = alinfo_update (res->definfo, other->definfo); + res->definfo = stateInfo_update (res->definfo, other->definfo); sRef_clearDerived (other); sRef_clearDerived (res); } @@ -3578,7 +3723,7 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, && (res->defstate == SS_ALLOCATED && sRef_definitelyNull (res))) { res->defstate = SS_DEFINED; - res->definfo = alinfo_update (res->definfo, other->definfo); + res->definfo = stateInfo_update (res->definfo, other->definfo); } else { @@ -3615,8 +3760,8 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, other->defstate = SS_DEAD; sRef_clearDerived (res); sRef_clearDerived (other); - } - + } + if (alkind_isDependent (res->aliaskind) && other->defstate == SS_DEAD) { res->aliaskind = AK_UNKNOWN; @@ -3640,13 +3785,11 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, { if (onull == NS_DEFNULL || onull == NS_CONSTNULL) { - res->deriv = sRefSet_copy (res->deriv, other->deriv); - } - - ; + res->deriv = sRefSet_copyInto (res->deriv, other->deriv); + DPRINTF (("Copy derivs: %s", sRef_unparseFull (res))); + } } - else if (odef == SS_ALLOCATED - || odef == SS_SPECIAL) + else if (odef == SS_ALLOCATED || odef == SS_SPECIAL) { if (doDerivs) @@ -3656,11 +3799,13 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, res->deriv = sRef_mergeUnionDerivs (res->deriv, other->deriv, opt, cl, loc); + DPRINTF (("Copy derivs: %s", sRef_unparseFull (res))); } else { - res->deriv = sRef_mergeDerivs (res->deriv, other->deriv, + res->deriv = sRef_mergeDerivs (res->deriv, other->deriv, opt, cl, loc); + DPRINTF (("Copy derivs: %s", sRef_unparseFull (res))); } } } @@ -3668,12 +3813,14 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, { if (doDerivs) { - res->deriv = sRef_mergeDerivs (res->deriv, other->deriv, + res->deriv = sRef_mergeDerivs (res->deriv, other->deriv, opt, cl, loc); + DPRINTF (("Copy derivs: %s", sRef_unparseFull (res))); } else { - } + ; + } } } else @@ -3681,30 +3828,32 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, if (rdef == SS_PDEFINED || (rdef == SS_DEFINED && odef == SS_PDEFINED)) { - if (doDerivs) - { - res->deriv = sRef_mergePdefinedDerivs (res->deriv, other->deriv, - opt, cl, loc); - } + if (doDerivs) + { + res->deriv = sRef_mergePdefinedDerivs (res->deriv, other->deriv, + opt, cl, loc); + DPRINTF (("Copy derivs: %s", sRef_unparseFull (res))); + } } else { if ((rdef == SS_DEFINED || rdef == SS_UNKNOWN) && res->defstate == SS_ALLOCATED) { - res->deriv = sRefSet_copy (res->deriv, other->deriv); + res->deriv = sRefSet_copyInto (res->deriv, other->deriv); } else { if (doDerivs) { - res->deriv = sRef_mergeDerivs (res->deriv, other->deriv, + res->deriv = sRef_mergeDerivs (res->deriv, other->deriv, opt, cl, loc); + DPRINTF (("Copy derivs: %s", sRef_unparseFull (res))); } } } } - + sRef_combineExKinds (res, other); } @@ -3734,8 +3883,31 @@ sRef_mergeStateAux (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other, } } - - } + + /* + ** Merge value table states + */ + + valueTable_elements (res->state, key, sv) + { + stateValue os = valueTable_lookup (other->state, key); + /*@unused@*/ int val; + /*@unused@*/ char *msg; + + llassert (stateValue_isDefined (os)); + + DPRINTF (("Merge state: %s / %s", + cstring_toCharsSafe (stateValue_unparse (sv)), + cstring_toCharsSafe (stateValue_unparse (os)))); + /* + val = valueMatix_lookup (key, + stateValue_getValue (os), + stateValue_getValue (sv), + &msg); + DPRINTF (("Val: %d / %s", val, msg)); + */ + } end_valueTable_elements ; +} static sRefSet sRef_mergeUnionDerivs (/*@only@*/ sRefSet res, @@ -3744,7 +3916,7 @@ sRef_mergeUnionDerivs (/*@only@*/ sRefSet res, { if (sRefSet_isEmpty (res)) { - return sRefSet_copy (res, other); + return sRefSet_copyInto (res, other); } else { @@ -3774,8 +3946,7 @@ sRef_mergeDerivs (/*@only@*/ sRefSet res, sRefSet other, bool opt, clause cl, fileloc loc) { sRefSet ret = sRefSet_new (); - - + sRefSet_allElements (res, el) { if (sRef_isValid (el)) @@ -3824,11 +3995,13 @@ sRef_mergeDerivs (/*@only@*/ sRefSet res, sRefSet other, else if (el->defstate == SS_DEFINED && e2->defstate == SS_PDEFINED) { + DPRINTF (("set pdefined: %s", sRef_unparseFull (el))); el->defstate = SS_PDEFINED; } else if (e2->defstate == SS_DEFINED && el->defstate == SS_PDEFINED) { + DPRINTF (("set pdefined: %s", sRef_unparseFull (e2))); e2->defstate = SS_PDEFINED; } else @@ -3848,7 +4021,7 @@ sRef_mergeDerivs (/*@only@*/ sRefSet res, sRefSet other, if (sRef_equivalent (el, e2)) { - ret = sRefSet_insert (ret, el); + ret = sRefSet_insert (ret, el); } else { @@ -3868,7 +4041,7 @@ sRef_mergeDerivs (/*@only@*/ sRefSet res, sRefSet other, } else /* not defined */ { - (void) checkDeadState (el, TRUE, loc); + (void) checkDeadState (el, TRUE, loc); } } } end_sRefSet_allElements; @@ -3880,7 +4053,7 @@ sRef_mergeDerivs (/*@only@*/ sRefSet res, sRefSet other, (void) checkDeadState (el, FALSE, loc); } } end_sRefSet_allElements; - + sRefSet_free (res); return (ret); } @@ -3911,19 +4084,19 @@ static bool checkDeadState (/*@notnull@*/ sRef el, bool tbranch, fileloc loc) if (!tbranch) { - if (usymtab_isProbableDeepNull (el)) + if (usymtab_isDefinitelyNullDeep (el)) { - return TRUE; + return TRUE; } } else { - if (usymtab_isAltProbablyDeepNull (el)) + if (usymtab_isAltDefinitelyNullDeep (el)) { - return TRUE; + return TRUE; } } - + if (optgenerror (FLG_BRANCHSTATE, message ("Storage %q is %q in one path, but live in another.", @@ -3989,7 +4162,7 @@ static sRefSet } else if (sRef_isAllocated (e2) && !sRef_isAllocated (el)) { - el->deriv = sRefSet_copy (el->deriv, e2->deriv); + el->deriv = sRefSet_copyInto (el->deriv, e2->deriv); } else { @@ -4044,13 +4217,13 @@ sRef sRef_makeConj (/*@exposed@*/ /*@returned@*/ sRef a, /*@exposed@*/ sRef b) if (!sRef_equivalent (a, b)) { - sRef s = sRef_new (); + sRef s = sRef_newRef (); s->kind = SK_CONJ; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->conj = (cjinfo) dmalloc (sizeof (*s->info->conj)); - s->info->conj->a = a; - s->info->conj->b = b; + s->info->conj->a = a; /* sRef_copy (a) */ /*@i32*/ ; + s->info->conj->b = b; /* sRef_copy (b);*/ /*@i32@*/ ; if (ctype_equal (a->type, b->type)) s->type = a->type; else s->type = ctype_makeConj (a->type, b->type); @@ -4064,11 +4237,13 @@ sRef sRef_makeConj (/*@exposed@*/ /*@returned@*/ sRef a, /*@exposed@*/ sRef b) s->defstate = SS_UNKNOWN; } - s->nullstate = NS_UNKNOWN; + sRef_setNullStateN (s, NS_UNKNOWN); s->safe = a->safe && b->safe; s->aliaskind = alkind_resolve (a->aliaskind, b->aliaskind); + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } else @@ -4077,7 +4252,7 @@ sRef sRef_makeConj (/*@exposed@*/ /*@returned@*/ sRef a, /*@exposed@*/ sRef b) } } -sRef +/*@dependent@*/ sRef sRef_makeUnknown () { sRef s = sRef_new (); @@ -4086,7 +4261,7 @@ sRef_makeUnknown () return s; } -static sRef +static /*@owned@*/ sRef sRef_makeSpecial (speckind sk) /*@*/ { sRef s = sRef_new (); @@ -4094,15 +4269,17 @@ sRef_makeSpecial (speckind sk) /*@*/ s->kind = SK_SPECIAL; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->spec = sk; + /*@-dependenttrans@*/ return s; + /*@=dependenttrans@*/ } -static sRef srnothing = sRef_undefined; -static sRef srinternal = sRef_undefined; -static sRef srsystem = sRef_undefined; -static sRef srspec = sRef_undefined; +static /*@owned@*/ sRef srnothing = sRef_undefined; +static /*@owned@*/ sRef srinternal = sRef_undefined; +static /*@owned@*/ sRef srsystem = sRef_undefined; +static /*@owned@*/ sRef srspec = sRef_undefined; -sRef +/*@dependent@*/ sRef sRef_makeNothing (void) { if (sRef_isInvalid (srnothing)) @@ -4110,9 +4287,7 @@ sRef_makeNothing (void) srnothing = sRef_makeSpecial (SR_NOTHING); } - /*@-retalias@*/ return srnothing; - /*@=retalias@*/ } sRef @@ -4123,9 +4298,7 @@ sRef_makeInternalState (void) srinternal = sRef_makeSpecial (SR_INTERNAL); } - /*@-retalias@*/ return srinternal; - /*@=retalias@*/ } sRef @@ -4136,9 +4309,7 @@ sRef_makeSpecState (void) srspec = sRef_makeSpecial (SR_SPECSTATE); } - /*@-retalias@*/ return srspec; - /*@=retalias@*/ } sRef @@ -4149,9 +4320,16 @@ sRef_makeSystemState (void) srsystem = sRef_makeSpecial (SR_SYSTEM); } - /*@-retalias@*/ - return (srsystem); - /*@=retalias@*/ + return srsystem; +} + +sRef +sRef_makeGlobalMarker (void) +{ + sRef s = sRef_makeSpecial (SR_GLOBALMARKER); + llassert (valueTable_isUndefined (s->state)); + s->state = context_createGlobalMarkerValueTable (); + return s; } static sRef @@ -4166,14 +4344,17 @@ sRef_makeResultType (ctype ct) sRef sRef_makeResult () { - sRef s = sRef_new (); + sRef s = sRef_newRef (); s->kind = SK_RESULT; s->type = ctype_unknown; s->defstate = SS_UNKNOWN; s->aliaskind = AK_UNKNOWN; - s->nullstate = NS_UNKNOWN; - + sRef_setNullStateN (s, NS_UNKNOWN); + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); + + DPRINTF (("Result: [%p] %s", s, sRef_unparseFull (s))); return s; } @@ -4215,6 +4396,12 @@ sRef_isSystemState (sRef s) return (sRef_isKindSpecial (s) && s->info->spec == SR_SYSTEM); } +bool +sRef_isGlobalMarker (sRef s) +{ + return (sRef_isKindSpecial (s) && s->info->spec == SR_GLOBALMARKER); +} + usymId sRef_getScopeIndex (sRef s) { @@ -4250,12 +4437,13 @@ sRef_makeUnsafe (sRef s) { if (sRef_isInvalid (s)) return (cstring_undefined); - return (message ("[%d] %q - %q [%s] { %q }", + return (message ("[%d] %q - %q [%s] { %q } < %q >", (int) s, sRef_unparseDebug (s), sRef_unparseState (s), exkind_unparse (s->oexpkind), - sRefSet_unparseDebug (s->deriv))); + sRefSet_unparseDebug (s->deriv), + valueTable_unparse (s->state))); } /*@unused@*/ cstring sRef_unparseDeep (sRef s) @@ -4291,7 +4479,7 @@ sRef_makeUnsafe (sRef s) return (message ("%s.%s.%s.%s", alkind_unparse (s->aliaskind), - nstate_unparse (s->nullstate), + nstate_unparse (sRef_getNullState (s)), exkind_unparse (s->expkind), sstate_unparse (s->defstate))); } @@ -4388,6 +4576,7 @@ ynm sRef_isReadable (sRef s) || ss == SS_PARTIAL || ss == SS_SPECIAL || ss == SS_ALLOCATED + || ss == SS_KILLED /* evans 2001-05-26: added this for killed globals */ || ss == SS_UNKNOWN)); } } @@ -4522,9 +4711,11 @@ static /*@exposed@*/ sRef whatUndefined (/*@exposed@*/ sRef fref, int depth) return sRef_undefined; } -static bool checkDefined (sRef sr) +static bool checkDefined (/*@temp@*/ sRef sr) { + /*@-temptrans@*/ /* the result from whatUndefined is lost */ return (sRef_isInvalid (whatUndefined (sr, 0))); + /*@=temptrans@*/ } bool sRef_isReallyDefined (sRef s) @@ -4565,6 +4756,7 @@ void sRef_showNotReallyDefined (sRef s) { if (sRef_isAllocated (s) || sRef_isPdefined (s)) { + /*@-temptrans@*/ /* the result of whatUndefined is lost */ sRef ref = whatUndefined (s, 0); llassert (sRef_isValid (ref)); @@ -4597,26 +4789,32 @@ sstate sRef_getDefState (sRef s) void sRef_setDefState (sRef s, sstate defstate, fileloc loc) { + sRef_checkMutable (s); sRef_setStateAux (s, defstate, loc); } static void sRef_clearAliasStateAux (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_setAliasKind (s, AK_ERROR, loc); } void sRef_clearAliasState (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_aliasSetComplete (sRef_clearAliasStateAux, s, loc); } void sRef_setAliasKindComplete (sRef s, alkind kind, fileloc loc) { + sRef_checkMutable (s); sRef_aliasSetCompleteParam (sRef_setAliasKind, s, kind, loc); } void sRef_setAliasKind (sRef s, alkind kind, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { sRef_clearDerived (s); @@ -4624,7 +4822,7 @@ void sRef_setAliasKind (sRef s, alkind kind, fileloc loc) if ((kind != s->aliaskind && kind != s->oaliaskind) && fileloc_isDefined (loc)) { - s->aliasinfo = alinfo_updateLoc (s->aliasinfo, loc); + s->aliasinfo = stateInfo_updateLoc (s->aliasinfo, loc); } s->aliaskind = kind; @@ -4633,6 +4831,8 @@ void sRef_setAliasKind (sRef s, alkind kind, fileloc loc) void sRef_setOrigAliasKind (sRef s, alkind kind) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { s->oaliaskind = kind; @@ -4665,16 +4865,19 @@ exkind sRef_getOrigExKind (sRef s) static void sRef_clearExKindAux (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_setExKind (s, XO_UNKNOWN, loc); } void sRef_setObserver (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_setExKind (s, XO_OBSERVER, loc); } void sRef_setExposed (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_setExKind (s, XO_EXPOSED, loc); } @@ -4685,11 +4888,13 @@ void sRef_clearExKindComplete (sRef s, fileloc loc) void sRef_setExKind (sRef s, exkind exp, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { if (s->expkind != exp) { - s->expinfo = alinfo_updateLoc (s->expinfo, loc); + s->expinfo = stateInfo_updateLoc (s->expinfo, loc); } s->expkind = exp; @@ -4702,6 +4907,9 @@ void sRef_setExKind (sRef s, exkind exp, fileloc loc) static void sRef_copyRealDerived (sRef s1, sRef s2) { + DPRINTF (("Copy real: %s / %s", sRef_unparse (s1), sRef_unparse (s2))); + sRef_checkMutable (s1); + if (sRef_isValid (s1) && sRef_isValid (s2)) { sRef sb = sRef_getRootBase (s1); @@ -4741,13 +4949,15 @@ void sRef_copyRealDerivedComplete (sRef s1, sRef s2) void sRef_setUndefined (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { s->defstate = SS_UNDEFINED; if (fileloc_isDefined (loc)) { - s->definfo = alinfo_updateLoc (s->definfo, loc); + s->definfo = stateInfo_updateLoc (s->definfo, loc); } sRef_clearDerived (s); @@ -4756,11 +4966,12 @@ void sRef_setUndefined (sRef s, fileloc loc) static void sRef_setDefinedAux (sRef s, fileloc loc, bool clear) { + sRef_checkMutable (s); if (sRef_isInvalid (s)) return; if (s->defstate != SS_DEFINED && fileloc_isDefined (loc)) { - s->definfo = alinfo_updateLoc (s->definfo, loc); + s->definfo = stateInfo_updateLoc (s->definfo, loc); } s->defstate = SS_DEFINED; @@ -4840,6 +5051,8 @@ static void sRef_setDefinedAux (sRef s, fileloc loc, bool clear) static void sRef_setPartialDefined (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (!sRef_isPartial (s)) { sRef_setDefined (s, loc); @@ -4858,11 +5071,13 @@ void sRef_setDefinedComplete (sRef s, fileloc loc) void sRef_setDefined (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_setDefinedAux (s, loc, TRUE); } static void sRef_setDefinedNoClear (sRef s, fileloc loc) { + sRef_checkMutable (s); DPRINTF (("Defining: %s", sRef_unparseFull (s))); sRef_setDefinedAux (s, loc, FALSE); DPRINTF (("==> %s", sRef_unparseFull (s))); @@ -4870,6 +5085,7 @@ static void sRef_setDefinedNoClear (sRef s, fileloc loc) void sRef_setDefinedNCComplete (sRef s, fileloc loc) { + sRef_checkMutable (s); DPRINTF (("Set Defined Complete: %s", sRef_unparseFull (s))); sRef_innerAliasSetComplete (sRef_setDefinedNoClear, s, loc); DPRINTF (("==> %s", sRef_unparseFull (s))); @@ -4901,6 +5117,7 @@ bool sRef_isUnionField (sRef s) void sRef_setPdefined (sRef s, fileloc loc) { + sRef_checkMutable (s); if (sRef_isValid (s) && !sRef_isPartial (s)) { sRef base = sRef_getBaseSafe (s); @@ -4912,9 +5129,10 @@ void sRef_setPdefined (sRef s, fileloc loc) if (s->defstate != SS_PDEFINED && fileloc_isDefined (loc)) { - s->definfo = alinfo_updateLoc (s->definfo, loc); + s->definfo = stateInfo_updateLoc (s->definfo, loc); } + DPRINTF (("set pdefined: %s", sRef_unparseFull (s))); s->defstate = SS_PDEFINED; /* e.g., if x is allocated, *x = 3 defines x */ @@ -4924,8 +5142,8 @@ void sRef_setPdefined (sRef s, fileloc loc) if (base->defstate == SS_DEFINED) { sRef nb; - - base->defstate = SS_PDEFINED; + + base->defstate = SS_PDEFINED; nb = sRef_getBaseSafe (base); base = nb; } @@ -4939,13 +5157,15 @@ void sRef_setPdefined (sRef s, fileloc loc) static void sRef_setStateAux (sRef s, sstate ss, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { /* if (s->defstate == SS_RELDEF) return; */ if (s->defstate != ss && fileloc_isDefined (loc)) { - s->definfo = alinfo_updateLoc (s->definfo, loc); + s->definfo = stateInfo_updateLoc (s->definfo, loc); } s->defstate = ss; @@ -4983,6 +5203,8 @@ void sRef_setAllocatedComplete (sRef s, fileloc loc) static void sRef_setAllocatedShallow (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { if (s->defstate == SS_DEAD || s->defstate == SS_UNDEFINED) @@ -4991,7 +5213,7 @@ static void sRef_setAllocatedShallow (sRef s, fileloc loc) if (fileloc_isDefined (loc)) { - s->definfo = alinfo_updateLoc (s->definfo, loc); + s->definfo = stateInfo_updateLoc (s->definfo, loc); } } } @@ -5004,21 +5226,25 @@ void sRef_setAllocatedShallowComplete (sRef s, fileloc loc) void sRef_setAllocated (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_setStateAux (s, SS_ALLOCATED, loc); - } +} void sRef_setPartial (sRef s, fileloc loc) { + sRef_checkMutable (s); sRef_setStateAux (s, SS_PARTIAL, loc); - } +} void sRef_setShared (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { if (s->aliaskind != AK_SHARED && fileloc_isDefined (loc)) { - s->aliasinfo = alinfo_updateLoc (s->aliasinfo, loc); + s->aliasinfo = stateInfo_updateLoc (s->aliasinfo, loc); } s->aliaskind = AK_SHARED; @@ -5026,24 +5252,28 @@ void sRef_setShared (sRef s, fileloc loc) } } -void sRef_setLastReference (sRef s, sRef ref, fileloc loc) +void sRef_setLastReference (sRef s, /*@exposed@*/ sRef ref, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { s->aliaskind = sRef_getAliasKind (ref); - s->aliasinfo = alinfo_updateRefLoc (s->aliasinfo, ref, loc); + s->aliasinfo = stateInfo_updateRefLoc (s->aliasinfo, ref, loc); } } static void sRef_setNullStateAux (/*@notnull@*/ sRef s, nstate ns, fileloc loc) { - s->nullstate = ns; - - if (fileloc_isDefined (loc)) - { - s->nullinfo = alinfo_updateLoc (s->nullinfo, loc); - } + DPRINTF (("Set null state: %s / %s", sRef_unparse (s), nstate_unparse (ns))); + sRef_checkMutable (s); + s->nullstate = ns; + + if (fileloc_isDefined (loc)) + { + s->nullinfo = stateInfo_updateLoc (s->nullinfo, loc); + } } void sRef_setNotNull (sRef s, fileloc loc) @@ -5054,6 +5284,12 @@ void sRef_setNotNull (sRef s, fileloc loc) } } +void sRef_setNullStateN (sRef s, nstate n) +{ + sRef_checkMutable (s); + s->nullstate = n; +} + void sRef_setNullState (sRef s, nstate n, fileloc loc) { if (sRef_isValid (s)) @@ -5062,7 +5298,7 @@ void sRef_setNullState (sRef s, nstate n, fileloc loc) } } -void sRef_setNullTerminatedStateInnerComplete (sRef s, struct _bbufinfo b, /*@unused@*/ fileloc loc) { +void sRef_setNullTerminatedStateInnerComplete (sRef s, struct s_bbufinfo b, /*@unused@*/ fileloc loc) { switch (b.bufstate) { case BB_NULLTERMINATED: @@ -5085,8 +5321,10 @@ void sRef_setNullTerminatedStateInnerComplete (sRef s, struct _bbufinfo b, /*@un void sRef_setNullStateInnerComplete (sRef s, nstate n, fileloc loc) { + DPRINTF (("Set null state: %s", nstate_unparse (n))); + sRef_setNullState (s, n, loc); - + switch (n) { case NS_POSNULL: @@ -5158,33 +5396,42 @@ void sRef_setNullErrorLoc (sRef s, /*@unused@*/ fileloc loc) void sRef_setOnly (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s) && s->aliaskind != AK_ONLY) { s->aliaskind = AK_ONLY; - s->aliasinfo = alinfo_updateLoc (s->aliasinfo, loc); + s->aliasinfo = stateInfo_updateLoc (s->aliasinfo, loc); } } void sRef_setDependent (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s) && !sRef_isConst (s) && (s->aliaskind != AK_DEPENDENT)) { + DPRINTF (("Setting dependent: %s", sRef_unparseFull (s))); s->aliaskind = AK_DEPENDENT; - s->aliasinfo = alinfo_updateLoc (s->aliasinfo, loc); - } + s->aliasinfo = stateInfo_updateLoc (s->aliasinfo, loc); + } } void sRef_setOwned (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s) && !sRef_isConst (s) && (s->aliaskind != AK_OWNED)) { s->aliaskind = AK_OWNED; - s->aliasinfo = alinfo_updateLoc (s->aliasinfo, loc); - } + s->aliasinfo = stateInfo_updateLoc (s->aliasinfo, loc); + } } void sRef_setKept (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s) && !sRef_isConst (s) && (s->aliaskind != AK_KEPT)) { sRef base = sRef_getBaseSafe (s); @@ -5204,8 +5451,8 @@ void sRef_setKept (sRef s, fileloc loc) } s->aliaskind = AK_KEPT; - s->aliasinfo = alinfo_updateLoc (s->aliasinfo, loc); - } + s->aliasinfo = stateInfo_updateLoc (s->aliasinfo, loc); + } } static void sRef_setKeptAux (sRef s, fileloc loc) @@ -5236,16 +5483,19 @@ void sRef_setDependentComplete (sRef s, fileloc loc) void sRef_setFresh (sRef s, fileloc loc) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { s->aliaskind = AK_FRESH; - s->aliasinfo = alinfo_updateLoc (s->aliasinfo, loc); + s->aliasinfo = stateInfo_updateLoc (s->aliasinfo, loc); } } void sRef_kill (sRef s, fileloc loc) { DPRINTF (("Kill: %s", sRef_unparseFull (s))); + sRef_checkMutable (s); if (sRef_isValid (s) && !sRef_isShared (s) && !sRef_isConst (s)) { @@ -5262,12 +5512,11 @@ void sRef_kill (sRef s, fileloc loc) { break; } - } s->aliaskind = s->oaliaskind; s->defstate = SS_DEAD; - s->definfo = alinfo_updateLoc (s->definfo, loc); + s->definfo = stateInfo_updateLoc (s->definfo, loc); sRef_clearDerived (s); } @@ -5275,7 +5524,8 @@ void sRef_kill (sRef s, fileloc loc) void sRef_maybeKill (sRef s, fileloc loc) { - + sRef_checkMutable (s); + if (sRef_isValid (s)) { sRef base = sRef_getBaseSafe (s); @@ -5286,18 +5536,18 @@ void sRef_maybeKill (sRef s, fileloc loc) if (base->defstate == SS_DEFINED || base->defstate == SS_RELDEF) { base->defstate = SS_PDEFINED; - base = sRef_getBaseSafe (base); + base = sRef_getBaseSafe (base); } else { - break; + break; } } s->aliaskind = s->oaliaskind; s->defstate = SS_HOFFA; - s->definfo = alinfo_updateLoc (s->definfo, loc); + s->definfo = stateInfo_updateLoc (s->definfo, loc); sRef_clearDerived (s); } @@ -5317,8 +5567,8 @@ static void sRef_killAux (sRef s, fileloc loc) } else { - sRef_kill (s, loc); - } + sRef_kill (s, loc); + } } } @@ -5372,26 +5622,28 @@ static bool sRef_equivalent (sRef s1, sRef s2) sRef sRef_copy (sRef s) { - if (sRef_isKindSpecial (s)) + if (sRef_isKindSpecial (s) && !sRef_isGlobalMarker (s)) { /*@-retalias@*/ - return s; /* don't copy specials */ + return s; /* don't copy specials (except for global markers) */ /*@=retalias@*/ } - + if (sRef_isValid (s)) { sRef t = sRef_alloc (); + DPRINTF (("Copying: [%p] %s", s, sRef_unparse (s))); + DPRINTF (("Full: %s", sRef_unparseFull (s))); + t->kind = s->kind; t->safe = s->safe; t->modified = s->modified; + t->immut = FALSE; /* Note mutability is not copied. */ t->type = s->type; - t->info = sinfo_copy (s); - + t->info = sinfo_copy (s); t->defstate = s->defstate; - t->nullstate = s->nullstate; /* start modifications */ @@ -5406,13 +5658,15 @@ sRef sRef_copy (sRef s) t->expkind = s->expkind; t->oexpkind = s->oexpkind; - t->aliasinfo = alinfo_copy (s->aliasinfo); - t->definfo = alinfo_copy (s->definfo); - t->nullinfo = alinfo_copy (s->nullinfo); - t->expinfo = alinfo_copy (s->expinfo); + t->nullinfo = stateInfo_copy (s->nullinfo); + t->aliasinfo = stateInfo_copy (s->aliasinfo); + t->definfo = stateInfo_copy (s->definfo); + t->expinfo = stateInfo_copy (s->expinfo); t->deriv = sRefSet_newDeepCopy (s->deriv); - + t->state = valueTable_copy (s->state); + + DPRINTF (("Made copy: [%p] %s", t, sRef_unparse (t))); return t; } else @@ -5450,7 +5704,7 @@ bool sRef_isThroughArrayFetch (sRef s) if (sRef_isArrayFetch (tref)) { - return TRUE; + return TRUE; } lt = sRef_getBase (tref); @@ -5560,7 +5814,7 @@ bool sRef_isReference (sRef s) { PREDTEST (sRef_isReference, s); - return (sRef_isPointer (s) || sRef_isIndex (s) || sRef_isGlobal (s) + return (sRef_isPointer (s) || sRef_isIndex (s) || sRef_isFileOrGlobalScope (s) || (sRef_isField (s) && (sRef_isReference (s->info->field->rec)))); } @@ -5570,7 +5824,7 @@ bool sRef_isIReference (sRef s) || sRef_isField (s) || sRef_isArrayFetch (s)); } -bool sRef_isGlobal (sRef s) +bool sRef_isFileOrGlobalScope (sRef s) { return (sRef_isCvar (s) && (s->info->cvar->lexlevel <= fileScope)); } @@ -5587,7 +5841,7 @@ bool sRef_isFileStatic (sRef s) bool sRef_isAliasCheckedGlobal (sRef s) { - if (sRef_isGlobal (s)) + if (sRef_isFileOrGlobalScope (s)) { uentry ue = sRef_getUentry (s); @@ -5603,21 +5857,29 @@ void sRef_free (/*@only@*/ sRef s) { if (s != sRef_undefined && s->kind != SK_SPECIAL) { - alinfo_free (s->expinfo); - alinfo_free (s->aliasinfo); - alinfo_free (s->definfo); - alinfo_free (s->nullinfo); - + DPRINTF (("Free sref: [%p]", s)); + + sRef_checkValid (s); + + stateInfo_free (s->expinfo); + stateInfo_free (s->aliasinfo); + stateInfo_free (s->definfo); + stateInfo_free (s->nullinfo); + sRefSet_free (s->deriv); s->deriv = sRefSet_undefined; + + /*@i43@*/ /* valueTable_free (s->state); */ sinfo_free (s); - sfree (s); + /*@i32@*/ sfree (s); } } void sRef_setType (sRef s, ctype t) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { s->type = t; @@ -5626,6 +5888,8 @@ void sRef_setType (sRef s, ctype t) void sRef_setTypeFull (sRef s, ctype t) { + sRef_checkMutable (s); + if (sRef_isValid (s)) { s->type = t; @@ -5638,7 +5902,7 @@ void sRef_setTypeFull (sRef s, ctype t) } /*@exposed@*/ sRef - sRef_buildField (sRef rec, /*@dependent@*/ cstring f) + sRef_buildField (/*@exposed@*/ sRef rec, /*@dependent@*/ cstring f) { return (sRef_buildNCField (rec, f)); } @@ -5650,9 +5914,12 @@ sRef_findDerivedField (/*@notnull@*/ sRef rec, cstring f) { if (sRef_isValid (sr)) { - if (sr->kind == SK_FIELD && cstring_equal (sr->info->field->field, f)) + if (sr->info != NULL) { - return sr; + if (sr->kind == SK_FIELD && cstring_equal (sr->info->field->field, f)) + { + return sr; + } } } } end_sRefSet_allElements; @@ -5660,8 +5927,7 @@ sRef_findDerivedField (/*@notnull@*/ sRef rec, cstring f) return sRef_undefined; } -/*@dependent@*/ /*@observer@*/ sRefSet - sRef_derivedFields (sRef rec) +/*@dependent@*/ /*@observer@*/ sRefSet sRef_derivedFields (/*@temp@*/ sRef rec) { if (sRef_isValid (rec)) { @@ -5750,6 +6016,9 @@ sRef_buildNCField (/*@exposed@*/ sRef rec, /*@exposed@*/ cstring f) { sRef s; + DPRINTF (("Build nc field: %s / %s", + sRef_unparseFull (rec), f)); + if (sRef_isInvalid (rec)) { return sRef_undefined; @@ -5763,26 +6032,30 @@ sRef_buildNCField (/*@exposed@*/ sRef rec, /*@exposed@*/ cstring f) if (sRef_isValid (s)) { - return s; + return s; } else { ctype ct = ctype_realType (rec->type); - s = sRef_new (); + DPRINTF (("Field of: %s", sRef_unparse (rec))); + + s = sRef_newRef (); s->kind = SK_FIELD; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->field = (fldinfo) dmalloc (sizeof (*s->info->field)); - s->info->field->rec = rec; + s->info->field->rec = rec; /* sRef_copy (rec); */ /*@i32@*/ s->info->field->field = f; /* doesn't copy f */ - if (ctype_isKnown (ct) && ctype_isSU (ct)) { uentry ue = uentryList_lookupField (ctype_getFields (ct), f); if (!uentry_isUndefined (ue)) { + DPRINTF (("lookup: %s for %s", uentry_unparseFull (ue), + ctype_unparse (ct))); + s->type = uentry_getType (ue); if (ctype_isMutable (s->type) @@ -5799,15 +6072,17 @@ sRef_buildNCField (/*@exposed@*/ sRef rec, /*@exposed@*/ cstring f) if (sRef_isStateDefined (rec) || sRef_isStateUnknown (rec) || sRef_isPdefined (rec)) { - sRef_setStateFromUentry (s, ue); - } + sRef_setStateFromUentry (s, ue); + } else { sRef_setPartsFromUentry (s, ue); - } - + } + s->oaliaskind = s->aliaskind; s->oexpkind = s->expkind; + + DPRINTF (("sref: %s", sRef_unparseFull (s))); } else { @@ -5861,11 +6136,12 @@ sRef_buildNCField (/*@exposed@*/ sRef rec, /*@exposed@*/ cstring f) if (ctype_isArray (rt) || ctype_isSU (rt)) { - s->defstate = SS_ALLOCATED; + s->defstate = SS_ALLOCATED; } } sRef_addDeriv (rec, s); + DPRINTF (("Add deriv: %s", sRef_unparseFull (rec))); if (ctype_isInt (s->type) && cstring_equal (f, REFSNAME)) { @@ -5873,7 +6149,8 @@ sRef_buildNCField (/*@exposed@*/ sRef rec, /*@exposed@*/ cstring f) s->oaliaskind = AK_REFS; } - return s; + DPRINTF (("Build field ==> %s", sRef_unparseFull (s))); + return s; } } @@ -5888,6 +6165,8 @@ static void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, /*@notnull@*/ /*@exposed@*/ sRef arr) { + sRef_checkMutable (s); + if (ctype_isRealAP (arr->type)) { s->type = ctype_baseArrayPtr (arr->type); @@ -5906,7 +6185,6 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, else if (ctype_isRealPointer (arr->type)) { sRef sp = sRef_findDerivedPointer (arr); - if (sRef_isValid (sp)) { @@ -5914,7 +6192,6 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, if (ctype_isMutable (s->type)) { sRef_setExKind (s, sRef_getExKind (sp), fileloc_undefined); - s->aliaskind = sp->aliaskind; } @@ -5929,7 +6206,7 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, } } - s->nullstate = sp->nullstate; + sRef_setNullStateN (s, sRef_getNullState (sp)); } else { @@ -6096,14 +6373,14 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, } else { - s = sRef_new (); + s = sRef_newRef (); s->kind = SK_ARRAYFETCH; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->arrayfetch = (ainfo) dmalloc (sizeof (*s->info->arrayfetch)); s->info->arrayfetch->indknown = FALSE; s->info->arrayfetch->ind = 0; - s->info->arrayfetch->arr = arr; + s->info->arrayfetch->arr = arr; /* sRef_copy (arr); */ /*@i32@*/ sRef_setArrayFetchState (s, arr); s->oaliaskind = s->aliaskind; s->oexpkind = s->expkind; @@ -6113,6 +6390,9 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, sRef_addDeriv (arr, s); } + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); + return (s); } } @@ -6140,12 +6420,12 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, } else { - s = sRef_new (); + s = sRef_newRef (); s->kind = SK_ARRAYFETCH; s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->arrayfetch = (ainfo) dmalloc (sizeof (*s->info->arrayfetch)); - s->info->arrayfetch->arr = arr; + s->info->arrayfetch->arr = arr; /* sRef_copy (arr); */ /*@i32@*/ s->info->arrayfetch->indknown = TRUE; s->info->arrayfetch->ind = i; @@ -6155,6 +6435,9 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, s->oexpkind = s->expkind; sRef_addDeriv (arr, s); + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); + return (s); } } @@ -6165,8 +6448,9 @@ void sRef_setArrayFetchState (/*@notnull@*/ /*@exposed@*/ sRef s, static void sRef_setPartsFromUentry (sRef s, uentry ue) -{ - +{ + sRef uref = uentry_getSref (ue); + llassert (sRef_isValid (s)); s->aliaskind = alkind_derive (s->aliaskind, uentry_getAliasKind (ue)); @@ -6176,27 +6460,38 @@ sRef_setPartsFromUentry (sRef s, uentry ue) { s->expkind = uentry_getExpKind (ue); } - + s->oexpkind = s->expkind; - - if (s->nullstate == NS_UNKNOWN) + + if (sRef_getNullState (s) == NS_UNKNOWN) + { + DPRINTF (("Setting null state!")); + sRef_setNullStateN (s, sRef_getNullState (uentry_getSref (ue))); + } + else { - s->nullstate = sRef_getNullState (uentry_getSref (ue)); + DPRINTF (("Skipping null null state!")); } - if (s->aliaskind == AK_IMPONLY - && (sRef_isExposed (s) || sRef_isObserver (s))) + if (s->aliaskind == AK_IMPONLY && (sRef_isExposed (s) || sRef_isObserver (s))) { s->oaliaskind = s->aliaskind = AK_IMPDEPENDENT; - } + } + if (sRef_isValid (uref)) + { + valueTable utable = uref->state; + valueTable_free (s->state); + s->state = valueTable_copy (utable); + } } static void sRef_setStateFromAbstractUentry (sRef s, uentry ue) { llassert (sRef_isValid (s)); - + sRef_checkMutable (s); + sRef_setPartsFromUentry (s, ue); s->aliaskind = alkind_derive (s->aliaskind, uentry_getAliasKind (ue)); @@ -6215,6 +6510,7 @@ sRef_setStateFromUentry (sRef s, uentry ue) { sstate defstate; + sRef_checkMutable (s); llassert (sRef_isValid (s)); sRef_setPartsFromUentry (s, ue); @@ -6278,7 +6574,7 @@ sRef_setStateFromUentry (sRef s, uentry ue) } /*@exposed@*/ sRef -sRef_constructPointer (sRef t) +sRef_constructPointer (/*@exposed@*/ sRef t) /*@modifies t@*/ { return sRef_buildPointer (t); @@ -6294,12 +6590,11 @@ static /*@exposed@*/ sRef sRef_constructDerefAux (sRef t, bool isdead) ** if there is a derived t[?], return that. Otherwise, *t. */ - s = sRef_findDerivedArrayFetch (t, FALSE, 0, isdead); if (sRef_isValid (s)) { - return s; + return s; } else { @@ -6310,7 +6605,6 @@ static /*@exposed@*/ sRef sRef_constructDerefAux (sRef t, bool isdead) ** in checking complete destruction. */ - if (isdead) { /* ret->defstate = SS_UNKNOWN; */ @@ -6341,21 +6635,20 @@ sRef sRef_constructDeadDeref (sRef t) static sRef sRef_constructPointerAux (/*@notnull@*/ /*@exposed@*/ sRef t) { - sRef s = sRef_new (); + sRef s = sRef_newRef (); ctype rt = t->type; ctype st; s->kind = SK_PTR; s->info = (sinfo) dmalloc (sizeof (*s->info)); - s->info->ref = t; + s->info->ref = t; /* sRef_copy (t); */ /*@i32*/ if (ctype_isRealAP (rt)) { s->type = ctype_baseArrayPtr (rt); } - st = ctype_realType (s->type); - + st = ctype_realType (s->type); if (t->defstate == SS_UNDEFINED) { @@ -6385,6 +6678,8 @@ sRef_constructPointerAux (/*@notnull@*/ /*@exposed@*/ sRef t) s->oaliaskind = s->aliaskind; s->oexpkind = s->expkind; + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); return s; } @@ -6398,7 +6693,7 @@ sRef_clearDerived (sRef s) { if (sRef_isValid (s)) { - sRefSet_clear (s->deriv); + sRefSet_clear (s->deriv); } } @@ -6420,9 +6715,8 @@ sRef_clearDerivedComplete (sRef s) } } -/*@exposed@*/ sRef -sRef_makePointer (sRef s) - /*@modifies s@*/ +/*@exposed@*/ sRef sRef_makePointer (/*@exposed@*/ sRef s) + /*@modifies s@*/ { sRef res = sRef_buildPointer (s); @@ -6440,7 +6734,7 @@ sRef_makeAnyArrayFetch (/*@exposed@*/ sRef arr) if (sRef_isAddress (arr)) { - return (arr->info->ref); + return (arr->info->ref); } else { @@ -6449,13 +6743,13 @@ sRef_makeAnyArrayFetch (/*@exposed@*/ sRef arr) } /*@exposed@*/ sRef -sRef_makeArrayFetch (sRef arr) +sRef_makeArrayFetch (/*@exposed@*/ sRef arr) { return (sRef_buildArrayFetch (arr)); } /*@exposed@*/ sRef -sRef_makeArrayFetchKnown (sRef arr, int i) +sRef_makeArrayFetchKnown (/*@exposed@*/ sRef arr, int i) { return (sRef_buildArrayFetchKnown (arr, i)); } @@ -6469,9 +6763,9 @@ sRef_makeField (sRef rec, /*@dependent@*/ cstring f) } /*@exposed@*/ sRef -sRef_makeNCField (sRef rec, /*@dependent@*/ cstring f) +sRef_makeNCField (/*@exposed@*/ sRef rec, /*@dependent@*/ cstring f) { - return (sRef_buildNCField (rec, f)); + return (sRef_buildNCField (rec, f)); } /*@only@*/ cstring @@ -6645,9 +6939,6 @@ sRef_copyState (sRef s1, sRef s2) { s1->defstate = s2->defstate; - s1->nullstate = s2->nullstate; - s1->nullinfo = alinfo_update (s1->nullinfo, s2->nullinfo); - /* start modifications */ s1->bufinfo.bufstate = s2->bufinfo.bufstate; s1->bufinfo.len = s2->bufinfo.len; @@ -6655,19 +6946,26 @@ sRef_copyState (sRef s1, sRef s2) /* end modifications */ s1->aliaskind = s2->aliaskind; - s1->aliasinfo = alinfo_update (s1->aliasinfo, s2->aliasinfo); + s1->aliasinfo = stateInfo_update (s1->aliasinfo, s2->aliasinfo); s1->expkind = s2->expkind; - s1->expinfo = alinfo_update (s1->expinfo, s2->expinfo); + s1->expinfo = stateInfo_update (s1->expinfo, s2->expinfo); + + s1->nullstate = s2->nullstate; + s1->nullinfo = stateInfo_update (s1->nullinfo, s2->nullinfo); + /*@-mustfree@*/ + /*@i834 don't free it: valueTable_free (s1->state); */ + /*@i32@*/ s1->state = valueTable_copy (s2->state); + /*@=mustfree@*/ s1->safe = s2->safe; - } + } } sRef sRef_makeNew (ctype ct, sRef t, cstring name) { - sRef s = sRef_new (); + sRef s = sRef_newRef (); s->kind = SK_NEW; s->type = ct; @@ -6677,33 +6975,40 @@ sRef_makeNew (ctype ct, sRef t, cstring name) s->aliaskind = t->aliaskind; s->oaliaskind = s->aliaskind; - s->nullstate = t->nullstate; - + s->expkind = t->expkind; s->oexpkind = s->expkind; - + s->info = (sinfo) dmalloc (sizeof (*s->info)); s->info->fname = name; /* start modifications */ s->bufinfo.bufstate = t->bufinfo.bufstate; /* end modifications */ + + llassert (valueTable_isUndefined (s->state)); + s->state = valueTable_copy (t->state); - return s; + DPRINTF (("==> Copying state: %s", valueTable_unparse (s->state))); + DPRINTF (("==> new: %s", sRef_unparseFull (s))); + return s; } sRef sRef_makeType (ctype ct) { - sRef s = sRef_new (); - + sRef s = sRef_newRef (); + + sRef_checkMutable (s); + s->kind = SK_TYPE; s->type = ct; s->defstate = SS_UNKNOWN; s->aliaskind = AK_UNKNOWN; - s->nullstate = NS_UNKNOWN; + sRef_setNullStateN (s, NS_UNKNOWN); + /* start modification */ s->bufinfo.bufstate = BB_NOTNULLTERMINATED; /* end modification */ @@ -6719,24 +7024,28 @@ sRef_makeType (ctype ct) sRef_mergeStateQuiet (s, uentry_getSref (ue)); } } - - s->oaliaskind = s->aliaskind; + + s->oaliaskind = s->aliaskind; s->oexpkind = s->expkind; + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); + DPRINTF (("Create: %s", sRef_unparseFull (s))); return s; } sRef sRef_makeConst (ctype ct) { - sRef s = sRef_new (); + sRef s = sRef_newRef (); s->kind = SK_CONST; s->type = ct; s->defstate = SS_UNKNOWN; s->aliaskind = AK_UNKNOWN; - s->nullstate = NS_UNKNOWN; + sRef_setNullStateN (s, NS_UNKNOWN); + /* start modification */ s->bufinfo.bufstate = BB_NULLTERMINATED; /* end modification */ @@ -6752,11 +7061,14 @@ sRef_makeConst (ctype ct) sRef_mergeStateQuiet (s, uentry_getSref (te)); } } - + s->oaliaskind = s->aliaskind; s->oexpkind = s->expkind; + llassert (valueTable_isUndefined (s->state)); + s->state = context_createValueTable (s); + return s; } @@ -6777,20 +7089,24 @@ bool sRef_hasName (sRef s) } case SK_PARAM: { - uentry u = uentryList_getN (context_getParams (), - s->info->paramno); - - return (uentry_hasName (u)); + if (s->info->paramno >= 0) + { + uentry u = uentryList_getN (context_getParams (), + s->info->paramno); + + return (uentry_hasName (u)); + } + else + { + llassert (s->info->paramno == PARAMUNKNOWN); + return FALSE; + } } default: return TRUE; } } -bool sRef_sameObject (sRef s1, sRef s2) -{ - return sRef_sameName(s1, s2); -} bool sRef_sameName (sRef s1, sRef s2) { @@ -6816,13 +7132,20 @@ sRef_sameName (sRef s1, sRef s2) { if (context_inFunctionLike ()) { - uentry u1 = usymtab_getRefQuiet (s1->info->cvar->lexlevel, - s1->info->cvar->index); - uentry u2 = uentryList_getN (context_getParams (), - s2->info->paramno); - - return (cstring_equalFree (uentry_getName (u1), - uentry_getName (u2))); + if (s2->info->paramno != PARAMUNKNOWN) + { + uentry u1 = usymtab_getRefQuiet (s1->info->cvar->lexlevel, + s1->info->cvar->index); + uentry u2 = uentryList_getN (context_getParams (), + s2->info->paramno); + + return (cstring_equalFree (uentry_getName (u1), + uentry_getName (u2))); + } + else + { + return s1->info->paramno == PARAMUNKNOWN; + } } else { @@ -6843,14 +7166,21 @@ sRef_sameName (sRef s1, sRef s2) { if (context_inFunctionLike ()) { - uentry u1 = uentryList_getN (context_getParams (), - s1->info->paramno); - uentry u2 = usymtab_getRefQuiet (s2->info->cvar->lexlevel, - s2->info->cvar->index); - - - return (cstring_equalFree (uentry_getName (u1), - uentry_getName (u2))); + if (s1->info->paramno == PARAMUNKNOWN) + { + return FALSE; + } + else + { + uentry u1 = uentryList_getN (context_getParams (), + s1->info->paramno); + uentry u2 = usymtab_getRefQuiet (s2->info->cvar->lexlevel, + s2->info->cvar->index); + + + return (cstring_equalFree (uentry_getName (u1), + uentry_getName (u2))); + } } else { @@ -6967,6 +7297,7 @@ sRef_storeState (sRef s) { if (sRef_isInvalid (s)) return; + sRef_checkMutable (s); s->oaliaskind = s->aliaskind; s->oexpkind = s->expkind; } @@ -7010,7 +7341,7 @@ sRef_resetState (sRef s) { changed = TRUE; s->aliaskind = s->oaliaskind; - } + } } if (changed) @@ -7090,9 +7421,9 @@ sRef_fixDirectBase (sRef s, sRef base) if (sRef_isInvalid (s)) { - return sRef_undefined; + return sRef_undefined; } - + switch (s->kind) { case SK_ARRAYFETCH: @@ -7144,7 +7475,7 @@ sRef_showRefLost (sRef s) if (sRef_hasAliasInfoLoc (s)) { llgenindentmsg (cstring_makeLiteral ("Original reference lost"), - sRef_getAliasInfoLoc (s)); + sRef_getAliasInfoLoc (s)); } } @@ -7218,12 +7549,38 @@ sRef_showExpInfo (sRef s) } } +void +sRef_showMetaStateInfo (sRef s, cstring key) +{ + stateValue val; + metaStateInfo minfo = context_lookupMetaStateInfo (key); + + llassert (sRef_isValid (s)); + llassert (valueTable_isDefined (s->state)); + llassert (metaStateInfo_isDefined (minfo)); + + val = valueTable_lookup (s->state, key); + + if (stateValue_hasLoc (val)) + { + llgenindentmsg + (message ("Meta state %qbecomes %s", sRef_unparseOpt (s), + metaStateInfo_unparseValue (minfo, stateValue_getValue (val))), + stateValue_getLoc (val)); + } +} + void sRef_showNullInfo (sRef s) { + DPRINTF (("Show null info: %s", sRef_unparseFull (s))); + if (sRef_hasNullInfoLoc (s) && sRef_isKnown (s)) { - switch (s->nullstate) + DPRINTF (("has null info: %s", + fileloc_unparse (sRef_getNullInfoLoc (s)))); + + switch (sRef_getNullState (s)) { case NS_CONSTNULL: { @@ -7275,7 +7632,7 @@ sRef_showNullInfo (sRef s) llgenindentmsg (message (" Storage %q becomes %s", sRef_unparse (s), - nstate_unparse (s->nullstate)), + nstate_unparse (sRef_getNullState (s))), sRef_getNullInfoLoc (s)); break; @@ -7315,13 +7672,11 @@ sRef_mergeNullState (sRef s, nstate n) { nstate old; - old = s->nullstate; + old = sRef_getNullState (s); if (n != old && n != NS_UNKNOWN) - { - - s->nullstate = n; - s->nullinfo = alinfo_updateLoc (s->nullinfo, g_currentloc); + { + sRef_setNullState (s, n, g_currentloc); } } else @@ -7334,8 +7689,8 @@ bool sRef_possiblyNull (sRef s) { if (sRef_isValid (s)) - { - if (s->nullstate == NS_ABSNULL) + { + if (sRef_getNullState (s) == NS_ABSNULL) { ctype rct = ctype_realType (s->type); @@ -7360,7 +7715,7 @@ sRef_possiblyNull (sRef s) } else { - return nstate_possiblyNull (s->nullstate); + return nstate_possiblyNull (sRef_getNullState (s)); } } @@ -7524,7 +7879,7 @@ sRef_perhapsNull (sRef s) { if (sRef_isValid (s)) { - if (s->nullstate == NS_ABSNULL) + if (sRef_getNullState (s) == NS_ABSNULL) { ctype rct = ctype_realType (s->type); @@ -7549,7 +7904,7 @@ sRef_perhapsNull (sRef s) } else { - return nstate_perhapsNull (s->nullstate); + return nstate_perhapsNull (sRef_getNullState (s)); } } @@ -7564,7 +7919,7 @@ bool sRef_definitelyNull (sRef s) { return (sRef_isValid (s) - && (s->nullstate == NS_DEFNULL || s->nullstate == NS_CONSTNULL)); + && (sRef_getNullState (s) == NS_DEFNULL || sRef_getNullState (s) == NS_CONSTNULL)); } /* @@ -7580,7 +7935,7 @@ sRef_setDerivNullState (sRef set, sRef guide, nstate ns) if (sRef_isValid (deriv)) { - deriv->nullstate = ns; + sRef_setNullStateN (deriv, ns); } } } @@ -7748,9 +8103,9 @@ sRef_aliasCheckSimplePred (sRefTest predf, sRef s) ** a great idea. ;( */ - if ((*predf)(cref)) { + DPRINTF (("Checking alias: %s", sRef_unparseFull (cref))); sRefSet_free (aliases); return TRUE; } @@ -7778,8 +8133,8 @@ sRef_aliasCompleteSimplePred (bool (predf) (sRef), sRef s) { if (sRef_isValid (current)) { - current = sRef_updateSref (current); - if ((*predf)(current)) result = TRUE; + current = sRef_updateSref (current); + if ((*predf)(current)) result = TRUE; } } end_sRefSet_realElements; @@ -7794,6 +8149,8 @@ sRef_aliasSetComplete (void (predf) (sRef, fileloc), sRef s, fileloc loc) aliases = usymtab_allAliases (s); + DPRINTF (("All aliases: %s", sRefSet_unparseFull (aliases))); + (*predf)(s, loc); sRefSet_realElements (aliases, current) @@ -7801,7 +8158,7 @@ sRef_aliasSetComplete (void (predf) (sRef, fileloc), sRef s, fileloc loc) if (sRef_isValid (current)) { current = sRef_updateSref (current); - ((*predf)(current, loc)); + ((*predf)(current, loc)); } } end_sRefSet_realElements; @@ -7831,7 +8188,7 @@ sRef_aliasSetCompleteParam (void (predf) (sRef, alkind, fileloc), sRef s, if (sRef_isValid (current)) { current = sRef_updateSref (current); - ((*predf)(current, kind, loc)); + ((*predf)(current, kind, loc)); } } end_sRefSet_realElements; @@ -7875,7 +8232,6 @@ sRef_innerAliasSetComplete (void (predf) (sRef, fileloc), sRef s, fileloc loc) if (ctype_equal (ct, sRef_getType (current))) { sRef ptr = sRef_makePointer (current); - ((*predf)(ptr, loc)); } } @@ -8085,7 +8441,7 @@ static void sRef_combineExKinds (/*@notnull@*/ sRef res, /*@notnull@*/ sRef othe } else if (a1 == XO_UNKNOWN) { - res->expinfo = alinfo_update (res->expinfo, other->expinfo); + res->expinfo = stateInfo_update (res->expinfo, other->expinfo); res->expkind = a2; } else @@ -8109,11 +8465,13 @@ static void alkind ares = sRef_getAliasKind (res); alkind aother = sRef_getAliasKind (other); + sRef_checkMutable (res); + if (alkind_isDependent (ares)) { if (aother == AK_KEPT) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); res->aliaskind = AK_KEPT; } else @@ -8121,6 +8479,7 @@ static void if (aother == AK_LOCAL || aother == AK_STATIC || alkind_isTemp (aother)) { + DPRINTF (("Setting dependent: %s", sRef_unparseFull (res))); res->aliaskind = AK_DEPENDENT; } } @@ -8135,7 +8494,8 @@ static void { if (ares == AK_LOCAL || ares == AK_STATIC || alkind_isTemp (ares)) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + DPRINTF (("Setting dependent: %s", sRef_unparseFull (res))); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); res->aliaskind = AK_DEPENDENT; } } @@ -8149,7 +8509,7 @@ static void ** don't generate errors */ - if (usymtab_isAltProbablyDeepNull (res)) + if (usymtab_isAltDefinitelyNullDeep (res)) { res->aliaskind = ares; } @@ -8167,9 +8527,9 @@ static void ** don't generate errors */ - if (usymtab_isProbableDeepNull (other)) + if (usymtab_isDefinitelyNullDeep (other)) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); res->aliaskind = aother; } else @@ -8185,7 +8545,7 @@ static void else if (aother == AK_NEWREF && ares == AK_REFCOUNTED && sRef_isConst (res)) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); res->aliaskind = AK_NEWREF; } else if (sRef_isLocalVar (res) @@ -8224,7 +8584,7 @@ static void if (ares == AK_KEPT || aother == AK_KEPT) { sRef_maybeKill (res, loc); - } + } } } else @@ -8258,6 +8618,8 @@ static void alkind ares = sRef_getAliasKind (res); alkind aother = sRef_getAliasKind (other); + sRef_checkMutable (res); + if (alkind_equal (ares, aother) || aother == AK_UNKNOWN || aother == AK_ERROR) @@ -8272,7 +8634,7 @@ static void else if (ares == AK_UNKNOWN || ares == AK_ERROR || sRef_isStateUndefined (res)) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); res->aliaskind = aother; } else if (sRef_isStateUndefined (other)) @@ -8286,7 +8648,7 @@ static void { if (ares != AK_LOCAL) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); } res->aliaskind = AK_LOCAL; @@ -8296,7 +8658,7 @@ static void { if (ares != AK_FRESH) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); } res->aliaskind = AK_FRESH; @@ -8306,7 +8668,7 @@ static void { if (ares != AK_KEEP) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); } res->aliaskind = AK_KEEP; @@ -8316,7 +8678,7 @@ static void { if (ares != AK_STACK) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); } res->aliaskind = AK_STACK; @@ -8328,7 +8690,7 @@ static void { if (ares != AK_LOCAL) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); } res->aliaskind = AK_LOCAL; @@ -8343,7 +8705,7 @@ static void { if (ares != AK_FRESH) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); res->aliaskind = AK_FRESH; } } @@ -8357,7 +8719,7 @@ static void if (!sRef_isFresh (res)) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); } res->aliaskind = AK_FRESH; @@ -8367,7 +8729,7 @@ static void { if (!alkind_isStatic (ares)) { - res->aliasinfo = alinfo_update (res->aliasinfo, other->aliasinfo); + res->aliasinfo = stateInfo_update (res->aliasinfo, other->aliasinfo); res->aliaskind = AK_STATIC; } } @@ -8384,6 +8746,8 @@ static void sRef_combineDefState (/*@notnull@*/ sRef res, sstate s2 = other->defstate; bool flip = FALSE; + sRef_checkMutable (res); + if (s1 == s2 || s2 == SS_UNKNOWN) { ; @@ -8430,7 +8794,7 @@ static void sRef_combineDefState (/*@notnull@*/ sRef res, if (flip) { - res->definfo = alinfo_update (res->definfo, other->definfo); + res->definfo = stateInfo_update (res->definfo, other->definfo); res->defstate = s2; } } @@ -8459,10 +8823,10 @@ extern /*@exposed@*/ sRef sRef_makeArrow (sRef s, /*@dependent@*/ cstring f) { sRef p; sRef ret; - - p = sRef_makePointer (s); + + p = sRef_makePointer (s); ret = sRef_makeField (p, f); - return ret; + return ret; } extern /*@exposed@*/ sRef sRef_buildArrow (sRef s, cstring f) @@ -8492,6 +8856,7 @@ static /*@null@*/ sinfo sinfo_copy (/*@notnull@*/ sRef s) case SK_PARAM: ret = (sinfo) dmalloc (sizeof (*ret)); ret->paramno = s->info->paramno; + llassert (ret->paramno >= -1); break; case SK_ARRAYFETCH: @@ -8499,13 +8864,13 @@ static /*@null@*/ sinfo sinfo_copy (/*@notnull@*/ sRef s) ret->arrayfetch = (ainfo) dmalloc (sizeof (*ret->arrayfetch)); ret->arrayfetch->indknown = s->info->arrayfetch->indknown; ret->arrayfetch->ind = s->info->arrayfetch->ind; - ret->arrayfetch->arr = s->info->arrayfetch->arr; + ret->arrayfetch->arr = s->info->arrayfetch->arr; /* sRef_copy (s->info->arrayfetch->arr); */ /*@i32@*/ break; case SK_FIELD: ret = (sinfo) dmalloc (sizeof (*ret)); ret->field = (fldinfo) dmalloc (sizeof (*ret->field)); - ret->field->rec = s->info->field->rec; + ret->field->rec = s->info->field->rec; /* sRef_copy (s->info->field->rec); */ /*@i32@*/ ret->field->field = s->info->field->field; break; @@ -8519,14 +8884,14 @@ static /*@null@*/ sinfo sinfo_copy (/*@notnull@*/ sRef s) case SK_DERIVED: case SK_EXTERNAL: ret = (sinfo) dmalloc (sizeof (*ret)); - ret->ref = s->info->ref; + ret->ref = s->info->ref; /* Ref_copy (s->info->ref); */ break; case SK_CONJ: ret = (sinfo) dmalloc (sizeof (*ret)); ret->conj = (cjinfo) dmalloc (sizeof (*ret->conj)); - ret->conj->a = s->info->conj->a; - ret->conj->b = s->info->conj->b; + ret->conj->a = s->info->conj->a; /* sRef_copy (s->info->conj->a); */ + ret->conj->b = s->info->conj->b; /* sRef_copy (s->info->conj->b);*/ break; case SK_SPECIAL: ret = (sinfo) dmalloc (sizeof (*ret)); @@ -8571,6 +8936,7 @@ static /*@null@*/ sinfo sinfo_fullCopy (/*@notnull@*/ sRef s) case SK_PARAM: ret = (sinfo) dmalloc (sizeof (*ret)); ret->paramno = s->info->paramno; + llassert (ret->paramno >= -1); break; case SK_ARRAYFETCH: @@ -8644,6 +9010,7 @@ static void case SK_PARAM: res->info->paramno = other->info->paramno; + llassert (res->info->paramno >= -1); break; case SK_ARRAYFETCH: @@ -8698,6 +9065,7 @@ static void sinfo_free (/*@special@*/ /*@temp@*/ /*@notnull@*/ sRef s) switch (s->kind) { case SK_CVAR: + DPRINTF (("Free sinfo: [%p]", s->info->cvar)); sfree (s->info->cvar); break; @@ -8705,10 +9073,12 @@ static void sinfo_free (/*@special@*/ /*@temp@*/ /*@notnull@*/ sRef s) break; case SK_ARRAYFETCH: + DPRINTF (("Free sinfo: [%p]", s->info->arrayfetch)); sfree (s->info->arrayfetch); break; case SK_FIELD: + DPRINTF (("Free sinfo: [%p]", s->info->field)); sfree (s->info->field); break; @@ -8718,10 +9088,11 @@ static void sinfo_free (/*@special@*/ /*@temp@*/ /*@notnull@*/ sRef s) case SK_PTR: case SK_ADR: case SK_DERIVED: - case SK_EXTERNAL: + case SK_EXTERNAL: /*@i32 is copy now! */ break; case SK_CONJ: + DPRINTF (("Free sinfo: [%p]", s->info->conj)); sfree (s->info->conj); break; @@ -8735,6 +9106,10 @@ static void sinfo_free (/*@special@*/ /*@temp@*/ /*@notnull@*/ sRef s) break; } + if (s->info != NULL) { + DPRINTF (("Free sinfo: [%p]", s->info)); + } + sfree (s->info); } @@ -8814,10 +9189,18 @@ static speckind speckind_fromInt (int i) return ((speckind) i); } + +static void sRef_updateNullState (sRef res, sRef other) + /*@modifies res@*/ +{ + res->nullstate = other->nullstate; + res->nullinfo = stateInfo_update (res->nullinfo, other->nullinfo); +} + void sRef_combineNullState (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other) { - nstate n1 = res->nullstate; - nstate n2 = other->nullstate; + nstate n1 = sRef_getNullState (res); + nstate n2 = sRef_getNullState (other); bool flip = FALSE; nstate nn = n1; @@ -8867,7 +9250,7 @@ void sRef_combineNullState (/*@notnull@*/ sRef res, /*@notnull@*/ sRef other) if (flip) { - res->nullinfo = alinfo_update (res->nullinfo, other->nullinfo); + res->nullinfo = stateInfo_update (res->nullinfo, other->nullinfo); } res->nullstate = nn; @@ -8877,7 +9260,7 @@ cstring sRef_nullMessage (sRef s) { llassert (sRef_isValid (s)); - switch (s->nullstate) + switch (sRef_getNullState (s)) { case NS_DEFNULL: case NS_CONSTNULL: @@ -9091,8 +9474,8 @@ bool sRef_isFresh (sRef s) bool sRef_isDefinitelyNull (sRef s) { - return (sRef_isValid (s) && (s->nullstate == NS_DEFNULL - || s->nullstate == NS_CONSTNULL)); + return (sRef_isValid (s) && (sRef_getNullState (s) == NS_DEFNULL + || sRef_getNullState (s) == NS_CONSTNULL)); } bool sRef_isAllocated (sRef s) @@ -9105,15 +9488,213 @@ bool sRef_isStack (sRef s) return (sRef_isValid (s) && (s->aliaskind == AK_STACK)); } -extern bool sRef_isNotNull (sRef s) +bool sRef_isNotNull (sRef s) +{ + return (sRef_isValid(s) && (sRef_getNullState (s) == NS_MNOTNULL + || sRef_getNullState (s) == NS_NOTNULL)); +} + +alkind sRef_getAliasKind (sRef s) +{ + if (sRef_isValid(s)) { + llassert (alkind_isValid (s->aliaskind)); + return s->aliaskind; + } + + return AK_ERROR; +} + +nstate sRef_getNullState (sRef s) +{ + if (sRef_isValid (s)) { + llassert (nstate_isValid (s->nullstate)); + return s->nullstate; + } + + return NS_UNKNOWN; +} + +void sRef_reflectAnnotation (sRef s, annotationInfo a, fileloc loc) +{ + if (sRef_isValid (s)) + { + if (!valueTable_isDefined (s->state)) + { + s->state = valueTable_create (1); + valueTable_insert (s->state, + cstring_copy (metaStateInfo_getName (annotationInfo_getState (a))), + stateValue_create (annotationInfo_getValue (a), stateInfo_makeLoc (loc))); + } + else + { + DPRINTF (("reflect loc: %s", fileloc_unparse (loc))); + valueTable_update + (s->state, + metaStateInfo_getName (annotationInfo_getState (a)), + stateValue_create (annotationInfo_getValue (a), stateInfo_makeLoc (loc))); + DPRINTF (("state info: %s", stateInfo_unparse (stateInfo_makeLoc (loc)))); + DPRINTF (("sref: %s", sRef_unparse (s))); + DPRINTF (("sref: %s", sRef_unparseFull (s))); + } + } +} + +void sRef_setMetaStateValueComplete (sRef s, cstring key, int value, fileloc loc) +{ + sRefSet aliases = usymtab_allAliases (s); + + sRef_setMetaStateValue (s, key, value, loc); + + sRefSet_realElements (aliases, current) + { + if (sRef_isValid (current)) + { + current = sRef_updateSref (current); + sRef_setMetaStateValue (current, key, value, loc); + } + } end_sRefSet_realElements ; + + sRefSet_free (aliases); +} + +void sRef_setMetaStateValue (sRef s, cstring key, int value, fileloc loc) +{ + sRef_checkMutable (s); + + if (sRef_isValid (s)) + { + if (!valueTable_isDefined (s->state)) + { + DPRINTF (("inserting state: %s: %s %d", sRef_unparse (s), key, value)); + s->state = valueTable_create (1); + valueTable_insert (s->state, cstring_copy (key), + stateValue_create (value, stateInfo_makeLoc (loc))); + } + else + { + DPRINTF (("Updating state: %s: %s %d / %s", sRef_unparse (s), key, value, + fileloc_unparse (loc))); + valueTable_update + (s->state, key, stateValue_create (value, stateInfo_makeLoc (loc))); + DPRINTF (("After: %s", sRef_unparseFull (s))); + } + } +} + +bool sRef_checkMetaStateValue (sRef s, cstring key, int value) +{ + if (sRef_isValid (s)) + { + if (valueTable_isDefined (s->state)) + { + stateValue val; + + DPRINTF (("check state: %s: %s %d", sRef_unparse (s), key, value)); + + val = valueTable_lookup (s->state, key); + llassert (stateValue_isDefined (val)); + return (stateValue_isError (val) + || stateValue_getValue (val) == value); + } + else + { + return TRUE; + } + } + else + { + return TRUE; + } +} + +/*@observer@*/ stateValue sRef_getMetaStateValue (sRef s, cstring key) +{ + if (sRef_isValid (s)) + { + if (valueTable_isDefined (s->state)) + { + stateValue val; + + val = valueTable_lookup (s->state, key); + llassert (stateValue_isDefined (val)); + return val; + } + else + { + return stateValue_undefined; + } + } + else + { + return stateValue_undefined; + } +} + +/*@observer@*/ valueTable sRef_getValueTable (sRef s) +{ + DPRINTF (("Get value table: %s", sRef_unparse (s))); + + if (sRef_isValid (s)) + { + llassert (sRef_isValid (s)); + DPRINTF (("Value table: %s", valueTable_unparse (s->state))); + return s->state; + } + else + { + DPRINTF (("No value table!")); + return valueTable_undefined; + } +} + +bool sRef_makeStateSpecial (sRef s) +{ + /* + ** Default defined state can be made special. + */ + + llassert (sRef_isValid (s)); /*@i523 why doesn't null-checking work!??? */ + + if (s->defstate == SS_UNKNOWN || s->defstate == SS_DEFINED || s->defstate == SS_SPECIAL) + { + s->aliaskind = AK_IMPTEMP; + s->defstate = SS_SPECIAL; + DPRINTF (("Made special: %s", sRef_unparseFull (s))); + return TRUE; + } + else + { + s->aliaskind = AK_IMPTEMP; + s->defstate = SS_SPECIAL; + return FALSE; + } +} + +void sRef_markImmutable (sRef s) { - return (sRef_isValid(s) && (s->nullstate == NS_MNOTNULL - || s->nullstate == NS_NOTNULL)); + if (sRef_isValid (s)) + { + DPRINTF (("Mark immutable: %s", sRef_unparseFull (s))); + s->immut = TRUE; + } +} + +bool sRef_definitelyNullContext (sRef s) +{ + return (sRef_definitelyNull (s) + || usymtab_isDefinitelyNullDeep (s)); +} + +bool sRef_definitelyNullAltContext (sRef s) +{ + return (sRef_definitelyNull (s) + || usymtab_isAltDefinitelyNullDeep (s)); } + /* start modifications */ -struct _bbufinfo sRef_getNullTerminatedState (sRef p_s) { - struct _bbufinfo BUFSTATE_UNKNOWN; +struct s_bbufinfo sRef_getNullTerminatedState (sRef p_s) { + struct s_bbufinfo BUFSTATE_UNKNOWN; BUFSTATE_UNKNOWN.bufstate = BB_NOTNULLTERMINATED; BUFSTATE_UNKNOWN.size = 0; BUFSTATE_UNKNOWN.len = 0; @@ -9193,3 +9774,9 @@ long int sRef_getArraySize (sRef p_s) /*@*/ { + + + + + + diff --git a/src/sRefList.c b/src/sRefList.c new file mode 100644 index 0000000..d32654f --- /dev/null +++ b/src/sRefList.c @@ -0,0 +1,143 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** sRefList.c (from slist_template.c) +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +sRefList +sRefList_new () +{ + return sRefList_undefined; +} + +static /*@only@*/ /*@notnull@*/ sRefList +sRefList_newEmpty (void) +{ + sRefList s = (sRefList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = sRefListBASESIZE; + s->elements = (sRef *) dmalloc (sizeof (*s->elements) * sRefListBASESIZE); + + return (s); +} + +/*@only@*/ sRefList sRefList_single (sRef el) +{ + sRefList res = sRefList_newEmpty (); + res = sRefList_add (res, el); + return res; +} + +static void +sRefList_grow (/*@notnull@*/ sRefList s) +{ + int i; + sRef *oldelements = s->elements; + + s->nspace += sRefListBASESIZE; + + s->elements = (sRef *) dmalloc (sizeof (*s->elements) * (s->nelements + s->nspace)); + + for (i = 0; i < s->nelements; i++) + { + s->elements[i] = oldelements[i]; + } + + sfree (oldelements); +} + +/*@notnull@*/ sRefList sRefList_add (sRefList s, sRef el) +{ + if (sRefList_isUndefined (s)) + { + s = sRefList_newEmpty (); + } + + if (s->nspace <= 0) + sRefList_grow (s); + + s->nspace--; + s->elements[s->nelements] = el; + s->nelements++; + + return (s); +} + +sRefList sRefList_copy (sRefList s) +{ + sRefList t = sRefList_new (); + + sRefList_elements (s, current) + { + t = sRefList_add (t, sRef_copy (current)); + } end_sRefList_elements; + + return t; +} + +/*@only@*/ cstring +sRefList_unparse (sRefList s) +{ + int i; + cstring st = cstring_undefined; + + if (sRefList_isDefined (s)) + { + for (i = 0; i < sRefList_size (s); i++) + { + if (i == 0) + { + st = message ("%q%q ", st, sRef_unparse (s->elements[i])); + } + else + st = message ("%q%q ", st, sRef_unparse (s->elements[i])); + } + } + + return st; +} + +int sRefList_size (sRefList s) +{ + if (sRefList_isUndefined (s)) return 0; + return s->nelements; +} + +void +sRefList_free (/*@only@*/ sRefList s) +{ + if (sRefList_isDefined (s)) + { + sfree (s->elements); + sfree (s); + } +} + + + + diff --git a/src/sRefSet.c b/src/sRefSet.c index 2bc16c9..9dc60f6 100644 --- a/src/sRefSet.c +++ b/src/sRefSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -60,7 +60,7 @@ sRefSet_single (/*@exposed@*/ sRef sr) s->elements = (sRef *) dmalloc (sizeof (*s->elements) * sRefSetBASESIZE); s->elements[0] = sr; - return (s); + return (s); } static void @@ -100,13 +100,13 @@ sRefSet_insert (sRefSet s, /*@exposed@*/ sRef el) llassert (s->elements != NULL); s->elements[s->entries] = el; - - s->entries++; + s->entries++; } else { - } - + ; + } + return s; } @@ -130,7 +130,7 @@ sRefSet_clearStatics (sRefSet s) if (sRefSet_isDefined (s)) { int i; - + for (i = 0; i < s->entries; i++) { sRef current = s->elements[i]; @@ -194,7 +194,7 @@ sRefSet_choose (sRefSet s) return (s->elements[0]); } -sRef +/*@exposed@*/ sRef sRefSet_mergeIntoOne (sRefSet s) { sRef res; @@ -211,10 +211,10 @@ sRefSet_mergeIntoOne (sRefSet s) { sRef tmp; - tmp = sRef_makeConj (res, s->elements[i]); - res = tmp; + tmp = sRef_makeConj (res, s->elements[i]); + res = tmp; } - + return res; } @@ -282,7 +282,7 @@ sRefSet_union (/*@returned@*/ sRefSet s1, sRefSet s2) if (sRefSet_isEmpty (s1)) { - s1 = sRefSet_copy (s1, s2); + s1 = sRefSet_copyInto (s1, s2); } else { @@ -308,7 +308,8 @@ sRefSet_unionExcept (/*@returned@*/ sRefSet s1, sRefSet s2, sRef ex) { if (sRef_same (el, ex)) { - } + ; + } else { s1 = sRefSet_insert (s1, el); @@ -421,8 +422,7 @@ sRefSet_levelPrune (sRefSet s, int lexlevel) ** s1 <- s2 */ -sRefSet - sRefSet_copy (/*@returned@*/ sRefSet s1, /*@exposed@*/ sRefSet s2) +sRefSet sRefSet_copyInto (/*@returned@*/ sRefSet s1, /*@exposed@*/ sRefSet s2) { int origentries; @@ -582,6 +582,12 @@ sRefSet_hasRealElement (sRefSet s) return FALSE; } +bool +sRefSet_containsSameObject (sRefSet s, sRef el) +{ + return (sRefSet_isElementCompare (sRef_sameObject, s, el)); +} + bool sRefSet_isSameMember (sRefSet s, sRef el) { @@ -776,6 +782,31 @@ sRefSet_unparseDebug (sRefSet s) return st; } +cstring +sRefSet_unparseFull (sRefSet s) +{ + int i; + cstring st = cstring_makeLiteral ("{"); + + if (sRefSet_isDefined (s)) + { + for (i = 0; i < sRefSet_size (s); i++) + { + if (i == 0) + { + st = message ("%q %q", st, sRef_unparseFull (s->elements[i])); + } + else + { + st = message ("%q, %q", st, sRef_unparseFull (s->elements[i])); + } + } + } + + st = message ("%q }", st); + return st; +} + void sRefSet_fixSrefs (sRefSet s) { @@ -790,7 +821,7 @@ sRefSet_fixSrefs (sRefSet s) if (sRef_isLocalVar (current)) { s->elements[i] = uentry_getSref (sRef_getUentry (current)); - } + } } } } @@ -839,13 +870,12 @@ sRefSet sRefSet_addIndirection (sRefSet s) sRefSet_allElements (s, el) { ctype ct = ctype_realType (sRef_getType (el)); - + if ((ctype_isArrayPtr (ct))) { sRef a = sRef_constructPointer (el); - t = sRefSet_insert (t, a); } } end_sRefSet_allElements; @@ -858,14 +888,13 @@ sRefSet sRefSet_accessField (sRefSet s, /*@observer@*/ cstring f) /* ** returns a NEW sRefSet containing references to all sRef's in s */ - + sRefSet t = sRefSet_new (); - sRefSet_allElements (s, el) { ctype ct = ctype_realType (sRef_getType (el)); - + if ((ctype_isStruct (ct) || ctype_isUnion (ct)) && (!uentry_isUndefined (uentryList_lookupField (ctype_getFields (ct), f)))) { @@ -996,3 +1025,12 @@ sRefSet_dump (sRefSet sl) return st; } +void +sRefSet_markImmutable (sRefSet s) +{ + sRefSet_allElements (s, el) + { + sRef_markImmutable (el); + } end_sRefSet_allElements; +} + diff --git a/src/sRefSetList.c b/src/sRefSetList.c index 536b879..37f426d 100644 --- a/src/sRefSetList.c +++ b/src/sRefSetList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/sRefTable.c b/src/sRefTable.c index fd36290..28afd5a 100644 --- a/src/sRefTable.c +++ b/src/sRefTable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -80,9 +80,9 @@ sRefTable_add (sRefTable s, /*@owned@*/ sRef el) llassert (s->elements != NULL); s->elements[s->entries] = el; + DPRINTF (("Adding to sRef table: [%p]", el)); s->entries++; - return s; } @@ -95,9 +95,11 @@ sRefTable_clear (sRefTable s) for (i = 0; i < s->entries; i++) { - sRef_free (s->elements[i]); + DPRINTF (("Table clear: [%p] %s", s->elements[i], sRef_unparseDebug (s->elements[i]))); + /* sRef_checkValid (s->elements[i]); */ + sRef_free (s->elements[i]); } - + s->nspace += s->entries; s->entries = 0; } @@ -137,6 +139,7 @@ sRefTable_free (/*@only@*/ sRefTable s) for (i = 0; i < s->entries; i++) { + DPRINTF (("Table free: [%p] %s", s->elements[i], sRef_unparse (s->elements[i]))); sRef_free (s->elements[i]); } diff --git a/src/scan.c b/src/scan.c index 05fce97..5ce90e9 100644 --- a/src/scan.c +++ b/src/scan.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -49,10 +49,8 @@ # include "scan.h" # include "scanline.h" -extern /*@external@*/ /*@unused@*/ YYSTYPE lsllval; - static /*@exposed@*/ ltoken LSLScanLookAhead (void); -static tsource *scanFile; /* file to scan */ +static inputStream scanFile; /* file to scan */ static o_ltoken TokenList[MAXLINE]; /* available tokens */ static int nextToken; /* next available token */ static int lastToken; /* next available slot */ @@ -81,17 +79,17 @@ ltoken LSLScanNextToken (void) lastToken = 0; lineNumber++; - line = tsource_nextLine (scanFile); + line = inputStream_nextLine (scanFile); if (line != (char *) 0) { - lscanLine (line); /* tokenize */ + lscanLine (line); /* tokenize */ nextToken = 0; return LSLScanNextToken (); } else { - return LSLScanEofToken (); + return LSLScanEofToken (); } } } @@ -106,7 +104,7 @@ LSLScanLookAhead (void) else { lastToken = 0; - line = tsource_nextLine (scanFile); + line = inputStream_nextLine (scanFile); if (line != (char *) 0) { @@ -142,7 +140,7 @@ LSLScanFreshToken (ltoken tok) } } -/*@exposed@*/ tsource *LSLScanSource (void) +/*@exposed@*/ inputStream LSLScanSource (void) { return scanFile; } @@ -154,7 +152,7 @@ LSLScanInit (void) } void -LSLScanReset (tsource *s) +LSLScanReset (inputStream s) { scanFile = s; lastToken = 0; diff --git a/src/scanline.c b/src/scanline.c index d972215..86519f4 100644 --- a/src/scanline.c +++ b/src/scanline.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -61,8 +61,8 @@ static void LocalUserError (/*@temp@*/ char *p_msg); static charClassData charClass[LASTCHAR + 1]; -static unsigned int colNumber; -static unsigned int startCol; +static int colNumber; +static int startCol; static bool reportEOL; static bool reportComments; @@ -606,8 +606,8 @@ lscanLine (char *currentLine) } ltoken_setCol (newToken, startCol); - ltoken_setLine (newToken, tsource_thisLineNumber (LSLScanSource ())); - ltoken_setFileName (newToken, tsource_fileName (LSLScanSource ())); + ltoken_setLine (newToken, inputStream_thisLineNumber (LSLScanSource ())); + ltoken_setFileName (newToken, inputStream_fileName (LSLScanSource ())); if (ltoken_getCode (newToken) == LST_COMMENTSYM) { @@ -653,8 +653,8 @@ LSLScanEofToken (void) lsymbol_fromChars ("E O F"), 0, TRUE)); ltoken_setCol (t, colNumber); - ltoken_setLine (t, tsource_thisLineNumber (LSLScanSource ())); - ltoken_setFileName (t, tsource_fileName (LSLScanSource ())); + ltoken_setLine (t, inputStream_thisLineNumber (LSLScanSource ())); + ltoken_setFileName (t, inputStream_fileName (LSLScanSource ())); return t; } @@ -667,10 +667,10 @@ LSLReportEolTokens (bool setting) static void LocalUserError (char *msg) { - tsource *s = LSLScanSource (); - llfatalerror (message ("%s:%u,%u: %s", - cstring_fromChars (tsource_fileName (s)), - tsource_thisLineNumber (s), colNumber, + inputStream s = LSLScanSource (); + llfatalerror (message ("%s:%d,%d: %s", + inputStream_fileName (s), + inputStream_thisLineNumber (s), colNumber, cstring_fromChars (msg))); } diff --git a/src/shift.c b/src/shift.c index 3dac621..b15a71d 100644 --- a/src/shift.c +++ b/src/shift.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/sigNodeSet.c b/src/sigNodeSet.c index 5435d58..74a5b42 100644 --- a/src/sigNodeSet.c +++ b/src/sigNodeSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/signature.y b/src/signature.y index 2eb6806..436f3dd 100644 --- a/src/signature.y +++ b/src/signature.y @@ -256,11 +256,10 @@ void lslerror (char *s) { llfatalbug (cstring_makeLiteral - ("There has been a problem parsing an LSL signature. This is believed to " - "result from a problem with gcc version 2.95 optimizations, " - "but it has not been confirmed. Please try rebuidling LCLint " - "without the -O option.")); - + ("There has been a problem in the parser with LSL signatures. This is believed to result " + "from a problem with bison v. 1.25. Please try rebuidling LCLint " + "using the pre-compiled grammar files by commenting out the " + "BISON= line in the top-level Makefile.")); } static void yyprint (FILE *file, int type, YYSTYPE value) diff --git a/src/sort.c b/src/sort.c index 7de1916..b52d5c0 100644 --- a/src/sort.c +++ b/src/sort.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -65,16 +65,12 @@ static void sort_addTupleMembers (sort p_tupleSort, sort p_strSort) static bool sort_isNewEntry (sortNode p_s) /*@*/ ; -static sort sort_enterNew (/*@special@*/ sortNode p_s) - /*@uses p_s.kind, p_s.name, p_s.members@*/ - /*@releases p_s.members@*/ +static sort sort_enterNew (/*@only@*/ sortNode p_s) /*@modifies internalState@*/ ; -static sort sort_enterGlobal (sortNode p_s) /*@modifies internalState@*/ ; +static sort sort_enterGlobal (/*@only@*/ sortNode p_s) /*@modifies internalState@*/ ; -static sort sort_enterNewForce (/*@special@*/ sortNode p_s) - /*@uses p_s.kind, p_s.name, p_s.members@*/ - /*@releases p_s.members@*/ +static sort sort_enterNewForce (/*@only@*/ sortNode p_s) /*@modifies internalState@*/ ; static void genPtrOps (sort p_baseSort, sort p_ptrSort, sort p_arraySort); @@ -131,7 +127,10 @@ static sort char_obj_ArrSort; /* This is used to uniqueize sort names, for anonymous C types */ static int sortUID = 1; -static /*@only@*/ /*@null@*/ sortNode *sortTable = (sortNode *) 0; +typedef /*@only@*/ sortNode o_sortNode; + +static /*@only@*/ /*@null@*/ o_sortNode *sortTable = (sortNode *) 0; + static int sortTableSize = 0; static int sortTableAlloc = 0; @@ -154,24 +153,6 @@ static /*@owned@*/ nameNode condNameNode; static /*@owned@*/ nameNode eqNameNode; static /*@owned@*/ nameNode neqNameNode; -static sortNode noSort; - -static sortNode HOFSort = -{ - SRT_HOF, - HOFSORTHANDLE, - lsymbol_undefined, - lsymbol_undefined, - FALSE, /* was lsymbolNULL */ - NOSORTHANDLE, - NOSORTHANDLE, - smemberInfo_undefined, - FALSE, - FALSE, - FALSE, - FALSE -}; - static ob_mstring sortKindName[] = { "FIRSTSORT", "NOSORT", "HOFSORT", @@ -184,11 +165,10 @@ static void smemberInfo_free (/*@null@*/ /*@only@*/ smemberInfo *mem) sfree (mem); } -static void sortNode_free (/*@special@*/ sortNode sn) - /*@uses sn.members@*/ - /*@releases sn.members@*/ +static void sortNode_free (/*@only@*/ sortNode sn) { - smemberInfo_free (sn.members); + smemberInfo_free (sn->members); + sfree (sn); } void @@ -203,11 +183,6 @@ sort_destroyMod (void) { int i; - for (i = 0; i < sortTableSize; i++) - { - sortNode_free (sortTable[i]); - } - nameNode_free (arrayRefNameNode); nameNode_free (ptr2arrayNameNode); nameNode_free (deRefNameNode); @@ -218,6 +193,11 @@ sort_destroyMod (void) nameNode_free (eqNameNode); nameNode_free (neqNameNode); + for (i = 0; i < sortTableSize; i++) + { + sortNode_free (sortTable[i]); + } + sfree (sortTable); /*@-branchstate@*/ } @@ -235,20 +215,21 @@ sort_makeHOFSort (sort base) sortNode outSort; sort handle; - outSort.kind = SRT_HOF; - outSort.name = cstring_toSymbol (message ("_HOF_sort_%d", sortTableSize)); - outSort.tag = lsymbol_undefined; - outSort.baseSort = base; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.imported = context_inImport (); - outSort.mutable = FALSE; - outSort.abstract = FALSE; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_HOF; + outSort->name = cstring_toSymbol (message ("_HOF_sort_%d", sortTableSize)); + outSort->tag = lsymbol_undefined; + outSort->baseSort = base; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->imported = context_inImport (); + outSort->mutable = FALSE; + outSort->abstract = FALSE; llassert (sortTable != NULL); - outSort.handle = handle = sortTableSize; + outSort->handle = handle = sortTableSize; sortTable[handle] = outSort; sortTableSize++; @@ -258,40 +239,40 @@ sort_makeHOFSort (sort base) static sort sort_construct (lsymbol name, sortKind kind, sort baseSort, lsymbol tagName, - bool mut, sort objSort, /*@null@*/ smemberInfo *members) + bool mut, sort objSort, /*@null@*/ /*@only@*/ smemberInfo *members) { sortNode outSort; sort handle; handle = sort_lookupName (name); - outSort.kind = kind; - outSort.name = name; - outSort.tag = tagName; - outSort.realtag = TRUE; - outSort.baseSort = baseSort; - outSort.objSort = objSort; - outSort.members = members; - outSort.mutable = mut; - outSort.export = exporting; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = kind; + outSort->name = name; + outSort->tag = tagName; + outSort->realtag = TRUE; + outSort->baseSort = baseSort; + outSort->objSort = objSort; + outSort->members = members; + outSort->mutable = mut; + outSort->export = exporting; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); return handle; } else { llassert (sortTable != NULL); - if (sortTable[handle].kind != kind) + if (sortTable[handle]->kind != kind) { sortError (ltoken_undefined, handle, outSort); - smemberInfo_free (outSort.members); - + sortNode_free (outSort); return handle; } else @@ -320,33 +301,34 @@ static sort kind = SRT_PRIM; handle = sort_lookupName (name); - outSort.kind = kind; - outSort.name = name; - outSort.tag = lsymbol_undefined; - outSort.baseSort = baseSort; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.mutable = mut; - outSort.export = exporting; - outSort.imported = context_inImport (); - outSort.abstract = TRUE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = kind; + outSort->name = name; + outSort->tag = lsymbol_undefined; + outSort->baseSort = baseSort; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->mutable = mut; + outSort->export = exporting; + outSort->imported = context_inImport (); + outSort->abstract = TRUE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); /* do not make sort operators. */ } else { llassert (sortTable != NULL); - if (sortTable[handle].kind != kind) + if (sortTable[handle]->kind != kind) { sortError (ltoken_undefined, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -366,20 +348,21 @@ sort_makeSort (/*@unused@*/ ltoken t, lsymbol n) { sortNode outSort; - outSort.handle = handle; - outSort.kind = SRT_PRIM; - outSort.name = n; - outSort.tag = lsymbol_undefined; - outSort.baseSort = NOSORTHANDLE; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.mutable = FALSE; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->handle = handle; + outSort->kind = SRT_PRIM; + outSort->name = n; + outSort->tag = lsymbol_undefined; + outSort->baseSort = NOSORTHANDLE; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->mutable = FALSE; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; /* Put into sort table, sort_enter checks for duplicates. */ - outSort.handle = handle = sort_enterNew (outSort); + handle = sort_enterNew (outSort); } else { @@ -401,20 +384,21 @@ sort_makeSortNoOps (/*@unused@*/ ltoken t, lsymbol n) /*@modifies internalState@ { sortNode outSort; - outSort.handle = handle; - outSort.kind = SRT_PRIM; - outSort.name = n; - outSort.tag = lsymbol_undefined; - outSort.baseSort = NOSORTHANDLE; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.mutable = FALSE; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->handle = handle; + outSort->kind = SRT_PRIM; + outSort->name = n; + outSort->tag = lsymbol_undefined; + outSort->baseSort = NOSORTHANDLE; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->mutable = FALSE; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; /* Put into sort table, sort_enter checks for duplicates. */ - outSort.handle = handle = sort_enterNew (outSort); - } /* don't override old info */ + handle = sort_enterNew (outSort); + } /* Don't override old info */ return handle; } @@ -452,34 +436,35 @@ sort_makeSyn (ltoken t, sort s, lsymbol n) handle = sort_lookupName (newname); - outSort.kind = SRT_SYN; - outSort.name = newname; - outSort.baseSort = s; - outSort.objSort = NOSORTHANDLE; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_SYN; + outSort->name = newname; + outSort->baseSort = s; + outSort->objSort = NOSORTHANDLE; /* info is not duplicated */ - outSort.tag = lsymbol_undefined; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.mutable = FALSE; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + outSort->tag = lsymbol_undefined; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->mutable = FALSE; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); /* No operators to generate for synonyms */ } else { llassert (sortTable != NULL); - if (sortTable[handle].kind != SRT_SYN) + if (sortTable[handle]->kind != SRT_SYN) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -495,7 +480,7 @@ sort_makeFormal (sort insort) handle = sor; s = sort_lookup (sor); - switch (s.kind) + switch (s->kind) { case SRT_STRUCT: handle = sort_makeTuple (ltoken_undefined, sor); @@ -520,7 +505,7 @@ sort_makeGlobal (sort insort) handle = sor; s = sort_lookup (sor); - switch (s.kind) + switch (s->kind) { case SRT_ARRAY: case SRT_STRUCT: @@ -550,14 +535,14 @@ sort_makeObj (sort sor) /* skip the synonym sort */ baseSort = sort_getUnderlying (sor); baseSortNode = sort_quietLookup (baseSort); - switch (baseSortNode.kind) + switch (baseSortNode->kind) { case SRT_HOF: case SRT_NONE: return baseSort; case SRT_VECTOR: - if (baseSortNode.objSort != 0) - return baseSortNode.objSort; + if (baseSortNode->objSort != 0) + return baseSortNode->objSort; else /* must have well-defined objSort field */ { llcontbuglit ("sort_makeObj: Inconsistent vector reps:invalid objSort field"); @@ -567,10 +552,10 @@ sort_makeObj (sort sor) case SRT_UNIONVAL: /* need to map *_Struct_Tuple to *_Struct and *_Union_UnionVal to *_Union, according to sort naming conventions */ - if (baseSortNode.baseSort != NOSORTHANDLE) + if (baseSortNode->baseSort != NOSORTHANDLE) /* for tuples and unionvals, baseSort field keeps the map from - value sort to obj sort. */ - return baseSortNode.baseSort; + value sort to obj sort-> */ + return baseSortNode->baseSort; else /* valid tuples and unionvals must have baseSort fields */ { llcontbuglit ("sort_makeObj: Inconsistent tuples or unionvals reps: invalid baseSort field"); @@ -581,40 +566,41 @@ sort_makeObj (sort sor) lsymbol_fromChars ("_Obj")); handle = sort_lookupName (name); - outSort.kind = SRT_OBJ; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_OBJ; /* must not clash with any LSL sorts */ - outSort.name = name; - outSort.tag = lsymbol_undefined; - outSort.baseSort = baseSort; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.mutable = TRUE; - outSort.export = exporting; - outSort.abstract = FALSE; - outSort.handle = handle; - outSort.imported = TRUE; + outSort->name = name; + outSort->tag = lsymbol_undefined; + outSort->baseSort = baseSort; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->mutable = TRUE; + outSort->export = exporting; + outSort->abstract = FALSE; + outSort->handle = handle; + outSort->imported = TRUE; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } else { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } } else { llassert (sortTable != NULL); - if (sortTable[handle].kind != SRT_OBJ) + if (sortTable[handle]->kind != SRT_OBJ) { sortError (ltoken_undefined, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -630,18 +616,18 @@ sort_makePtr (ltoken t, sort baseSort) s = sort_lookup (baseSort); - if (s.kind == SRT_HOF) + if (s->kind == SRT_HOF) { return baseSort; } - if (s.kind == SRT_NONE) + if (s->kind == SRT_NONE) { return baseSort; } - if (s.kind != SRT_ARRAY && s.kind != SRT_STRUCT && - s.kind != SRT_UNION) - /* && s.kind != SRT_OBJ) */ + if (s->kind != SRT_ARRAY && s->kind != SRT_STRUCT && + s->kind != SRT_UNION) + /* && s->kind != SRT_OBJ) */ /* base is not an SRT_ARRAY, struct or union. Need to insert a obj. */ baseSort = sort_makeObj (baseSort); @@ -649,41 +635,44 @@ sort_makePtr (ltoken t, sort baseSort) lsymbol_fromChars ("_Ptr")); handle = sort_lookupName (name); - outSort.kind = SRT_PTR; - outSort.name = name; - outSort.tag = lsymbol_undefined; - outSort.baseSort = baseSort; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.mutable = FALSE; - outSort.export = exporting; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_PTR; + outSort->name = name; + outSort->tag = lsymbol_undefined; + outSort->baseSort = baseSort; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->mutable = FALSE; + outSort->export = exporting; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); arrayHandle = sort_makeArr (t, baseSort); genPtrOps (baseSort, handle, arrayHandle); } else { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } } else { llassert (sortTable != NULL); - if (sortTable[handle].kind != SRT_PTR) + if (sortTable[handle]->kind != SRT_PTR) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + + sortNode_free (outSort); } + return handle; } @@ -713,13 +702,13 @@ sort_makeArr (ltoken t, sort baseSort) s = sort_lookup (baseSort); - if (s.kind == SRT_HOF) + if (s->kind == SRT_HOF) return baseSort; - if (s.kind == SRT_NONE) + if (s->kind == SRT_NONE) return baseSort; - if (s.kind != SRT_ARRAY && s.kind != SRT_STRUCT && - s.kind != SRT_UNION && s.kind != SRT_OBJ) + if (s->kind != SRT_ARRAY && s->kind != SRT_STRUCT && + s->kind != SRT_UNION && s->kind != SRT_OBJ) /* base is not an array, struct or obj. Need to insert a Obj. */ baseSort = sort_makeObj (baseSort); @@ -727,27 +716,29 @@ sort_makeArr (ltoken t, sort baseSort) lsymbol_fromChars ("_Arr")); handle = sort_lookupName (name); - /* must not clash with any LSL sorts */ - outSort.name = name; - outSort.kind = SRT_ARRAY; - outSort.baseSort = baseSort; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.mutable = TRUE; - outSort.export = exporting; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + /* must not clash with any LSL sorts */ + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->name = name; + outSort->kind = SRT_ARRAY; + outSort->baseSort = baseSort; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->mutable = TRUE; + outSort->export = exporting; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + handle = sort_enterNew (outSort); + outSort = sort_lookup (handle); for (old = outSort, dim = 0; - old.kind == SRT_ARRAY; - dim++, old = sort_lookup (old.baseSort)) + old->kind == SRT_ARRAY; + dim++, old = sort_lookup (old->baseSort)) { ; } @@ -757,19 +748,19 @@ sort_makeArr (ltoken t, sort baseSort) } else { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } } else { llassert (sortTable != NULL); - if (sortTable[handle].kind != SRT_ARRAY) + if (sortTable[handle]->kind != SRT_ARRAY) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -785,49 +776,50 @@ sort_makeVec (ltoken t, sort arraySort) s = sort_lookup (arraySort); - if (s.kind == SRT_HOF) + if (s->kind == SRT_HOF) return arraySort; - if (s.kind == SRT_NONE) + if (s->kind == SRT_NONE) return arraySort; - if (s.kind != SRT_ARRAY) + if (s->kind != SRT_ARRAY) { llbug (message ("sort_makeVec: only arrays can become vectors: given sort is %s", - sort_unparseKind (s.kind))); + sort_unparseKind (s->kind))); } - if (s.baseSort == NOSORTHANDLE) + if (s->baseSort == NOSORTHANDLE) llbuglit ("sort_makeVec: arrays must have base (element) sort"); /* Vectors return "values", so make array elements values. */ - baseSort = s.baseSort; + baseSort = s->baseSort; elementSort = sort_makeVal (baseSort); name = sp (sp (underscoreSymbol, sort_getLsymbol (elementSort)), lsymbol_fromChars ("_Vec")); handle = sort_lookupName (name); - outSort.baseSort = elementSort; - outSort.name = name; - outSort.objSort = arraySort; - outSort.kind = SRT_VECTOR; - outSort.members = smemberInfo_undefined; - outSort.mutable = FALSE; - outSort.export = exporting; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->baseSort = elementSort; + outSort->name = name; + outSort->objSort = arraySort; + outSort->kind = SRT_VECTOR; + outSort->members = smemberInfo_undefined; + outSort->mutable = FALSE; + outSort->export = exporting; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort = sort_lookup (handle = sort_enterNew (outSort)); for (old = outSort, dim = 0; - old.kind == SRT_VECTOR; - dim++, old = sort_lookup (old.baseSort)) + old->kind == SRT_VECTOR; + dim++, old = sort_lookup (old->baseSort)) { ; } @@ -836,19 +828,19 @@ sort_makeVec (ltoken t, sort arraySort) } else { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } } else { llassert (sortTable != NULL); - if (sortTable[handle].kind != SRT_VECTOR) + if (sortTable[handle]->kind != SRT_VECTOR) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -863,7 +855,7 @@ sort_makeVal (sort sor) llassert (sortTable != NULL); s = sort_quietLookup (sor); - switch (s.kind) + switch (s->kind) { case SRT_PRIM: case SRT_ENUM: @@ -877,14 +869,14 @@ sort_makeVal (sort sor) retSort = sor; break; case SRT_SYN: - return sort_makeVal (sortTable[sor].baseSort); + return sort_makeVal (sortTable[sor]->baseSort); case SRT_OBJ: /* Strip out the last Obj's */ - if (s.baseSort == NOSORTHANDLE) + if (s->baseSort == NOSORTHANDLE) { llbuglit ("sort_makeVal: expecting a base sort for Obj"); } - retSort = s.baseSort; + retSort = s->baseSort; break; case SRT_ARRAY: retSort = sort_makeVec (ltoken_undefined, sor); @@ -899,9 +891,9 @@ sort_makeVal (sort sor) llbuglit ("sort_makeVal: invalid sort kind"); } rsn = sort_quietLookup (retSort); - if (rsn.kind == SRT_NONE) + if (rsn->kind == SRT_NONE) { - llfatalbug (message ("sort_makeVal: invalid return sort kind: %d", (int)rsn.kind)); + llfatalbug (message ("sort_makeVal: invalid return sort kind: %d", (int)rsn->kind)); } return retSort; } @@ -914,34 +906,36 @@ sort_makeImmutable (ltoken t, lsymbol name) handle = sort_lookupName (name); - outSort.kind = SRT_PRIM; - outSort.name = name; - outSort.baseSort = NOSORTHANDLE; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.mutable = FALSE; - outSort.imported = context_inImport (); - outSort.abstract = TRUE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_PRIM; + outSort->name = name; + outSort->baseSort = NOSORTHANDLE; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->mutable = FALSE; + outSort->imported = context_inImport (); + outSort->abstract = TRUE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { - outSort.handle = handle = sort_enterNew (outSort); + handle = sort_enterNew (outSort); + outSort = sort_lookup (handle); overloadSizeof (handle); } else { /* complain */ llassert (sortTable != NULL); - if ((sortTable[handle].kind != SRT_PRIM) && - (sortTable[handle].abstract) && - (!sortTable[handle].mutable)) + if ((sortTable[handle]->kind != SRT_PRIM) && + (sortTable[handle]->abstract) && + (!sortTable[handle]->mutable)) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -962,9 +956,9 @@ sort_makeMutable (ltoken t, lsymbol name) /* to prevent duplicate error messages */ if (immutable_old != NOSORTHANDLE && - (sortTable[baseSort].kind != SRT_PRIM) && - (sortTable[baseSort].abstract) && - (!sortTable[baseSort].mutable)) + (sortTable[baseSort]->kind != SRT_PRIM) && + (sortTable[baseSort]->abstract) && + (!sortTable[baseSort]->mutable)) { /* already complained */ handle = NOSORTHANDLE; @@ -978,23 +972,24 @@ sort_makeMutable (ltoken t, lsymbol name) lsymbol_fromChars ("_Obj")); handle = sort_lookupName (objName); - outSort.kind = SRT_OBJ; - outSort.name = objName; - outSort.tag = lsymbol_undefined; - outSort.baseSort = baseSort; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.mutable = TRUE; - outSort.export = exporting; - outSort.imported = context_inImport (); - outSort.abstract = TRUE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_OBJ; + outSort->name = objName; + outSort->tag = lsymbol_undefined; + outSort->baseSort = baseSort; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->mutable = TRUE; + outSort->export = exporting; + outSort->imported = context_inImport (); + outSort->abstract = TRUE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } else { @@ -1005,14 +1000,14 @@ sort_makeMutable (ltoken t, lsymbol name) { llassert (sortTable != NULL); - if ((sortTable[handle].kind != SRT_OBJ) - && sortTable[handle].abstract - && sortTable[handle].mutable) + if ((sortTable[handle]->kind != SRT_OBJ) + && sortTable[handle]->abstract + && sortTable[handle]->mutable) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } } return handle; @@ -1026,6 +1021,8 @@ sort_makeStr (ltoken opttagid) bool isNewTag; lsymbol name; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + /* must not clash with any LSL sorts, tag2sortname adds "_" prefix */ /* isNewTag true means that the name generated is new */ @@ -1033,48 +1030,48 @@ sort_makeStr (ltoken opttagid) { opttagid = ltoken_create (simpleId, newStructTag ()); - outSort.realtag = FALSE; + outSort->realtag = FALSE; } else { - outSort.realtag = TRUE; + outSort->realtag = TRUE; } name = sortTag_toSymbol ("Struct", opttagid, &isNewTag); llassert (sortTable != NULL); handle = sort_lookupName (name); - outSort.name = name; - outSort.kind = SRT_STRUCT; - outSort.tag = ltoken_getText (opttagid); - outSort.baseSort = NOSORTHANDLE; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.mutable = TRUE; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + outSort->name = name; + outSort->kind = SRT_STRUCT; + outSort->tag = ltoken_getText (opttagid); + outSort->baseSort = NOSORTHANDLE; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->mutable = TRUE; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } else { - outSort.handle = handle = sort_enterNewForce (outSort); + outSort->handle = handle = sort_enterNewForce (outSort); } } else { - if (sortTable[handle].kind != SRT_STRUCT) + if (sortTable[handle]->kind != SRT_STRUCT) { sortError (opttagid, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -1091,9 +1088,9 @@ sort_updateStr (sort strSort, /*@only@*/ smemberInfo *info) llassert (sortTable != NULL); sn = sort_lookup (strSort); - if (sn.members == (smemberInfo *) 0) + if (sn->members == (smemberInfo *) 0) { - sortTable[strSort].members = info; + sortTable[strSort]->members = info; tupleSort = sort_makeTuple (ltoken_undefined, strSort); genStrOps (strSort, tupleSort); return TRUE; @@ -1112,51 +1109,52 @@ sort_makeTuple (ltoken t, sort strSort) sortNode outSort, s = sort_lookup (strSort); lsymbol name; - if (s.kind != SRT_STRUCT) + if (s->kind != SRT_STRUCT) { llfatalbug (message ("sort_makeTuple: Only structs can become tuples: given sort is %s", - sort_unparseKind (s.kind))); + sort_unparseKind (s->kind))); } - name = sp (s.name, lsymbol_fromChars ("_Tuple")); + name = sp (s->name, lsymbol_fromChars ("_Tuple")); llassert (sortTable != NULL); handle = sort_lookupName (name); - outSort.kind = SRT_TUPLE; - outSort.name = name; - outSort.tag = s.tag; - outSort.realtag = s.realtag; - outSort.baseSort = strSort; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.abstract = FALSE; - outSort.imported = context_inImport (); - outSort.mutable = FALSE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_TUPLE; + outSort->name = name; + outSort->tag = s->tag; + outSort->realtag = s->realtag; + outSort->baseSort = strSort; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->abstract = FALSE; + outSort->imported = context_inImport (); + outSort->mutable = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); sort_addTupleMembers (handle, strSort); genTupleOps (handle); } else { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } } else { - if (sortTable[handle].kind != SRT_TUPLE) + if (sortTable[handle]->kind != SRT_TUPLE) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -1172,8 +1170,8 @@ sort_addTupleMembers (sort tupleSort, sort strSort) /* make sure it works for empty smemberInfo */ llassert (sortTable != NULL); - - for (mem = sortTable[strSort].members; + + for (mem = sortTable[strSort]->members; mem != smemberInfo_undefined; mem = mem->next) { newinfo = (smemberInfo *) dmalloc (sizeof (*newinfo)); @@ -1197,7 +1195,7 @@ sort_addTupleMembers (sort tupleSort, sort strSort) /*@=branchstate@*/ } - sortTable[tupleSort].members = top; + sortTable[tupleSort]->members = top; } static @@ -1217,7 +1215,7 @@ void genTupleOps (sort tupleSort) range = ltoken_createType (simpleId, SID_SORT, sort_getLsymbol (tupleSort)); llassert (sortTable != NULL); - for (m = sortTable[tupleSort].members; + for (m = sortTable[tupleSort]->members; m != smemberInfo_undefined; m = m->next) { fieldsort = sort_makeVal (m->sort); @@ -1252,7 +1250,7 @@ void genUnionOps (sort tupleSort) sort sort; llassert (sortTable != NULL); - for (m = sortTable[tupleSort].members; + for (m = sortTable[tupleSort]->members; m != smemberInfo_undefined; m = m->next) { /* Generate __.memName: strSort ->memSortObj */ @@ -1274,7 +1272,7 @@ void genStrOps (sort strSort, /*@unused@*/ sort tupleSort) sort sort; llassert (sortTable != NULL); - for (m = sortTable[strSort].members; + for (m = sortTable[strSort]->members; m != smemberInfo_undefined; m = m->next) { /* Generate __.memName: strSort ->memSortObj */ @@ -1304,48 +1302,52 @@ sort_makeUnion (ltoken opttagid) /* must not clash with any LSL sorts, tag2sortname adds "_" prefix */ /* isNewTag true means that the name generated is new */ + outSort = (sortNode) dmalloc (sizeof (*outSort)); + if (ltoken_isUndefined (opttagid)) { opttagid = ltoken_create (simpleId, newUnionTag ()); - outSort.realtag = FALSE; + outSort->realtag = FALSE; } else - outSort.realtag = TRUE; + { + outSort->realtag = TRUE; + } llassert (sortTable != NULL); name = sortTag_toSymbol ("Union", opttagid, &isNewTag); handle = sort_lookupName (name); - outSort.name = name; - outSort.kind = SRT_UNION; - outSort.tag = ltoken_getText (opttagid); - outSort.baseSort = NOSORTHANDLE; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.mutable = TRUE; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + outSort->name = name; + outSort->kind = SRT_UNION; + outSort->tag = ltoken_getText (opttagid); + outSort->baseSort = NOSORTHANDLE; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->mutable = TRUE; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } else { - outSort.handle = handle = sort_enterNewForce (outSort); + outSort->handle = handle = sort_enterNewForce (outSort); } } else { - if (sortTable[handle].kind != SRT_UNION) + if (sortTable[handle]->kind != SRT_UNION) { sortError (opttagid, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -1363,9 +1365,9 @@ sort_updateUnion (sort unionSort, /*@only@*/ smemberInfo *info) sn = sort_lookup (unionSort); - if (sn.members == (smemberInfo *) 0) + if (sn->members == (smemberInfo *) 0) { - sortTable[unionSort].members = info; + sortTable[unionSort]->members = info; uValSort = sort_makeUnionVal (ltoken_undefined, unionSort); /* same as struct operations */ genStrOps (unionSort, uValSort); @@ -1385,35 +1387,36 @@ sort_makeUnionVal (ltoken t, sort unionSort) sortNode outSort, s = sort_lookup (unionSort); lsymbol name; - if (s.kind != SRT_UNION) + if (s->kind != SRT_UNION) { llfatalbug (message ("sort_makeUnion: only unions can become unionVals: given sort is: %s", - sort_unparseKind (s.kind))); + sort_unparseKind (s->kind))); } llassert (sortTable != NULL); - name = sp (s.name, lsymbol_fromChars ("_UnionVal")); + name = sp (s->name, lsymbol_fromChars ("_UnionVal")); handle = sort_lookupName (name); - outSort.kind = SRT_UNIONVAL; - outSort.name = name; - outSort.tag = s.tag; - outSort.realtag = s.realtag; - outSort.baseSort = unionSort; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.abstract = FALSE; - outSort.imported = context_inImport (); - outSort.mutable = FALSE; - outSort.handle = handle; + outSort = (sortNode) dmalloc (sizeof (*outSort)); + outSort->kind = SRT_UNIONVAL; + outSort->name = name; + outSort->tag = s->tag; + outSort->realtag = s->realtag; + outSort->baseSort = unionSort; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->abstract = FALSE; + outSort->imported = context_inImport (); + outSort->mutable = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); /* Add members to the unionVal's. */ /* same as structs and tuples */ @@ -1423,17 +1426,17 @@ sort_makeUnionVal (ltoken t, sort unionSort) } else { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } } else { - if (sortTable[handle].kind != SRT_UNIONVAL) + if (sortTable[handle]->kind != SRT_UNIONVAL) { sortError (t, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -1473,49 +1476,53 @@ sort_makeEnum (ltoken opttagid) llassert (sortTable != NULL); + outSort = (sortNode) dmalloc (sizeof (*outSort)); + if (ltoken_isUndefined (opttagid)) { opttagid = ltoken_create (simpleId, newEnumTag ()); - outSort.realtag = FALSE; + outSort->realtag = FALSE; } else - outSort.realtag = TRUE; + { + outSort->realtag = TRUE; + } /* must not clash with any LSL sorts, tag2sortname adds "_" prefix */ name = sortTag_toSymbol ("Enum", opttagid, &isNew); handle = sort_lookupName (name); - outSort.name = name; - outSort.kind = SRT_ENUM; - outSort.tag = ltoken_getText (opttagid); - outSort.baseSort = NOSORTHANDLE; - outSort.objSort = NOSORTHANDLE; - outSort.members = smemberInfo_undefined; - outSort.export = exporting; - outSort.mutable = FALSE; - outSort.imported = context_inImport (); - outSort.abstract = FALSE; - outSort.handle = handle; + outSort->name = name; + outSort->kind = SRT_ENUM; + outSort->tag = ltoken_getText (opttagid); + outSort->baseSort = NOSORTHANDLE; + outSort->objSort = NOSORTHANDLE; + outSort->members = smemberInfo_undefined; + outSort->export = exporting; + outSort->mutable = FALSE; + outSort->imported = context_inImport (); + outSort->abstract = FALSE; + outSort->handle = handle; if (handle == NOSORTHANDLE) { if (sort_isNewEntry (outSort)) { - outSort.handle = handle = sort_enterNew (outSort); + outSort->handle = handle = sort_enterNew (outSort); } else { - outSort.handle = handle = sort_enterNewForce (outSort); + outSort->handle = handle = sort_enterNewForce (outSort); } } else { - if (sortTable[handle].kind != SRT_ENUM) + if (sortTable[handle]->kind != SRT_ENUM) { sortError (opttagid, handle, outSort); } - smemberInfo_free (outSort.members); + sortNode_free (outSort); } return handle; @@ -1534,9 +1541,9 @@ sort_updateEnum (sort enumSort, /*@only@*/ smemberInfo *info) llassert (sortTable != NULL); sn = sort_lookup (enumSort); - if (sn.members == (smemberInfo *) 0) + if (sn->members == (smemberInfo *) 0) { - sortTable[enumSort].members = info; + sortTable[enumSort]->members = info; genEnumOps (enumSort); return TRUE; } @@ -1561,7 +1568,7 @@ void genEnumOps (sort enumSort) llassert (sortTable != NULL); - for (ei = sortTable[enumSort].members; + for (ei = sortTable[enumSort]->members; ei != (smemberInfo *) 0; ei = ei->next) { mem = ltoken_createType (simpleId, SID_OP, ei->name); @@ -1784,8 +1791,7 @@ makeArrowFieldOp (lsymbol field) void sort_init (void) - /*@globals undef noSort, - undef arrayRefNameNode, + /*@globals undef arrayRefNameNode, undef ptr2arrayNameNode, undef deRefNameNode, undef nilNameNode, @@ -1797,6 +1803,7 @@ sort_init (void) undef intToken; @*/ { /* on alpha, declaration does not allocate storage */ + sortNode noSort, HOFSort; opFormNode opform; opFormUnion u; underscoreSymbol = lsymbol_fromChars ("_"); @@ -1866,25 +1873,40 @@ sort_init (void) nilNameNode->content.opid = ltoken_createType (simpleId, SID_OP, lsymbol_fromChars ("NIL")); - noSort.kind = SRT_NONE; - noSort.name = lsymbol_fromChars ("_unknown");; - noSort.tag = lsymbol_undefined; - noSort.baseSort = NOSORTHANDLE; - noSort.objSort = NOSORTHANDLE; - noSort.members = smemberInfo_undefined; - noSort.export = FALSE; - noSort.mutable = FALSE; - noSort.abstract = FALSE; - noSort.imported = FALSE; - noSort.handle = NOSORTHANDLE; + noSort = (sortNode) dmalloc (sizeof (*noSort)); + noSort->kind = SRT_NONE; + noSort->name = lsymbol_fromChars ("_unknown");; + noSort->tag = lsymbol_undefined; + noSort->baseSort = NOSORTHANDLE; + noSort->objSort = NOSORTHANDLE; + noSort->members = smemberInfo_undefined; + noSort->export = FALSE; + noSort->mutable = FALSE; + noSort->abstract = FALSE; + noSort->imported = FALSE; + noSort->handle = NOSORTHANDLE; + HOFSort = (sortNode) dmalloc (sizeof (*HOFSort)); + HOFSort->kind = SRT_HOF; + HOFSort->handle = HOFSORTHANDLE; + HOFSort->name = lsymbol_undefined; + HOFSort->tag = lsymbol_undefined; + HOFSort->realtag = FALSE; + HOFSort->baseSort = NOSORTHANDLE; + HOFSort->objSort = NOSORTHANDLE; + HOFSort->members = smemberInfo_undefined; + HOFSort->export = FALSE; + HOFSort->mutable = FALSE; + HOFSort->abstract = FALSE; + HOFSort->imported = FALSE; + /* ** Store the null sort into table, and in the process initialize the sort table. ** Must be the first sort_enter so NOSORTHANDLE is truly = 0. Similarly, ** for HOFSORTHANDLE = 1. */ - noSort.handle = sort_enterGlobal (noSort); + (void) sort_enterGlobal (noSort); (void) sort_enterGlobal (HOFSort); /* Other builtin sorts */ @@ -1895,10 +1917,10 @@ sort_init (void) llassert (sortTable != NULL); /* make sort_Bool a synonym for sort_bool */ - sortTable[sort_capBool].kind = SRT_SYN; - sortTable[sort_capBool].baseSort = sort_bool; - sortTable[sort_capBool].mutable = FALSE; - sortTable[sort_capBool].abstract = TRUE; + sortTable[sort_capBool]->kind = SRT_SYN; + sortTable[sort_capBool]->baseSort = sort_bool; + sortTable[sort_capBool]->mutable = FALSE; + sortTable[sort_capBool]->abstract = TRUE; sort_int = sort_makeLiteralSort (ltoken_undefined, lsymbol_fromChars ("int")); @@ -1930,7 +1952,7 @@ sort_lookupName (lsymbol name) for (i = 0; i < sortTableSize; i++) { - if (sortTable[i].name == name) + if (sortTable[i]->name == name) { return i; } @@ -1948,7 +1970,7 @@ sort_isNewEntry (sortNode s) { llassert (sortTable != NULL); - if (sortTable[i].kind == s.kind && sortTable[i].name == s.name) + if (sortTable[i]->kind == s->kind && sortTable[i]->name == s->name) { return FALSE; } @@ -1959,23 +1981,26 @@ sort_isNewEntry (sortNode s) static sort sort_enterGlobal (sortNode s) { - /*@i@*/ return (sort_enterNew (s)); + return (sort_enterNew (s)); } static sort sort_enterNew (sortNode s) { - /* This ensures that the argument sortNode is not entered into - the sort table more than once. isNew flag will tell the - caller this info, and the caller will decide whether to generate - operators for this sort. */ + /* + ** This ensures that the argument sortNode is not entered into + ** the sort table more than once. isNew flag will tell the + ** caller this info, and the caller will decide whether to generate + ** operators for this sort. + */ + long int i; for (i = 0; i < sortTableSize; i++) { llassert (sortTable != NULL); - if (sortTable[i].kind == s.kind && sortTable[i].name == s.name) + if (sortTable[i]->kind == s->kind && sortTable[i]->name == s->name) { sortNode_free (s); return i; @@ -2003,21 +2028,31 @@ sort_enterNew (sortNode s) llassert (sortTable != NULL); - s.handle = sortTableSize; + s->handle = sortTableSize; sortTable[sortTableSize++] = s; /*@-compdef@*/ - - return s.handle; + return s->handle; } /*=compdef@*/ static sort sort_enterNewForce (sortNode s) { - sort sor = sort_enterNew (s); + sort sor = sort_lookupName (s->name); - s.handle = sor; - llassert (sortTable != NULL); - sortTable[sor] = s; + if (sort_isNoSort (sor)) + { + sor = sort_enterNew (s); + llassert (sortTable != NULL); + /*@-usereleased@*/ + llassert (sortTable[sor] == s); + /*@=usereleased@*/ + } + else + { + s->handle = sor; + llassert (sortTable != NULL); + sortTable[sor] = s; + } /*@-globstate@*/ return (sor); /*@=globstate@*/ } @@ -2043,7 +2078,9 @@ sort_lookup (sort sor) } llassert (sor == 0); - return noSort; + llassert (sor == NOSORTHANDLE); + llassert (sortTable != NULL); + return sortTable[NOSORTHANDLE]; } sortNode @@ -2057,7 +2094,8 @@ sort_quietLookup (sort sor) } else { - return noSort; + llassert (sortTable != NULL); + return (sortTable[NOSORTHANDLE]); } } @@ -2103,9 +2141,9 @@ sort_unparse (sort s) lsymbol name; sn = sort_quietLookup (s); - name = sn.name; + name = sn->name; - switch (sn.kind) + switch (sn->kind) { case SRT_NONE: if (name == lsymbol_undefined) @@ -2122,57 +2160,57 @@ sort_unparse (sort s) return (cstring_fromCharsNew (lsymbol_toChars (name))); case SRT_PTR: - return (message ("%q *", sort_unparse (sort_makeVal (sn.baseSort)))); + return (message ("%q *", sort_unparse (sort_makeVal (sn->baseSort)))); case SRT_OBJ: - return (message ("obj %q", sort_unparse (sn.baseSort))); + return (message ("obj %q", sort_unparse (sn->baseSort))); case SRT_ARRAY: - return (message ("array of %q", sort_unparse (sort_makeVal (sn.baseSort)))); + return (message ("array of %q", sort_unparse (sort_makeVal (sn->baseSort)))); case SRT_VECTOR: - return (message ("vector of %q", sort_unparse (sn.baseSort))); + return (message ("vector of %q", sort_unparse (sn->baseSort))); case SRT_TUPLE: - if (sn.tag != lsymbol_undefined && sn.realtag) + if (sn->tag != lsymbol_undefined && sn->realtag) { - return (message ("struct %s", cstring_fromChars (lsymbol_toChars (sn.tag)))); + return (message ("struct %s", cstring_fromChars (lsymbol_toChars (sn->tag)))); } else { - return (message ("struct {%q}", printStructMembers (sn.members))); + return (message ("struct {%q}", printStructMembers (sn->members))); } case SRT_UNIONVAL: - if (sn.tag != lsymbol_undefined && sn.realtag) + if (sn->tag != lsymbol_undefined && sn->realtag) { - return (message ("union %s", cstring_fromChars (lsymbol_toChars (sn.tag)))); + return (message ("union %s", cstring_fromChars (lsymbol_toChars (sn->tag)))); } else { - return (message ("union {%q}", printStructMembers (sn.members))); + return (message ("union {%q}", printStructMembers (sn->members))); } case SRT_ENUM: - if (sn.tag != lsymbol_undefined && sn.realtag) + if (sn->tag != lsymbol_undefined && sn->realtag) { - return (message ("enum %s", cstring_fromChars (lsymbol_toChars (sn.tag)))); + return (message ("enum %s", cstring_fromChars (lsymbol_toChars (sn->tag)))); } else { - return (message ("enum {%q}", printEnumMembers (sn.members))); + return (message ("enum {%q}", printEnumMembers (sn->members))); } case SRT_STRUCT: - if (sn.tag != lsymbol_undefined && sn.realtag) + if (sn->tag != lsymbol_undefined && sn->realtag) { - return (message ("obj struct %s", cstring_fromChars (lsymbol_toChars (sn.tag)))); + return (message ("obj struct %s", cstring_fromChars (lsymbol_toChars (sn->tag)))); } else { - return (message ("obj struct {%q}", printStructMembers (sn.members))); + return (message ("obj struct {%q}", printStructMembers (sn->members))); } case SRT_UNION: - if (sn.tag != lsymbol_undefined && sn.realtag) + if (sn->tag != lsymbol_undefined && sn->realtag) { - return (message ("obj union %s", cstring_fromChars (lsymbol_toChars (sn.tag)))); + return (message ("obj union %s", cstring_fromChars (lsymbol_toChars (sn->tag)))); } else { - return (message ("obj union {%q}", printStructMembers (sn.members))); + return (message ("obj union {%q}", printStructMembers (sn->members))); } default: return (cstring_makeLiteral ("illegal")); @@ -2247,7 +2285,7 @@ sort_getUnderlyingAux (sort s, int depth) { sortNode sn = sort_quietLookup (s); - if (sn.kind == SRT_SYN) + if (sn->kind == SRT_SYN) { if (depth > MAX_SORT_DEPTH) { @@ -2255,7 +2293,7 @@ sort_getUnderlyingAux (sort s, int depth) return s; } - return sort_getUnderlyingAux (sn.baseSort, depth + 1); + return sort_getUnderlyingAux (sn->baseSort, depth + 1); } return s; @@ -2270,17 +2308,17 @@ sort_getUnderlying (sort s) static lsymbol underlyingSortName (sortNode sn) { - if (sn.kind == SRT_SYN) - return underlyingSortName (sort_quietLookup (sn.baseSort)); - return sn.name; + if (sn->kind == SRT_SYN) + return underlyingSortName (sort_quietLookup (sn->baseSort)); + return sn->name; } static /*@observer@*/ sortNode underlyingSortNode (sortNode sn) { - if (sn.kind == SRT_SYN) + if (sn->kind == SRT_SYN) { - return underlyingSortNode (sort_quietLookup (sn.baseSort)); + return underlyingSortNode (sort_quietLookup (sn->baseSort)); } return sn; @@ -2291,7 +2329,7 @@ sort_mutable (sort s) { /* if s is not a valid sort, then returns false */ sortNode sn = sort_quietLookup (s); - if (sn.mutable) + if (sn->mutable) return TRUE; return FALSE; } @@ -2318,7 +2356,7 @@ bool sort_isValidSort (sort s) { sortNode sn = sort_quietLookup (s); - sortKind k = sn.kind; + sortKind k = sn->kind; if (k != SRT_NONE && k > SRT_FIRST && k < SRT_LAST) return TRUE; else @@ -2347,7 +2385,7 @@ sort_dump (FILE *f, bool lco) variables to check, i.e., we don't rely on sorts and op's for such checking. */ - if (s.kind == SRT_NONE) + if (s->kind == SRT_NONE) continue; if (lco) @@ -2355,58 +2393,58 @@ sort_dump (FILE *f, bool lco) fprintf (f, "%%LCL"); } - if (lsymbol_isDefined (s.name)) + if (lsymbol_isDefined (s->name)) { - fprintf (f, "sort %s ", lsymbol_toCharsSafe (s.name)); + fprintf (f, "sort %s ", lsymbol_toCharsSafe (s->name)); } else { llcontbug (message ("Invalid sort in sort_dump: sort %d; sortname: %s. This may result from using .lcs files produced by an old version of LCLint. Remove the .lcs files, and rerun LCLint.", - i, lsymbol_toString (s.name))); + i, lsymbol_toString (s->name))); fprintf (f, "sort _error_ "); } - if (!lco && !s.export) + if (!lco && !s->export) fprintf (f, "private "); /*@-loopswitchbreak@*/ - switch (s.kind) + switch (s->kind) { case SRT_HOF: fprintf (f, "hof nil nil\n"); break; case SRT_PRIM: - if (s.abstract) + if (s->abstract) fprintf (f, "immutable nil nil\n"); else fprintf (f, "primitive nil nil\n"); break; case SRT_OBJ: - if (s.abstract) + if (s->abstract) fprintf (f, "mutable %s nil\n", - lsymbol_toCharsSafe (sortTable[s.baseSort].name)); + lsymbol_toCharsSafe (sortTable[s->baseSort]->name)); else fprintf (f, "obj %s nil\n", - lsymbol_toCharsSafe (sortTable[s.baseSort].name)); + lsymbol_toCharsSafe (sortTable[s->baseSort]->name)); break; case SRT_SYN: fprintf (f, "synonym %s nil\n", - lsymbol_toCharsSafe (sortTable[s.baseSort].name)); + lsymbol_toCharsSafe (sortTable[s->baseSort]->name)); break; case SRT_PTR: - fprintf (f, "ptr %s nil\n", lsymbol_toCharsSafe (sortTable[s.baseSort].name)); + fprintf (f, "ptr %s nil\n", lsymbol_toCharsSafe (sortTable[s->baseSort]->name)); break; case SRT_ARRAY: fprintf (f, "arr %s nil\n", - lsymbol_toCharsSafe (sortTable[s.baseSort].name)); + lsymbol_toCharsSafe (sortTable[s->baseSort]->name)); break; case SRT_VECTOR: fprintf (f, "vec %s %s\n", - lsymbol_toCharsSafe (sortTable[s.baseSort].name), - lsymbol_toCharsSafe (sortTable[s.objSort].name)); + lsymbol_toCharsSafe (sortTable[s->baseSort]->name), + lsymbol_toCharsSafe (sortTable[s->objSort]->name)); break; case SRT_STRUCT: - if (s.tag == lsymbol_undefined) + if (s->tag == lsymbol_undefined) { /* we need to make up a tag to prevent excessive growth of .lcs files when tags are overloaded @@ -2414,46 +2452,46 @@ sort_dump (FILE *f, bool lco) llbuglit ("Struct has no tag"); } else - fprintf (f, "str %s nil\n", lsymbol_toCharsSafe (s.tag)); + fprintf (f, "str %s nil\n", lsymbol_toCharsSafe (s->tag)); - for (mem = s.members; + for (mem = s->members; mem != smemberInfo_undefined; mem = mem->next) { if (lco) fprintf (f, "%%LCL"); fprintf (f, "sort %s strMem %s nil\n", lsymbol_toCharsSafe (mem->name), - lsymbol_toCharsSafe (sortTable[mem->sort].name)); + lsymbol_toCharsSafe (sortTable[mem->sort]->name)); } if (lco) fprintf (f, "%%LCL"); fprintf (f, "sort strEnd nil nil nil\n"); break; case SRT_UNION: - if (s.tag == lsymbol_undefined) + if (s->tag == lsymbol_undefined) llbuglit ("Union has no tag"); else - fprintf (f, "union %s nil\n", lsymbol_toCharsSafe (s.tag)); - for (mem = s.members; + fprintf (f, "union %s nil\n", lsymbol_toCharsSafe (s->tag)); + for (mem = s->members; mem != smemberInfo_undefined; mem = mem->next) { if (lco) fprintf (f, "%%LCL"); fprintf (f, "sort %s unionMem %s nil\n", lsymbol_toCharsSafe (mem->name), - lsymbol_toCharsSafe (sortTable[mem->sort].name)); + lsymbol_toCharsSafe (sortTable[mem->sort]->name)); } if (lco) fprintf (f, "%%LCL"); fprintf (f, "sort unionEnd nil nil nil\n"); break; case SRT_ENUM: - if (s.tag == lsymbol_undefined) + if (s->tag == lsymbol_undefined) { llbuglit ("Enum has no tag"); } - fprintf (f, "enum %s nil\n", lsymbol_toCharsSafe (s.tag)); + fprintf (f, "enum %s nil\n", lsymbol_toCharsSafe (s->tag)); - for (mem = s.members; + for (mem = s->members; mem != smemberInfo_undefined; mem = mem->next) { if (lco) @@ -2465,14 +2503,15 @@ sort_dump (FILE *f, bool lco) fprintf (f, "sort enumEnd nil nil nil\n"); break; case SRT_TUPLE: - fprintf (f, "tup %s nil\n", lsymbol_toCharsSafe (sortTable[s.baseSort].name)); + fprintf (f, "tup %s nil\n", + lsymbol_toCharsSafe (sortTable[s->baseSort]->name)); break; case SRT_UNIONVAL: fprintf (f, "unionval %s nil\n", - lsymbol_toCharsSafe (sortTable[s.baseSort].name)); + lsymbol_toCharsSafe (sortTable[s->baseSort]->name)); break; default: - fprintf (f, "sort_dump: unexpected sort: %d", (int)s.kind); + fprintf (f, "sort_dump: unexpected sort: %d", (int)s->kind); } /* switch */ /*@=loopswitchbreak@*/ } @@ -2524,8 +2563,8 @@ sort_loadOther (char *kstr, lsymbol sname, sort bsort) } static void -parseSortLine (char *line, ltoken t, tsource * s, - mapping *map, lsymbolList slist) +parseSortLine (char *line, ltoken t, inputStream s, + mapping map, lsymbolList slist) { /* caller expects that map and slist are updated */ /* t and importfle are only used for error messages */ @@ -2537,7 +2576,7 @@ parseSortLine (char *line, ltoken t, tsource * s, static smemberInfo *enumMemList = NULL; static lsymbol tagName = lsymbol_undefined; - char *importfile = tsource_fileName (s); + cstring importfile = inputStream_fileName (s); char sostr[MAXBUFFLEN], kstr[10], basedstr[MAXBUFFLEN], objstr[MAXBUFFLEN]; bool tmp; tagInfo ti; @@ -2555,8 +2594,7 @@ parseSortLine (char *line, ltoken t, tsource * s, lclplainerror (message ("%q: Imported file contains illegal sort declaration. " "Skipping this line: \n%s\n", - fileloc_unparseRaw (cstring_fromChars (importfile), - tsource_thisLineNumber (s)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (s)), cstring_fromChars (line))); return; } @@ -2568,7 +2606,7 @@ parseSortLine (char *line, ltoken t, tsource * s, in sort building routines. */ sname = lsymbol_undefined; lclerror (t, message ("Illegal sort declaration in import file: %s:\n%s", - cstring_fromChars (importfile), + importfile, cstring_fromChars (line))); } @@ -2618,7 +2656,7 @@ parseSortLine (char *line, ltoken t, tsource * s, if (strName == lsymbol_undefined) { lclbug (message ("%q: Imported file contains unexpected null struct sort", - fileloc_unparseRaw (cstring_fromChars (importfile), tsource_thisLineNumber (s)))); + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (s)))); } else { @@ -2643,14 +2681,14 @@ parseSortLine (char *line, ltoken t, tsource * s, { lclbug (message ("%q: unexpected non-null struct sort or " "non-empty member list", - fileloc_unparseRaw (cstring_fromChars (importfile), - tsource_thisLineNumber (s)))); + fileloc_unparseRaw (importfile, + inputStream_thisLineNumber (s)))); } /* see if a tag is associated with this sort */ if (strcmp (basedstr, "nil") == 0) { llfatalerror (message ("%s: Struct missing tag. Obsolete .lcs file, remove and rerun lcl.", - cstring_fromChars (importfile))); + importfile)); /* strName = sortTag_toSymbol ("Struct", nulltok, &tmp); tagName = lsymbol_undefined; @@ -2704,7 +2742,7 @@ parseSortLine (char *line, ltoken t, tsource * s, else { lclbug (message ("%q: unexpected null enum sort or empty member list", - fileloc_unparseRaw (cstring_fromChars (importfile), tsource_thisLineNumber (s)))); + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (s)))); } enumName = lsymbol_undefined; enumMemList = NULL; @@ -2716,8 +2754,8 @@ parseSortLine (char *line, ltoken t, tsource * s, { lclbug (message ("%q: Unexpected non-null enum sort or " "non-empty member list", - fileloc_unparseRaw (cstring_fromChars (importfile), - tsource_thisLineNumber (s)))); + fileloc_unparseRaw (importfile, + inputStream_thisLineNumber (s)))); } /* see if a tag is associated with this sort */ @@ -2725,7 +2763,7 @@ parseSortLine (char *line, ltoken t, tsource * s, { llfatalerror (message ("%s: Enum missing tag. Obsolete .lcs file, " "remove and rerun lcl.", - cstring_fromChars (importfile))); + importfile)); } else { /* a tag exists */ @@ -2770,7 +2808,7 @@ parseSortLine (char *line, ltoken t, tsource * s, { lclbug (message ("%q: Imported file contains unexpected null union sort", - fileloc_unparseRaw (cstring_fromChars (importfile), tsource_thisLineNumber (s)))); + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (s)))); } else { @@ -2799,7 +2837,7 @@ parseSortLine (char *line, ltoken t, tsource * s, (message ("%q: Unexpected non-null union sort or non-empty " "member list", - fileloc_unparseRaw (cstring_fromChars (importfile), tsource_thisLineNumber (s)))); + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (s)))); } /* see if a tag is associated with this sort */ if (strcmp (basedstr, "nil") == 0) @@ -2807,7 +2845,7 @@ parseSortLine (char *line, ltoken t, tsource * s, llfatalerror (message ("%s: Union missing tag. Obsolete .lcs file, " "remove and rerun lcl.", - cstring_fromChars (importfile))); + importfile)); } else { /* a tag exists */ @@ -2844,8 +2882,8 @@ parseSortLine (char *line, ltoken t, tsource * s, llbug (message ("%q: Imported file contains unknown base sort: %s", - fileloc_unparseRawCol (cstring_fromChars (importfile), - tsource_thisLineNumber (s), col), + fileloc_unparseRawCol (importfile, + inputStream_thisLineNumber (s), col), cstring_fromChars (lsymbol_toCharsSafe (bname)))); } @@ -2864,19 +2902,20 @@ parseSortLine (char *line, ltoken t, tsource * s, } void -sort_import (tsource *imported, ltoken tok, mapping * map) +sort_import (inputStream imported, ltoken tok, mapping map) { /* tok is only used for error message line number */ - char *buf, *importfile; - tsource *lclsource; + char *buf; + cstring importfile; + inputStream lclsource; sort bsort; lsymbolList slist = lsymbolList_new (); - buf = tsource_nextLine (imported); + buf = inputStream_nextLine (imported); llassert (buf != NULL); - importfile = tsource_fileName (imported); + importfile = inputStream_fileName (imported); if (!firstWord (buf, "%LCLSortTable")) { @@ -2884,14 +2923,14 @@ sort_import (tsource *imported, ltoken tok, mapping * map) lclfatalerror (tok, message ("Expecting \"%%LCLSortTable\" line " "in import file %s:\n%s", - cstring_fromChars (importfile), + importfile, cstring_fromChars (buf))); } for (;;) { - buf = tsource_nextLine (imported); + buf = inputStream_nextLine (imported); llassert (buf != NULL); @@ -2911,7 +2950,7 @@ sort_import (tsource *imported, ltoken tok, mapping * map) lclfatalerror (tok, message ("Expecting '%%LCL' prefix in import file %s:\n%s\n", - cstring_fromChars (importfile), + importfile, cstring_fromChars (buf))); } } @@ -2928,12 +2967,12 @@ sort_import (tsource *imported, ltoken tok, mapping * map) sor = sort_lookupName (s); sn = sort_quietLookup (sor); - switch (sn.kind) + switch (sn->kind) { case SRT_ENUM: { /* update the symbol table with members of enum */ varInfo vi; - smemberInfo *mlist = sn.members; + smemberInfo *mlist = sn->members; for (; mlist != NULL; mlist = mlist->next) { /* check that enumeration constants are unique */ @@ -2953,9 +2992,9 @@ sort_import (tsource *imported, ltoken tok, mapping * map) { lclplainerror (message ("%s: enum member %s of %s has already been declared", - cstring_fromChars (importfile), + importfile, lsymbol_toString (mlist->name), - lsymbol_toString (sn.name))); + lsymbol_toString (sn->name))); } } /*@switchbreak@*/ break; @@ -2963,7 +3002,7 @@ sort_import (tsource *imported, ltoken tok, mapping * map) case SRT_STRUCT: case SRT_UNION: { - smemberInfo *mlist = sn.members; + smemberInfo *mlist = sn->members; for (; mlist != NULL; mlist = mlist->next) { @@ -2971,9 +3010,9 @@ sort_import (tsource *imported, ltoken tok, mapping * map) if (sort_isNoSort (bsort)) { lclbug (message ("%s: member %s of %s has unknown sort\n", - cstring_fromChars (importfile), + importfile, cstring_fromChars (lsymbol_toChars (mlist->name)), - cstring_fromChars (lsymbol_toChars (sn.name)))); + cstring_fromChars (lsymbol_toChars (sn->name)))); } else { @@ -2984,9 +3023,9 @@ sort_import (tsource *imported, ltoken tok, mapping * map) } default: lclbug (message ("%s: %s has unexpected sort kind %s", - cstring_fromChars (importfile), - cstring_fromChars (lsymbol_toChars (sn.name)), - sort_unparseKind (sn.kind))); + importfile, + cstring_fromChars (lsymbol_toChars (sn->name)), + sort_unparseKind (sn->kind))); } } } end_lsymbolList_elements; @@ -2996,20 +3035,19 @@ sort_import (tsource *imported, ltoken tok, mapping * map) } bool -sort_equal (sort *s1, sort *s2) +sort_equal (sort s1, sort s2) { sort syn1, syn2; - if ((s1 != 0) && (s2 != 0)) - { - if ((*s1) == (*s2)) - return TRUE; - /* handle synonym sorts */ - syn1 = sort_getUnderlying (*s1); - syn2 = sort_getUnderlying (*s2); - if (syn1 == syn2) - return TRUE; - /* makes bool and Bool equal */ - } + + if (s1 == s2) return TRUE; + + /* handle synonym sorts */ + syn1 = sort_getUnderlying (s1); + syn2 = sort_getUnderlying (s2); + + if (syn1 == syn2) return TRUE; + /* makes bool and Bool equal */ + return FALSE; } @@ -3017,10 +3055,10 @@ bool sort_compatible (sort s1, sort s2) { sort syn1, syn2; - /* later: might consider "char" and enum types the same as "int" */ + /* later: might consider "char" and enum types the same as "int" */ if (s1 == s2) return TRUE; - /* handle synonym sorts */ + /* handle synonym sorts */ syn1 = sort_getUnderlying (s1); syn2 = sort_getUnderlying (s2); if (syn1 == syn2) @@ -3034,11 +3072,11 @@ sort_compatible_modulo_cstring (sort s1, sort s2) { /* like sort_compatible but also handles special cstring inits, allows the following 2 cases: - char c[] = "abc"; (LHS: char_Obj_Arr, RHS = char_Vec) - (c as implicitly coerced into c^) - char *d = "abc"; (LHS: char_Obj_Ptr, RHS = char_Vec) - (d as implicitly coerced into d[]^) - */ + char c[] = "abc"; (LHS: char_Obj_Arr, RHS = char_Vec) + (c as implicitly coerced into c^) + char *d = "abc"; (LHS: char_Obj_Ptr, RHS = char_Vec) + (d as implicitly coerced into d[]^) + */ sort syn1, syn2; if (sort_compatible (s1, s2)) return TRUE; @@ -3053,9 +3091,8 @@ sort_compatible_modulo_cstring (sort s1, sort s2) lsymbol sort_getLsymbol (sort sor) { - /* sortNode sn = sort_lookup (sor); */ sortNode sn = sort_quietLookup (sor); - return sn.name; + return sn->name; } /* a few handy routines for debugging */ @@ -3068,16 +3105,16 @@ char *sort_getName (sort s) /*@exposed@*/ cstring sort_unparseName (sort s) { - return (cstring_fromChars (sort_getName (s))); + return (cstring_fromChars (sort_getName (s))); } static void sortError (ltoken t, sort oldsort, sortNode newnode) { sortNode old = sort_quietLookup (oldsort); - - if ((old.kind <= SRT_FIRST || old.kind >= SRT_LAST) || - (newnode.kind <= SRT_FIRST || newnode.kind >= SRT_LAST)) + + if ((old->kind <= SRT_FIRST || old->kind >= SRT_LAST) || + (newnode->kind <= SRT_FIRST || newnode->kind >= SRT_LAST)) { llbuglit ("sortError: illegal sort kind"); } @@ -3085,7 +3122,7 @@ sortError (ltoken t, sort oldsort, sortNode newnode) llassert (sortTable != NULL); lclerror (t, message ("Sort %s defined as %s cannot be redefined as %s", - cstring_fromChars (lsymbol_toChars (newnode.name)), + cstring_fromChars (lsymbol_toChars (newnode->name)), sort_unparseKindName (sortTable[oldsort]), sort_unparseKindName (newnode))); } @@ -3093,14 +3130,14 @@ sortError (ltoken t, sort oldsort, sortNode newnode) static /*@observer@*/ cstring sort_unparseKindName (sortNode s) { - switch (s.kind) + switch (s->kind) { case SRT_NONE: - return cstring_fromChars (sortKindName[(int)s.kind]); + return cstring_fromChars (sortKindName[(int)s->kind]); default: - if (s.abstract) + if (s->abstract) { - if (s.mutable) + if (s->mutable) { return cstring_makeLiteralTemp ("MUTABLE"); } @@ -3110,7 +3147,7 @@ static /*@observer@*/ cstring } } else - return cstring_fromChars (sortKindName[(int)s.kind]); + return cstring_fromChars (sortKindName[(int)s->kind]); } BADEXIT; @@ -3130,7 +3167,7 @@ bool sort_isHOFSortKind (sort s) { sortNode sn = sort_quietLookup (s); - if (sn.kind == SRT_HOF) + if (sn->kind == SRT_HOF) return TRUE; return FALSE; } @@ -3143,13 +3180,13 @@ static bool sort_hasStateFcns (sort s) { sortNode sn = sort_quietLookup (s); - sortKind kind = sn.kind; - + sortKind kind = sn->kind; + if (kind == SRT_SYN) { - return (sort_hasStateFcns (sn.baseSort)); + return (sort_hasStateFcns (sn->baseSort)); } - + return ((kind == SRT_PTR) || (kind == SRT_OBJ) || (kind == SRT_ARRAY) || diff --git a/src/sortList.c b/src/sortList.c index 89a24b2..930a6d9 100644 --- a/src/sortList.c +++ b/src/sortList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/sortSet.c b/src/sortSet.c index 02f4f84..578b3cc 100644 --- a/src/sortSet.c +++ b/src/sortSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -130,7 +130,7 @@ sortSet_member (sortSet s, sort el) for (i = 0; i < s->entries; i++) { - if (sort_equal (&el, &(s->elements[i]))) + if (sort_equal (el, s->elements[i])) { return TRUE; } diff --git a/src/sortSetList.c b/src/sortSetList.c index 4b7bc63..f449829 100644 --- a/src/sortSetList.c +++ b/src/sortSetList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/specialClauses.c b/src/specialClauses.c index 4e34068..6fc6ab6 100644 --- a/src/specialClauses.c +++ b/src/specialClauses.c @@ -495,10 +495,10 @@ specialClause specialClause_undump (char **s) { specialClause ret = (specialClause) dmalloc (sizeof (*ret)); - ret->state = (stateConstraint) getInt (s); - checkChar (s, '.'); - ret->kind = (specialClauseKind) getInt (s); - checkChar (s, '.'); + ret->state = (stateConstraint) reader_getInt (s); + reader_checkChar (s, '.'); + ret->kind = (specialClauseKind) reader_getInt (s); + reader_checkChar (s, '.'); ret->refs = sRefSet_undump (s); return ret; @@ -770,7 +770,7 @@ specialClauses specialClauses_undump (char **s) specialClause sc = specialClause_undump (s); pn = specialClauses_add (pn, sc); - checkChar (s, '$'); + reader_checkChar (s, '$'); c = **s; paramno++; } diff --git a/src/stDeclNodeList.c b/src/stDeclNodeList.c index 48e6c27..ddf5e45 100644 --- a/src/stDeclNodeList.c +++ b/src/stDeclNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/stateClause.c b/src/stateClause.c new file mode 100644 index 0000000..a68d388 --- /dev/null +++ b/src/stateClause.c @@ -0,0 +1,815 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** stateClause.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "cgrammar.h" +# include "cgrammar_tokens.h" + +static stateClause +stateClause_createRaw (stateConstraint st, stateClauseKind sk, /*@only@*/ sRefSet s) +{ + stateClause ret = (stateClause) dmalloc (sizeof (*ret)); + + ret->state = st; + ret->kind = sk; + ret->squal = qual_createUnknown (); + ret->refs = s; + ret->loc = fileloc_undefined; + return ret; +} + +stateClause +stateClause_create (lltok tok, qual q, sRefSet s) +{ + stateClause ret = (stateClause) dmalloc (sizeof (*ret)); + + if (lltok_getTok (tok) == QPRECLAUSE) + { + ret->state = TK_BEFORE; + } + else if (lltok_getTok (tok) == QPOSTCLAUSE) + { + ret->state = TK_AFTER; + } + else + { + BADBRANCH; + } + + ret->loc = fileloc_copy (lltok_getLoc (tok)); + + ret->squal = q; + ret->refs = s; + + if (sRefSet_isDefined (s)) + { + ret->kind = SP_QUAL; + } + else + { + ret->kind = SP_GLOBAL; + } + + return ret; +} + +bool stateClause_isBeforeOnly (stateClause cl) +{ + return (cl->state == TK_BEFORE); +} + +bool stateClause_isBefore (stateClause cl) +{ + return (cl->state == TK_BEFORE || cl->state == TK_BOTH); +} + +bool stateClause_isAfter (stateClause cl) +{ + return (cl->state == TK_AFTER || cl->state == TK_BOTH); +} + +bool stateClause_isEnsures (stateClause cl) +{ + return (cl->state == TK_AFTER); +} + +bool stateClause_isMemoryAllocation (stateClause cl) +{ + switch (cl->kind) + { + case SP_ALLOCATES: + case SP_RELEASES: + return TRUE; + case SP_USES: + case SP_DEFINES: + case SP_SETS: + return FALSE; + case SP_GLOBAL: + return FALSE; + case SP_QUAL: + return (qual_isMemoryAllocation (cl->squal) + || qual_isSharing (cl->squal)); + } + + BADEXIT; +} + +/* +** An error is reported if the test is NOT true. +*/ + +sRefTest stateClause_getPreTestFunction (stateClause cl) +{ + switch (cl->kind) + { + case SP_USES: + return sRef_isStrictReadable; + case SP_ALLOCATES: + return sRef_hasNoStorage; + case SP_DEFINES: + return sRef_hasNoStorage; + case SP_SETS: + return sRef_isNotUndefined; + case SP_RELEASES: + return sRef_isNotUndefined; + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + { + if (qual_isOnly (cl->squal)) { + return sRef_isOnly; + } else if (qual_isShared (cl->squal)) { + return sRef_isShared; + } else if (qual_isDependent (cl->squal)) { + return sRef_isDependent; + } else if (qual_isOwned (cl->squal)) { + return sRef_isOwned; + } else if (qual_isObserver (cl->squal)) { + return sRef_isObserver; + } else if (qual_isExposed (cl->squal)) { + return sRef_isExposed; + } else if (qual_isNotNull (cl->squal)) { + return sRef_isNotNull; + } else if (qual_isIsNull (cl->squal)) { + return sRef_isDefinitelyNull; + } else { + BADBRANCH; + } + } + } + + BADEXIT; +} + +sRefTest stateClause_getPostTestFunction (stateClause cl) +{ + llassert (stateClause_isAfter (cl)); + + switch (cl->kind) + { + case SP_USES: + return NULL; + case SP_ALLOCATES: + return sRef_isAllocated; + case SP_DEFINES: + return sRef_isReallyDefined; + case SP_SETS: + return sRef_isReallyDefined; + case SP_RELEASES: + return sRef_isDeadStorage; + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + if (qual_isOnly (cl->squal)) { + return sRef_isOnly; + } else if (qual_isShared (cl->squal)) { + return sRef_isShared; + } else if (qual_isDependent (cl->squal)) { + return sRef_isDependent; + } else if (qual_isOwned (cl->squal)) { + return sRef_isOwned; + } else if (qual_isObserver (cl->squal)) { + return sRef_isObserver; + } else if (qual_isExposed (cl->squal)) { + return sRef_isExposed; + } else if (qual_isNotNull (cl->squal)) { + return sRef_isNotNull; + } else if (qual_isIsNull (cl->squal)) { + return sRef_isDefinitelyNull; + } else { + BADBRANCH; + } + } + + BADEXIT; +} + +sRefShower stateClause_getPostTestShower (stateClause cl) +{ + switch (cl->kind) + { + case SP_USES: + case SP_ALLOCATES: + return NULL; + case SP_DEFINES: + case SP_SETS: + return sRef_showNotReallyDefined; + case SP_RELEASES: + return NULL; + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + if (qual_isMemoryAllocation (cl->squal)) { + return sRef_showAliasInfo; + } else if (qual_isSharing (cl->squal)) { + return sRef_showExpInfo; + } else if (qual_isIsNull (cl->squal) || qual_isNotNull (cl->squal)) { + return sRef_showNullInfo; + } else { + BADBRANCH; + } + } + + BADEXIT; +} + +sRefMod stateClause_getEntryFunction (stateClause cl) +{ + if (cl->state == TK_BEFORE || cl->state == TK_BOTH) + { + switch (cl->kind) + { + case SP_USES: + return sRef_setDefinedComplete; + case SP_ALLOCATES: + return NULL; + case SP_DEFINES: + return NULL; + case SP_SETS: + return sRef_setAllocatedComplete; + case SP_RELEASES: + return sRef_setDefinedComplete; + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + if (qual_isOnly (cl->squal)) { + return sRef_setOnly; + } else if (qual_isShared (cl->squal)) { + return sRef_setShared; + } else if (qual_isDependent (cl->squal)) { + return sRef_setDependent; + } else if (qual_isOwned (cl->squal)) { + return sRef_setOwned; + } else if (qual_isObserver (cl->squal)) { + return sRef_setObserver; + } else if (qual_isExposed (cl->squal)) { + return sRef_setExposed; + } else if (qual_isNotNull (cl->squal)) { + return sRef_setNotNull; + } else if (qual_isIsNull (cl->squal)) { + return sRef_setDefNull; + } else { + DPRINTF (("Here we are: %s", + qual_unparse (cl->squal))); + BADBRANCH; + } + } + + BADBRANCH; + } + else + { + return NULL; + } + + BADBRANCH; +} + +sRefMod stateClause_getEffectFunction (stateClause cl) +{ + if (cl->state == TK_AFTER || cl->state == TK_BOTH) + { + switch (cl->kind) + { + case SP_USES: + return NULL; + case SP_ALLOCATES: + return sRef_setAllocatedComplete; + case SP_DEFINES: + return sRef_setDefinedNCComplete; + case SP_SETS: + return sRef_setDefinedNCComplete; + case SP_RELEASES: + return sRef_killComplete; + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + if (qual_isOnly (cl->squal)) { + return sRef_setOnly; + } else if (qual_isShared (cl->squal)) { + return sRef_setShared; + } else if (qual_isDependent (cl->squal)) { + return sRef_setDependent; + } else if (qual_isOwned (cl->squal)) { + return sRef_setOwned; + } else if (qual_isObserver (cl->squal)) { + return sRef_setObserver; + } else if (qual_isExposed (cl->squal)) { + return sRef_setExposed; + } else if (qual_isNotNull (cl->squal)) { + return sRef_setNotNull; + } else if (qual_isIsNull (cl->squal)) { + return sRef_setDefNull; + } else { + BADBRANCH; + } + } + + BADBRANCH; + } + else + { + return NULL; + } + + BADBRANCH; +} + +sRefMod stateClause_getReturnEffectFunction (stateClause cl) +{ + if (cl->state == TK_AFTER || cl->state == TK_BOTH) + { + switch (cl->kind) + { + case SP_USES: + case SP_ALLOCATES: + case SP_DEFINES: + case SP_SETS: + case SP_RELEASES: + return NULL; + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + if (qual_isOnly (cl->squal)) { + return sRef_killComplete; + } else { + return NULL; + } + } + + BADBRANCH; + } + else + { + return NULL; + } + + BADBRANCH; +} + +static flagcode stateClause_qualErrorCode (stateClause cl) +{ + if (qual_isOnly (cl->squal)) { + return FLG_ONLYTRANS; + } else if (qual_isShared (cl->squal)) { + return FLG_SHAREDTRANS; + } else if (qual_isDependent (cl->squal)) { + return FLG_DEPENDENTTRANS; + } else if (qual_isOwned (cl->squal)) { + return FLG_OWNEDTRANS; + } else if (qual_isObserver (cl->squal)) { + return FLG_OBSERVERTRANS; + } else if (qual_isExposed (cl->squal)) { + return FLG_EXPOSETRANS; + } else if (qual_isIsNull (cl->squal) + || qual_isNotNull (cl->squal)) { + return FLG_NULLSTATE; + } else { + BADBRANCH; + } +} + +flagcode stateClause_preErrorCode (stateClause cl) +{ + llassert (cl->state == TK_BOTH || cl->state == TK_BEFORE); + + switch (cl->kind) + { + case SP_USES: + return FLG_USEDEF; + case SP_ALLOCATES: /*@fallthrough@*/ + case SP_DEFINES: + case SP_SETS: + return FLG_MUSTFREE; + case SP_RELEASES: + return FLG_USEDEF; + case SP_GLOBAL: + case SP_QUAL: + return stateClause_qualErrorCode (cl); + } + + BADBRANCH; +} + +static /*@observer@*/ cstring stateClause_qualErrorString (stateClause cl, sRef sr) +{ + if (qual_isMemoryAllocation (cl->squal)) { + return alkind_capName (sRef_getAliasKind (sr)); + } else if (qual_isObserver (cl->squal)) { + return cstring_makeLiteralTemp ("Non-observer"); + } else if (qual_isExposed (cl->squal)) { + if (sRef_isObserver (sr)) + { + return cstring_makeLiteralTemp ("Observer"); + } + else + { + return cstring_makeLiteralTemp ("Non-exposed"); + } + } else if (qual_isNotNull (cl->squal)) { + if (sRef_isDefinitelyNull (sr)) + { + return cstring_makeLiteralTemp ("Null"); + } + else + { + return cstring_makeLiteralTemp ("Possibly null"); + } + } else if (qual_isIsNull (cl->squal)) { + return cstring_makeLiteralTemp ("Non-null"); + } else { + BADBRANCH; + } + + BADBRANCH; +} + +cstring stateClause_preErrorString (stateClause cl, sRef sr) +{ + llassert (cl->state == TK_BOTH || cl->state == TK_BEFORE); + + switch (cl->kind) + { + case SP_USES: + if (sRef_isDead (sr)) + return cstring_makeLiteralTemp ("Dead"); + else + return cstring_makeLiteralTemp ("Undefined"); + case SP_ALLOCATES: /*@fallthrough@*/ + case SP_DEFINES: + case SP_SETS: + return cstring_makeLiteralTemp ("Allocated"); + case SP_RELEASES: + if (sRef_isDead (sr)) + { + return cstring_makeLiteralTemp ("Dead"); + } + else if (sRef_isDependent (sr) + || sRef_isShared (sr)) + { + return alkind_unparse (sRef_getAliasKind (sr)); + } + else if (sRef_isObserver (sr) || sRef_isExposed (sr)) + { + return exkind_unparse (sRef_getExKind (sr)); + } + else + { + return cstring_makeLiteralTemp ("Undefined"); + } + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + return stateClause_qualErrorString (cl, sr); + } + + BADEXIT; +} + +flagcode stateClause_postErrorCode (stateClause cl) +{ + llassert (cl->state == TK_BOTH || cl->state == TK_AFTER); + + switch (cl->kind) + { + case SP_USES: + BADBRANCHCONT; + return INVALID_FLAG; + case SP_ALLOCATES: + case SP_DEFINES: + case SP_SETS: + return FLG_COMPDEF; + case SP_RELEASES: + return FLG_MUSTFREE; + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + return stateClause_qualErrorCode (cl); + } + + BADBRANCH; +} + +cstring stateClause_postErrorString (stateClause cl, sRef sr) +{ + llassert (cl->state == TK_BOTH || cl->state == TK_AFTER); + + switch (cl->kind) + { + case SP_USES: + BADBRANCHCONT; + return cstring_makeLiteralTemp (""); + case SP_ALLOCATES: + return cstring_makeLiteralTemp ("Unallocated"); + case SP_DEFINES: + case SP_SETS: + return cstring_makeLiteralTemp ("Undefined"); + case SP_RELEASES: + return cstring_makeLiteralTemp ("Unreleased"); + case SP_GLOBAL: + BADBRANCH; + case SP_QUAL: + return stateClause_qualErrorString (cl, sr); + } + + BADEXIT; +} + +cstring stateClause_dump (stateClause s) +{ + return (message ("%d.%d.%q.%q", + (int) s->state, + (int) s->kind, + qual_dump (s->squal), + sRefSet_dump (s->refs))); +} + +stateClause stateClause_undump (char **s) +{ + stateClause ret = (stateClause) dmalloc (sizeof (*ret)); + + ret->loc = fileloc_undefined; + ret->state = (stateConstraint) reader_getInt (s); + reader_checkChar (s, '.'); + ret->kind = (stateClauseKind) reader_getInt (s); + reader_checkChar (s, '.'); + ret->squal = qual_undump (s); + reader_checkChar (s, '.'); + ret->refs = sRefSet_undump (s); + + return ret; +} + +stateClause stateClause_copy (stateClause s) +{ + stateClause ret = (stateClause) dmalloc (sizeof (*ret)); + + ret->state = s->state; + ret->kind = s->kind; + ret->squal = s->squal; + ret->refs = sRefSet_newCopy (s->refs); + ret->loc = fileloc_copy (s->loc); + + return ret; +} + +bool stateClause_sameKind (stateClause s1, stateClause s2) +{ + return (s1->state == s2->state + && s1->kind == s2->kind + && qual_match (s1->squal, s2->squal)); +} + +void stateClause_free (stateClause s) +{ + sRefSet_free (s->refs); + fileloc_free (s->loc); + sfree (s); +} + +static /*@observer@*/ cstring + stateClauseKind_unparse (stateClause s) +{ + switch (s->kind) + { + case SP_USES: + return cstring_makeLiteralTemp ("uses"); + case SP_DEFINES: + return cstring_makeLiteralTemp ("defines"); + case SP_ALLOCATES: + return cstring_makeLiteralTemp ("allocates"); + case SP_RELEASES: + return cstring_makeLiteralTemp ("releases"); + case SP_SETS: + return cstring_makeLiteralTemp ("sets"); + case SP_GLOBAL: + return qual_unparse (s->squal); + case SP_QUAL: + return qual_unparse (s->squal); + } + + BADEXIT; +} + +cstring stateClause_unparseKind (stateClause s) +{ + return + (message ("%s%s", + cstring_makeLiteralTemp (s->state == TK_BEFORE + ? "requires " + : (s->state == TK_AFTER + ? "ensures " : "")), + stateClauseKind_unparse (s))); +} + +cstring stateClause_unparse (stateClause s) +{ + return (message ("%q %q", + stateClause_unparseKind (s), sRefSet_unparsePlain (s->refs))); +} + +stateClause stateClause_createDefines (sRefSet s) +{ + return (stateClause_createRaw (TK_BOTH, SP_DEFINES, s)); +} + +stateClause stateClause_createUses (sRefSet s) +{ + return (stateClause_createRaw (TK_BOTH, SP_USES, s)); +} + +stateClause stateClause_createSets (sRefSet s) +{ + return (stateClause_createRaw (TK_BOTH, SP_SETS, s)); +} + +stateClause stateClause_createReleases (sRefSet s) +{ + return (stateClause_createRaw (TK_BOTH, SP_RELEASES, s)); +} + +stateClause stateClause_createPlain (lltok tok, sRefSet s) +{ + switch (lltok_getTok (tok)) + { + case QUSES: + return stateClause_createUses (s); + case QDEFINES: + return stateClause_createDefines (s); + case QALLOCATES: + return stateClause_createAllocates (s); + case QSETS: + return stateClause_createSets (s); + case QRELEASES: + return stateClause_createReleases (s); + default: + sRefSet_free (s); + BADBRANCH; + } +} + +stateClause stateClause_createAllocates (sRefSet s) +{ + return (stateClause_createRaw (TK_BOTH, SP_ALLOCATES, s)); +} + +bool stateClause_matchKind (stateClause s1, stateClause s2) +{ + return (s1->state == s2->state && s1->kind == s2->kind + && qual_match (s1->squal, s2->squal)); +} + +bool stateClause_hasEnsures (stateClause cl) +{ + return (cl->state == TK_AFTER && (cl->kind == SP_QUAL || cl->kind == SP_GLOBAL)); +} + +bool stateClause_hasRequires (stateClause cl) +{ + return (cl->state == TK_BEFORE && (cl->kind == SP_QUAL || cl->kind == SP_GLOBAL)); +} + +bool stateClause_setsMetaState (stateClause cl) +{ + return ((cl->kind == SP_QUAL || cl->kind == SP_GLOBAL) + && qual_isMetaState (cl->squal)); +} + +qual stateClause_getMetaQual (stateClause cl) +{ + llassert (cl->kind == SP_QUAL || cl->kind == SP_GLOBAL); + return cl->squal; +} + +static sRefModVal stateClause_getStateFunction (stateClause cl) +{ + qual sq; + + llassert (cl->kind == SP_QUAL || cl->kind == SP_GLOBAL); + + sq = cl->squal; + + /*@+enumint@*/ + + if (qual_isNullStateQual (sq)) + { + return (sRefModVal) sRef_setNullState; + } + else if (qual_isExQual (sq)) + { + return (sRefModVal) sRef_setExKind; + } + else if (qual_isAliasQual (sq)) + { + return (sRefModVal) sRef_setAliasKind; /*@i23 complete? @*/ + } + else + { + DPRINTF (("Unhandled ensures qual: %s", qual_unparse (sq))); + BADBRANCH; + } + /*@=enumint@*/ +} + +int stateClause_getStateParameter (stateClause cl) +{ + qual sq; + + llassert (cl->kind == SP_QUAL || cl->kind == SP_GLOBAL); + + sq = cl->squal; + + /*@+relaxtypes@*/ /*@i523 this is wrong, remove the enumint@*/ + /*@+enumint@*/ + + if (qual_isNotNull (sq)) + { + return NS_MNOTNULL; + } + else if (qual_isIsNull (sq)) + { + return NS_DEFNULL; + } + else if (qual_isNull (sq)) + { + return NS_POSNULL; + } + else if (qual_isRelNull (sq)) + { + return NS_RELNULL; + } + else if (qual_isExposed (sq)) + { + return XO_EXPOSED; + } + else if (qual_isObserver (sq)) + { + return XO_OBSERVER; + } + else if (qual_isAliasQual (sq)) + { + if (qual_isOnly (sq)) return AK_ONLY; + if (qual_isImpOnly (sq)) return AK_IMPONLY; + if (qual_isTemp (sq)) return AK_TEMP; + if (qual_isOwned (sq)) return AK_OWNED; + if (qual_isShared (sq)) return AK_SHARED; + if (qual_isUnique (sq)) return AK_UNIQUE; + if (qual_isDependent (sq)) return AK_DEPENDENT; + if (qual_isKeep (sq)) return AK_KEEP; + if (qual_isKept (sq)) return AK_KEPT; + BADBRANCH; + } + else + { + DPRINTF (("Unhandled ensures qual: %s", qual_unparse (sq))); + BADBRANCH; + } + + /*@=enumint@*/ + /*@=relaxtypes@*/ +} + +sRefModVal stateClause_getEnsuresFunction (stateClause cl) +{ + llassertprint (cl->state == TK_AFTER, ("Not after: %s", stateClause_unparse (cl))); + llassert (cl->kind == SP_QUAL || cl->kind == SP_GLOBAL); + return stateClause_getStateFunction (cl); +} + +sRefModVal stateClause_getRequiresBodyFunction (stateClause cl) +{ + llassertprint (cl->state == TK_BEFORE, ("Not before: %s", stateClause_unparse (cl))); + llassert (cl->kind == SP_QUAL || cl->kind == SP_GLOBAL); + return stateClause_getStateFunction (cl); +} + +/*@observer@*/ fileloc stateClause_loc (stateClause s) +{ + return s->loc; +} + diff --git a/src/stateClauseList.c b/src/stateClauseList.c new file mode 100644 index 0000000..9493433 --- /dev/null +++ b/src/stateClauseList.c @@ -0,0 +1,458 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** stateClauseList.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +static /*@notnull@*/ stateClauseList stateClauseList_new (void) +{ + stateClauseList s = (stateClauseList) dmalloc (sizeof (*s)); + + s->nelements = 0; + s->nspace = stateClauseListBASESIZE; + s->elements = (stateClause *) + dmalloc (sizeof (*s->elements) * stateClauseListBASESIZE); + + return (s); +} + +static void +stateClauseList_grow (stateClauseList s) +{ + int i; + stateClause *newelements; + + llassert (stateClauseList_isDefined (s)); + + s->nspace += stateClauseListBASESIZE; + + newelements = (stateClause *) + dmalloc (sizeof (*newelements) * (s->nelements + s->nspace)); + + for (i = 0; i < s->nelements; i++) + { + newelements[i] = s->elements[i]; + } + + sfree (s->elements); + s->elements = newelements; +} + +stateClauseList stateClauseList_add (stateClauseList s, stateClause el) +{ + DPRINTF (("Adding: %s", stateClause_unparse (el))); + + if (stateClauseList_isUndefined (s)) + { + s = stateClauseList_new (); + } + else + { + stateClauseList_elements (s, cl) + { + if (stateClause_sameKind (cl, el)) + { + voptgenerror + (FLG_SYNTAX, + message ("Multiple %q clauses for one function (ignoring second)", + stateClause_unparseKind (cl)), + g_currentloc); + + stateClause_free (el); + return s; + } + } end_stateClauseList_elements ; + } + + if (s->nspace <= 0) + { + stateClauseList_grow (s); + } + + s->nspace--; + s->elements[s->nelements] = el; + s->nelements++; + + return s; +} + +cstring stateClauseList_unparse (stateClauseList s) +{ + cstring st = cstring_undefined; + int i; + + if (stateClauseList_isDefined (s)) + { + for (i = 0; i < stateClauseList_size (s); i++) + { + if (i == 0) + { + st = message ("%q;", stateClause_unparse (s->elements[i])); + } + else + st = message ("%q %q;", st, stateClause_unparse (s->elements[i])); + } + } + + return (st); +} + +stateClauseList stateClauseList_copy (stateClauseList s) +{ + if (stateClauseList_isDefined (s)) + { + stateClauseList t = (stateClauseList) dmalloc (sizeof (*t)); + int i; + + t->nelements = s->nelements; + t->nspace = 0; + + if (s->nelements > 0) + { + t->elements = (stateClause *) dmalloc (sizeof (*t->elements) * t->nelements); + for (i = 0; i < s->nelements; i++) + { + t->elements[i] = stateClause_copy (s->elements[i]); + } + } + else + { + t->elements = NULL; + } + + return t; + } + else + { + return stateClauseList_undefined; + } +} + +void +stateClauseList_free (stateClauseList s) +{ + if (!stateClauseList_isUndefined (s)) + { + int i; + + for (i = 0; i < s->nelements; i++) + { + stateClause_free (s->elements[i]); + } + + sfree (s->elements); + sfree (s); + } +} + +cstring stateClauseList_dump (stateClauseList s) +{ + cstring st = cstring_undefined; + + if (stateClauseList_isUndefined (s)) return st; + + stateClauseList_elements (s, current) + { + st = message ("%q%q$", st, stateClause_dump (current)); + } end_stateClauseList_elements; + + return st; +} + +stateClauseList stateClauseList_undump (char **s) +{ + char c; + stateClauseList pn = stateClauseList_new (); + int paramno = 0; + + c = **s; + + while (c != '#' && c != '@') + { + stateClause sc = stateClause_undump (s); + + pn = stateClauseList_add (pn, sc); + reader_checkChar (s, '$'); + c = **s; + paramno++; + } + + return pn; +} + +int stateClauseList_compare (stateClauseList s1, stateClauseList s2) +{ + if (stateClauseList_isUndefined (s1) + && stateClauseList_isUndefined (s2)) + { + return 0; + } + else + { + if ((int) s1 > (int) s2) + { + return 1; + } + else + { + return -1; + } + } +} + +static /*@exposed@*/ sRefSet +stateClauseList_getClause (stateClauseList s, stateClause k) +{ + stateClauseList_elements (s, el) + { + if (stateClause_matchKind (el, k)) + { + return stateClause_getRefs (el); + } + } end_stateClauseList_elements ; + + return sRefSet_undefined; +} + +void stateClauseList_checkAll (uentry ue) +{ + stateClauseList clauses = uentry_getStateClauseList (ue); + sRef res = uentry_getSref (ue); + bool specialResult = FALSE; + + DPRINTF (("Check state clauses: %s", uentry_unparseFull (ue))); + + stateClauseList_elements (clauses, cl) + { + bool isPre = stateClause_isBeforeOnly (cl); + + if (stateClause_isGlobal (cl)) + { + /*@i232@*/ + } + else + { + sRefSet refs = stateClause_getRefs (cl); + + sRefSet_allElements (refs, el) + { + sRef rb = sRef_getRootBase (el); + + DPRINTF (("Check: %s", sRef_unparse (el))); + + if (stateClause_setsMetaState (cl)) + { + qual q = stateClause_getMetaQual (cl); + annotationInfo qa = qual_getAnnotationInfo (q); + + if (!annotationInfo_matchesContextRef (qa, el)) + { + if (optgenerror + (FLG_ANNOTATIONERROR, + message ("Meta state anntation %s used on inappropriate reference %q in %q clause of %q: %q", + qual_unparse (q), + sRef_unparse (el), + stateClause_unparseKind (cl), + uentry_getName (ue), + stateClause_unparse (cl)), + uentry_whereLast (ue))) + { + /*@i! annotationInfo_showContextError (ainfo, ue); */ + } + } + } + + if (sRef_isResult (rb)) + { + if (isPre) + { + voptgenerror + (FLG_INCONDEFS, + message ("Function result is used in %q clause of %q " + "(%q applies to the state before function is " + "called, so should not use result): %q", + stateClause_unparseKind (cl), + uentry_getName (ue), + stateClause_unparseKind (cl), + sRef_unparse (el)), + uentry_whereLast (ue)); + } + else + { + if (!sRef_isStateSpecial (res)) + { + if (!specialResult) + { + sstate pstate = sRef_getDefState (res); + + if (!sRef_makeStateSpecial (res)) + { + voptgenerror + (FLG_INCONDEFS, + message ("Function result is used in %q clause of %q " + "but was previously annotated with %s: %q", + stateClause_unparseKind (cl), + uentry_getName (ue), + sstate_unparse (pstate), + sRef_unparse (el)), + uentry_whereLast (ue)); + } + + specialResult = TRUE; + } + } + + (void) sRef_fixResultType (el, sRef_getType (res), ue); + } + } + else if (sRef_isParam (rb)) + { + DPRINTF (("Make special: %s", sRef_unparseFull (rb))); + + if (!sRef_makeStateSpecial (rb)) + { + if (fileloc_isXHFile (uentry_whereLast (ue))) + { + ; /* Okay to override in .xh files */ + } + else + { + voptgenerror + (FLG_INCONDEFS, + message ("Reference %q used in %q clause of %q, " + "but was previously annotated with %s: %q", + sRef_unparse (rb), + stateClause_unparseKind (cl), + uentry_getName (ue), + sstate_unparse (sRef_getDefState (res)), + sRef_unparse (el)), + uentry_whereLast (ue)); + } + } + + DPRINTF (("Made special: %s", sRef_unparseFull (rb))); + } + else if (sRef_isInvalid (rb)) + { + /*@innercontinue@*/ continue; + } + else + { + BADBRANCHCONT; + /*@innercontinue@*/ continue; + } + + if (stateClause_isMemoryAllocation (cl)) + { + if (!ctype_isVisiblySharable (sRef_getType (el))) + { + voptgenerror + (FLG_ANNOTATIONERROR, + /*@-sefparams@*/ /* This is okay because its fresh storage. */ /*@i32@*/ + message + ("%q clauses includes %q of " + "non-dynamically allocated type %s", + cstring_capitalizeFree (stateClause_unparseKind (cl)), + sRef_unparse (el), + ctype_unparse (sRef_getType (el))), + uentry_whereLast (ue)); + /*@=sefparams@*/ + } + } + + } end_sRefSet_allElements ; + } + } end_stateClauseList_elements ; +} + +void stateClauseList_checkEqual (uentry old, uentry unew) +{ + stateClauseList oldClauses = uentry_getStateClauseList (old); + stateClauseList newClauses = uentry_getStateClauseList (unew); + + if (stateClauseList_isDefined (newClauses)) + { + stateClauseList_elements (newClauses, cl) + { + if (stateClause_isGlobal (cl)) + { + ; + } + else + { + sRefSet sc = stateClauseList_getClause (oldClauses, cl); + + if (!sRefSet_equal (sc, stateClause_getRefs (cl))) + { + if (optgenerror + (FLG_INCONDEFS, + message ("Function %q %rdeclared with inconsistent %q clause: %q", + uentry_getName (old), + uentry_isDeclared (old), + stateClause_unparseKind (cl), + sRefSet_unparsePlain (stateClause_getRefs (cl))), + g_currentloc)) + { + uentry_showWhereLastExtra (old, sRefSet_unparsePlain (sc)); + } + } + } + } end_stateClauseList_elements ; + + stateClauseList_elements (oldClauses, cl) + { + if (stateClause_isGlobal (cl)) + { + ; /*@i32@*/ + } + else + { + sRefSet sc = stateClauseList_getClause (newClauses, cl); + + if (sRefSet_isUndefined (sc) && !sRefSet_isEmpty (stateClause_getRefs (cl))) + { + if (optgenerror + (FLG_INCONDEFS, + message ("Function %q %rdeclared without %q clause (either " + "use no special clauses in redeclaration, or " + "they must match exactly: %q", + uentry_getName (old), + uentry_isDeclared (old), + stateClause_unparseKind (cl), + sRefSet_unparsePlain (stateClause_getRefs (cl))), + g_currentloc)) + { + uentry_showWhereLastExtra (old, sRefSet_unparsePlain (sc)); + } + } + } + } end_stateClauseList_elements ; + } +} + + + diff --git a/src/stateCombinationTable.c b/src/stateCombinationTable.c new file mode 100644 index 0000000..e96281e --- /dev/null +++ b/src/stateCombinationTable.c @@ -0,0 +1,226 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** stateCombinationTable.c +** +** A stateCombinationTable is a mapping from keys to value tables. +*/ + +# include "lclintMacros.nf" +# include "llbasic.h" + +/* +** (key, value, value) => value +*/ + +static stateEntry stateEntry_create (void) +{ + stateEntry res = (stateEntry) dmalloc (sizeof (*res)); + res->value = 0; + res->msg = cstring_undefined; + return res; +} + +static cstring stateEntry_unparse (stateEntry e) +{ + if (cstring_isDefined (e->msg)) + { + return message ("[%d: %s]", e->value, e->msg); + } + else + { + return message ("%d", e->value); + } +} + +stateCombinationTable stateCombinationTable_create (int size) +{ + stateCombinationTable res = (stateCombinationTable) dmalloc (sizeof (*res)); + int i; + + res->size = size; + res->rows = (stateRow *) dmalloc (sizeof (*(res->rows)) * size); + + for (i = 0; i < size; i++) + { + int j; + + res->rows[i] = (stateRow) dmalloc (sizeof (*res->rows[i])); + res->rows[i]->size = size; + + /* Rows have an extra entry (for lose ref transfers) */ + res->rows[i]->entries = (stateEntry *) + dmalloc (sizeof (*res->rows[i]->entries) * (size + 1)); + + for (j = 0; j < size + 1; j++) + { + stateEntry s = stateEntry_create (); + + /* Default transfer changes no state and is permitted without error. */ + + s->value = i; + llassert (cstring_isUndefined (s->msg)); + + res->rows[i]->entries[j] = s; + } + } + + /*@i32@*/ return res; +} + +cstring stateCombinationTable_unparse (stateCombinationTable t) +{ + int i; + cstring res = cstring_newEmpty (); + + for (i = 0; i < t->size; i++) + { + int j; + + for (j = 0; j < (t->size + 1); j++) + { + if (j == 0) + { + res = message ("%q[%d: ] %q", res, i, + stateEntry_unparse (t->rows[i]->entries[j])); + } + else + { + res = message ("%q . %q", res, + stateEntry_unparse (t->rows[i]->entries[j])); + } + } + + res = cstring_appendChar (res, '\n'); + } + + return res; +} + +static void stateEntry_free (/*@only@*/ stateEntry s) +{ + cstring_free (s->msg); + sfree (s); +} + +static void stateRow_free (/*@only@*/ stateRow r) +{ + int i; + + for (i = 0; i < r->size + 1; i++) { + /*@i32@*/ stateEntry_free (r->entries[i]); + } + + sfree (r->entries); + sfree (r); +} + +void stateCombinationTable_free (/*@only@*/ stateCombinationTable t) +{ + int i; + + for (i = 0; i < t->size; i++) { + /*@i32@*/ stateRow_free (t->rows[i]); + } + + sfree (t->rows); + sfree (t); +} + +static /*@exposed@*/ stateEntry +stateCombintationTable_getEntry (stateCombinationTable h, + int rkey, int ckey) +{ + llassert (rkey < h->size); + llassert (ckey < h->size + 1); + + return h->rows[rkey]->entries[ckey]; +} + +void stateCombinationTable_set (stateCombinationTable h, + int p_from, int p_to, + int value, cstring msg) +{ + stateEntry entry = stateCombintationTable_getEntry (h, p_from, p_to); + + llassert (entry != NULL); + + entry->value = value; + llassert (cstring_isUndefined (entry->msg)); + entry->msg = msg; + + DPRINTF (("Set entry: [%p] %d / %d => %s", entry, + p_from, p_to, cstring_toCharsSafe (msg))); + +} + +/* +** Like set, but may already have value. +** (Only different is error checking.) +*/ + +void stateCombinationTable_update (stateCombinationTable h, + int p_from, int p_to, + int value, cstring msg) +{ + stateEntry entry = stateCombintationTable_getEntry (h, p_from, p_to); + + llassert (entry != NULL); + + entry->value = value; + cstring_free (entry->msg); + entry->msg = msg; + + DPRINTF (("Update entry: [%p] %d / %d => %s", entry, + p_from, p_to, cstring_toCharsSafe (msg))); +} + +int stateCombinationTable_lookup (stateCombinationTable h, int p_from, int p_to, /*@out@*/ cstring *msg) +{ + stateEntry entry; + llassert (p_from != stateValue_error); + llassert (p_to != stateValue_error); + + entry = stateCombintationTable_getEntry (h, p_from, p_to); + llassert (entry != NULL); + + DPRINTF (("Lookup: %d / %d => %s [%p]", + p_from, p_to, cstring_toCharsSafe (entry->msg), entry)); + + /*@i32@*/ *msg = entry->msg; + return entry->value; +} + +extern int +stateCombinationTable_lookupLoseReference (stateCombinationTable h, int from, + /*@out@*/ /*@observer@*/ cstring *msg) +{ + return stateCombinationTable_lookup (h, from, h->size, msg); +} + + + + + + diff --git a/src/stateInfo.c b/src/stateInfo.c new file mode 100644 index 0000000..d0b9a2f --- /dev/null +++ b/src/stateInfo.c @@ -0,0 +1,157 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ + +# include "lclintMacros.nf" +# include "basic.h" + +void stateInfo_free (/*@only@*/ stateInfo a) +{ + if (a != NULL) + { + fileloc_free (a->loc); + sfree (a); + } +} + +/*@only@*/ stateInfo stateInfo_update (/*@only@*/ stateInfo old, stateInfo newinfo) + /* + ** returns an stateInfo with the same value as new. May reuse the + ** storage of old. (i.e., same effect as copy, but more + ** efficient.) + */ +{ + if (old == NULL) + { + old = stateInfo_copy (newinfo); + } + else if (newinfo == NULL) + { + stateInfo_free (old); + return NULL; + } + else + { + old->loc = fileloc_update (old->loc, newinfo->loc); + old->ref = newinfo->ref; + old->ue = newinfo->ue; + } + + return old; +} + +/*@only@*/ stateInfo stateInfo_updateLoc (/*@only@*/ stateInfo old, fileloc loc) +{ + if (old == NULL) + { + old = stateInfo_makeLoc (loc); + } + else + { + old->loc = fileloc_update (old->loc, loc); + old->ue = uentry_undefined; + old->ref = sRef_undefined; + } + + return old; +} + +/*@only@*/ stateInfo + stateInfo_updateRefLoc (/*@only@*/ stateInfo old, /*@exposed@*/ sRef ref, fileloc loc) +{ + if (old == NULL) + { + old = stateInfo_makeRefLoc (ref, loc); + } + else + { + old->loc = fileloc_update (old->loc, loc); + old->ue = uentry_undefined; + old->ref = ref; + } + + return old; +} + +/*@only@*/ stateInfo stateInfo_copy (stateInfo a) +{ + if (a == NULL) + { + return NULL; + } + else + { + stateInfo ret = (stateInfo) dmalloc (sizeof (*ret)); + + ret->loc = fileloc_copy (a->loc); /*< should report bug without copy! >*/ + ret->ue = a->ue; + ret->ref = a->ref; + + return ret; + } +} + +/*@only@*/ /*@notnull@*/ stateInfo +stateInfo_makeLoc (fileloc loc) +{ + stateInfo ret = (stateInfo) dmalloc (sizeof (*ret)); + + ret->loc = fileloc_copy (loc); /* don't need to copy! */ + ret->ue = uentry_undefined; + ret->ref = sRef_undefined; + + return ret; +} + +/*@only@*/ stateInfo +stateInfo_makeRefLoc (/*@exposed@*/ sRef ref, fileloc loc) +{ + stateInfo ret = (stateInfo) dmalloc (sizeof (*ret)); + + ret->loc = fileloc_copy (loc); + ret->ref = ref; + ret->ue = uentry_undefined; + + return ret; +} + +/*@only@*/ cstring +stateInfo_unparse (stateInfo s) +{ + if (stateInfo_isDefined (s) && + fileloc_isDefined (s->loc)) { + return fileloc_unparse (s->loc); + } else { + return cstring_makeLiteral (""); + } +} + +fileloc stateInfo_getLoc (stateInfo info) +{ + if (stateInfo_isDefined (info)) { + return info->loc; + } + + return fileloc_undefined; +} + diff --git a/src/stateValue.c b/src/stateValue.c new file mode 100644 index 0000000..eba7f26 --- /dev/null +++ b/src/stateValue.c @@ -0,0 +1,148 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** stateValue.c +*/ + +# include "lclintMacros.nf" +# include "llbasic.h" + +extern +stateValue stateValue_create (int value, stateInfo info) { + stateValue sv = (stateValue) dmalloc (sizeof (*sv)); + + sv->value = value; + sv->info = info; + + return sv; +} + +stateValue stateValue_copy (stateValue s) { + stateValue res; + llassert (stateValue_isDefined (s)); + res = stateValue_create (s->value, stateInfo_copy (s->info)); + return res; +} + +bool stateValue_sameValue (stateValue s1, stateValue s2) +{ + if (stateValue_isDefined (s1) && stateValue_isDefined (s2)) + { + return s1->value == s2->value; + } + else + { + return !stateValue_isDefined (s1) && !stateValue_isDefined (s2); + } +} + +extern +cstring stateValue_unparse (stateValue s) { + if (stateValue_isDefined (s)) + { + return (message ("%d:%q", s->value, stateInfo_unparse (s->info))); + } + else + { + return (cstring_makeLiteral ("")); + } +} + +void stateValue_updateValue (stateValue s, int value, stateInfo info) +{ + llassert (stateValue_isDefined (s)); + s->value = value; + + if (stateInfo_isDefined (info)) { + stateInfo_free (s->info); + s->info = info; + } + + DPRINTF (("update state value: %s", stateValue_unparse (s))); +} + +void stateValue_updateValueLoc (stateValue s, int value, fileloc loc) +{ + llassert (stateValue_isDefined (s)); + + DPRINTF (("Update state: %s -> %d at %s", stateValue_unparse (s), value, + fileloc_unparse (loc))); + + s->value = value; + + if (fileloc_isDefined (loc)) { + s->info = stateInfo_updateLoc (s->info, loc); + } +} + +void stateValue_update (stateValue res, stateValue val) +{ + llassert (stateValue_isDefined (res)); + res->value = val->value; + res->info = stateInfo_update (res->info, val->info); + DPRINTF (("update state: %s", stateValue_unparse (res))); +} + +void stateValue_show (stateValue s, metaStateInfo msinfo) +{ + if (stateValue_isDefined (s)) + { + stateInfo info = stateValue_getInfo (s); + + if (stateInfo_isDefined (info)) + { + if (fileloc_isDefined (info->loc)) + { + llgenindentmsg (message + ("State becomes %s", + metaStateInfo_unparseValue (msinfo, + stateValue_getValue (s))), + info->loc); + } + } + } +} + +/*@observer@*/ cstring stateValue_unparseValue (stateValue s, metaStateInfo msinfo) +{ + return metaStateInfo_unparseValue (msinfo, + stateValue_getValue (s)); +} + +int stateValue_getValue (stateValue s) +{ + llassert (stateValue_isDefined (s)); + return s->value; +} + +stateInfo stateValue_getInfo (stateValue s) +{ + llassert (stateValue_isDefined (s)); + return s->info; +} + +bool stateValue_hasLoc (stateValue s) +{ + return (fileloc_isDefined (stateValue_getLoc (s))); +} diff --git a/src/storeRefNodeList.c b/src/storeRefNodeList.c index b4a4715..de71c3c 100644 --- a/src/storeRefNodeList.c +++ b/src/storeRefNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/structNames.c b/src/structNames.c index cc55d27..2ab2151 100644 --- a/src/structNames.c +++ b/src/structNames.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -43,6 +43,13 @@ /*@constant char MARKCHAR_PARAM; @*/ # define MARKCHAR_PARAM '%' +/*@observer@*/ cstring plainTagName (cstring s) +{ + llassert (!isFakeTag (s)); + + return cstring_suffix (s, 1); +} + /*@only@*/ cstring fixTagName (cstring s) { if (isFakeTag (s)) @@ -53,7 +60,6 @@ case MARKCHAR_UNION: return (cstring_makeLiteral ("union")); case MARKCHAR_ENUM: return (cstring_makeLiteral ("enum")); default: return (message ("", s)); - /* BADDEFAULT; */ } } else diff --git a/src/symtable.c b/src/symtable.c index 4908c66..f047a84 100644 --- a/src/symtable.c +++ b/src/symtable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -82,7 +82,7 @@ typedef struct } info; } idTableEntry; -typedef struct _idTable +typedef struct { unsigned int size; unsigned int allocated; @@ -90,11 +90,11 @@ typedef struct _idTable bool exporting; } idTable; -struct _symtableStruct +struct s_symtableStruct { idTable *idTable; /* data is idTableEntry */ symHashTable *hTable; /* data is htData */ - mapping *type2sort; /* maps LCL type symbol to LSL sort */ + mapping type2sort; /* maps LCL type symbol to LSL sort */ } ; static /*@observer@*/ ltoken idTableEntry_getId (idTableEntry *p_x); @@ -124,6 +124,7 @@ static void idTable_free (/*@only@*/ idTable *p_st); void varInfo_free (/*@only@*/ varInfo v) { + ltoken_free (v->id); sfree (v); } @@ -172,6 +173,7 @@ static void fctInfo_free (/*@only@*/ fctInfo f) static void typeInfo_free (/*@only@*/ typeInfo t) { + ltoken_free (t->id); sfree (t); } @@ -822,7 +824,7 @@ symtable_dump (symtable stable, FILE * f, bool lco) } lsymbol -lsymbol_translateSort (mapping * m, lsymbol s) +lsymbol_translateSort (mapping m, lsymbol s) { lsymbol res = mapping_find (m, s); if (res == lsymbol_undefined) @@ -831,7 +833,7 @@ lsymbol_translateSort (mapping * m, lsymbol s) } static /*@null@*/ lslOp - lslOp_renameSorts (mapping *map,/*@returned@*/ /*@null@*/ lslOp op) + lslOp_renameSorts (mapping map,/*@returned@*/ /*@null@*/ lslOp op) { sigNode sign; @@ -890,7 +892,7 @@ static /*@null@*/ signNode */ static /*@only@*/ pairNodeList -parseGlobals (char *line, tsource *srce) +parseGlobals (char *line, inputStream srce) { pairNodeList plist = pairNodeList_new (); pairNode p; @@ -909,8 +911,8 @@ parseGlobals (char *line, tsource *srce) (message ("%q: Imported file contains illegal function global declaration.\n" "Skipping rest of the line: %s (%s)", - fileloc_unparseRaw (cstring_fromChars (tsource_fileName (srce)), - tsource_thisLineNumber (srce)), + fileloc_unparseRaw (inputStream_fileName (srce), + inputStream_thisLineNumber (srce)), cstring_fromChars (line), cstring_fromChars (lineptr))); return plist; @@ -958,11 +960,11 @@ isBlankLine (char *line) typedef /*@only@*/ fctInfo o_fctInfo; static void -parseLine (char *line, tsource *srce, mapping * map) +parseLine (char *line, inputStream srce, mapping map) { static /*@owned@*/ o_fctInfo *savedFcn = NULL; - char *lineptr, *lineptr2, *cimportfile = tsource_fileName (srce); - cstring importfile = cstring_fromChars (cimportfile); + char *lineptr, *lineptr2; + cstring importfile = inputStream_fileName (srce); char namestr[MAXBUFFLEN], kstr[20], sostr[MAXBUFFLEN]; sort bsort, nullSort = sort_makeNoSort (); int col = 0; @@ -971,7 +973,7 @@ parseLine (char *line, tsource *srce, mapping * map) if (inImport) { - imploc = fileloc_createImport (importfile, tsource_thisLineNumber (srce)); + imploc = fileloc_createImport (importfile, inputStream_thisLineNumber (srce)); } if (firstWord (line, "op")) @@ -992,8 +994,8 @@ parseLine (char *line, tsource *srce, mapping * map) *(lineptr2 + 1) = '\0'; } - llassert (cimportfile != NULL); - op = parseOpLine (cimportfile, lineptr + 1); + llassert (cstring_isDefined (importfile)); + op = parseOpLine (importfile, cstring_fromChars (lineptr + 1)); if (op == (lslOp) 0) { @@ -1001,7 +1003,7 @@ parseLine (char *line, tsource *srce, mapping * map) (message ("%q: Imported file contains illegal operator declaration:\n " "skipping this line: %s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), cstring_fromChars (line))); fileloc_free (imploc); return; @@ -1023,7 +1025,7 @@ parseLine (char *line, tsource *srce, mapping * map) { lclplainerror (message ("%q: illegal type declaration:\n skipping this line: %s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), cstring_fromChars (line))); fileloc_free (imploc); return; @@ -1031,7 +1033,7 @@ parseLine (char *line, tsource *srce, mapping * map) ti = (typeInfo) dmalloc (sizeof (*ti)); ti->id = ltoken_createFull (LLT_TYPEDEF_NAME, lsymbol_fromChars (namestr), - importfile, tsource_thisLineNumber (srce), col); + importfile, inputStream_thisLineNumber (srce), col); bsort = sort_lookupName (lsymbol_translateSort (map, lsymbol_fromChars (sostr))); @@ -1044,7 +1046,7 @@ parseLine (char *line, tsource *srce, mapping * map) col = 5 + lineptr - line; /* 5 for initial "%LCL "*/ lclbug (message ("%q: Imported files contains unknown base sort", - fileloc_unparseRawCol (importfile, tsource_thisLineNumber (srce), col))); + fileloc_unparseRawCol (importfile, inputStream_thisLineNumber (srce), col))); bsort = nullSort; } @@ -1094,7 +1096,7 @@ parseLine (char *line, tsource *srce, mapping * map) lclplainerror (message ("%q: Imported file contains illegal variable declaration. " "Skipping this line.", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)))); + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)))); fileloc_free (imploc); return; } @@ -1110,12 +1112,12 @@ parseLine (char *line, tsource *srce, mapping * map) if (sort_isNoSort (bsort)) { lclplainerror (message ("%q: Imported file contains unknown base sort", - fileloc_unparseRawCol (importfile, tsource_thisLineNumber (srce), col))); + fileloc_unparseRawCol (importfile, inputStream_thisLineNumber (srce), col))); bsort = nullSort; } vi->id = ltoken_createFull (simpleId, lsymbol_fromChars (namestr), - importfile, tsource_thisLineNumber (srce), col); + importfile, inputStream_thisLineNumber (srce), col); vi->sort = bsort; vi->kind = VRK_VAR; vi->export = TRUE; @@ -1143,7 +1145,7 @@ parseLine (char *line, tsource *srce, mapping * map) if (sscanf (line, "const %s %s", namestr, sostr) != 2) { lclbug (message ("%q: Imported file contains illegal constant declaration: %s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), cstring_fromChars (line))); fileloc_free (imploc); return; @@ -1161,12 +1163,12 @@ parseLine (char *line, tsource *srce, mapping * map) if (sort_isNoSort (bsort)) { lclplainerror (message ("%q: Imported file contains unknown base sort", - fileloc_unparseRawCol (importfile, tsource_thisLineNumber (srce), col))); + fileloc_unparseRawCol (importfile, inputStream_thisLineNumber (srce), col))); bsort = nullSort; } vi->id = ltoken_createFull (simpleId, lsymbol_fromChars (namestr), - importfile, tsource_thisLineNumber (srce), col); + importfile, inputStream_thisLineNumber (srce), col); vi->sort = bsort; vi->kind = VRK_CONST; vi->export = TRUE; @@ -1224,7 +1226,7 @@ parseLine (char *line, tsource *srce, mapping * map) lclplainerror (message ("%q: Unexpected function globals. " "Skipping this line: \n%s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), cstring_fromChars (line))); savedFcn = NULL; pairNodeList_free (globals); @@ -1239,7 +1241,7 @@ parseLine (char *line, tsource *srce, mapping * map) { lclplainerror (message ("%q: illegal function declaration. Skipping this line:\n%s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), cstring_fromChars (line))); fileloc_free (imploc); return; @@ -1262,13 +1264,14 @@ parseLine (char *line, tsource *srce, mapping * map) *(lineptr2 + 1) = '\0'; } - op = parseOpLine (cimportfile, lineptr + 1); + op = parseOpLine (importfile, cstring_fromChars (lineptr + 1)); if (op == (lslOp) 0) { - lclplainerror (message ("%q: illegal function declaration: %s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), - cstring_fromChars (line))); + lclplainerror + (message ("%q: illegal function declaration: %s", + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), + cstring_fromChars (line))); fileloc_free (imploc); return; } @@ -1292,19 +1295,27 @@ parseLine (char *line, tsource *srce, mapping * map) if (!usymtab_existsGlobEither (fname)) { - (void) usymtab_addEntry (uentry_makeFunction + (void) usymtab_addEntry (uentry_makeFunction (fname, ctype_unknown, typeId_invalid, globSet_new (), sRefSet_undefined, + warnClause_undefined, fileloc_copy (imploc))); } } } else { - lclplainerror (message ("%q: unexpected function name: %s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), - cstring_fromChars (line))); + /* evans 2001-05-27: detected by lclint after fixing external alias bug. */ + if (op->name != NULL) + { + ltoken_free (op->name->content.opid); + } + + lclplainerror + (message ("%q: unexpected function name: %s", + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), + cstring_fromChars (line))); } } else if (firstWord (line, "enumConst")) @@ -1316,7 +1327,7 @@ parseLine (char *line, tsource *srce, mapping * map) lclplainerror (message ("%q: Illegal enum constant declaration. " "Skipping this line:\n%s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), cstring_fromChars (line))); fileloc_free (imploc); return; @@ -1333,12 +1344,12 @@ parseLine (char *line, tsource *srce, mapping * map) if (sort_isNoSort (bsort)) { lclplainerror (message ("%q: unknown base sort\n", - fileloc_unparseRawCol (importfile, tsource_thisLineNumber (srce), col))); + fileloc_unparseRawCol (importfile, inputStream_thisLineNumber (srce), col))); bsort = nullSort; } vi->id = ltoken_createFull (simpleId, lsymbol_fromChars (namestr), - importfile, tsource_thisLineNumber (srce), col); + importfile, inputStream_thisLineNumber (srce), col); vi->sort = bsort; vi->kind = VRK_ENUM; @@ -1364,7 +1375,7 @@ parseLine (char *line, tsource *srce, mapping * map) { lclplainerror (message ("%q: Unknown symbol declaration. Skipping this line:\n%s", - fileloc_unparseRaw (importfile, tsource_thisLineNumber (srce)), + fileloc_unparseRaw (importfile, inputStream_thisLineNumber (srce)), cstring_fromChars (line))); } @@ -1372,15 +1383,16 @@ parseLine (char *line, tsource *srce, mapping * map) } void -symtable_import (tsource *imported, ltoken tok, mapping * map) +symtable_import (inputStream imported, ltoken tok, mapping map) { - char *buf, *importfile; - tsource *lclsource; + char *buf; + cstring importfile; + inputStream lclsource; int old_lsldebug; bool old_inImport = inImport; - buf = tsource_nextLine (imported); - importfile = tsource_fileName (imported); + buf = inputStream_nextLine (imported); + importfile = inputStream_fileName (imported); llassert (buf != NULL); @@ -1389,7 +1401,7 @@ symtable_import (tsource *imported, ltoken tok, mapping * map) lclsource = LCLScanSource (); lclfatalerror (tok, message ("Expecting '%%LCLSymbolTable' line in import file %s:\n%s\n", - cstring_fromChars (importfile), + importfile, cstring_fromChars (buf))); } @@ -1400,7 +1412,7 @@ symtable_import (tsource *imported, ltoken tok, mapping * map) for (;;) { - buf = tsource_nextLine (imported); + buf = inputStream_nextLine (imported); llassert (buf != NULL); @@ -1420,7 +1432,7 @@ symtable_import (tsource *imported, ltoken tok, mapping * map) lclfatalerror (tok, message ("Expecting '%%LCL' prefix in import file %s:\n%s\n", - cstring_fromChars (importfile), + importfile, cstring_fromChars (buf))); } } @@ -2019,6 +2031,7 @@ tagKind_unparse (tagKind k) static void tagInfo_free (/*@only@*/ tagInfo tag) { + ltoken_free (tag->id); sfree (tag); } @@ -2101,7 +2114,7 @@ domainMatches (ltokenList domain, sortSetList argSorts) { rangeSort = sigNode_rangeSort (sig); - if ((qual == 0) || (sort_equal (&rangeSort, &qual))) + if ((qual == 0) || (sort_equal (rangeSort, qual))) { if (domainMatches (sig->domain, argSorts)) { diff --git a/src/syntable.c b/src/syntable.c index 76d53eb..8aa62ee 100644 --- a/src/syntable.c +++ b/src/syntable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/termNodeList.c b/src/termNodeList.c index 7e522ea..faf0ba1 100644 --- a/src/termNodeList.c +++ b/src/termNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/tokentable.c b/src/tokentable.c index 66d9322..7d94a12 100644 --- a/src/tokentable.c +++ b/src/tokentable.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/traitRefNodeList.c b/src/traitRefNodeList.c index 19d9956..22c2a8f 100644 --- a/src/traitRefNodeList.c +++ b/src/traitRefNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/transferChecks.c b/src/transferChecks.c new file mode 100644 index 0000000..2e78434 --- /dev/null +++ b/src/transferChecks.c @@ -0,0 +1,4342 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** transferChecks.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "transferChecks.h" + +static void checkStructTransfer (exprNode p_lhs, sRef p_slhs, exprNode p_rhs, sRef p_srhs, + fileloc p_loc, transferKind p_tt); +static void checkMetaStateConsistent (/*@exposed@*/ sRef p_fref, sRef p_tref, + fileloc p_loc, transferKind p_transferType) ; + +static void checkLeaveTrans (uentry p_actual, transferKind p_transferType); +static void checkTransfer (exprNode p_fexp, /*@dependent@*/ sRef p_fref, + exprNode p_texp, /*@dependent@*/ sRef p_tref, + fileloc p_loc, transferKind p_transferType); +static void checkGlobTrans (uentry p_glob, transferKind p_type); + +static ynm +checkCompletelyDefined (exprNode p_fexp, /*@exposed@*/ sRef p_fref, sRef p_ofref, + exprNode p_texp, sRef p_tref, + bool p_topLevel, bool p_inUnion, bool p_directUnion, + fileloc p_loc, transferKind p_transferType, int p_depth, + bool p_report); + +static /*@exposed@*/ sRef dependentReference (sRef p_sr); +static bool canLoseLocalReference (/*@dependent@*/ sRef p_sr, fileloc p_loc) ; + +/* +** returns the most specific alkind +*/ + +alkind alkind_resolve (alkind a1, alkind a2) +{ + if (a1 == AK_UNKNOWN || a1 == AK_ERROR) return a2; + if (a2 == AK_UNKNOWN || a2 == AK_ERROR || a2 == AK_LOCAL) return a1; + if (a1 == AK_LOCAL) return a2; + return a1; +} + +/* +** tref <- fref +** +** transferType: +** FCNRETURN return fref; tref is return type +** GLOBASSIGN tref = fref; +** FCNPASS call (fref) ; tref is the argument type +** +*/ + +static /*@only@*/ cstring +transferErrorMessage (transferKind transferType, alkind tkind) /*@*/ +{ + switch (transferType) + { + case TT_FCNRETURN: + return (message ("returned as %s", alkind_unparse (tkind))); + case TT_DOASSIGN: + return (message ("assigned to %s", alkind_unparse (tkind))); + case TT_FIELDASSIGN: + return (message ("assigned to %s", alkind_unparse (tkind))); + case TT_GLOBINIT: + return (message ("used as initial value for %s", + alkind_unparse (tkind))); + case TT_FCNPASS: + return (message ("passed as %s param", alkind_unparse (tkind))); + BADDEFAULT; + } + BADEXIT; +} + +static /*@only@*/ cstring +transferErrorExcerpt (transferKind transferType, exprNode fexp, exprNode texp) /*@*/ +{ + switch (transferType) + { + case TT_FCNRETURN: + return (message ("return %s", exprNode_unparse (fexp))); + case TT_FIELDASSIGN: + case TT_DOASSIGN: + case TT_GLOBINIT: + return (message ("%s = %s", exprNode_unparse (texp), exprNode_unparse (fexp))); + case TT_FCNPASS: + /*@i32 make it so called fcn is known here! */ + return cstring_copy (exprNode_unparse (fexp)); + BADDEFAULT; + } + BADEXIT; +} + +static cstring +transferErrorExpMessage (transferKind transferType, exkind tkind) /*@*/ +{ + if (exkind_isUnknown (tkind)) + { + switch (transferType) + { + case TT_FCNRETURN: + return (cstring_makeLiteral ("returned without qualification")); + case TT_FIELDASSIGN: + case TT_DOASSIGN: + return (cstring_makeLiteral ("assigned to unqualified reference")); + case TT_FCNPASS: + return (cstring_makeLiteral ("passed without qualification")); + case TT_GLOBINIT: + return (cstring_makeLiteral ("used as initial value for unqualified storage")); + BADDEFAULT; + } + } + else + { + switch (transferType) + { + case TT_FCNRETURN: + return (message ("returned as %s", exkind_unparse (tkind))); + case TT_FIELDASSIGN: + case TT_DOASSIGN: + return (message ("assigned to %s", exkind_unparse (tkind))); + case TT_FCNPASS: + return (message ("passed as %s param", exkind_unparse (tkind))); + BADDEFAULT; + } + } + + BADEXIT; +} + +static /*@observer@*/ cstring +transferNullMessage (transferKind transferType) /*@*/ +{ + switch (transferType) + { + case TT_FCNRETURN: + return (cstring_makeLiteralTemp ("returned as non-null")); + case TT_DOASSIGN: + case TT_FIELDASSIGN: + return (cstring_makeLiteralTemp ("assigned to non-null")); + case TT_GLOBINIT: + return (cstring_makeLiteralTemp ("initialized to non-null")); + case TT_FCNPASS: + return (cstring_makeLiteralTemp ("passed as non-null param")); + BADDEFAULT; + } + BADEXIT; +} + +static /*@dependent@*/ exprNode atFunction = exprNode_undefined; +static int atArgNo = 0; +static int atNumArgs = 0; + +static cstring generateText (exprNode e1, exprNode e2, + sRef tref, transferKind tt) + /*@*/ +{ + if (tt == TT_DOASSIGN || tt == TT_GLOBINIT) + { + return (message ("%s = %s", exprNode_unparse (e2), + exprNode_unparse (e1))); + } + else if (tt == TT_FIELDASSIGN) + { + return (message ("%s = %s (field %q)", + exprNode_unparse (e2), + exprNode_unparse (e1), + sRef_unparse (tref))); + } + else if (tt == TT_FCNPASS) + { + return (message ("%s (%s%s%s)", + exprNode_unparse (atFunction), + (atArgNo == 1 ? cstring_undefined + : cstring_makeLiteralTemp ("..., ")), + exprNode_unparse (e1), + (atArgNo == atNumArgs ? cstring_undefined + : cstring_makeLiteralTemp (", ...")))); + } + else + { + return (cstring_copy (exprNode_unparse (e1))); + } +} + +static /*@observer@*/ cstring +transferType_unparse (transferKind transferType) /*@*/ +{ + switch (transferType) + { + case TT_FCNRETURN: + return (cstring_makeLiteralTemp ("Returned")); + case TT_DOASSIGN: + case TT_FIELDASSIGN: + return (cstring_makeLiteralTemp ("Assigned")); + case TT_FCNPASS: + return (cstring_makeLiteralTemp ("Passed")); + case TT_GLOBINIT: + return (cstring_makeLiteralTemp ("Initialized")); + case TT_GLOBRETURN: + return (cstring_makeLiteralTemp ("GLOB RETURN!")); + case TT_GLOBPASS: + return (cstring_makeLiteralTemp ("GLOB PASS!")); + case TT_PARAMRETURN: + return (cstring_makeLiteralTemp ("PARAM RETURN!")); + case TT_LEAVETRANS: + return (cstring_makeLiteralTemp ("LEAVE TRANS!")); + BADDEFAULT; + } + BADEXIT; +} + +static /*@observer@*/ cstring udError (sRef s) +{ + if (sRef_isDead (s)) + { + return cstring_makeLiteralTemp ("released"); + } + else if (sRef_isAllocated (s)) + { + return cstring_makeLiteralTemp ("allocated but not defined"); + } + else + { + return cstring_makeLiteralTemp ("undefined"); + } +} + +static /*@only@*/ +cstring defExpl (sRef s) /*@*/ +{ + sRef rb = sRef_getRootBase (s); + + if (sRef_sameName (rb, s)) + { + if (sRef_isAllocated (s)) + { + return cstring_makeLiteral (" (allocated only)"); + } + return cstring_undefined; + } + else + { + return (message (" (%q is %s)", sRef_unparse (s), udError (s))); + } +} + +/* +** +** More than just definition checking --- checks for consistent state also! +** +** Returns TRUE if fref is completely defined. +** if !report, returns TRUE unless error is at the deep level. +*/ + +static ynm +checkCompletelyDefined (exprNode fexp, /*@exposed@*/ sRef fref, sRef ofref, + exprNode texp, sRef tref, + bool topLevel, bool inUnion, bool directUnion, + fileloc loc, transferKind transferType, + int depth, bool report) +{ + ctype ct; + alkind fkind = sRef_getAliasKind (fref); + alkind tkind = sRef_getAliasKind (tref); + + DPRINTF (("Check completely defined: %s [%s] / %s [%s]", + exprNode_unparse (fexp), sRef_unparseFull (fref), + exprNode_unparse (texp), sRef_unparseFull (tref))); + + if (depth > MAXDEPTH) + { + llquietbug + (message + ("Check definition limit exceeded, checking %q. " + "This either means there is a variable with at least " + "%d indirections apparent in the program text, or " + "there is a bug in LCLint.", + sRef_unparse (fref), + MAXDEPTH)); + + return YES; + } + + if (!sRef_isKnown (fref)) + { + return YES; + } + + if (sRef_isDead (fref)) + { + DPRINTF (("Dead storage to completely defined: %s", sRef_unparseFull (fref))); + } + + if (alkind_isStack (fkind)) + { + ctype rt = ctype_realType (sRef_getType (tref)); + + if (ctype_isMutable (rt) && !ctype_isSU (rt)) + { + if (transferType == TT_PARAMRETURN) + { + if (optgenerror + (FLG_RETSTACK, + message + ("Stack-allocated storage %qreachable from parameter %q", + sRef_unparseOpt (fref), + sRef_unparse (ofref)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else if (transferType == TT_GLOBRETURN) + { + if (optgenerror + (FLG_RETSTACK, + message + ("Stack-allocated storage %qreachable from global %q", + sRef_unparseOpt (fref), + sRef_unparse (ofref)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else if (transferType == TT_FCNRETURN) + { + if (optgenerror + (FLG_RETSTACK, + message + ("Stack-allocated storage %qreachable from return value: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fexp)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else + { + /* no error */ + } + } + } + + if (!topLevel) + { + DPRINTF (("From: %s ==> %s", + sRef_unparseFull (fref), + sRef_unparseFull (tref))); + + checkMetaStateConsistent (fref, tref, loc, transferType); + + if ((sRef_isObserver (fref) && !sRef_isObserver (tref)) + || (sRef_isExposed (fref) && !(sRef_isObserver (tref) + || sRef_isExposed (tref)))) + { + flagcode code = (sRef_isObserver (fref) + ? FLG_OBSERVERTRANS : FLG_EXPOSETRANS); + + if (!sRef_isStateLive (fref)) + { + ; /* no error (will be a definition error) */ + } + else if (transferType == TT_DOASSIGN + || transferType == TT_FIELDASSIGN + || transferType == TT_GLOBINIT + || transferType == TT_FCNPASS) + { + ; /* no error */ + } + else if (transferType == TT_PARAMRETURN) + { + if (optgenerror + (code, + message + ("%s storage %qreachable from %s parameter", + exkind_capName (sRef_getExKind (fref)), + sRef_unparseOpt (fref), + exkind_unparseError (sRef_getExKind (tref))), + loc)) + { + sRef_showExpInfo (fref); + sRef_setExKind (fref, XO_UNKNOWN, loc); + } + } + else if (transferType == TT_LEAVETRANS) + { + ; + } + else if (transferType == TT_GLOBINIT) + { + if (optgenerror + (code, + message + ("%s storage %qreachable from %s initial value", + exkind_capName (sRef_getExKind (fref)), + sRef_unparseOpt (fref), + exkind_unparseError (sRef_getExKind (tref))), + loc)) + { + sRef_showExpInfo (fref); + sRef_setExKind (fref, XO_UNKNOWN, loc); + } + } + else if (transferType == TT_GLOBRETURN) + { + if (optgenerror + (code, + message + ("%s storage %qreachable from %s global", + exkind_capName (sRef_getExKind (fref)), + sRef_unparseOpt (fref), + exkind_unparseError (sRef_getExKind (tref))), + loc)) + { + sRef_showExpInfo (fref); + sRef_setExKind (fref, XO_UNKNOWN, loc); + } + } + else if (transferType == TT_FCNRETURN) + { + if (optgenerror + (code, + message + ("%s storage %qreachable from %s return value", + exkind_capName (sRef_getExKind (fref)), + sRef_unparseOpt (fref), + exkind_unparseError (sRef_getExKind (tref))), + loc)) + { + sRef_showExpInfo (fref); + sRef_setExKind (fref, XO_UNKNOWN, loc); + } + } + else + { + llcontbug (message ("Transfer type: %s", + transferType_unparse (transferType))); + + if (optgenerror + (code, + message + ("%s storage %qreachable from %s return value", + exkind_capName (sRef_getExKind (fref)), + sRef_unparseOpt (fref), + exkind_unparseError (sRef_getExKind (tref))), + loc)) + { + sRef_showExpInfo (fref); + sRef_setExKind (fref, XO_UNKNOWN, loc); + } + } + + } + + if (!alkind_compatible (fkind, tkind)) + { + if (fkind == AK_UNKNOWN && !sRef_isStateLive (fref)) + { + ; /* no error (will be a definition error) */ + } + else if (transferType == TT_DOASSIGN) + { + ; /* no error */ + } + else if (transferType == TT_FCNPASS) + { + if (alkind_isKnown (sRef_getAliasKind (tref))) + { + if (optgenerror + (FLG_COMPMEMPASS, + message + ("Storage %qreachable from passed parameter " + "is %s (should be %s): %s", + sRef_unparseOpt (fref), + alkind_unparse (sRef_getAliasKind (fref)), + alkind_unparse (sRef_getAliasKind (tref)), + exprNode_unparse (fexp)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + else if (transferType == TT_PARAMRETURN) + { + bool noerror = FALSE; + + if (alkind_isDependent (sRef_getAliasKind (fref))) + { + if (canLoseLocalReference (fref, loc)) + { + noerror = TRUE; + } + } + + if (!noerror + && optgenerror + (FLG_COMPMEMPASS, + message + ("Storage %qreachable from parameter is %s (should be %s)", + sRef_unparseOpt (fref), + alkind_unparse (sRef_getAliasKind (fref)), + alkind_unparse (sRef_getAliasKind (tref))), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else if (transferType == TT_LEAVETRANS) + { + if (optgenerror + (FLG_COMPMEMPASS, + message + ("Storage %qreachable from temporary reference is %s " + "at scope exit (should be %s)", + sRef_unparseOpt (fref), + alkind_unparse (sRef_getAliasKind (fref)), + alkind_unparse (sRef_getAliasKind (tref))), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else if (transferType == TT_GLOBRETURN) + { + if (optgenerror + (FLG_COMPMEMPASS, + message + ("Storage %qreachable from global is %s (should be %s)", + sRef_unparseOpt (fref), + alkind_unparse (sRef_getAliasKind (fref)), + alkind_unparse (sRef_getAliasKind (tref))), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else if (transferType == TT_FCNRETURN) + { + if (optgenerror + (FLG_COMPMEMPASS, + message + ("Storage %qreachable from return value is %s (should be %s)", + sRef_unparseOpt (fref), + alkind_unparse (sRef_getAliasKind (fref)), + alkind_unparse (sRef_getAliasKind (tref))), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else if (transferType == TT_GLOBINIT) + { + if (optgenerror + (FLG_COMPMEMPASS, + message + ("Storage %qreachable from initial value is %s (should be %s)", + sRef_unparseOpt (fref), + alkind_unparse (sRef_getAliasKind (fref)), + alkind_unparse (sRef_getAliasKind (tref))), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else + { + llcontbug (message ("Transfer type: %s", + transferType_unparse (transferType))); + + if (optgenerror + (FLG_COMPMEMPASS, + message + ("Storage %qreachable from return value is %s (should be %s)", + sRef_unparseOpt (fref), + alkind_unparse (sRef_getAliasKind (fref)), + alkind_unparse (sRef_getAliasKind (tref))), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + + if (sRef_isDead (fref)) + { + if (directUnion) + { + return NO; + } + + if (transferType == TT_PARAMRETURN) + { + if (optgenerror + (FLG_USERELEASED, + message + ("Released storage %q reachable from parameter at return point", + sRef_unparse (fref)), + loc)) + { + sRef_showStateInfo (fref); + return YES; + } + } + else if (transferType == TT_LEAVETRANS) + { + if (optgenerror + (FLG_USERELEASED, + message ("Released storage %q reachable from temporary " + "reference at scope exit", + sRef_unparse (fref)), + loc)) + { + sRef_showStateInfo (fref); + return YES; + } + } + else if (transferType == TT_GLOBRETURN) + { + if (optgenerror + (FLG_GLOBSTATE, + message ("Released storage %q reachable from global", + sRef_unparse (fref)), + loc)) + { + sRef_showStateInfo (fref); + return YES; + } + } + else if (transferType == TT_FCNPASS) + { + if (optgenerror + (FLG_USERELEASED, + message ("Released storage %q reachable from passed parameter", + sRef_unparse (fref)), + loc)) + { + sRef_showStateInfo (fref); + return YES; + } + } + else + { + if (optgenerror + (FLG_USERELEASED, + message ("Released storage %q reachable from parameter", + sRef_unparse (fref)), + loc)) + { + sRef_showStateInfo (fref); + return YES; + } + } + } + } + + if (!topLevel + && sRef_possiblyNull (fref) + && !sRef_perhapsNull (tref) + && ctype_isRealPointer (sRef_getType (tref)) + && !usymtab_isGuarded (fref)) + { + if (transferType == TT_FCNRETURN) + { + if (optgenerror + (FLG_NULLRET, + message ("%q storage %qderivable from return value: %s", + cstring_capitalize (sRef_nullMessage (fref)), + sRef_unparseOpt (fref), + exprNode_unparse (fexp)), + loc)) + { + sRef_showNullInfo (fref); + + DPRINTF (("fref: %s", sRef_unparseFull (fref))); + DPRINTF (("tref: %s", sRef_unparseFull (tref))); + + sRef_setNullError (fref); + } + } + else if (transferType == TT_GLOBRETURN || transferType == TT_PARAMRETURN) + { + if (optgenerror + (FLG_NULLSTATE, + message + ("Function returns with %s storage derivable from %q %q", + sRef_nullMessage (fref), + cstring_makeLiteral ((transferType == TT_GLOBRETURN) + ? "global" : "parameter"), + sRef_unparse (fref)), + loc)) + { + sRef_showNullInfo (fref); + sRef_setNullError (fref); + } + } + else if (transferType == TT_GLOBPASS) + { + if (optgenerror + (FLG_NULLPASS, + message ("Function called with %s storage " + "derivable from global %q", + sRef_nullMessage (fref), + sRef_unparse (fref)), + loc)) + { + sRef_showNullInfo (fref); + sRef_setNullError (fref); + } + } + else if (transferType == TT_FCNPASS) + { + if (optgenerror + (FLG_NULLSTATE, + message ("%q storage %qderivable from parameter %q", + cstring_capitalize (sRef_nullMessage (fref)), + sRef_unparseOpt (fref), + generateText (fexp, exprNode_undefined, + sRef_undefined, TT_FCNPASS)), + loc)) + { + sRef_showNullInfo (fref); + sRef_setNullError (fref); + } + } + else + { + llassert (transferType == TT_DOASSIGN + || transferType == TT_GLOBINIT + || transferType == TT_LEAVETRANS); + } + } + + if (sRef_isRelDef (tref) + || sRef_isPartial (tref) + || sRef_isAllocated (tref) + || sRef_isStateSpecial (tref)) + { + /* should check fref is allocated? */ + return YES; + } + + ct = ctype_realType (sRef_getType (fref)); + + if (!(sRef_isAnyDefined (fref) + || sRef_isPdefined (fref) + || sRef_isAllocated (fref) + || sRef_isStateUnknown (fref))) + { + if (transferType == TT_GLOBRETURN) + { + if (report + && optgenerror + (FLG_COMPDEF, + message ("Function returns with global %q not " + "completely defined%q", + sRef_unparse (sRef_getRootBase (fref)), + defExpl (fref)), + loc)) + { + sRef_showStateInfo (fref); + sRef_setDefined (fref, loc); + } + } + else if (transferType == TT_GLOBPASS) + { + if (report && + optgenerror + (FLG_COMPDEF, + message + ("Function called with global %q not completely defined%q", + sRef_unparse (sRef_getRootBase (fref)), + defExpl (fref)), + loc)) + { + sRef_showStateInfo (fref); + sRef_setDefined (fref, loc); + } + } + else if (transferType == TT_PARAMRETURN) + { + if (report && !topLevel + && optgenerror + (FLG_COMPDEF, + message ("Function returns storage %q reachable from parameter not " + "completely defined%q", + sRef_unparse (ofref), + defExpl (fref)), + loc)) + { + sRef_showStateInfo (fref); + sRef_setDefined (fref, loc); + } + } + else if (transferType == TT_LEAVETRANS) + { + if (report && !topLevel + && optgenerror + (FLG_COMPDEF, + message ("Scope exits with storage %q reachable from " + "temporary reference not completely defined%q", + sRef_unparse (ofref), + defExpl (fref)), + loc)) + { + sRef_showStateInfo (fref); + sRef_setDefined (fref, loc); + } + } + else + { + if (transferType != TT_DOASSIGN + && (!(sRef_isNew (fref) || sRef_isType (fref)))) + { + if (report) + { + DPRINTF (("Here we are: %s", sRef_unparseFull (fref))); + + if (sRef_isDead (fref)) + { + if (optgenerror + (FLG_USERELEASED, + message ("%s storage %qwas released: %q", + transferType_unparse (transferType), + sRef_unparseOpt (fref), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showStateInfo (fref); + } + } + else + { + if (optgenerror + (FLG_COMPDEF, + message + ("%s storage %qnot completely defined%q: %q", + transferType_unparse (transferType), + sRef_unparseOpt (ofref), + defExpl (fref), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef rb = sRef_getRootBase (fref); + sRef_showStateInfo (fref); + sRef_setDefinedComplete (rb, loc); + } + } + } + } + else + { + + if (sRef_isAllocated (fref) && sRef_isValid (tref) + && (transferType == TT_DOASSIGN)) + { + sRef_setAllocatedComplete (tref, loc); + } + return YES; + } + } + + return NO; + } + + if (ctype_isUnknown (ct)) + { + return YES; + } + else if (ctype_isPointer (ct)) + { + ctype tct = ctype_realType (sRef_getType (tref)); + + if (sRef_isStateUnknown (fref)) + { + return NO; + } + else + { + if (ctype_isAP (tct) || ctype_isUnknown (tct)) + { + sRef fptr = sRef_constructDeref (fref); + sRef tptr = sRef_constructDeref (tref); + + return (checkCompletelyDefined (fexp, fptr, ofref, + texp, tptr, + FALSE, inUnion, FALSE, loc, + transferType, depth + 1, report)); + } + else + { + return YES; + } + } + } + else if (ctype_isArray (ct)) + { + return YES; + } + else if (ctype_isStruct (ct)) + { + ctype tct = ctype_realType (sRef_getType (tref)); + + DPRINTF (("Struct defined: %s", ctype_unparse (tct))); + + if (ctype_match (ct, tct)) + { + bool isOk = TRUE; + bool hasOneDefined = FALSE; + cstringSList badFields = cstringSList_undefined; + + if (sRef_isStateUnknown (fref) || sRef_isAllocated (tref)) + { + return YES; + } + + DPRINTF (("Check field: %s", sRef_unparseFull (fref))); + + if (sRef_isPdefined (fref) || sRef_isAnyDefined (fref)) + { + DPRINTF (("Is defined: %s", sRef_unparse (fref))); + + sRefSet_realElements (sRef_derivedFields (fref), sr) + { + bool thisField; + + hasOneDefined = TRUE; + + DPRINTF (("Check derived: %s", sRef_unparseFull (sr))); + + if (sRef_isField (sr)) + { + cstring fieldname = sRef_getField (sr); + sRef fldref = sRef_makeField (tref, fieldname); + bool shouldCheck = !sRef_isRecursiveField (fldref); + + if (shouldCheck) + { + thisField = + ynm_toBoolRelaxed + (checkCompletelyDefined (fexp, sr, ofref, + texp, fldref, + FALSE, inUnion, FALSE, loc, + transferType, depth + 1, + FALSE)); + } + else + { + thisField = TRUE; + } + + if (!thisField) + { + isOk = FALSE; + badFields = cstringSList_add (badFields, + sRef_getField (sr)); + } + } + } end_sRefSet_realElements; + } + else if (sRef_isAllocated (fref)) + { + /* + ** for structures, each field must be completely defined + */ + + uentryList fields = ctype_getFields (ct); + + uentryList_elements (fields, ue) + { + bool thisField; + cstring name = uentry_getRealName (ue); + sRef ffield = sRef_makeField (fref, name); + sRef tfield = sRef_makeField (tref, name); + bool shouldCheck = !sRef_isRecursiveField (tfield); + + if (!shouldCheck) + { + thisField = TRUE; + } + else + { + thisField = ynm_toBoolRelaxed + (checkCompletelyDefined (fexp, ffield, ofref, + texp, tfield, + FALSE, inUnion, FALSE, + loc, transferType, + depth + 1, FALSE)); + } + + if (!thisField) + { + isOk = FALSE; + badFields = cstringSList_add (badFields, uentry_rawName (ue)); + } + else + { + hasOneDefined = TRUE; + } + } end_uentryList_elements; + } + else + { + DPRINTF (("Not checking: %s", sRef_unparseFull (fref))); + } + + if (!isOk && (!inUnion || hasOneDefined)) + { + if (transferType == TT_GLOBRETURN) + { + if (optgenerror + (FLG_COMPDEF, + message ("Global storage %q contains %d undefined field%& " + "when call returns: %q", + sRef_unparse (fref), + cstringSList_size (badFields), + cstringSList_unparseAbbrev (badFields)), + loc)) + { + sRef_setDefined (fref, loc); + } + } + else if (transferType == TT_GLOBPASS) + { + if (optgenerror + (FLG_COMPDEF, + message ("Global storage %q contains %d undefined field%& " + "before call: %q", + sRef_unparse (fref), + cstringSList_size (badFields), + cstringSList_unparseAbbrev (badFields)), + loc)) + { + sRef_setDefined (fref, loc); + } + } + else if (transferType == TT_PARAMRETURN) + { + if (optgenerror + (FLG_COMPDEF, + message ("Storage %qreachable from parameter " + "contains %d undefined field%&: %q", + sRef_unparseOpt (fref), + cstringSList_size (badFields), + cstringSList_unparseAbbrev (badFields)), + loc)) + { + sRef_setDefined (fref, loc); + } + } + else if (transferType == TT_LEAVETRANS) + { + /* no error */ + } + else + { + if (optgenerror + (FLG_COMPDEF, + message ("%s storage %qcontains %d undefined field%&: %q", + transferType_unparse (transferType), + sRef_unparseOpt (fref), + cstringSList_size (badFields), + cstringSList_unparseAbbrev (badFields)), + loc)) + { + sRef_setDefined (fref, loc); + } + } + } + + cstringSList_free (badFields); + + if (inUnion) + { + if (directUnion) + { + return (ynm_fromBool (hasOneDefined)); + } + else + { + return (MAYBE); + } + } + else + { + return (ynm_fromBool (!report || isOk)); + } + } + else + { + return YES; + } + } + else if (ctype_isUnion (ct)) + { + if (sRef_isStateUnknown (fref) || sRef_isAllocated (tref)) + { + return YES; + } + else + { + ctype tct = ctype_realType (sRef_getType (tref)); + + if (ctype_isKnown (tct) && ctype_match (ct, tct)) + { + cstringSList goodFields = cstringSList_new (); + bool isOk = FALSE; + int nelements = sRefSet_size (sRef_derivedFields (fref)); + + /* + ** for unions, at least one field must be completely defined + */ + + if (sRef_isPdefined (fref) || sRef_isAnyDefined (fref)) + { + isOk = TRUE; + } + + sRefSet_realElements (sRef_derivedFields (fref), sr) + { + bool thisField; + + if (sRef_isField (sr)) + { + sRef fldref = sRef_makeField (tref, sRef_getField (sr)); + + DPRINTF (("Trying union field: %s", sRef_unparseFull (fldref))); + + thisField = ynm_toBoolStrict + (checkCompletelyDefined + (fexp, sr, ofref, + texp, fldref, FALSE, inUnion, + (nelements > 1 ? TRUE : FALSE), + loc, transferType, depth + 1, FALSE)); + + if (thisField) + { + goodFields = cstringSList_add + (goodFields, sRef_getField (sr)); + } + } + } end_sRefSet_realElements; + + if (cstringSList_empty (goodFields) + && !isOk + && context_getFlag (FLG_UNIONDEF)) + { + if (!inUnion) + { + if (transferType == TT_PARAMRETURN) + { + voptgenerror + (FLG_UNIONDEF, + message ("Union %q reachable from parameter has " + "no defined field", + sRef_unparse (fref)), + loc); + } + else if (transferType == TT_LEAVETRANS) + { + voptgenerror + (FLG_UNIONDEF, + message ("Union %q has no defined field at scope exit", + sRef_unparse (fref)), + loc); + } + else if (transferType == TT_DOASSIGN + || transferType == TT_FIELDASSIGN + || transferType == TT_GLOBINIT) + { + ; /* no error */ + } + else + { + voptgenerror + (FLG_UNIONDEF, + message ("%s union %q has no defined field", + transferType_unparse (transferType), + sRef_unparse (fref)), + loc); + } + } + isOk = FALSE; + } + + cstringSList_free (goodFields); + return ynm_fromBool (!report || isOk); + } + } + } + else + { + ; + } + + return YES; +} + +/* +** fref is being free'd +*/ + +typedef enum { + DSC_GLOB, DSC_LOCAL, DSC_PARAM, DSC_STRUCT + } dscCode; + +static /*@observer@*/ cstring dscCode_unparse (dscCode desc) /*@*/ +{ + switch (desc) + { + case DSC_GLOB: + return cstring_makeLiteralTemp ("killed global"); + case DSC_LOCAL: + return cstring_makeLiteralTemp ("variable declared in this scope"); + case DSC_PARAM: + return cstring_makeLiteralTemp ("released storage"); + case DSC_STRUCT: + return cstring_makeLiteralTemp ("released structure parameter"); + } + + BADEXIT; +} + +static bool + checkCompletelyDestroyed (exprNode p_fexp, sRef p_fref, bool p_topLevel, + fileloc p_loc, int p_depth, dscCode p_desc, + bool p_hideErrors); + +bool checkGlobalDestroyed (sRef fref, fileloc loc) +{ + return (checkCompletelyDestroyed (exprNode_undefined, fref, TRUE, + loc, 0, DSC_GLOB, FALSE)); +} + +void checkLocalDestroyed (sRef fref, fileloc loc) +{ + if (sRef_isObserver (fref) || sRef_isExposed (fref) + || sRef_isPartial (fref)) + { + ; + } + else + { + (void) checkCompletelyDestroyed (exprNode_undefined, fref, TRUE, + loc, 0, DSC_LOCAL, FALSE); + } +} + +void checkStructDestroyed (sRef fref, fileloc loc) +{ + DPRINTF (("Check struct destroyed: %s", sRef_unparse (fref))); + + if (sRef_isObserver (fref) || sRef_isExposed (fref) + || sRef_isPartial (fref)) + { + DPRINTF (("Its exposed!"));; + } + else + { + (void) checkCompletelyDestroyed (exprNode_undefined, fref, TRUE, + loc, 0, DSC_STRUCT, FALSE); + } +} + +static bool + checkCompletelyDestroyed (exprNode fexp, sRef fref, bool topLevel, + fileloc loc, int depth, + dscCode desc, bool hideErrors) +{ + ctype ct; + + DPRINTF (("Check completely destroyed: %s", sRef_unparseFull (fref))); + + if (depth > MAXDEPTH) + { + llquietbug (message ("checkCompletelyDestroyed: too deep: %s / %q", + exprNode_unparse (fexp), + sRef_unparseFull (fref))); + return TRUE; + } + + if (!sRef_isKnown (fref)) return TRUE; + + /* evans 2001-03-24: added this. Definitely null values are always destroyed. */ + + if (sRef_isDefinitelyNull (fref)) + { + return TRUE; + } + + if (sRef_isDependent (fref) || sRef_isShared (fref) || sRef_isKept (fref)) + { + return TRUE; + } + + { + /* + ** evans 2001-03-24: if there is a dependent reference to this storage, + ** no need to destroy, but make it responsible. + */ + + sRef depRef = dependentReference (fref); + + DPRINTF (("Destroyed? %s / %s", + sRef_unparseFull (fref), + sRef_unparseFull (depRef))); + + DPRINTF (("Aliases: %s", usymtab_unparseAliases ())); + + if (sRef_isValid (depRef)) + { + /* + ** If the referenced storage was not dependent, we make + ** the reference the owner since it must eventually be + ** destroyed. + */ + + if (!sRef_isDependent (depRef)) + { + sRef_setOnly (depRef, loc); /* could be owned? */ + } + + sRef_kill (fref, loc); + return TRUE; + } + } + + if (sRef_isPdefined (fref) && !context_getFlag (FLG_STRICTDESTROY)) + { + DPRINTF (("Partial: %s", sRef_unparseFull (fref))); + hideErrors = TRUE; /* Don't report any more errors, but still change ownership. */ + } + + if (usymtab_isDefinitelyNull (fref)) + { + DPRINTF (("Probably null!")); + return TRUE; + } + + if (!context_getFlag (FLG_COMPDESTROY)) return TRUE; + if (!context_getFlag (FLG_MUSTFREE)) return TRUE; + + ct = ctype_realType (sRef_getType (fref)); + + DPRINTF (("Here: %s", ctype_unparse (ct))); + + if (!topLevel) + { + bool docheck = FALSE; + bool reportederror; + + if (sRef_isFresh (fref) || sRef_isOnly (fref)) + { + docheck = TRUE; + + DPRINTF (("Here: %s", ctype_unparse (ct))); + if (sRef_isDead (fref) + || sRef_isUnuseable (fref) + || sRef_definitelyNull (fref) + || sRef_isObserver (fref) + || sRef_isExposed (fref)) + { + docheck = FALSE; + } + } + + if (docheck) + { + if (sRef_isPossiblyDead (fref) || sRef_isRelDef (fref)) + { + if (exprNode_isDefined (fexp)) + { + reportederror = + !hideErrors + && + optgenerror2 + (FLG_COMPDESTROY, FLG_STRICTDESTROY, + message ("Only storage %q (type %s) derived from %s " + "may not have been released: %s", + sRef_unparse (fref), + ctype_unparse (sRef_getType (fref)), + dscCode_unparse (desc), + exprNode_unparse (fexp)), + loc); + } + else + { + reportederror = + !hideErrors + && + optgenerror2 + (FLG_COMPDESTROY, FLG_STRICTDESTROY, + message + ("Only storage %q (type %s) derived from %s " + "may not have been released", + sRef_unparse (fref), + ctype_unparse (sRef_getType (fref)), + dscCode_unparse (desc)), + loc); + } + + if (reportederror) + { + sRef_kill (fref, loc); /* prevent further errors */ + } + } + else + { + if (sRef_isStateUndefined (fref)) + { + DPRINTF (("Here: %s", ctype_unparse (ct))); + return TRUE; + } + else + { + if (exprNode_isDefined (fexp)) + { + DPRINTF (("Here: %s", sRef_unparseFull (fref))); + + reportederror = + !hideErrors + && + optgenerror + (FLG_COMPDESTROY, + message ("Only storage %q (type %s) derived from %s " + "is not released (memory leak): %s", + sRef_unparse (fref), + ctype_unparse (sRef_getType (fref)), + dscCode_unparse (desc), + exprNode_unparse (fexp)), + loc); + } + else + { + reportederror = + !hideErrors + && + optgenerror + (FLG_COMPDESTROY, + message ("Only storage %q (type %s) derived from %s " + "is not released (memory leak)", + sRef_unparse (fref), + ctype_unparse (sRef_getType (fref)), + dscCode_unparse (desc)), + loc); + } + + if (reportederror) + { + hideErrors = TRUE; + + /* sRef_kill (fref, loc); */ /* prevent further errors */ + DPRINTF (("Killed: %s", sRef_unparseFull (fref))); + } + } + } + + DPRINTF (("Here: %s", ctype_unparse (ct))); + return FALSE; + } + + if (/*! evs-2001-03-24 sRef_isAnyDefined (fref) || */ + sRef_isDead (fref) + || (sRef_isPdefined (fref) + && sRefSet_isEmpty (sRef_derivedFields (fref)))) + { + DPRINTF (("Here: %s [%s / %s]", + sRef_unparseFull (fref), + bool_unparse (sRef_isAnyDefined (fref)), + bool_unparse (sRef_isDead (fref)))); + return TRUE; + } + } + + DPRINTF (("Here...")); + + if (ctype_isPointer (ct)) + { + sRef fptr = sRef_constructDeadDeref (fref); + bool res; + + res = checkCompletelyDestroyed (fexp, fptr, FALSE, loc, + depth + 1, desc, hideErrors); + + return res; + } + else if (ctype_isArray (ct)) + { + if ((sRef_isStateUnknown (fref) || sRef_isAllocated (fref)) + && !sRef_hasDerived (fref)) + { + /* + ** Bogosity necessary to prevent infinite depth. + */ + + return FALSE; + } + else + { + sRef farr = sRef_constructDeadDeref (fref); + + return (checkCompletelyDestroyed (fexp, farr, FALSE, loc, + depth + 1, desc, hideErrors)); + } + } + else if (ctype_isStruct (ct)) + { + /* + ** for structures, each field must be completely destroyed + */ + + bool isOk = TRUE; + uentryList fields = ctype_getFields (ct); + + DPRINTF (("Struct fields: %s", uentryList_unparse (fields))); + + if (depth >= MAXDEPTH) + { + llquietbug (message ("checkCompletelyDestroyed (fields): too deep: %s / %q", + exprNode_unparse (fexp), + sRef_unparseFull (fref))); + + return TRUE; + } + else + { + uentryList_elements (fields, ue) + { + sRef field = sRef_makeField (fref, uentry_rawName (ue)); + + /* + ** note order of && operands --- want to report multiple errors + */ + + DPRINTF (("Check field: %s", sRef_unparseFull (field))); + + isOk = (checkCompletelyDestroyed (fexp, field, FALSE, loc, + depth + 1, desc, hideErrors) + && isOk); + } end_uentryList_elements; + } + + return isOk; + } + else + { + return TRUE; + } +} + +void +checkReturnTransfer (exprNode fexp, uentry rval) +{ + sRef uref = uentry_getSref (rval); + sRef rref = sRef_makeNew (sRef_getType (uref), uref, cstring_undefined); + uentry fcn = context_getHeader (); + sRef fref = exprNode_getSref (fexp); + stateClauseList clauses = uentry_getStateClauseList (fcn); + + DPRINTF (("Check return: %s as %s = %s", + exprNode_unparse (fexp), + sRef_unparseFull (uref), + sRef_unparseFull (rref))); + + /* evans 2001-07-18: removed: if (sRef_isStateSpecial (rref)) */ + + DPRINTF (("Check state clauses: %s", + stateClauseList_unparse (clauses))); + + stateClauseList_postElements (clauses, cl) + { + if (stateClause_isGlobal (cl)) + { + ; /*@i32@*/ + } + else if (stateClause_setsMetaState (cl)) + { + sRefSet refs = stateClause_getRefs (cl); + qual ql = stateClause_getMetaQual (cl); + annotationInfo ainfo = qual_getAnnotationInfo (ql); + metaStateInfo minfo = annotationInfo_getState (ainfo); + cstring key = metaStateInfo_getName (minfo); + int mvalue = annotationInfo_getValue (ainfo); + + DPRINTF (("Return check: %s", stateClause_unparse (cl))); + + sRefSet_elements (refs, el) + { + sRef base = sRef_getRootBase (el); + + DPRINTF (("Sets meta state! %s", stateClause_unparse (cl))); + + if (sRef_isResult (base)) + { + sRef sr = sRef_fixBase (el, fref); + + if (!sRef_checkMetaStateValue (sr, key, mvalue)) + { + if (optgenerror + (FLG_STATETRANSFER, + message ("Result state %q does not satisfy ensures " + "clause: %q (state is %s, should be %s): %s", + sRef_unparse (sr), + stateClause_unparse (cl), + stateValue_unparseValue (sRef_getMetaStateValue (sr, key), + minfo), + metaStateInfo_unparseValue (minfo, mvalue), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRef_showAliasInfo (sr); + /*@i32@*/ + } + } + } + else + { + /* + ** Non-results are checked in exit scope. + */ + } + } end_sRefSet_elements ; + } + else + { + sRefSet refs = stateClause_getRefs (cl); + sRefTest tst = stateClause_getPostTestFunction (cl); + sRefMod modf = stateClause_getReturnEffectFunction (cl); + + DPRINTF (("Clause: %s / %s", + stateClause_unparse (cl), + sRefSet_unparse (refs))); + + sRefSet_elements (refs, el) + { + sRef base = sRef_getRootBase (el); + + DPRINTF (("el: %s / %s", sRef_unparse (el), + sRef_unparse (base))); + + if (sRef_isResult (base)) + { + sRef sr = sRef_fixBase (el, fref); + + if (tst != NULL && !(tst (sr))) + { + if (optgenerror + (stateClause_postErrorCode (cl), + message ("%s storage %q corresponds to " + "storage %q listed in %q clause: %s", + stateClause_postErrorString (cl, sr), + sRef_unparse (sr), + sRef_unparse (el), + stateClause_unparseKind (cl), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRefShower ss = stateClause_getPostTestShower (cl); + + if (ss != NULL) + { + ss (sr); + } + } + } + + if (modf != NULL) + { + modf (sr, exprNode_loc (fexp)); + } + } + else + { + /* + ** Non-results are checked in exit scope. + */ + } + } end_sRefSet_elements ; + } + } end_stateClauseList_postElements ; + + if (ctype_isRealSU (exprNode_getType (fexp))) + { + sRef ffref = exprNode_getSref (fexp); + + checkStructTransfer (exprNode_undefined, rref, + fexp, ffref, + exprNode_loc (fexp), + TT_FCNRETURN); + } + else + { + (void) checkTransfer (fexp, exprNode_getSref (fexp), + exprNode_undefined, rref, + exprNode_loc (fexp), TT_FCNRETURN); + } +} + +static void + checkPassstateClauseList (uentry ue, exprNode fexp, sRef fref, int argno) +{ + stateClauseList clauses = uentry_getStateClauseList (ue); + + DPRINTF (("Check pass special: %s / %s", + exprNode_unparse (fexp), sRef_unparseFull (fref))); + + stateClauseList_preElements (clauses, cl) + { + if (stateClause_isGlobal (cl)) + { + ; + } + else + { + sRefSet refs = stateClause_getRefs (cl); + sRefTest tst = stateClause_getPreTestFunction (cl); + sRefMod modf = stateClause_getEffectFunction (cl); + + sRefSet_elements (refs, el) + { + sRef base = sRef_getRootBase (el); + + if (sRef_isResult (base)) + { + ; /* nothing to check before */ + } + else if (sRef_isParam (base)) + { + if (sRef_getParam (base) == argno - 1) + { + sRef sb; + + DPRINTF (("Fix base: %s / %s", + sRef_unparseFull (el), + sRef_unparseFull (fref))); + + sb = sRef_fixBase (el, fref); + + if (tst != NULL && !(tst(sb))) + { + voptgenerror + (stateClause_preErrorCode (cl), + message ("%s storage %qcorresponds to " + "storage listed in %q clause of " + "called function: %s", + stateClause_preErrorString (cl, sb), + sRef_unparseOpt (sb), + stateClause_unparseKind (cl), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + } + + if (modf != NULL) + { + DPRINTF (("Fixing: %s", sRef_unparseFull (sb))); + modf (sb, exprNode_loc (fexp)); + DPRINTF (("==> %s", sRef_unparseFull (sb))); + } + } + } + else + { + BADBRANCH; + } + } end_sRefSet_elements ; + } + } end_stateClauseList_preElements ; + + DPRINTF (("After: %s", sRef_unparseFull (fref))); +} + +/* +** should not modify arg +*/ + +void +checkPassTransfer (exprNode fexp, uentry arg, bool isSpec, + /*@dependent@*/ exprNode fcn, int argno, int totargs) +{ + sRef tref = uentry_getSref (arg); + sRef fref = exprNode_getSref (fexp); + bool isOut = FALSE; + bool isPartial = FALSE; + bool isImpOut = FALSE; + ctype ct = uentry_getType (arg); + + DPRINTF (("Check pass: %s -> %s", + sRef_unparseFull (fref), + sRef_unparseFull (tref))); + + atFunction = fcn; + atArgNo = argno; + atNumArgs = totargs; + + if (ctype_isElips (ct)) + { + ct = ctype_unknown; + } + + DPRINTF (("Out arg: %s", bool_unparse (uentry_isOut (arg)))); + + if (!ctype_isElips (ct) && + (ctype_isVoidPointer (ct) && uentry_isOut (arg) && sRef_isOnly (tref))) + { + if (ctype_isRealAP (ct)) + { + if (sRef_aliasCheckSimplePred (sRef_isDead, fref)) + { + if (optgenerror + (FLG_USERELEASED, + message ("Dead storage %qpassed as out parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + if (sRef_isDead (fref)) + { + sRef_showStateInfo (fref); + } + else + { + DPRINTF (("Not really dead!")); + sRef_showStateInfo (fref); + } + } + + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + else if (context_getFlag (FLG_STRICTUSERELEASED) + && sRef_aliasCheckSimplePred (sRef_isPossiblyDead, fref)) + { + if (optgenerror2 + (FLG_USERELEASED, FLG_STRICTUSERELEASED, + message ("Possibly dead storage %qpassed as out parameter: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + if (sRef_isPossiblyDead (fref)) + { + sRef_showStateInfo (fref); + } + } + + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + else if (sRef_aliasCheckSimplePred (sRef_isStateUndefined, fref) + || sRef_aliasCheckSimplePred (sRef_isUnuseable, fref)) + { + voptgenerror + (FLG_USEDEF, + message ("Unallocated storage %qpassed as out parameter: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + else + { + ; + } + } + + (void) checkCompletelyDestroyed (fexp, fref, TRUE, exprNode_loc (fexp), + 0, DSC_PARAM, FALSE); + + /* make it defined now, so checkTransfer is okay */ + sRef_setDefined (fref, exprNode_loc (fexp)); + } + else if (uentry_isOut (arg)) + { + DPRINTF (("Here we are!")); + + if (ctype_isRealAP (ct) + && (sRef_isStateUndefined (fref) || sRef_isUnuseable (fref))) + { + voptgenerror + (FLG_USEDEF, + message ("Unallocated storage %qpassed as out parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + else if (sRef_isDead (fref)) + { + if (optgenerror + (FLG_USERELEASED, + message ("Dead storage %qpassed as out parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRef_showStateInfo (fref); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + } + else if (sRef_isPossiblyDead (fref)) + { + if (optgenerror2 + (FLG_USERELEASED, FLG_STRICTUSERELEASED, + message ("Possibly dead storage %qpassed as out parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRef_showStateInfo (fref); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + } + else + { + ; + } + + isOut = TRUE; + } + else if (uentry_isPartial (arg)) + { + if (ctype_isRealAP (ct) + && (sRef_isStateUndefined (fref) || sRef_isUnuseable (fref))) + { + voptgenerror + (FLG_USEDEF, + message ("Unallocated storage %qpassed as partial parameter: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + else if (sRef_isDead (fref)) + { + if (optgenerror + (FLG_USERELEASED, + message ("Dead storage %qpassed as partial parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRef_showStateInfo (fref); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + } + else if (sRef_isPossiblyDead (fref)) + { + if (optgenerror2 + (FLG_USERELEASED, FLG_STRICTUSERELEASED, + message ("Possibly dead storage %qpassed as partial parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRef_showStateInfo (fref); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + } + else + { + ; + } + + isPartial = TRUE; + } + else if (uentry_isStateSpecial (arg)) + { + uentry ue = exprNode_getUentry (fcn); + + if (ctype_isRealAP (ct) + && (sRef_isStateUndefined (fref) || sRef_isUnuseable (fref))) + { + voptgenerror + (FLG_USEDEF, + message ("Unallocated storage %qpassed as special parameter: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + else if (sRef_isDead (fref)) + { + if (optgenerror + (FLG_USERELEASED, + message ("Dead storage %qpassed as special parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRef_showStateInfo (fref); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + } + else if (sRef_isPossiblyDead (fref)) + { + if (optgenerror2 + (FLG_USERELEASED, FLG_STRICTUSERELEASED, + message ("Possibly dead storage %qpassed as special parameter to %s: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fcn), + exprNode_unparse (fexp)), + exprNode_loc (fexp))) + { + sRef_showStateInfo (fref); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + } + else + { + ; + } + + if (uentry_hasStateClauseList (ue)) + { + checkPassstateClauseList (ue, fexp, fref, argno); + } + + return; /* ??? */ + } + else if (sRef_isStateDefined (tref)) + { + exprNode_checkUseParam (fexp); + } + else + { + if (isSpec || (!context_getFlag (FLG_IMPOUTS))) + { + exprNode_checkUseParam (fexp); + } + else + { + if (!sRef_isMacroParamRef (fref) + && (ctype_isRealAP (ct))) + { + if (sRef_isAddress (fref)) + { + if (sRef_isStateUndefined (fref) || sRef_isUnuseable (fref)) + { + voptgenerror + (FLG_USEDEF, + message + ("Unallocated address %qpassed as implicit " + "out parameter: %s", + sRef_unparseOpt (fref), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + sRef_setAllocated (fref, exprNode_loc (fexp)); + } + } + + /* yes, I really mean this! */ + tref = sRef_copy (tref); + sRef_setAllocated (tref, exprNode_loc (fexp)); + + isOut = TRUE; + isImpOut = TRUE; + } + else + { + exprNode_checkUseParam (fexp); + } + } + } + + if (sRef_isNew (fref)) + { + alkind tkind = sRef_getAliasKind (tref); + + if ((sRef_isFresh (fref) || sRef_isOnly (fref)) + && !alkind_isOnly (tkind) + && !alkind_isKeep (tkind) + && !alkind_isOwned (tkind) + && !alkind_isError (tkind) + && !uentry_isReturned (arg)) + + { + voptgenerror + (FLG_MUSTFREE, + message ("New fresh storage %q(type %s) passed as %s (not released): %s", + sRef_unparseOpt (fref), + ctype_unparse (sRef_getType (fref)), + alkind_unparse (sRef_getAliasKind (tref)), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + DPRINTF (("Fresh: %s", sRef_unparseFull (fref))); + } + else + { + if (sRef_isNewRef (fref) && !sRef_isKillRef (tref)) + { + alkind ak = sRef_getAliasKind (tref); + + if (!alkind_isError (ak)) + { + voptgenerror + (FLG_MUSTFREE, + message ("New reference %q(type %s) passed as %s (not released): %s", + sRef_unparseOpt (fref), + ctype_unparse (sRef_getType (fref)), + alkind_unparse (sRef_getAliasKind (tref)), + exprNode_unparse (fexp)), + exprNode_loc (fexp)); + } + } + } + } + + (void) checkTransfer (fexp, exprNode_getSref (fexp), + exprNode_undefined, tref, + exprNode_loc (fexp), TT_FCNPASS); + + setCodePoint (); + fref = exprNode_getSref (fexp); + + if (isOut && !sRef_isDead (fref) && !sRef_isPossiblyDead (fref)) + { + sRef base; + + if (ctype_isRealAP (sRef_getType (fref))) + { + base = sRef_makePointer (fref); + } + else + { + base = fref; + } + + if (isImpOut) + { + exprNode_checkMSet (fexp, base); + } + else + { + exprNode_checkSet (fexp, base); + } + + if (sRef_isValid (base)) + { + setCodePoint (); + + sRef_clearDerived (base); + sRef_setDefined (base, exprNode_loc (fexp)); + usymtab_clearAlias (base); + sRef_setNullUnknown (base, exprNode_loc (fexp)); + } + } + + if (isPartial) + { + if (sRef_isValid (fref)) + { + sRef_setPartial (fref, exprNode_loc (fexp)); + } + } + + atFunction = exprNode_undefined; + atArgNo = 0; + atNumArgs = 0; + + /* need to fixup here: derived refs could be bogus */ + /* (better to change sRef to not add derivs for "protected" ref) */ + + uentry_fixupSref (arg); + + setCodePoint (); + + DPRINTF (("Check pass: ==> %s", + sRef_unparseFull (fref))); +} + +void +checkGlobReturn (uentry glob) +{ + sRef_protectDerivs (); + checkGlobTrans (glob, TT_GLOBRETURN); + sRef_clearProtectDerivs (); +} + +void checkParamReturn (uentry actual) +{ + checkLeaveTrans (actual, TT_PARAMRETURN); +} + +void checkLoseRef (uentry actual) +{ + checkLeaveTrans (actual, TT_LEAVETRANS); +} + +static void +checkLeaveTrans (uentry actual, transferKind transferType) +{ + sRef aref = uentry_getSref (actual); + sRef origref = uentry_getOrigSref (actual); + + if (transferType == TT_PARAMRETURN + && (sRef_isKeep (origref) || sRef_isOnly (origref) + || sRef_isOwned (origref))) + { + /* caller cannot use, nothing to check */ + } + else + { + if (sRef_isNSLocalVar (origref)) + { + ; + } + else + { + DPRINTF (("Leave trans: %s", uentry_unparseFull (actual))); + + (void) checkCompletelyDefined (exprNode_undefined, aref, aref, + exprNode_undefined, origref, + TRUE, FALSE, FALSE, + g_currentloc, transferType, + 0, TRUE); + } + } +} + +static void +checkGlobTrans (uentry glob, transferKind type) +{ + sRef eref = uentry_getOrigSref (glob); + + (void) checkCompletelyDefined (exprNode_undefined, uentry_getSref (glob), uentry_getSref (glob), + exprNode_undefined, eref, + TRUE, FALSE, FALSE, + g_currentloc, type, 0, TRUE); +} + +/* +** For lhs of assignment, alias kind is set from basic type. +** Yoikes! +*/ + +static void +fixAssignLhs (sRef s) +{ + sRef_resetStateComplete (s); +} + +static void checkStructTransfer (exprNode lhs, sRef slhs, exprNode rhs, sRef srhs, + fileloc loc, + transferKind tt) +{ + ctype st = ctype_realType (sRef_getType (srhs)); + + if (ctype_isSU (st) && ctype_isRealSU (sRef_getType (slhs)) + && ctype_match (sRef_getType (slhs), st)) + { + if (tt == TT_DOASSIGN && sRef_isStateDefined (srhs)) + { + sRef_setDefinedComplete (slhs, loc); + } + + if (sRef_isDependent (slhs) + || sRef_isObserver (slhs) + || sRef_isExposed (slhs)) + { + ; + } + else + { + if (sRef_isLocalVar (slhs) + && sRef_isFileOrGlobalScope (sRef_getRootBase (srhs))) + { + sRef_setDependent (slhs, exprNode_loc (lhs)); + } + else + { + if (ctype_isUnion (st)) + { + sRef_setDefState (slhs, sRef_getDefState (srhs), + exprNode_loc (lhs)); + + sRefSet_realElements (sRef_derivedFields (srhs), sr) + { + if (sRef_isField (sr)) + { + cstring fieldname = sRef_getField (sr); + sRef lfld = sRef_makeField (slhs, fieldname); + + (void) checkTransfer (rhs, sr, lhs, lfld, + exprNode_loc (lhs), tt); + } + } end_sRefSet_realElements ; + } + else + { + uentryList fields = ctype_getFields (st); + + uentryList_elements (fields, field) + { + sRef rfld = sRef_makeField (srhs, uentry_rawName (field)); + sRef lfld = sRef_makeField (slhs, uentry_rawName (field)); + (void) checkTransfer (rhs, rfld, lhs, lfld, exprNode_loc (lhs), tt); + } end_uentryList_elements ; + } + + if (sRef_isOnly (srhs)) + { + sRef_setKeptComplete (srhs, loc); + } + } + } + } +} + +void +checkInitTransfer (exprNode lhs, exprNode rhs) +{ + sRef slhs = exprNode_getSref (lhs); + + if (sRef_isFileOrGlobalScope (slhs) || (!sRef_isCvar (slhs))) + { + (void) checkTransfer (rhs, exprNode_getSref (rhs), + lhs, slhs, exprNode_loc (rhs), TT_GLOBINIT); + } + else + { + checkAssignTransfer (lhs, rhs); + } +} + +void +checkAssignTransfer (exprNode lhs, exprNode rhs) +{ + sRef slhs = exprNode_getSref (lhs); + sRef srhs = exprNode_getSref (rhs); + sRef base = sRef_getBaseSafe (slhs); + nstate ns; + + DPRINTF (("Check assign: %s = %s", exprNode_unparse (lhs), + exprNode_unparse (rhs))); + DPRINTF (("lhs: %s", sRef_unparseFull (slhs))); + DPRINTF (("rhs: %s", sRef_unparseFull (srhs))); + + if (ctype_isRealSU (sRef_getType (srhs))) + { + checkStructTransfer (lhs, slhs, rhs, srhs, exprNode_loc (lhs), TT_FIELDASSIGN); + } + else + { + DPRINTF (("lhs: %s", sRef_unparseFull (slhs))); + DPRINTF (("rhs: %s", sRef_unparseFull (srhs))); + (void) checkTransfer (rhs, srhs, lhs, slhs, + exprNode_loc (lhs), TT_DOASSIGN); + DPRINTF (("lhs: %s", sRef_unparseFull (slhs))); + DPRINTF (("rhs: %s", sRef_unparseFull (srhs))); + } + + if (sRef_isConst (srhs) && sRef_isLocalState (srhs)) + { + /* constants can match anything (e.g., NULL) */ + sRef_setAliasKind (slhs, AK_ERROR, fileloc_undefined); + } + + if (sRef_isValid (base) && sRef_isStateDefined (base)) + { + sRef_setPdefined (base, g_currentloc); + } + + if (sRef_isPartial (srhs)) + { + sRef_setPartial (slhs, exprNode_loc (rhs)); + } + + ns = sRef_getNullState (srhs); + + if (nstate_possiblyNull (ns)) + { + if (usymtab_isGuarded (srhs)) + { + ns = NS_NOTNULL; + } + } + + sRef_setNullStateInnerComplete (slhs, ns, exprNode_loc (rhs)); + + if (sRef_isExposed (srhs) || sRef_isObserver (srhs)) + { + sRef_setExKind (slhs, sRef_getExKind (srhs), exprNode_loc (rhs)); + } + + DPRINTF (("Done transfer: %s", sRef_unparseFull (slhs))); +} + +static void +checkTransferNullAux (sRef fref, exprNode fexp, /*@unused@*/ bool ffix, + sRef tref, exprNode texp, /*@unused@*/ bool tfix, + fileloc loc, transferKind transferType) +{ + alkind tkind = sRef_getAliasKind (tref); + ctype ttyp = ctype_realType (sRef_getType (tref)); + + if (ctype_isUnknown (ttyp)) + { + ttyp = exprNode_getType (texp); + + if (ctype_isUnknown (ttyp)) + { + ttyp = exprNode_getType (fexp); + + if (ctype_isUnknown (ttyp)) + { + ttyp = sRef_getType (fref); + } + } + } + + if (ctype_isFunction (ttyp) && (transferType == TT_FCNRETURN)) + { + ttyp = ctype_getReturnType (ttyp); + } + + /* + ** check for null (don't need to check aliases??) + */ + + if (sRef_possiblyNull (fref) + && !usymtab_isGuarded (fref) + && ctype_isRealAP (ttyp)) + { + if (!alkind_isLocal (tkind) && !alkind_isFresh (tkind) + && !sRef_perhapsNull (tref) + && !(transferType == TT_DOASSIGN)) + { + if (transferType == TT_GLOBINIT) + { + if (sRef_isNotNull (tref)) + { + if (optgenerror + (FLG_SYNTAX, /*@i432 kuldge flag... */ + message ("%s %q initialized to %s value: %q", + sRef_getScopeName (tref), + sRef_unparse (tref), + sRef_nullMessage (fref), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showNullInfo (fref); + sRef_setNullError (tref); + } + } + else + { + if (optgenerror + (FLG_NULLASSIGN, + message ("%s %q initialized to %s value: %q", + sRef_getScopeName (tref), + sRef_unparse (tref), + sRef_nullMessage (fref), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showNullInfo (fref); + sRef_setNullError (tref); + } + } + } + else + { + if (optgenerror + ((transferType == TT_FCNPASS) ? FLG_NULLPASS : FLG_NULLRET, + message ("%q storage %q%s: %q", + cstring_capitalize (sRef_nullMessage (fref)), + sRef_unparseOpt (fref), + transferNullMessage (transferType), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showNullInfo (fref); + sRef_setNullError (fref); + } + } + } + else + { + ; + } + } +} + + +static void +checkTransferAssignAux (sRef fref, exprNode fexp, /*@unused@*/ bool ffix, + /*@exposed@*/ sRef tref, exprNode texp, bool tfix, + fileloc loc, transferKind transferType) +{ + alkind tkind = sRef_getAliasKind (tref); + + /* + ** Assignment to same --- no errors, or state changes. + ** This can happen when returned params are used. + */ + + if (sRef_sameName (fref, tref)) + { + sRef_copyState (tref, fref); + return; + } + + if ((alkind_isOnly (tkind) || alkind_isFresh (tkind) + || alkind_isNewRef (tkind) || alkind_isOwned (tkind)) + && !(sRef_isDead (tref) + || sRef_isStateUndefined (tref) + || sRef_isUnuseable (tref) + || sRef_isPartial (tref) + || sRef_definitelyNull (tref) + || sRef_isStackAllocated (tref) + || sRef_isAllocIndexRef (tref)) + && !(sRef_same (fref, tref)) /* okay to assign to self (returned params) */ + && !(usymtab_isDefinitelyNull (tref))) + { + if (context_getFlag (FLG_MUSTFREE)) + { + if (canLoseReference (tref, loc)) + { + ; /* no error */ + } + else + { + if (sRef_hasLastReference (tref)) + { + if (optgenerror + (FLG_MUSTFREE, + message ("Last reference %q to %s storage %q(type %s) not released " + "before assignment: %q", + sRef_unparse (tref), + alkind_unparse (tkind), + sRef_unparseOpt (sRef_getAliasInfoRef (tref)), + ctype_unparse (sRef_getType (tref)), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showRefLost (tref); + } + } + else + { + if (context_inGlobalScope ()) + { + /* no errors for static initializations */ + } + else + { + /* + ** don't report this error for a[i], since it could + ** be a new element. + */ + + if (alkind_isNewRef (tkind)) + { + if (optgenerror + (FLG_MUSTFREE, + message + ("%q %q(type %s) not released before assignment: %q", + cstring_makeLiteral + (alkind_isKillRef (sRef_getOrigAliasKind (tref)) + ? "Kill reference parameter" : "New reference"), + sRef_unparseOpt (tref), + ctype_unparse (sRef_getType (tref)), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (tref); + sRef_setAliasKind (tref, AK_ERROR, loc); + } + } + else if + (!(sRef_isUnknownArrayFetch (tref) + && !context_getFlag (FLG_STRICTDESTROY)) + && !sRef_isUnionField (tref) + && !sRef_isRelDef (tref) + && optgenerror + (FLG_MUSTFREE, + message + ("%s storage %q(type %s) not released before assignment: %q", + alkind_capName (tkind), + sRef_unparseOpt (tref), + ctype_unparse (sRef_getType (tref)), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (tref); + } + else + { + ; + } + } + } + } + } + } + + fixAssignLhs (tref); + + if (sRef_isRefCounted (tref)) /* tkind might not be correct now */ + { + if (sRef_isNewRef (fref)) + { + sRef_setAliasKind (tref, AK_NEWREF, loc); + } + else if (sRef_isConst (fref)) + { + /* for now, constants are not ref counted */ + sRef_setAliasKind (tref, AK_ERROR, loc); + } + else + { + ; + } + + if (!sRef_isNSLocalVar (tref) + && sRef_isRefCounted (fref) + && sRef_isStateDefined (fref)) + { + voptgenerror + (FLG_NEWREFTRANS, + message ("New reference %qto reference counted storage: %q", + sRef_unparseOpt (tref), + generateText (fexp, texp, tref, transferType)), + loc); + } + } + + /* + ** Not for structures and unions, since assignments copy. + */ + + if (sRef_isStack (fref) + && !ctype_isSU (ctype_realType (sRef_getType (fref)))) + { + sRef_setAliasKindComplete (tref, AK_STACK, loc); + } + + if (sRef_isNSLocalVar (tref) + && !sRef_isOwned (tref) /*< should only apply to static >*/ + && ctype_isMutable (sRef_getType (tref))) + { + if (sRef_isOnly (fref) && sRef_isNew (fref)) + { + if (!tfix) + { + sRef_setFresh (tref, loc); + } + } + } +} + +/* +** requires sRef_isOnly (fref) +*/ + +static void +checkOnlyTransferAux (sRef fref, exprNode fexp, bool ffix, + sRef tref, exprNode texp, /*@unused@*/ bool tfix, + fileloc loc, transferKind transferType) +{ + alkind tkind = sRef_getAliasKind (tref); + + if (sRef_isExposed (tref) || sRef_isObserver (tref)) + { + if (transferType == TT_FCNRETURN && sRef_isNew (fref) + && !alkind_isError (tkind)) + { + if (optgenerror + (FLG_ONLYTRANS, + message ("Only storage %q%q (will not be released): %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + + /* no errors for exposed transfers (is this good enough?) */ + } + else if (alkind_isOnly (tkind) || alkind_isKeep (tkind) || alkind_isOwned (tkind)) + { + ; /* okay */ + } + else if ((transferType == TT_FCNPASS) + && (alkind_isUnknown (tkind) + || alkind_isTemp (tkind) || alkind_isUnique (tkind))) + { + if (sRef_isFresh (fref) + && alkind_isUnknown (tkind) && !context_getFlag (FLG_PASSUNKNOWN)) + { + if (!ffix) sRef_setAliasKind (fref, AK_UNKNOWN, loc); + } + } + else if (alkind_isLocal (tkind) + || alkind_isFresh (tkind) || alkind_isUnknown (tkind)) + { + if ((transferType == TT_DOASSIGN) + && sRef_isNew (fref) + && sRef_isOnly (fref)) + { + bool error = FALSE; + + if (alkind_isUnknown (tkind) + && sRef_isFileOrGlobalScope (sRef_getRootBase (tref))) + { + if (optgenerror + (FLG_ONLYUNQGLOBALTRANS, + message ("Only storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + sRef_setAliasKind (tref, AK_ERROR, loc); + error = TRUE; + } + } + + if (!error && !ffix) + { + sRef_setFresh (tref, loc); + } + } + else + { + if (alkind_isLocal (tkind)) + { + if (sRef_sameName (tref, fref)) + { + ; /* don't set this --- corresponds to return transfer */ + } + else + { + /* + ** Don't set local to dependent. Error will + ** be detected through aliasing. Except for + ** arrays. + */ + + if (!tfix && sRef_isThroughArrayFetch (fref) + && context_getFlag (FLG_DEPARRAYS)) + { + sRef_setDependent (tref, loc); + } + } + } + else + { + if (optgenerror + (FLG_ONLYTRANS, + message ("Only storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + } + else + { + if (alkind_isError (tkind) + || (alkind_isUnknown (tkind) && !context_getFlag (FLG_MEMIMPLICIT))) + { + flagcode_recordSuppressed (FLG_ONLYTRANS); + } + else + { + if ((alkind_isKept (tkind) || alkind_isStack (tkind) + || alkind_isDependent (tkind)) + && sRef_isNSLocalVar (tref)) + { + ; /* okay */ + } + else + { + if (optgenerror + (FLG_ONLYTRANS, + message ("Only storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + + if (transferType == TT_DOASSIGN) + { + /* + ** alias kind unknown to suppress future messages + */ + + if (!ffix && sRef_isNSLocalVar (sRef_getRootBase (fref))) + { + sRef_clearAliasKind (fref); + } + } + } + } + } + } +} + +/* +** ??? same as checkOnly ? +*/ + +static void +checkOwnedTransferAux (sRef fref, exprNode fexp, bool ffix, + sRef tref, exprNode texp, bool tfix, + fileloc loc, transferKind transferType) +{ + alkind tkind = sRef_getAliasKind (tref); + + if (sRef_isExposed (tref) || sRef_isObserver (tref)) + { + if (transferType == TT_FCNRETURN && sRef_isNew (fref)) + { + if (optgenerror + (FLG_OWNEDTRANS, + message ("Owned storage %q%q (will not be released): %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + else if (alkind_isOnly (tkind) || alkind_isKeep (tkind) + || alkind_isDependent (tkind) + || alkind_isOwned (tkind)) + { + /* okay */ + } + else if (alkind_isLocal (tkind) + || alkind_isFresh (tkind) || alkind_isUnknown (tkind)) + { + if ((transferType == TT_DOASSIGN) + && sRef_isNew (fref) && sRef_isOnly (fref)) + { + if (!tfix) + { + sRef_setFresh (tref, loc); + } + } + else + { + } + } + else if ((transferType == TT_FCNPASS) + && (alkind_isUnknown (tkind) + || alkind_isTemp (tkind) || alkind_isUnique (tkind))) + { + if (sRef_isFresh (fref) + && alkind_isUnknown (tkind) && !context_getFlag (FLG_PASSUNKNOWN)) + { + if (!ffix) { sRef_clearAliasKind (fref); } + } + } + else + { + if (alkind_isUnknown (tkind) && !context_getFlag (FLG_MEMIMPLICIT)) + { + flagcode_recordSuppressed (FLG_OWNEDTRANS); + } + else + { + if (alkind_isKept (tkind) && sRef_isNSLocalVar (tref)) + { + ; /* okay */ + } + else + { + voptgenerror + (FLG_OWNEDTRANS, + message ("Owned storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc); + } + } + + if (transferType == TT_DOASSIGN) + { + /* + ** alias kind unknown to suppress future messages + */ + + if (!ffix) { sRef_clearAliasKind (fref); } + } + } +} + +static void +checkFreshTransferAux (sRef fref, exprNode fexp, bool ffix, + sRef tref, exprNode texp, /*@unused@*/ bool tfix, + fileloc loc, transferKind transferType) +{ + alkind tkind = sRef_getAliasKind (tref); + + /* + ** error to return fresh as non-only + */ + + if (transferType == TT_FCNRETURN + && !(alkind_isOnly (tkind) || alkind_isNewRef (tkind))) + { + if (alkind_isUnknown (tkind) && !context_getFlag (FLG_MEMIMPLICIT)) + { + flagcode_recordSuppressed (FLG_NEWREFTRANS); + } + else + { + if (alkind_isError (tkind)) + { + if (!ffix) + { + sRef_killComplete (fref, loc); + } + } + else if (alkind_isRefCounted (tkind)) + { + if (optgenerror + (FLG_NEWREFTRANS, + message + ("New reference returned without newref qualifier: %q", + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + sRef_killComplete (fref, loc); + } + } + else + { + if (optgenerror + (FLG_FRESHTRANS, + message ("Fresh storage %q (should be only): %q", + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + sRef_killComplete (fref, loc); + } + } + } + } + + /* + ** Okay to assign fresh to only, shared or unqualified. + ** + ** should generate other errors? + */ + + if (alkind_isOnly (tkind)) + { + if (transferType == TT_DOASSIGN && !sRef_isFileOrGlobalScope (tref)) + { + if (!ffix) + { + if (!sRef_isNSLocalVar (tref)) + { + sRef_setKeptComplete (fref, loc); + } + } + } + else + { + if (sRef_isConst (fref)) + { + ; + } + else + { + if (!ffix) + { + sRef_killComplete (fref, loc); + } + } + } + } + else if (alkind_isOwned (tkind)) + { + if (!ffix) + { + sRef_setDependentComplete (fref, loc); + } + } + else if (alkind_isRefCounted (tkind) + && (transferType == TT_FCNRETURN) && sRef_isFresh (fref)) + { + if (!ffix) + { + sRef_killComplete (fref, loc); + } + } + else if (alkind_isKeep (tkind)) + { + if (!ffix) + { + if (!sRef_isNSLocalVar (tref)) + { + sRef_setKeptComplete (fref, loc); + } + } + } + else if (alkind_isShared (tkind)) + { + if (!ffix) { sRef_setShared (fref, loc); } + } + else if (alkind_isLocal (tkind) || alkind_isUnknown (tkind)) + { + if (transferType == TT_DOASSIGN || transferType == TT_FCNRETURN) + { + /* + ** local shares fresh. Make it owned/dependent. + */ + + if (!tfix) + { + sRef_setOwned (tref, loc); + } + + if (!ffix && !tfix) + { + sRef_setDependentComplete (fref, loc); + } + + /* NO! sRef_clearAliasKind (fref); */ + } + else + { + if (context_getFlag (FLG_PASSUNKNOWN)) + { + sRef_clearAliasKind (fref); + } + } + } + else + { + ; + } +} + +static void +checkTransferExposure (sRef fref, exprNode fexp, /*@unused@*/ bool ffix, + sRef tref, exprNode texp, bool tfix, + fileloc loc, + transferKind transferType) +{ + alkind fkind = sRef_getAliasKind (fref); + alkind tkind = sRef_getAliasKind (tref); + exkind tekind = sRef_getExKind (tref); + + if (sRef_isObserver (fref) && ctype_isMutable (sRef_getType (fref))) + { + /* + ** observer -> exposed or observer + */ + + /* + ** observer -> temp is okay [NO! really? only in function calls] + */ + + if (sRef_isExposed (tref) || sRef_isObserver (tref) + || alkind_isLocal (tkind)) + { + /* okay */ + + if ((transferType == TT_DOASSIGN) && alkind_isLocal (tkind)) + { + if (!tfix) + { + sRef_setAliasKindComplete (tref, fkind, loc); + } + } + } + else + { + if (transferType == TT_FCNRETURN + || transferType == TT_DOASSIGN + || transferType == TT_FIELDASSIGN + || transferType == TT_GLOBINIT) + { + bool hasError = FALSE; + + if (exprNode_isStringLiteral (fexp) + && transferType == TT_GLOBINIT) + { + hasError = optgenerror + (FLG_READONLYTRANS, + message ("Read-only string literal storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorExpMessage (transferType, tekind), + generateText (fexp, texp, tref, transferType)), + loc); + + sRef_setAliasKind (fref, AK_ERROR, fileloc_undefined); + } + else + { + if ((transferType == TT_DOASSIGN + || transferType == TT_FIELDASSIGN) + && (sRef_isNSLocalVar (tref) + || (exprNode_isStringLiteral (fexp) + && ctype_isRealArray (exprNode_getType (texp))))) + { + ; /* No error for local assignment or assignment + to static array (copies string). */ + } + else + { + if (exprNode_isStringLiteral (fexp)) + { + hasError = optgenerror + (FLG_READONLYTRANS, + message + ("Read-only string literal storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorExpMessage (transferType, tekind), + generateText (fexp, texp, tref, transferType)), + loc); + + } + + if (!hasError) + { + hasError = optgenerror + (FLG_OBSERVERTRANS, + message + ("Observer storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorExpMessage (transferType, tekind), + generateText (fexp, texp, tref, transferType)), + loc); + } + } + } + + if (hasError) + { + if (transferType != TT_GLOBINIT) + { + sRef_showExpInfo (fref); + sRef_setAliasKind (tref, AK_ERROR, loc); + } + } + else + { + if (transferType == TT_DOASSIGN && !tfix) + { + DPRINTF (("Setting unknown!")); + /* sRef_setAliasKind (tref, AK_ERROR, loc); */ + } + } + } + else /* TT_FCNPASS */ + { + llassert (transferType == TT_FCNPASS); + + if (alkind_isTemp (tkind) + || alkind_isDependent (tkind) + || alkind_isRefCounted (tkind)) + { + ; /* okay */ + } + else + { + if (!alkind_isError (tkind)) + { + if (optgenerror + (FLG_OBSERVERTRANS, + message ("Observer storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showExpInfo (fref); + sRef_clearAliasState (fref, loc); + } + } + } + } + } + } + else if (sRef_isExposed (fref) && ctype_isMutable (sRef_getType (fref))) + { + if (transferType == TT_FCNRETURN) + { + if (!(sRef_isExposed (tref) || sRef_isObserver (tref) + || sRef_isParam (fref))) + { + if (optgenerror + (FLG_EXPOSETRANS, + message ("Exposed storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorExpMessage (transferType, tekind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showExpInfo (fref); + } + } + } + else if (transferType == TT_FCNPASS) + { + if (!(sRef_isExposed (tref) + || sRef_isObserver (tref) + || (alkind_isUnknown (tkind) + || alkind_isDependent (tkind) + || alkind_isTemp (tkind) + || alkind_isKillRef (tkind) + || alkind_isRefCounted (tkind)))) + { + if (alkind_isUnique (tkind) || alkind_isError (tkind)) + { + } + else + { + if (optgenerror + (FLG_EXPOSETRANS, + message ("Exposed storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showExpInfo (fref); + sRef_clearAliasState (fref, loc); + } + } + + } + else + { + ; + } + } + else if (transferType == TT_DOASSIGN) + { + if (!(sRef_isExposed (tref) + || !sRef_isCvar (tref) + || (alkind_isUnknown (tkind) + || alkind_isDependent (tkind) + || alkind_isRefCounted (tkind) + || alkind_isNewRef (tkind) + || alkind_isFresh (tkind) + || alkind_isLocal (tkind)))) + { + if (optgenerror + (FLG_EXPOSETRANS, + message ("Exposed storage %q%q: %q", + sRef_unparseOpt (fref), + transferErrorExpMessage (transferType, tekind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showExpInfo (fref); + } + } + if (!tfix) { sRef_setExposed (tref, loc); } + } + else + { + llassert (transferType == TT_GLOBPASS + || transferType == TT_GLOBRETURN + || transferType == TT_PARAMRETURN + || transferType == TT_LEAVETRANS + || transferType == TT_GLOBINIT); + } + } + else + { + ; + } +} + +/* +** returns TRUE if there is no error reported +** +** if fixt, don't change tref (except if error reported.) +** if fixf, don't change fref (except if error reported.) +*/ + +static void +checkTransferAux (exprNode fexp, /*@exposed@*/ sRef fref, bool ffix, + exprNode texp, /*@exposed@*/ sRef tref, bool tfix, + fileloc loc, transferKind transferType) +{ + alkind fkind; + alkind tkind; + bool isassign = (transferType == TT_DOASSIGN); + bool isfieldassign = (transferType == TT_FIELDASSIGN); + bool iseitherassign = isassign || (transferType == TT_FIELDASSIGN); + bool isfcnpass = (transferType == TT_FCNPASS); + bool isfcnreturn = (transferType == TT_FCNRETURN); + + setCodePoint (); + + if (!ffix && !tfix) + { + setCodePoint (); + checkTransferNullAux (fref, fexp, ffix, tref, texp, tfix, + loc, transferType); + } + + if (isassign) + { + setCodePoint (); + checkTransferAssignAux (fref, fexp, ffix, tref, texp, tfix, + loc, transferType); + } + + /* + ** Check for definition + */ + + /* + ** errors passing out params already detected in checkAnyCall + */ + + if (!ffix && !tfix) + { + bool defok = TRUE; + + if (!iseitherassign + || (!sRef_isNSLocalVar (tref) + && (sRef_isAnyDefined (tref) || !sRef_stateKnown (tref)))) + { + setCodePoint (); + + if (!ynm_toBoolRelaxed + (checkCompletelyDefined (fexp, fref, fref, + texp, tref, + TRUE, FALSE, FALSE, + loc, transferType, 0, TRUE))) + { + defok = FALSE; + } + } + + setCodePoint (); + + if (defok && iseitherassign) + { + sRef_setDefState (tref, sRef_getDefState (fref), loc); + } + } + + /* + ** check exposure + */ + + setCodePoint (); + checkTransferExposure (fref, fexp, ffix, tref, texp, tfix, + loc, transferType); + + fkind = sRef_getAliasKind (fref); + tkind = sRef_getAliasKind (tref); + + /* + ** check aliasing + */ + + if (alkind_isOnly (fkind)) + { + setCodePoint (); + checkOnlyTransferAux (fref, fexp, ffix, + tref, texp, tfix, + loc, transferType); + } + else if (alkind_isFresh (fkind)) + { + setCodePoint (); + checkFreshTransferAux (fref, fexp, ffix, + tref, texp, tfix, + loc, transferType); + } + else if (alkind_isOwned (fkind)) + { + setCodePoint (); + checkOwnedTransferAux (fref, fexp, ffix, + tref, texp, tfix, + loc, transferType); + } + else if (alkind_isDependent (fkind)) + { + setCodePoint (); + if (isfcnreturn && + (sRef_isExposed (tref) || sRef_isObserver (tref))) + { + ; /* okay */ + } + else if ((alkind_isOnly (tkind) || alkind_isKeep (tkind) + || alkind_isOwned (tkind)) + || (!isfcnpass && alkind_isTemp (tkind))) + { + bool error = TRUE; + + if (sRef_isLocalVar (fref)) + { + sRef depRef = dependentReference (fref); + + if (sRef_isValid (depRef) && sRef_isLocalVar (depRef)) + { + error = FALSE; + sRef_kill (depRef, loc); + sRef_kill (fref, loc); + } + + } + + if (isfieldassign) + { + error = FALSE; + } + + if (canLoseLocalReference (fref, loc)) + { + ; + } + else + { + if (error && + (optgenerror + (FLG_DEPENDENTTRANS, + message ("%s storage %q%q: %q", + alkind_capName (fkind), + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc))) + { + DPRINTF (("Here: %s / %s", + sRef_unparseFull (fref), + sRef_unparseFull (tref))); + + sRef_showAliasInfo (fref); + } + } + } + else + { + if (isassign && (alkind_isFresh (tkind) || alkind_isLocal (tkind))) + { + if (!tfix && !ffix) + { + sRef_setDependent (tref, loc); + } + } + } + } + else if (alkind_isShared (fkind)) + { + setCodePoint (); + /* + ** xxx <- shared + */ + + if (alkind_isOnly (tkind) + || (!isfcnpass + && (!(sRef_isObserver (tref) || sRef_isExposed (tref)) + && alkind_isTemp (tkind)))) + { + if (optgenerror + (FLG_SHAREDTRANS, + message ("%s storage %q%q: %q", + alkind_capName (fkind), + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else + { + if (alkind_isFresh (tkind) || alkind_isLocal (tkind)) + { + sRef_setShared (tref, loc); + } + } + } + else if (alkind_isKeep (fkind)) + { + setCodePoint (); + + if (alkind_isKeep (tkind) + || alkind_isLocal (tkind) + || (isfcnreturn && sRef_isExposed (tref)) + || (iseitherassign + && (alkind_isOnly (tkind) || alkind_isOwned (tkind)))) + { + sRef_setKept (fref, loc); + } + else if (isfcnpass + && (alkind_isTemp (tkind) || alkind_isOwned (tkind))) + { + ; + } + else + { + if (!alkind_isError (tkind)) + { + if (optgenerror + (FLG_KEEPTRANS, + message ("%s storage %q: %q", + alkind_capName (fkind), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + } + else if (alkind_isTemp (fkind) || alkind_isKept (fkind)) + { + /* + ** xxx <- temp + */ + + if (alkind_isOnly (tkind) + || alkind_isShared (tkind) + || (alkind_isTemp (fkind) + && !isfcnreturn && alkind_isDependent (tkind)) + || alkind_isOwned (tkind) + || alkind_isKeep (tkind)) + { + if (!exprNode_isNullValue (fexp) + && (ctype_isMutable (exprNode_getType (fexp)) + || (ctype_isArray (exprNode_getType (fexp)) + && sRef_isParam (fref))) + && (!iseitherassign || sRef_isReference (tref))) + { + if (sRef_isThroughArrayFetch (fref)) + { + if (optgenerror2 + (alkind_isTemp (fkind) ? FLG_TEMPTRANS : FLG_KEPTTRANS, + FLG_STRICTUSERELEASED, + message ("%s storage %q%q: %q", + alkind_capName (fkind), + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + else + { + if (optgenerror + (alkind_isTemp (fkind) ? FLG_TEMPTRANS : FLG_KEPTTRANS, + message ("%s storage %q%q: %q", + alkind_capName (fkind), + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + } + } + else if (alkind_isRefCounted (fkind) || alkind_isKillRef (fkind)) + { + if (alkind_isNewRef (tkind)) + { + /* + ** check that the refs field has been modified + */ + + if (!sRef_isConst (fref)) + { + voptgenerror + (FLG_REFCOUNTTRANS, + message ("Reference counted storage returned without modifying " + "reference count: %s", + exprNode_unparse (fexp)), + loc); + } + } + else if (iseitherassign) + { + if (alkind_isRefCounted (fkind)) + { + if (!sRef_isLocalVar (tref)) + { + vgenhinterror + (FLG_REFCOUNTTRANS, + message + ("Assignment to non-local from reference counted storage: %s", + exprNode_unparse (fexp)), + cstring_makeLiteral + ("Reference counted storage should call a function returning " + "a newref instead of direct assignments."), + loc); + } + else + { + ; + } + } + } + else /* fcnpass */ + { + if (alkind_isRefCounted (tkind) || alkind_isTemp (tkind)) + { + /* okay --- no change in state */ + } + else if (alkind_isKillRef (tkind)) + { + if (!ffix && !tfix && !(transferType == TT_FCNRETURN)) + { + sRef_killComplete (fref, loc); + } + } + else + { + if (!alkind_isError (tkind)) + { + voptgenerror + (FLG_REFCOUNTTRANS, + message ("Reference counted storage %q: %q", + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc); + } + } + } + } + else + { + ; + } + + setCodePoint (); + + if (alkind_isOnly (tkind) || alkind_isKeep (tkind)) + { + if (sRef_isAddress (fref)) + { + voptgenerror + (FLG_IMMEDIATETRANS, + message ("Immediate address %q %q: %q", + sRef_unparse (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc); + + sRef_setAliasKind (fref, AK_ERROR, loc); + } + else + { + if ((alkind_isUnknown (fkind) || alkind_isStatic (fkind)) + && !sRef_isDefinitelyNull (fref) + && (!ffix && !tfix) + && (!exprNode_isNullValue (fexp))) + { + flagcode errkind = alkind_isStatic (fkind) + ? FLG_STATICTRANS : FLG_UNKNOWNTRANS; + + if (transferType == TT_GLOBINIT) + { + if (errkind == FLG_STATICTRANS) + { + errkind = FLG_STATICINITTRANS; + } + else + { + errkind = FLG_UNKNOWNINITTRANS; + } + } + + if (optgenerror + (errkind, + message ("%s storage %s %q: %q", + alkind_capName (fkind), + exprNode_unparse (fexp), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + + /* don't kill shared to suppress future messages */ + if (!alkind_isShared (fkind)) + { + if (isassign) + { + if (!ffix) + { + /*< yuk! should do this in aliasaux >*/ + + if (!sRef_isNSLocalVar (tref) && !sRef_sameName (fref, tref)) + { + if (!tfix) + { + sRef_setKeptComplete (fref, loc); + } + else + { + sRef_setKept (fref, loc); + } + } + } + } + else + { + if (!ffix) + { + if (!tfix) + { + if (alkind_isKeep (tkind)) + { + sRef_setKeptComplete (fref, loc); + } + else + { + sRef_killComplete (fref, loc); + } + } + else + { + if (alkind_isKeep (tkind)) + { + sRef_setKept (fref, loc); + } + else + { + sRef_kill (fref, loc); + } + } + } + } + } + } + else if (alkind_isOwned (tkind)) + { + /* don't kill shared to suppress future messages */ + if (!alkind_isShared (fkind)) + { + if (!isassign + || !sRef_sameName (fref, tref)) /* result of return parameter */ + { + if (!ffix) + { + if (!tfix) + { + sRef_setDependentComplete (fref, loc); + } + else + { + sRef_setDependent (fref, loc); + } + } + } + } + } + else if (alkind_isShared (tkind)) + { + if (alkind_isFresh (fkind) || alkind_isLocal (fkind)) + { + if (!ffix) + { + sRef_setShared (fref, loc); + } + } + } + else if (alkind_isUnknown (tkind) && context_getFlag (FLG_MEMIMPLICIT)) + { + if (alkind_isDependent (fkind)) + { + if (!exprNode_isNullValue (fexp) + && ctype_isMutable (exprNode_getType (fexp)) + && (!iseitherassign || sRef_isReference (tref))) + { + if (canLoseReference (fref, loc)) + { + ; + } + else + { + if (optgenerror + (FLG_DEPENDENTTRANS, + message ("%s storage %q%q: %q", + alkind_capName (fkind), + sRef_unparseOpt (fref), + transferErrorMessage (transferType, tkind), + generateText (fexp, texp, tref, transferType)), + loc)) + { + DPRINTF (("Here: %s / %s", sRef_unparseFull (fref), + sRef_unparseFull (tref))); + sRef_showAliasInfo (fref); + } + } + } + } + } + else if (alkind_isNewRef (tkind)) + { + if (!ffix && !tfix) + { + sRef_killComplete (fref, loc); + } + } + else if (alkind_isKillRef (tkind)) + { + if (transferType == TT_FCNRETURN) + { + if (sRef_isNewRef (fref)) + { + if (optgenerror + (FLG_REFCOUNTTRANS, + message ("New reference returned as temp reference: %q", + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + else + { + if (sRef_isNewRef (fref)) + { + sRef_killComplete (fref, loc); + } + else + { + if (sRef_isRefCounted (fref) + && sRef_isCvar (fref) + && !sRef_isLocalVar (fref)) + { + if (optgenerror + (FLG_REFCOUNTTRANS, + message + ("External reference counted storage released: %q", + generateText (fexp, texp, tref, transferType)), + loc)) + { + sRef_showAliasInfo (fref); + } + } + } + } + + } + else + { + ; + } + + setCodePoint (); +} + +static void +checkMetaStateConsistent (/*@exposed@*/ sRef fref, sRef tref, + fileloc loc, /*@unused@*/ transferKind transferType) +{ + /* + ** Checks if it is consistent to leave storage marked as tref in state of fref. + */ + + valueTable fvalues = sRef_getValueTable (fref); + valueTable tvalues = sRef_getValueTable (tref); + + DPRINTF (("Metastate consistent: %s => %s", + sRef_unparseFull (fref), + sRef_unparseFull (tref))); + + if (valueTable_isUndefined (tvalues) || valueTable_isUndefined (fvalues)) { + /* Cannot check without value tables. An error was already detected. */ + DPRINTF (("No value table: %s / %s", + bool_unparse (valueTable_isUndefined (tvalues)), + bool_unparse (valueTable_isUndefined (fvalues)))); + return; + } + + valueTable_elements (fvalues, fkey, fval) { + stateValue tval; + metaStateInfo minfo; + + DPRINTF (("Transfer: %s", fkey)); + tval = valueTable_lookup (tvalues, fkey); + minfo = context_lookupMetaStateInfo (fkey); + + if (!stateValue_isDefined (tval)) + { + if (ctype_isUnknown (sRef_getType (fref))) + { + ; /* Okay, put in default values without knowing type */ + } + else + { + /*@i#!@!!@*/ + DPRINTF (("Cannot find meta state for: %s / to: %s / %s", sRef_unparseFull (fref), + sRef_unparseFull (tref), + fkey)); + } + } + else + { + llassert (metaStateInfo_isDefined (minfo)); + + if (stateValue_isError (fval) || stateValue_isError (tval)) + { + ; + } + else if (!stateValue_sameValue (fval, tval)) + { + DPRINTF (("Check: %s / %s / %s / %s", fkey, + metaStateInfo_unparse (minfo), + stateValue_unparse (fval), + stateValue_unparse (tval))); + + if (sRef_isDefinitelyNull (fref) + || usymtab_isDefinitelyNull (fref)) + { + ; /* No errors for null values in state transfers. */ + } + else + { + if (optgenerror + (FLG_STATETRANSFER, + message + ("Invalid transfer from %s %x to %s", + metaStateInfo_unparseValue (minfo, stateValue_getValue (fval)), + sRef_unparse (fref), + metaStateInfo_unparseValue (minfo, stateValue_getValue (tval))), + loc)) + { + sRef_showMetaStateInfo (fref, fkey); + } + } + } + else + { + ; /* Match okay */ + } + } + + DPRINTF (("Transfer: %s %s -> %s", + fkey, stateValue_unparse (fval), stateValue_unparse (tval))); + } end_valueTable_elements ; +} + +static void +checkMetaStateTransfer (exprNode fexp, sRef fref, exprNode texp, sRef tref, + fileloc loc, transferKind /*@i32@*/ transferType) +{ + valueTable fvalues = sRef_getValueTable (fref); + valueTable tvalues = sRef_getValueTable (tref); + + DPRINTF (("Metastate transfer: from %s", exprNode_unparse (fexp))); + + DPRINTF (("Metastate transfer: %s => %s", + sRef_unparseFull (fref), + sRef_unparseFull (tref))); + + if (valueTable_isUndefined (tvalues) || valueTable_isUndefined (fvalues)) { + /* Cannot check without value tables. An error was already detected. */ + DPRINTF (("No value table: %s / %s", + bool_unparse (valueTable_isUndefined (tvalues)), + bool_unparse (valueTable_isUndefined (fvalues)))); + return; + } + + valueTable_elements (fvalues, fkey, fval) { + stateValue tval; + metaStateInfo minfo; + stateCombinationTable sctable; + cstring msg; + int nval; + + DPRINTF (("Transfer: %s", fkey)); + tval = valueTable_lookup (tvalues, fkey); + minfo = context_lookupMetaStateInfo (fkey); + + if (!stateValue_isDefined (tval)) + { + if (ctype_isUnknown (sRef_getType (fref))) + { + ; /* Okay, put in default values without knowing type */ + } + else + { + /*@i#!@!!@*/ + DPRINTF (("Metastate transfer: %s => %s", + exprNode_unparse (fexp), exprNode_unparse (texp))); + DPRINTF (("Cannot find meta state for: %s / to: %s / %s", sRef_unparseFull (fref), + sRef_unparseFull (tref), + fkey)); + } + } + else + { + llassert (metaStateInfo_isDefined (minfo)); + + if (stateValue_isError (fval) || stateValue_isError (tval)) + { + ; + } + else + { + DPRINTF (("Check: %s / %s / %s / %s", fkey, + metaStateInfo_unparse (minfo), + stateValue_unparse (fval), + stateValue_unparse (tval))); + + sctable = metaStateInfo_getTransferTable (minfo); + msg = cstring_undefined; + + nval = stateCombinationTable_lookup (sctable, + stateValue_getValue (fval), + stateValue_getValue (tval), + &msg); + + if (transferType == TT_DOASSIGN && sRef_isLocalVar (tref)) + { + /* Local assignments just replace state. */ + DPRINTF (("No transfer error assigning to local: %s", msg)); + stateValue_updateValueLoc (tval, stateValue_getValue (fval), loc); + } + else + { + if (cstring_isDefined (msg)) + { + /*@i32 print extra info for assignments@*/ + + if (optgenerror + (FLG_STATETRANSFER, + message + ("Invalid transfer from %s %x to %s (%s): %q", + metaStateInfo_unparseValue (minfo, stateValue_getValue (fval)), + sRef_unparse (fref), + metaStateInfo_unparseValue (minfo, stateValue_getValue (tval)), + msg, + transferErrorExcerpt (transferType, fexp, texp)), + loc)) + { + sRef_showAliasInfo (fref); + } + else + { + DPRINTF (("Suppressed transfer error: %s", msg)); + } + } + else + { + if (transferType == TT_FCNRETURN) + { + /* + ** Returning this reference from a function, mark this reference + ** so no lost reference errors are returned. + */ + + stateValue_updateValueLoc (fval, stateValue_error, loc); + } + else if (stateValue_getValue (fval) != nval) + { + stateValue_updateValueLoc (fval, nval, loc); + } + else + { + ; + } + } + } + } + } + + DPRINTF (("Transfer: %s %s -> %s", + fkey, stateValue_unparse (fval), stateValue_unparse (tval))); + } end_valueTable_elements ; +} + +/* +** assigns fexp := tref or passes fexp as a parameter, or returns fexp. +** +** For assignments, sets alias and definition state accordingly. +*/ + +static void +checkTransfer (exprNode fexp, /*@dependent@*/ sRef fref, + exprNode texp, /*@dependent@*/ sRef tref, + fileloc loc, transferKind transferType) +{ + setCodePoint (); + + if (context_inProtectVars ()) + { + return; + } + + DPRINTF (("Check transfer: %s => %s", + sRef_unparse (fref), + sRef_unparse (tref))); + DPRINTF (("Check transfer: %s => %s", + exprNode_unparse (fexp), + exprNode_unparse (texp))); + + checkMetaStateTransfer (fexp, fref, texp, tref, loc, transferType); + + /* + ** for local references, we need to check + ** the transfer for all possible aliases. + */ + + if (sRef_isLocalVar (tref) && transferType != TT_DOASSIGN) + { + sRefSet alias = usymtab_allAliases (tref); + + sRefSet_realElements (alias, atref) + { + sRef abase = sRef_getRootBase (atref); + + if (sRef_isKnown (atref) + && !sRef_isLocalVar (abase) + && !sRef_isExternal (abase)) + { + atref = sRef_updateSref (atref); + + if (sRef_hasName (atref)) + { + if (!sRef_isNew (atref) + && !sRef_sameName (tref, atref)) + { + context_setAliasAnnote (atref, tref); + } + + checkTransferAux (fexp, fref, TRUE, + texp, atref, FALSE, + loc, transferType); + + context_clearAliasAnnote (); + } + } + } end_sRefSet_realElements; + + sRefSet_free (alias); + } + + if (sRef_isLocalVar (fref)) + { + sRefSet alias = usymtab_allAliases (fref); + + sRefSet_realElements (alias, afref) + { + sRef abase = sRef_getRootBase (afref); + + if (sRef_isKnown (afref) + && !sRef_isLocalVar (abase) + && !sRef_isExternal (abase)) + { + afref = sRef_updateSref (afref); + + if (sRef_hasName (afref)) + { + if (!sRef_isNew (afref) + && !sRef_sameName (afref, fref)) + { + context_setAliasAnnote (afref, fref); + } + + checkTransferAux (fexp, afref, FALSE, + texp, tref, TRUE, + loc, transferType); + + context_clearAliasAnnote (); + } + } + } end_sRefSet_realElements; + + sRefSet_free (alias); + } + + setCodePoint (); + checkTransferAux (fexp, fref, FALSE, texp, tref, FALSE, + loc, transferType); + setCodePoint (); +} + +static /*@exposed@*/ sRef + dependentReference (sRef sr) +{ + sRefSet ab = usymtab_aliasedBy (sr); /* yes, really mean aliasedBy */ + + DPRINTF (("Dependent reference: %s", sRef_unparse (sr))); + DPRINTF (("Aliases: %s", sRefSet_unparse (ab))); + + /* + ** If there is a local variable that aliases sr, then there is no + ** error. Make the local an only. + */ + + if (!sRefSet_isEmpty (ab)) + { + sRef res = sRef_undefined; + + DPRINTF (("Here we are!")); + + /* + ** make one an only, others alias it + */ + + sRefSet_realElements (ab, current) + { + if (sRef_isOwned (current)) + { + res = current; + break; + } + } end_sRefSet_realElements; + + if (sRef_isInvalid (res)) + { + /* + ** evans - 2001-03-24 + ** No owned element, just choose one! + ** (Any reason for preference?) + */ + + res = sRefSet_choose (ab); + } + + sRefSet_free (ab); + return res; + } + + return sRef_undefined; +} + +bool canLoseReference (/*@dependent@*/ sRef sr, fileloc loc) +{ + bool gotone = FALSE; + sRefSet ab = usymtab_aliasedBy (sr); /* yes, really mean aliasedBy */ + + /* + ** if there is a local variable that aliases sr, then there is no + ** error. Make the local an only. + */ + + if (!sRefSet_isEmpty (ab)) + { + /* + ** make one an only, others alias it + */ + + sRefSet_realElements (ab, current) + { + sRef_setLastReference (current, sr, loc); + gotone = TRUE; + break; + } end_sRefSet_realElements; + + sRefSet_free (ab); + } + + return gotone; +} + +bool canLoseLocalReference (/*@dependent@*/ sRef sr, fileloc loc) +{ + bool gotone = FALSE; + sRefSet ab = usymtab_aliasedBy (sr); /* yes, really mean aliasedBy */ + + /* + ** if there is a local variable that aliases sr, then there is no + ** error. Make the local an only. + */ + + if (!sRefSet_isEmpty (ab)) + { + /* + ** make one an only, others alias it + */ + + sRefSet_realElements (ab, current) + { + if (sRef_isRealLocalVar (sRef_getRootBase (current))) + { + sRef_setLastReference (current, sr, loc); + gotone = TRUE; + break; + } + } end_sRefSet_realElements; + + sRefSet_free (ab); + } + + return gotone; +} diff --git a/src/typeIdSet.c b/src/typeIdSet.c index 1489d83..37b2956 100644 --- a/src/typeIdSet.c +++ b/src/typeIdSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -106,7 +106,7 @@ void typeIdSet_loadTable (FILE *fin) llassert (tistableentries == 1); - s = fgets (s, MAX_DUMP_LINE_LENGTH, fin); + s = reader_readLine (fin, s, MAX_DUMP_LINE_LENGTH); while (s != NULL && *s != ';') { @@ -115,8 +115,10 @@ void typeIdSet_loadTable (FILE *fin) llassert (*s == '\0' || *s == '\n'); tistable_addDirectEntry (u); - s = fgets (os, MAX_DUMP_LINE_LENGTH, fin); + s = reader_readLine (fin, os, MAX_DUMP_LINE_LENGTH); } + + /*@i32 free os? @*/ } static void tistable_grow (void) @@ -275,7 +277,7 @@ typeIdSet typeIdSet_undump (char **s) int i; - i = getInt (s); + i = reader_getInt (s); llassert (i >= 0 && i < tistableentries); return (typeIdSet) i; diff --git a/src/typeNameNodeList.c b/src/typeNameNodeList.c index 267ad2a..3a4cbc0 100644 --- a/src/typeNameNodeList.c +++ b/src/typeNameNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/uentry.c b/src/uentry.c index f390af5..46d96ef 100644 --- a/src/uentry.c +++ b/src/uentry.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -30,8 +30,6 @@ # include "structNames.h" # include "nameChecks.h" -/*@i223*/ -/*@-type*/ static /*@dependent@*/ uentry posRedeclared = uentry_undefined; static /*@only@*/ fileloc posLoc = fileloc_undefined; static int nuentries = 0; @@ -45,6 +43,12 @@ static bool uentry_isReallySpecified (uentry p_e) /*@*/ ; static void uentry_checkIterArgs (uentry p_ue); static cstring uentry_dumpAux (uentry p_v, bool p_isParam); +static void uentry_combineModifies (uentry p_ue, /*@owned@*/ sRefSet p_sr) + /*@modifies p_ue@*/ ; + +static void uentry_addStateClause (uentry p_ue, /*@only@*/ stateClause p_sc) + /*@modifies p_ue@*/ ; + /*@access ekind@*/ static void checkAliasState (/*@notnull@*/ uentry p_old, /*@notnull@*/ uentry p_unew, @@ -89,6 +93,7 @@ static /*@only@*/ /*@notnull@*/ uentry static /*@out@*/ /*@notnull@*/ uentry uentry_alloc (void) /*@*/ { uentry ue = (uentry) dmalloc (sizeof (*ue)); + ue->warn = warnClause_undefined; /*@i32@*/ nuentries++; totuentries++; @@ -297,7 +302,6 @@ extern void uentry_tallyAnnots (uentry u, ancontext kind) nstate ns = sRef_getNullState (u->sref); sstate ss = sRef_getDefState (u->sref); bool recordUnknown = FALSE; - if (kind == AN_UNKNOWN) { @@ -332,7 +336,7 @@ extern void uentry_tallyAnnots (uentry u, ancontext kind) if (ctype_isFunction (u->utype) && !hasRet - && ctype_isVisiblySharable (ctype_realType (ctype_returnValue (u->utype)))) + && ctype_isVisiblySharable (ctype_realType (ctype_getReturnType (u->utype)))) { recordUnknown = TRUE; } @@ -397,15 +401,6 @@ extern void uentry_tallyAnnots (uentry u, ancontext kind) } } - - - - - - - - - switch (ss) { case SS_ALLOCATED: tallyAnnot (kind, QU_OUT); break; @@ -425,7 +420,7 @@ extern void uentry_tallyAnnots (uentry u, ancontext kind) case AK_UNKNOWN: if (ctype_isRefCounted (ctype_realType (u->utype)) || (ctype_isFunction (u->utype) && - ctype_isRefCounted (ctype_realType (ctype_returnValue (u->utype))))) + ctype_isRefCounted (ctype_realType (ctype_getReturnType (u->utype))))) { ; } @@ -566,7 +561,7 @@ static /*@observer@*/ cstring uentry_reDefDecl (uentry old, uentry unew) /*@*/ { if (uentry_isVariable (ue) && ctype_isFunction (uentry_getType (ue))) { - TPRINTF(( (message( "Function pointer %s not doing uentry_makeVarFunction", uentry_unparse(ue) )) )); + DPRINTF(( (message( "Function pointer %s not doing uentry_getFcnPreconditions", uentry_unparse(ue) )) )); // uentry_makeVarFunction (ue); } @@ -575,7 +570,7 @@ static /*@observer@*/ cstring uentry_reDefDecl (uentry old, uentry unew) /*@*/ //llassert ((ue->info->fcn->preconditions)); if (!uentry_isFunction (ue)) { - DPRINTF ( (message ("called uentry_getFcnPreconditions on nonfunction %s", + DPRINTF( (message ("called uentry_getFcnPreconditions on nonfunction %s", uentry_unparse (ue) ) ) ); if (!uentry_isSpecified (ue) ) { @@ -588,7 +583,7 @@ static /*@observer@*/ cstring uentry_reDefDecl (uentry old, uentry unew) /*@*/ return constraintList_undefined; } - if (ue->info->fcn->preconditions != NULL) + if (constraintList_isDefined(ue->info->fcn->preconditions)) { return constraintList_copy (ue->info->fcn->preconditions); } @@ -605,6 +600,8 @@ static /*@observer@*/ cstring uentry_reDefDecl (uentry old, uentry unew) /*@*/ } + + /*drl 12/28/2000 */ @@ -612,31 +609,38 @@ constraintList uentry_getFcnPostconditions (uentry ue) { if (uentry_isValid (ue)) { + DPRINTF( (message ("called uentry_getFcnPostconditions on %s", + uentry_unparse (ue) ) ) ); { if (uentry_isVariable (ue) && ctype_isFunction (uentry_getType (ue))) { - TPRINTF(( (message( "Function pointer %s not doing uentry_makeVarFunction", uentry_unparse(ue) )) )); - //uentry_makeVarFunction (ue); + DPRINTF( (message ("called uentry_getFcnPostconditions on nonfunction %s", + uentry_unparse (ue) ) ) ); + if (!uentry_isFunction (ue) ) + { + DPRINTF((message ("called uentry_getFcnPostconditions on nonfunction %s", + uentry_unparse (ue) ) )); + return constraintList_undefined; + } + + + return constraintList_undefined; } - //llassert (uentry_isFunction (ue)); - //llassert ((ue->info->fcn->preconditions)); - /* if (!uentry_isSpecified (ue) ) - { - TPRINTF((message ("called uentry_getFcnPostconditions on nonfunction %s", - uentry_unparse (ue) ) )); - // return constraintList_undefined; - }*/ - - if (!uentry_isFunction (ue)) + // llassert (uentry_isFunction (ue)); + if (!uentry_isFunction(ue) ) { - /*llcontbug*/ DPRINTF( (message ("called uentry_getFcnPostconditions on nonfunction %s", + + DPRINTF( (message ("called uentry_getFcnPostconditions on non function %s", uentry_unparse (ue) ) ) ); - return constraintList_undefined; - } + return constraintList_undefined; - if (ue->info->fcn->postconditions != NULL) + } + if (constraintList_isDefined(ue->info->fcn->postconditions) ) { + DPRINTF((message ("called uentry_getFcnPostconditions on %s and returned %q", + uentry_unparse (ue), + constraintList_print(ue->info->fcn->postconditions) ) )); return constraintList_copy (ue->info->fcn->postconditions); } else @@ -857,24 +861,38 @@ static void reflectImplicitFunctionQualifiers (/*@notnull@*/ uentry ue, bool spe if (exkind_isKnown (ek)) { + DPRINTF (("Setting imp dependent: %s", + uentry_unparseFull (ue))); sRef_setAliasKind (ue->sref, AK_IMPDEPENDENT, fileloc_undefined); } else { if (context_getFlag (spec ? FLG_SPECRETIMPONLY : FLG_RETIMPONLY)) { + /* evans 2000-12-22 removed ctype_realType so it will + not apply to immutable abstract types. */ + if (ctype_isVisiblySharable - (ctype_realType (ctype_returnValue (ue->utype)))) + (ctype_realType (ctype_getReturnType (ue->utype)))) { if (uentryList_hasReturned (uentry_getParams (ue))) { ; } - else + else { - sRef_setAliasKind (ue->sref, AK_IMPONLY, - fileloc_undefined); - } + if (ctype_isImmutableAbstract (ctype_getReturnType (ue->utype))) + { + ; /* Immutable objects are not shared. */ + } + else + { + sRef_setAliasKind (ue->sref, AK_IMPONLY, + fileloc_undefined); + DPRINTF (("Ret imp only: %s", + ctype_unparse (ctype_getReturnType (ue->utype)))); + } + } } } } @@ -886,16 +904,19 @@ static /*@notnull@*/ uentry uentry_makeFunctionAux (cstring n, ctype t, typeIdSet access, /*@only@*/ globSet globs, - /*@only@*/ sRefSet mods, + /*@only@*/ sRefSet mods, + /*@only@*/ warnClause warn, /*@keep@*/ fileloc f, bool priv, /*@unused@*/ bool isForward) { uentry e = uentry_alloc (); ctype ret; + llassert (warnClause_isUndefined (warn)); /*@i325 remove parameter! */ + if (ctype_isFunction (t)) { - ret = ctype_returnValue (t); + ret = ctype_getReturnType (t); } else { @@ -937,6 +958,8 @@ uentry_makeFunctionAux (cstring n, ctype t, e->isPrivate = priv; e->hasNameError = FALSE; + e->warn = warn; + e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->fcn = (ufinfo) dmalloc (sizeof (*e->info->fcn)); @@ -944,7 +967,7 @@ uentry_makeFunctionAux (cstring n, ctype t, e->info->fcn->hasGlobs = globSet_isDefined (globs); e->info->fcn->exitCode = XK_UNKNOWN; - e->info->fcn->nullPred = QU_UNKNOWN; + e->info->fcn->nullPred = qual_createUnknown (); e->info->fcn->specialCode = SPC_NONE; e->info->fcn->access = access; @@ -971,17 +994,149 @@ uentry_makeFunctionAux (cstring n, ctype t, return (e); } +static void uentry_reflectClauses (uentry ue, functionClauseList clauses) +{ + functionClauseList_elements (clauses, el) + { + DPRINTF (("Reflect clause: %s on %s", + functionClause_unparse (el), uentry_getName (ue))); + + if (functionClause_isNoMods (el)) + { + modifiesClause mel = functionClause_getModifies (el); + + if (uentry_hasGlobs (ue)) + { + voptgenerror + (FLG_SYNTAX, + message + ("No globals and modifies inconsistent to globals clause for %q: %q", + uentry_getName (ue), + globSet_unparse (uentry_getGlobs (ue))), + modifiesClause_getLoc (mel)); + + } + + if (uentry_hasMods (ue)) + { + voptgenerror + (FLG_SYNTAX, + message + ("No globals and modifies inconsistent to modifies clause for %q: %q", + uentry_getName (ue), + sRefSet_unparse (uentry_getMods (ue))), + modifiesClause_getLoc (mel)); + } + + uentry_setGlobals (ue, globSet_undefined); + uentry_setModifies (ue, sRefSet_undefined); + } + else if (functionClause_isGlobals (el)) + { + globalsClause glc = functionClause_getGlobals (el); + + DPRINTF (("Globals: %s / %s", uentry_unparse (ue), + globalsClause_unparse (glc))); + + if (uentry_hasGlobs (ue)) + { + voptgenerror + (FLG_SYNTAX, + message + ("Multiple globals clauses for %q: %q", + uentry_getName (ue), + globalsClause_unparse (glc)), + globalsClause_getLoc (glc)); + uentry_setGlobals (ue, globalsClause_takeGlobs (glc)); /*@i32@*/ + } + else + { + uentry_setGlobals (ue, globalsClause_takeGlobs (glc)); + } + } + else if (functionClause_isModifies (el)) + { + modifiesClause mlc = functionClause_getModifies (el); + + DPRINTF (("Has modifies: %s", uentry_unparseFull (ue))); + + if (uentry_hasMods (ue)) + { + /* + ** Not an error: + + if (optgenerror + (FLG_SYNTAX, + message + ("Multiple modifies clauses for %s: %s", + uentry_getName (ue), + modifiesClause_unparse (mlc)), + modifiesClause_getLoc (mlc))) + { + llhint (message ("Previous modifies clause: ", + sRefSet_unparse (uentry_getMods (ue)))); + } + + ** + */ + + uentry_combineModifies (ue, modifiesClause_takeMods (mlc)); /*@i32@*/ + } + else + { + uentry_setModifies (ue, modifiesClause_takeMods (mlc)); + } + } + else if (functionClause_isState (el)) + { + stateClause sc = functionClause_takeState (el); + uentry_addStateClause (ue, sc); + } + else if (functionClause_isWarn (el)) + { + warnClause wc = functionClause_takeWarn (el); + uentry_addWarning (ue, wc); + } + else + { + DPRINTF (("Unhandled clause: %s", functionClause_unparse (el))); + } + } end_functionClauseList_elements ; + + stateClauseList_checkAll (ue); +} + /*@notnull@*/ uentry uentry_makeIdFunction (idDecl id) { + bool leaveFunc = FALSE; uentry ue = uentry_makeFunction (idDecl_observeId (id), idDecl_getCtype (id), typeId_invalid, globSet_undefined, - sRefSet_undefined, + sRefSet_undefined, warnClause_undefined, setLocation ()); - + + /* + ** This makes parameters names print out correctly. + ** (But we might be a local variable declaration for a function type...) + */ + + if (context_inFunctionLike ()) + { + DPRINTF (("Header: %s / %s", + uentry_unparse (context_getHeader ()), + idDecl_unparse (id))); + } + else + { + context_enterFunctionDeclaration (ue); + leaveFunc = TRUE; + } + uentry_reflectQualifiers (ue, idDecl_getQuals (id)); reflectImplicitFunctionQualifiers (ue, FALSE); + uentry_reflectClauses (ue, idDecl_getClauses (id)); + if (!uentry_isStatic (ue) && cstring_equalLit (ue->uname, "main")) { @@ -991,7 +1146,7 @@ uentry_makeFunctionAux (cstring n, ctype t, llassert (ctype_isFunction (typ)); - retval = ctype_returnValue (typ); + retval = ctype_getReturnType (typ); if (!ctype_isInt (retval)) { @@ -1015,7 +1170,7 @@ uentry_makeFunctionAux (cstring n, ctype t, { voptgenerror (FLG_MAINTYPE, - message ("Function main declared with %d arg%p, " + message ("Function main declared with %d arg%&, " "should have 2 (int argc, char *argv[])", uentryList_size (args)), uentry_whereLast (ue)); @@ -1057,6 +1212,11 @@ uentry_makeFunctionAux (cstring n, ctype t, } } + if (leaveFunc) + { + context_exitFunctionDeclaration (); + } + return ue; } @@ -1071,6 +1231,7 @@ static void uentry_implicitParamAnnots (/*@notnull@*/ uentry e) if (exkind_isKnown (ek)) { + DPRINTF (("imp dep: %s", uentry_unparseFull (e))); sRef_setAliasKind (e->sref, AK_IMPDEPENDENT, fileloc_undefined); sRef_setOrigAliasKind (e->sref, AK_IMPDEPENDENT); } @@ -1083,20 +1244,27 @@ static void uentry_implicitParamAnnots (/*@notnull@*/ uentry e) } static /*@only@*/ /*@notnull@*/ uentry -uentry_makeVariableParamAux (cstring n, ctype t, sRef s, sstate defstate) +uentry_makeVariableParamAux (cstring n, ctype t, /*@dependent@*/ sRef s, sstate defstate) /*@i32 exposed*/ { cstring pname = makeParam (n); - uentry e = uentry_makeVariableAux (pname, t, setLocation (), s, FALSE, VKPARAM); + uentry e; + + DPRINTF (("Sref: %s", sRef_unparseFull (s))); + e = uentry_makeVariableAux (pname, t, setLocation (), s, FALSE, VKPARAM); cstring_free (pname); + DPRINTF (("Param: %s", uentry_unparseFull (e))); uentry_implicitParamAnnots (e); + DPRINTF (("Param: %s", uentry_unparseFull (e))); if (!sRef_isAllocated (e->sref) && !sRef_isPartial (e->sref)) { + DPRINTF (("Param: %s", uentry_unparseFull (e))); sRef_setDefState (e->sref, defstate, uentry_whereDeclared (e)); e->info->var->defstate = defstate; } + DPRINTF (("Param: %s", uentry_unparseFull (e))); return (e); } @@ -1181,7 +1349,7 @@ void checkGlobalsModifies (/*@notnull@*/ uentry ue, sRefSet sr) { sRef base = sRef_getRootBase (el); - if (sRef_isGlobal (base) || sRef_isInternalState (base) + if (sRef_isFileOrGlobalScope (base) || sRef_isInternalState (base) || (sRef_isKindSpecial (base) && !sRef_isNothing (base))) { if (!globSet_member (ue->info->fcn->globs, base)) @@ -1214,7 +1382,7 @@ void checkGlobalsModifies (/*@notnull@*/ uentry ue, sRefSet sr) } uentry -uentry_makeVariableSrefParam (cstring n, ctype t, sRef s) +uentry_makeVariableSrefParam (cstring n, ctype t, /*@exposed@*/ sRef s) { return (uentry_makeVariableParamAux (n, t, s, SS_UNKNOWN)); } @@ -1244,13 +1412,27 @@ uentry_fixupSref (uentry ue) } } -void uentry_setSpecialClauses (uentry ue, specialClauses clauses) +static void uentry_addStateClause (uentry ue, stateClause sc) +{ + /* + ** Okay to allow multiple clauses of the same kind. + */ /*@i834 is this true?@*/ + + ue->info->fcn->specclauses = + stateClauseList_add (ue->info->fcn->specclauses, sc); + + /* Will call checkAll to check later... */ +} + +void uentry_setStateClauseList (uentry ue, stateClauseList clauses) { llassert (uentry_isFunction (ue)); - llassert (!specialClauses_isDefined (ue->info->fcn->specclauses)); + llassert (!stateClauseList_isDefined (ue->info->fcn->specclauses)); + DPRINTF (("checked clauses: %s", stateClauseList_unparse (clauses))); ue->info->fcn->specclauses = clauses; - specialClauses_checkAll (ue); + stateClauseList_checkAll (ue); + DPRINTF (("checked clauses: %s", uentry_unparseFull (ue))); } /* @@ -1267,22 +1449,30 @@ void uentry_setSpecialClauses (uentry ue, specialClauses clauses) ** If it doesn't have modifies, set them to sr. */ -void -uentry_setModifies (uentry ue, /*@owned@*/ sRefSet sr) +static bool +uentry_checkModifiesContext (void) { if (sRef_modInFunction ()) { llparseerror - (message ("Modifies list not in function context. " - "A modifies list can only appear following the parameter list " - "in a function declaration or header.")); - - /*@-mustfree@*/ return; /*@=mustfree@*/ + (message + ("Modifies list not in function context. " + "A modifies list can only appear following the parameter list " + "in a function declaration or header.")); + + return FALSE; } + + return TRUE; +} - if (sRefSet_hasStatic (sr)) +void +uentry_setModifies (uentry ue, /*@owned@*/ sRefSet sr) +{ + if (!uentry_checkModifiesContext ()) { - context_recordFileModifies (sr); + sRefSet_free (sr); + return; } if (uentry_isValid (ue)) @@ -1312,6 +1502,11 @@ uentry_setModifies (uentry ue, /*@owned@*/ sRefSet sr) { ue->info->fcn->hasGlobs = TRUE; } + + if (sRefSet_hasStatic (ue->info->fcn->mods)) + { + context_recordFileModifies (ue->info->fcn->mods); + } } else { @@ -1319,6 +1514,57 @@ uentry_setModifies (uentry ue, /*@owned@*/ sRefSet sr) } } +static void +uentry_combineModifies (uentry ue, /*@owned@*/ sRefSet sr) +{ + /* + ** Function already has one modifies clause (possibly from + ** a specification). + */ + + if (!uentry_checkModifiesContext ()) + { + BADBRANCH; + } + + llassert (uentry_isValid (ue)); + + if (uentry_isIter (ue)) + { + ue->info->iter->mods = sRefSet_unionFree (ue->info->iter->mods, sr); + } + else + { + llassertfatal (uentry_isFunction (ue)); + llassert (ue->info->fcn->hasMods); + + checkGlobalsModifies (ue, sr); + ue->info->fcn->mods = sRefSet_unionFree (ue->info->fcn->mods, sr); + + if (context_getFlag (FLG_MODIFIESIMPNOGLOBALS)) + { + ue->info->fcn->hasGlobs = TRUE; + } + } + + if (sRefSet_hasStatic (ue->info->fcn->mods)) + { + context_recordFileModifies (ue->info->fcn->mods); + } +} + +bool uentry_hasWarning (uentry ue) +{ + return (uentry_isValid (ue) + && warnClause_isDefined (ue->warn)); +} + +void uentry_addWarning (uentry ue, /*@only@*/ warnClause warn) +{ + llassert (warnClause_isUndefined (ue->warn)); + ue->warn = warn; +} + void uentry_setPreconditions (uentry ue, /*@only@*/ constraintList preconditions) { @@ -1343,7 +1589,7 @@ uentry_setPreconditions (uentry ue, /*@only@*/ constraintList preconditions) llassertfatal (uentry_isFunction (ue)); // llassert (sRefSet_isUndefined (ue->info->fcn->mods)); - if ((ue->info->fcn->preconditions) != NULL ) + if (constraintList_isDefined(ue->info->fcn->preconditions) ) { constraintList_free(ue->info->fcn->preconditions); ue->info->fcn->preconditions = preconditions; @@ -1387,7 +1633,7 @@ uentry_setPostconditions (uentry ue, /*@only@*/ constraintList postconditions) llassertfatal (uentry_isFunction (ue)); // llassert (sRefSet_isUndefined (ue->info->fcn->mods)); - if ((ue->info->fcn->postconditions ) == NULL) + if (constraintList_isUndefined(ue->info->fcn->postconditions) ) ue->info->fcn->postconditions = postconditions; else { @@ -1566,8 +1812,8 @@ checkGlobalsConformance (/*@notnull@*/ uentry old, } } - unew->info->fcn->globs = globSet_copy (unew->info->fcn->globs, - old->info->fcn->globs); + unew->info->fcn->globs = globSet_copyInto (unew->info->fcn->globs, + old->info->fcn->globs); } } @@ -1728,6 +1974,8 @@ static void if (!ctype_isRealPointer (ct) && !ctype_isRealAbstract (ct)) { + DPRINTF (("Check mutable: %s", uentry_unparseFull (ue))); + voptgenerror (FLG_MUTREP, message ("Mutable abstract type %q declared without pointer " "indirection: %t (violates assignment semantics)", @@ -1814,12 +2062,13 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (!uentry_isRefCounted (ue)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Reference counting qualifier %s used on non-reference " "counted storage: %q", qual_unparse (qel), - uentry_unparse (ue))); + uentry_unparse (ue)), + uentry_whereLast (ue)); } else { @@ -1846,13 +2095,14 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (uentry_isValid (refs)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Reference counted structure type %s has " "multiple refs fields: %q and %q", ctype_unparse (ct), uentry_getName (refs), - uentry_getName (field))); + uentry_getName (field)), + uentry_whereLast (field)); } refs = field; @@ -1873,11 +2123,12 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) } else if (!ctype_isInt (uentry_getType (refs))) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Reference counted structure type %s refs field has " "type %s (should be int)", ctype_unparse (ct), - ctype_unparse (uentry_getType (refs)))); + ctype_unparse (uentry_getType (refs))), + uentry_whereLast (refs)); } else { @@ -1896,11 +2147,12 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) } else { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Non-pointer to structure type %s declared with " "refcounted qualifier", - ctype_unparse (ct))); + ctype_unparse (ct)), + uentry_whereLast (ue)); } } } @@ -1912,10 +2164,11 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) } else { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Refs qualifier used on non-structure field: %q", - uentry_unparse (ue))); + uentry_unparse (ue)), + uentry_whereLast (ue)); } } else if (qual_isAliasQual (qel)) @@ -1934,16 +2187,18 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) if (uentry_isEitherConstant (ue)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Alias qualifier %s used on constant: %q", - alkind_unparse (ak), uentry_unparse (ue))); + alkind_unparse (ak), uentry_unparse (ue)), + uentry_whereLast (ue)); + okay = FALSE; } if (ctype_isFunction (ut)) { - ut = ctype_returnValue (ut); + ut = ctype_getReturnType (ut); } if (!(ctype_isVisiblySharable (ut) @@ -1952,10 +2207,11 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (!qual_isImplied (qel)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Alias qualifier %s used on unsharable storage type %t: %q", - alkind_unparse (ak), ut, uentry_getName (ue))); + alkind_unparse (ak), ut, uentry_getName (ue)), + uentry_whereLast (ue)); } okay = FALSE; @@ -1970,12 +2226,13 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (!qual_isImplied (qel)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Alias qualifier %s used on reference counted storage: %q", alkind_unparse (ak), - uentry_unparse (ue))); + uentry_unparse (ue)), + uentry_whereLast (ue)); } okay = FALSE; @@ -1985,10 +2242,11 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (qual_isRefQual (qel)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Qualifier %s used on non-reference counted storage: %q", - alkind_unparse (ak), uentry_unparse (ue))); + alkind_unparse (ak), uentry_unparse (ue)), + uentry_whereLast (ue)); okay = FALSE; } @@ -2027,10 +2285,11 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (!uentry_isDatatype (ue)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Qualifier %s used with non-datatype", - qual_unparse (qel))); + qual_unparse (qel)), + uentry_whereLast (ue)); } else { @@ -2041,8 +2300,10 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (!uentry_isDatatype (ue)) { - llerror (FLG_SYNTAX, - message ("Qualifier %s used with non-datatype", qual_unparse (qel))); + voptgenerror + (FLG_ANNOTATIONERROR, + message ("Qualifier %s used with non-datatype", qual_unparse (qel)), + uentry_whereLast (ue)); } else { @@ -2058,8 +2319,10 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (!uentry_isDatatype (ue)) { - llerror (FLG_SYNTAX, message ("Qualifier %s used with non-datatype", - qual_unparse (qel))); + voptgenerror (FLG_ANNOTATIONERROR, + message ("Qualifier %s used with non-datatype", + qual_unparse (qel)), + uentry_whereLast (ue)); } else { @@ -2076,7 +2339,7 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) if (uentry_isFunction (ue)) { ctype typ = uentry_getType (ue); - ctype rtype = ctype_returnValue (uentry_getType (ue)); + ctype rtype = ctype_getReturnType (uentry_getType (ue)); if (ctype_isRealBool (rtype)) { @@ -2088,27 +2351,30 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) } else { - llerror (FLG_SYNTAX, - message ("Qualifier %s used with function having %d " - "arguments (should have 1)", - qual_unparse (qel), - uentryList_size (pl))); + voptgenerror (FLG_ANNOTATIONERROR, + message ("Qualifier %s used with function having %d " + "arguments (should have 1)", + qual_unparse (qel), + uentryList_size (pl)), + uentry_whereLast (ue)); } } else { - llerror (FLG_SYNTAX, - message ("Qualifier %s used with function returning %s " - "(should return bool)", - qual_unparse (qel), - ctype_unparse (rtype))); + voptgenerror (FLG_ANNOTATIONERROR, + message ("Qualifier %s used with function returning %s " + "(should return bool)", + qual_unparse (qel), + ctype_unparse (rtype)), + uentry_whereLast (ue)); } } else { - llerror (FLG_SYNTAX, - message ("Qualifier %s used with non-function", - qual_unparse (qel))); + voptgenerror (FLG_ANNOTATIONERROR, + message ("Qualifier %s used with non-function", + qual_unparse (qel)), + uentry_whereLast (ue)); } } else if (qual_isExitQual (qel)) @@ -2119,11 +2385,12 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) { if (exitkind_isKnown (ue->info->fcn->exitCode)) { - llerror (FLG_SYNTAX, - message ("Multiple exit qualifiers used on function %q: %s, %s", - uentry_getName (ue), - exitkind_unparse (ue->info->fcn->exitCode), - exitkind_unparse (exk))); + voptgenerror (FLG_ANNOTATIONERROR, + message ("Multiple exit qualifiers used on function %q: %s, %s", + uentry_getName (ue), + exitkind_unparse (ue->info->fcn->exitCode), + exitkind_unparse (exk)), + uentry_whereLast (ue)); } ue->info->fcn->exitCode = exk; @@ -2137,10 +2404,38 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) } else { - llerror (FLG_SYNTAX, - message ("Exit qualifier %s used with non-function (type %s)", - qual_unparse (qel), - ctype_unparse (uentry_getType (ue)))); + voptgenerror (FLG_ANNOTATIONERROR, + message ("Exit qualifier %s used with non-function (type %s)", + qual_unparse (qel), + ctype_unparse (uentry_getType (ue))), + uentry_whereLast (ue)); + } + } + } + else if (qual_isMetaState (qel)) + { + annotationInfo ainfo = qual_getAnnotationInfo (qel); + + if (annotationInfo_matchesContext (ainfo, ue)) + { + DPRINTF (("Reflecting %s on %s", + annotationInfo_unparse (ainfo), + uentry_unparseFull (ue))); + + sRef_reflectAnnotation (ue->sref, ainfo, g_currentloc); + DPRINTF (("==> %s", sRef_unparseFull (ue->sref))); + DPRINTF (("==> %s", uentry_unparseFull (ue))); + } + else + { + if (optgenerror + (FLG_ANNOTATIONERROR, + message ("Meta state anntation %s used in inconsistent context: %q", + qual_unparse (qel), + uentry_unparse (ue)), + uentry_whereLast (ue))) + { + /*@i! annotationInfo_showContextError (ainfo, ue); */ } } } @@ -2152,7 +2447,7 @@ uentry_reflectOtherQualifier (/*@notnull@*/ uentry ue, qual qel) } else { - llbug (message ("unhandled qualifier: %s", qual_unparse (qel))); + llbug (message ("Unhandled qualifier: %s", qual_unparse (qel))); } } } @@ -2187,11 +2482,12 @@ uentry_reflectQualifiers (uentry ue, qualList q) if (vk == VKYIELDPARAM) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Qualifier sef cannot be used with %s: %q", cstring_makeLiteralTemp (vk == VKYIELDPARAM ? "yield" : "returned"), - uentry_unparse (ue))); + uentry_unparse (ue)), + uentry_whereLast (ue)); } else if (vk == VKRETPARAM) { @@ -2204,10 +2500,11 @@ uentry_reflectQualifiers (uentry ue, qualList q) } else { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Qualifier sef is meaningful only on parameters: %q", - uentry_unparse (ue))); + uentry_unparse (ue)), + uentry_whereLast (ue)); } } else if (qual_isExtern (qel)) @@ -2216,6 +2513,9 @@ uentry_reflectQualifiers (uentry ue, qualList q) } else if (qual_isGlobalQual (qel)) /* undef, killed */ { + DPRINTF (("Reflecting qual: %s / %s", + qual_unparse (qel), uentry_unparse (ue))); + if (uentry_isVariable (ue)) { sstate oldstate = ue->info->var->defstate; @@ -2237,21 +2537,21 @@ uentry_reflectQualifiers (uentry ue, qualList q) } else { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Qualifier %s used on non-variable: %q", - qual_unparse (qel), uentry_unparse (ue))); + qual_unparse (qel), uentry_unparse (ue)), + uentry_whereLast (ue)); } + + DPRINTF (("After: %s", uentry_unparseFull (ue))); } /* start modifications */ - else if( qual_isBufQualifier(qel) ) { ctype ct = ctype_realType(uentry_getType(ue)); - if( ctype_isArray(ct) || ctype_isPointer(ct) ) { if( uentry_hasBufStateInfo(ue) ) { - if( qual_isNullTerminated(qel) ) { /* handle Nullterm */ if (uentry_isAnyParam(ue) || uentry_isReturned (ue)) { @@ -2300,6 +2600,7 @@ uentry_reflectQualifiers (uentry ue, qualList q) message ("Qualifier %s used on non-pointer: %q", qual_unparse (qel), uentry_unparse (ue))); } + DPRINTF (("After: %s", uentry_unparseFull (ue))); }/* end else if */ else if (qual_isAllocQual (qel)) /* out, partial, reldef, special, etc. */ { @@ -2308,7 +2609,7 @@ uentry_reflectQualifiers (uentry ue, qualList q) if (ctype_isFunction (realType)) { - realType = ctype_realType (ctype_returnValue (realType)); + realType = ctype_realType (ctype_getReturnType (realType)); } if (qual_isRelDef (qel)) @@ -2322,10 +2623,11 @@ uentry_reflectQualifiers (uentry ue, qualList q) && !ctype_isUnknown (realType) && !ctype_isAbstract (ue->utype)) { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Qualifier %s used on non-pointer or struct: %q", - qual_unparse (qel), uentry_unparse (ue))); + qual_unparse (qel), uentry_unparse (ue)), + uentry_whereLast (ue)); } } @@ -2345,10 +2647,11 @@ uentry_reflectQualifiers (uentry ue, qualList q) } else { - llerror - (FLG_SYNTAX, + voptgenerror + (FLG_ANNOTATIONERROR, message ("Qualifier %s used on non-iterator parameter: %q", - qual_unparse (qel), uentry_unparse (ue))); + qual_unparse (qel), uentry_unparse (ue)), + uentry_whereLast (ue)); } } else if (qual_isExQual (qel)) @@ -2356,9 +2659,12 @@ uentry_reflectQualifiers (uentry ue, qualList q) exkind ek = exkind_fromQual (qel); ctype ut = uentry_getType (ue); + DPRINTF (("Reflect ex qual: %s / %s", + uentry_unparse (ue), exkind_unparse (ek))); + if (ctype_isFunction (ut)) { - ut = ctype_returnValue (ut); + ut = ctype_getReturnType (ut); } if (!(ctype_isVisiblySharable (ut)) @@ -2367,10 +2673,19 @@ uentry_reflectQualifiers (uentry ue, qualList q) { if (!qual_isImplied (qel)) { - llerror - (FLG_SYNTAX, - message ("Qualifier %s used on unsharable storage type %t: %q", - exkind_unparse (ek), ut, uentry_getName (ue))); + if (ctype_isImmutableAbstract (ut)) { + voptgenerror + (FLG_REDUNDANTSHAREQUAL, + message ("Qualifier %s used on unsharable storage type %t: %q", + exkind_unparse (ek), ut, uentry_getName (ue)), + uentry_whereLast (ue)); + } else { + voptgenerror + (FLG_MISPLACEDSHAREQUAL, + message ("Qualifier %s used on unsharable storage type %t: %q", + exkind_unparse (ek), ut, uentry_getName (ue)), + uentry_whereLast (ue)); + } } } else @@ -2378,11 +2693,13 @@ uentry_reflectQualifiers (uentry ue, qualList q) alkind ak = sRef_getAliasKind (ue->sref); sRef_setExKind (ue->sref, ek, uentry_whereDeclared (ue)); + DPRINTF (("Set exkind: %s", sRef_unparseFull (ue->sref))); if (alkind_isUnknown (ak) || alkind_isImplicit (ak) || alkind_isStatic (ak)) { if (!alkind_isTemp (ak)) { + DPRINTF (("imp dep: %s", uentry_unparseFull (ue))); uentry_setAliasKind (ue, AK_IMPDEPENDENT); } } @@ -2526,14 +2843,28 @@ bool uentry_isNonLocal (uentry ue) { return (uentry_isValid (ue) && uentry_isVariable (ue) - && (sRef_isGlobal (ue->sref) || uentry_isStatic (ue))); + && (sRef_isFileOrGlobalScope (ue->sref) || uentry_isStatic (ue))); +} + +bool +uentry_isGlobalVariable (uentry ue) +{ + return (uentry_isValid (ue) && uentry_isVariable (ue) + && sRef_isFileOrGlobalScope (ue->sref)); } bool -uentry_isGlobal (uentry ue) +uentry_isVisibleExternally (uentry ue) { - return (uentry_isValid (ue) && uentry_isVariable (ue) && - sRef_isGlobal (ue->sref)); + return (uentry_isValid (ue) + && ((uentry_isVariable (ue) && sRef_isRealGlobal (ue->sref)) + || (!uentry_isStatic (ue) + && (uentry_isFunction (ue) + || uentry_isIter (ue) + || uentry_isEndIter (ue) + || uentry_isConstant (ue) + || uentry_isDatatype (ue) + || uentry_isAnyTag (ue))))); } bool @@ -2712,6 +3043,7 @@ uentry_isSpecialFunction (uentry ue) } } + DPRINTF (("Param: %s", uentry_unparseFull (ue))); return ue; } @@ -2762,6 +3094,8 @@ uentry uentry_makeConstantAux (cstring n, ctype t, e->utype = t; e->storageclass = SCNONE; + e->warn = warnClause_undefined; /*@i32 warnings for constants? */ + e->sref = sRef_makeConst (t); e->lset = FALSE; @@ -2905,6 +3239,8 @@ static /*@only@*/ /*@notnull@*/ e->storageclass = SCNONE; + e->warn = warnClause_undefined; /*@i32 warnings for variable @*/ + e->sref = s; e->used = FALSE; @@ -2920,18 +3256,22 @@ static /*@only@*/ /*@notnull@*/ e->info->var->checked = CH_UNKNOWN; + DPRINTF (("Here we are: %s", sRef_unparseFull (e->sref))); uentry_setSpecDef (e, f); + DPRINTF (("Here we are: %s", sRef_unparseFull (e->sref))); if (ctype_isFunction (rt)) { - rt = ctype_returnValue (rt); + rt = ctype_getReturnType (rt); } if (ctype_isUA (rt)) { + DPRINTF (("Here we are: %s", sRef_unparseFull (e->sref))); sRef_setStateFromType (e->sref, rt); } + DPRINTF (("Here we are: %s", sRef_unparseFull (e->sref))); e->info->var->defstate = sRef_getDefState (e->sref); e->info->var->nullstate = sRef_getNullState (e->sref); @@ -2943,7 +3283,12 @@ static /*@only@*/ /*@notnull@*/ if( ctype_isArray (t) || ctype_isPointer(t)) { /*@i222@*/e->info->var->bufinfo = dmalloc( sizeof(*e->info->var->bufinfo) ); e->info->var->bufinfo->bufstate = BB_NOTNULLTERMINATED; + /*@access sRef@*/ /*i@222*/ + /* It probably isn't necessary to violate the abstraction here + I'll fix this later + */ s->bufinfo.bufstate = BB_NOTNULLTERMINATED; + /*@noaccess sRef@*/ } else { e->info->var->bufinfo = NULL; }/* end else */ @@ -3003,7 +3348,7 @@ void uentry_makeVarFunction (uentry ue) ue->ukind = KFCN; ue->info->fcn = (ufinfo) dmalloc (sizeof (*ue->info->fcn)); ue->info->fcn->exitCode = XK_UNKNOWN; - ue->info->fcn->nullPred = QU_UNKNOWN; + ue->info->fcn->nullPred = qual_createUnknown (); ue->info->fcn->specialCode = SPC_NONE; ue->info->fcn->access = typeIdSet_undefined; ue->info->fcn->hasGlobs = FALSE; @@ -3024,7 +3369,7 @@ void uentry_makeVarFunction (uentry ue) if (ctype_isFunction (ue->utype)) { - ue->sref = sRef_makeType (ctype_returnValue (ue->utype)); + ue->sref = sRef_makeType (ctype_getReturnType (ue->utype)); } else { @@ -3041,6 +3386,7 @@ void uentry_makeVarFunction (uentry ue) { if (exkind_isKnown (ek)) { + DPRINTF (("imp dep: %s", uentry_unparseFull (ue))); ak = AK_IMPDEPENDENT; } else @@ -3049,7 +3395,7 @@ void uentry_makeVarFunction (uentry ue) { if (ctype_isFunction (ue->utype) && ctype_isVisiblySharable - (ctype_realType (ctype_returnValue (ue->utype)))) + (ctype_realType (ctype_getReturnType (ue->utype)))) { if (uentryList_hasReturned (uentry_getParams (ue))) { @@ -3057,8 +3403,15 @@ void uentry_makeVarFunction (uentry ue) } else { - ak = AK_IMPONLY; - } + if (ctype_isImmutableAbstract (ctype_getReturnType (ue->utype))) + { + ; + } + else + { + ak = AK_IMPONLY; + } + } } } } @@ -3108,14 +3461,17 @@ uentry_setGlobals (uentry ue, /*@owned@*/ globSet globs) && globSet_isUndefined (ue->info->fcn->globs)); ue->info->fcn->hasGlobs = TRUE; + globSet_markImmutable (globs); /*@-mustfree@*/ ue->info->fcn->globs = globs; /*@=mustfree@*/ } + /*@i23 ??? if (globSet_hasStatic (globs)) { context_recordFileGlobals (globs); } + */ if (context_getFlag (FLG_GLOBALSIMPMODIFIESNOTHING)) { @@ -3151,12 +3507,15 @@ void uentry_addAccessType (uentry ue, typeId tid) uentry_makeFunction (cstring n, ctype t, typeId access, /*@only@*/ globSet globs, /*@only@*/ sRefSet mods, + /*@only@*/ warnClause warn, fileloc f) { + llassert (warnClause_isUndefined (warn)); /*@i325 remove parameter! */ return (uentry_makeFunctionAux (n, t, ((typeId_isInvalid (access)) ? typeIdSet_emptySet () : typeIdSet_single (access)), - globs, mods, f, + globs, mods, warn, + f, FALSE, FALSE)); } @@ -3167,7 +3526,8 @@ void uentry_addAccessType (uentry ue, typeId tid) globSet globs, sRefSet mods, fileloc f) { - return (uentry_makeFunctionAux (n, t, access, globs, mods, f, TRUE, FALSE)); + return (uentry_makeFunctionAux (n, t, access, globs, mods, warnClause_undefined, + f, TRUE, FALSE)); } @@ -3179,8 +3539,8 @@ void uentry_addAccessType (uentry ue, typeId tid) fileloc f) { uentry ue = uentry_makeFunctionAux (n, t, access, - globs, mods, f, - FALSE, FALSE); + globs, mods, warnClause_undefined, + f, FALSE, FALSE); uentry_setHasGlobs (ue); uentry_setHasMods (ue); @@ -3205,6 +3565,7 @@ uentry uentry_makeExpandedMacro (cstring s, fileloc f) uentry ue = uentry_makeFunctionAux (n, ctype_unknown, typeIdSet_singleOpt (access), globSet_undefined, sRefSet_undefined, + warnClause_undefined, fileloc_undefined, FALSE, TRUE); @@ -3220,7 +3581,7 @@ bool uentry_isForward (uentry e) return (ctype_isUnknown (ct) || (ctype_isFunction (ct) - && ctype_isUnknown (ctype_returnValue (ct)))); + && ctype_isUnknown (ctype_getReturnType (ct)))); } return FALSE; @@ -3231,9 +3592,8 @@ bool uentry_isForward (uentry e) uentry_makeTypeListFunction (cstring n, typeIdSet access, fileloc f) { return (uentry_makeFunctionAux (n, ctype_unknown, access, - globSet_new (), - sRefSet_new (), f, - FALSE, TRUE)); + globSet_undefined, sRefSet_undefined, warnClause_undefined, + f,FALSE, TRUE)); } /*@notnull@*/ uentry @@ -3241,8 +3601,9 @@ uentry_makeUnspecFunction (cstring n, ctype t, typeIdSet access, fileloc f) { - uentry ue = uentry_makeFunctionAux (n, t, access, globSet_new (), - sRefSet_new (), f, FALSE, TRUE); + uentry ue = uentry_makeFunctionAux (n, t, access, globSet_undefined, + sRefSet_undefined, warnClause_undefined, + f, FALSE, TRUE); reflectImplicitFunctionQualifiers (ue, TRUE); return ue; @@ -3256,7 +3617,7 @@ uentry_makeUnspecFunction (cstring n, ctype t, /* is exported for use by usymtab_interface */ /*@notnull@*/ uentry - uentry_makeDatatypeAux (cstring n, ctype t, ynm mut, ynm abs, + uentry_makeDatatypeAux (cstring n, ctype t, ynm mut, ynm abstract, fileloc f, bool priv) { uentry e = uentry_alloc (); @@ -3278,6 +3639,7 @@ uentry_makeUnspecFunction (cstring n, ctype t, uentry_setSpecDef (e, f); + e->warn = warnClause_undefined; /*@i634@*/ e->uses = filelocList_new (); e->isPrivate = priv; e->hasNameError = FALSE; @@ -3287,7 +3649,7 @@ uentry_makeUnspecFunction (cstring n, ctype t, e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->datatype = (udinfo) dmalloc (sizeof (*e->info->datatype)); - e->info->datatype->abs = abs; + e->info->datatype->abs = abstract; e->info->datatype->mut = mut; e->info->datatype->type = ctype_undefined; @@ -3296,7 +3658,7 @@ uentry_makeUnspecFunction (cstring n, ctype t, uentry_setDefined (e, f); } - if (ynm_isOn (abs) && !(uentry_isCodeDefined (e))) + if (ynm_isOn (abstract) && !(uentry_isCodeDefined (e))) { sRef_setNullState (e->sref, NS_ABSNULL, uentry_whereDeclared (e)); } @@ -3305,16 +3667,15 @@ uentry_makeUnspecFunction (cstring n, ctype t, } /*@notnull@*/ uentry - uentry_makeDatatype (cstring n, ctype t, ynm mut, ynm abs, - fileloc f) + uentry_makeDatatype (cstring n, ctype t, ynm mut, ynm abstract, fileloc f) { - return (uentry_makeDatatypeAux (n, t, mut, abs, f, FALSE)); + return (uentry_makeDatatypeAux (n, t, mut, abstract, f, FALSE)); } -/*@notnull@*/ uentry uentry_makeBoolDatatype (ynm abs) +/*@notnull@*/ uentry uentry_makeBoolDatatype (ynm abstract) { uentry ret = uentry_makeDatatypeAux (context_getBoolName (), - ctype_bool, NO, abs, + ctype_bool, NO, abstract, fileloc_getBuiltin (), FALSE); @@ -3342,6 +3703,7 @@ static /*@only@*/ /*@notnull@*/ uentry uentry_setSpecDef (e, f); + e->warn = warnClause_undefined; /*@i452@*/ e->uses = filelocList_new (); e->isPrivate = FALSE; e->hasNameError = FALSE; @@ -3387,6 +3749,7 @@ uentry_makeEndIterAux (cstring n, typeIdSet access, /*@only@*/ fileloc f) e->info->enditer->access = access; + e->warn = warnClause_undefined; /*@i452@*/ return (e); } @@ -3433,6 +3796,7 @@ static /*@only@*/ /*@notnull@*/ uentry e->info->datatype->abs = NO; e->info->datatype->mut = (kind == KENUMTAG) ? NO : MAYBE; e->info->datatype->type = t; + e->warn = warnClause_undefined; /*@i452@*/ if (uentry_isDeclared (e)) { @@ -3660,7 +4024,6 @@ uentry_compare (uentry u1, uentry u2) INTCOMPARERETURN (u1->ukind, u2->ukind); COMPARERETURN (ctype_compare (u1->utype, u2->utype)); COMPARERETURN (bool_compare (uentry_isPriv (u1), uentry_isPriv (u2))); - COMPARERETURN (sRef_compare (u1->sref, u2->sref)); switch (u1->ukind) @@ -3688,24 +4051,25 @@ uentry_compare (uentry u1, uentry u2) return (typeIdSet_compare (uentry_accessType (u1), uentry_accessType (u2))); case KFCN: - COMPARERETURN (typeIdSet_compare (uentry_accessType (u1), - uentry_accessType (u2))); - COMPARERETURN (globSet_compare (uentry_getGlobs (u1), - uentry_getGlobs (u2))); - COMPARERETURN (uentryList_compareParams (uentry_getParams (u1), - uentry_getParams (u2))); - COMPARERETURN (generic_compare (u1->info->fcn->specialCode, - u2->info->fcn->specialCode)); - COMPARERETURN (generic_compare (u1->info->fcn->nullPred, - u2->info->fcn->nullPred)); - - return (sRefSet_compare (uentry_getMods (u1), uentry_getMods (u2))); - case KVAR: - COMPARERETURN (generic_compare (u1->info->var->kind, u2->info->var->kind)); - COMPARERETURN (generic_compare (sRef_getOrigAliasKind (u1->sref), - sRef_getOrigAliasKind (u2->sref))); - COMPARERETURN (generic_compare (sRef_getOrigExKind (u1->sref), - sRef_getOrigExKind (u2->sref))); + /* + ** Functions are never equivalent + */ + + if ((int) u1 < (int) u2) + { + return -1; + } + else + { + return 1; + } + case KVAR: + + COMPARERETURN (generic_compare (u1->info->var->kind, u2->info->var->kind)); + COMPARERETURN (generic_compare (sRef_getOrigAliasKind (u1->sref), + sRef_getOrigAliasKind (u2->sref))); + COMPARERETURN (generic_compare (sRef_getOrigExKind (u1->sref), + sRef_getOrigExKind (u2->sref))); COMPARERETURN (generic_compare (u1->info->var->checked, u2->info->var->checked)); COMPARERETURN (generic_compare (u1->info->var->defstate, @@ -3734,13 +4098,13 @@ uentry_compare (uentry u1, uentry u2) static void advanceField (char **s) { - checkChar (s, '@'); + reader_checkChar (s, '@'); } static void advanceName (char **s) { - checkChar (s, '#'); + reader_checkChar (s, '#'); } static vkind @@ -3788,6 +4152,8 @@ static uentry e->used = FALSE; e->lset = FALSE; + e->warn = warnClause_undefined; /*@i452@*/ + e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->uconst = (ucinfo) dmalloc (sizeof (*e->info->uconst)); e->info->uconst->val = m; @@ -3834,6 +4200,7 @@ static /*@only@*/ uentry e->lset = FALSE; e->uses = filelocList_new (); + e->warn = warnClause_undefined; /*@i452@*/ e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->var = (uvinfo) dmalloc (sizeof (*e->info->var)); @@ -3857,7 +4224,7 @@ static /*@only@*/ uentry } static /*@only@*/ uentry -uentry_makeDatatypeBase (/*@only@*/ cstring name, ctype ct, ynm abs, +uentry_makeDatatypeBase (/*@only@*/ cstring name, ctype ct, ynm abstract, ynm mut, ctype rtype, alkind ak, exkind exp, sstate defstate, nstate isnull, /*@only@*/ fileloc loc) @@ -3870,6 +4237,7 @@ uentry_makeDatatypeBase (/*@only@*/ cstring name, ctype ct, ynm abs, e->utype = ct; e->storageclass = SCNONE; e->sref = sRef_makeUnknown (); + DPRINTF (("Merge null 1: %s", sRef_unparseFull (e->sref))); /* ** This is only setting null state. (I think?) @@ -3894,11 +4262,12 @@ uentry_makeDatatypeBase (/*@only@*/ cstring name, ctype ct, ynm abs, sRef_setDefState (e->sref, defstate, loc); - if (ynm_isOn (abs) && ctype_isUnknown (ct) && isnull == NS_UNKNOWN) + if (ynm_isOn (abstract) && ctype_isUnknown (ct) && isnull == NS_UNKNOWN) { isnull = NS_ABSNULL; } + DPRINTF (("Merge null: %s", sRef_unparseFull (e->sref))); sRef_mergeNullState (e->sref, isnull); e->whereDefined = fileloc_copy (loc); /*< bogus! (but necessary for lexer) >*/ @@ -3917,17 +4286,21 @@ uentry_makeDatatypeBase (/*@only@*/ cstring name, ctype ct, ynm abs, e->isPrivate = FALSE; e->hasNameError = FALSE; + e->warn = warnClause_undefined; /*@i452@*/ + e->used = FALSE; e->lset = FALSE; e->uses = filelocList_new (); e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->datatype = (udinfo) dmalloc (sizeof (*e->info->datatype)); - e->info->datatype->abs = abs; + e->info->datatype->abs = abstract; e->info->datatype->mut = mut; e->info->datatype->type = rtype; - + + DPRINTF (("About to store: %s", sRef_unparseFull (e->sref))); sRef_storeState (e->sref); + DPRINTF (("After store: %s", sRef_unparseFull (e->sref))); return (e); } @@ -3958,14 +4331,20 @@ bool uentry_hasGlobs (uentry ue) return FALSE; } -bool uentry_hasSpecialClauses (uentry ue) +bool uentry_hasStateClauseList (uentry ue) { - return (uentry_isFunction (ue) && specialClauses_isDefined (ue->info->fcn->specclauses)); + return (uentry_isFunction (ue) && stateClauseList_isDefined (ue->info->fcn->specclauses)); } -specialClauses uentry_getSpecialClauses (uentry ue) +stateClauseList uentry_getStateClauseList (uentry ue) { - llassert (uentry_isFunction (ue)); + if (!uentry_isFunction (ue)) + { + llassert (uentry_isFunction (ue)); + return stateClauseList_undefined; + } + + DPRINTF (("Get state clause list: %s", uentry_unparse (ue))); return ue->info->fcn->specclauses; } @@ -3989,7 +4368,8 @@ static uentry exitkind exitCode, specCode sCode, qual nullPred, - /*@only@*/ specialClauses specclauses, + /*@only@*/ stateClauseList specclauses, + /*@only@*/ warnClause warnclause, /*@only@*/ fileloc loc) { uentry e = uentry_alloc (); @@ -4003,7 +4383,7 @@ static uentry if (ctype_isFunction (ct)) { - ret = ctype_returnValue (ct); + ret = ctype_getReturnType (ct); } else { @@ -4038,6 +4418,7 @@ static uentry e->used = FALSE; e->lset = FALSE; e->uses = filelocList_new (); + e->warn = warnclause; e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->fcn = (ufinfo) dmalloc (sizeof (*e->info->fcn)); @@ -4107,6 +4488,7 @@ static /*@only@*/ uentry e->used = FALSE; e->lset = FALSE; e->uses = filelocList_new (); + e->warn = warnClause_undefined; /*@i452@*/ e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->datatype = (udinfo) dmalloc (sizeof (*e->info->datatype)); @@ -4151,6 +4533,7 @@ static uentry e->used = FALSE; e->lset = FALSE; e->uses = filelocList_new (); + e->warn = warnClause_undefined; /*@i452@*/ e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->iter = (uiinfo) dmalloc (sizeof (*e->info->iter)); @@ -4194,6 +4577,7 @@ static uentry e->used = FALSE; e->lset = FALSE; e->uses = filelocList_new (); + e->warn = warnClause_undefined; /*@i452@*/ e->info = (uinfo) dmalloc (sizeof (*e->info)); e->info->enditer = (ueinfo) dmalloc (sizeof (*e->info->enditer)); @@ -4215,10 +4599,12 @@ uentry_undump (ekind kind, fileloc loc, char **s) { uentry ue; + DPRINTF (("Uentry undump: %s", *s)); + if (**s == '!') { - checkChar (s, '!'); - checkChar (s, '.'); + reader_checkChar (s, '!'); + reader_checkChar (s, '.'); ue = uentry_makeElipsisMarker (); } else @@ -4237,19 +4623,19 @@ uentry_undump (ekind kind, fileloc loc, char **s) exkind exp; chkind checked; - checkChar (s, '|'); + reader_checkChar (s, '|'); - if (optCheckChar (s, '@')) + if (reader_optCheckChar (s, '@')) { - tkind = vkind_fromInt (getInt (s)); - checkChar (s, '|'); + tkind = vkind_fromInt (reader_getInt (s)); + reader_checkChar (s, '|'); } else { tkind = VKPARAM; } - if (optCheckChar (s, '$')) + if (reader_optCheckChar (s, '$')) { defstate = SS_UNKNOWN; isnull = NS_UNKNOWN; @@ -4257,7 +4643,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) exp = XO_UNKNOWN; checked = CH_UNKNOWN; } - else if (optCheckChar (s, '&')) + else if (reader_optCheckChar (s, '&')) { defstate = SS_DEFINED; isnull = NS_UNKNOWN; @@ -4265,7 +4651,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) exp = XO_UNKNOWN; checked = CH_UNKNOWN; } - else if (optCheckChar (s, '^')) + else if (reader_optCheckChar (s, '^')) { defstate = SS_UNKNOWN; isnull = NS_UNKNOWN; @@ -4275,25 +4661,27 @@ uentry_undump (ekind kind, fileloc loc, char **s) } else { - defstate = sstate_fromInt (getInt (s)); - advanceField (s); isnull = nstate_fromInt (getInt (s)); - advanceField (s); aliased = alkind_fromInt (getInt (s)); + defstate = sstate_fromInt (reader_getInt (s)); + advanceField (s); isnull = nstate_fromInt (reader_getInt (s)); + advanceField (s); aliased = alkind_fromInt (reader_getInt (s)); - if (optCheckChar (s, '&')) + if (reader_optCheckChar (s, '&')) { exp = XO_UNKNOWN; checked = CH_UNKNOWN; } else { - advanceField (s); exp = exkind_fromInt (getInt (s)); - advanceField (s); checked = (chkind) (getInt (s)); + advanceField (s); exp = exkind_fromInt (reader_getInt (s)); + advanceField (s); checked = (chkind) (reader_getInt (s)); } } advanceName (s); - name = getStringWord (s); + name = reader_getStringWord (s); + llassert (!cstring_equal (name, GLOBAL_MARKER_NAME)); + ue = uentry_makeVariableBase (name, ct, tkind, defstate, isnull, aliased, exp, checked, fileloc_copy (loc)); @@ -4301,7 +4689,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) break; case KDATATYPE: { - ynm abs; + ynm abstract; ynm mut; ctype rtype; sstate defstate; @@ -4309,17 +4697,17 @@ uentry_undump (ekind kind, fileloc loc, char **s) alkind aliased; exkind exp; - advanceField (s); abs = ynm_fromCodeChar (loadChar (s)); - advanceField (s); mut = ynm_fromCodeChar (loadChar (s)); - advanceField (s); defstate = sstate_fromInt (getInt (s)); - advanceField (s); isnull = nstate_fromInt (getInt (s)); - advanceField (s); aliased = alkind_fromInt (getInt (s)); - advanceField (s); exp = exkind_fromInt (getInt (s)); + advanceField (s); abstract = ynm_fromCodeChar (reader_loadChar (s)); + advanceField (s); mut = ynm_fromCodeChar (reader_loadChar (s)); + advanceField (s); defstate = sstate_fromInt (reader_getInt (s)); + advanceField (s); isnull = nstate_fromInt (reader_getInt (s)); + advanceField (s); aliased = alkind_fromInt (reader_getInt (s)); + advanceField (s); exp = exkind_fromInt (reader_getInt (s)); advanceField (s); rtype = ctype_undump (s); advanceName (s); - name = getStringWord (s); - - ue = uentry_makeDatatypeBase (name, ct, abs, mut, rtype, + name = reader_getStringWord (s); + DPRINTF (("Datatype %s, Exp = %s", name, exkind_unparse (exp))); + ue = uentry_makeDatatypeBase (name, ct, abstract, mut, rtype, aliased, exp, defstate, isnull, fileloc_copy (loc)); } @@ -4338,33 +4726,34 @@ uentry_undump (ekind kind, fileloc loc, char **s) globSet globs; bool hasMods; sRefSet mods; - specialClauses specclauses; + stateClauseList specclauses = stateClauseList_undefined; + warnClause warnclause = warnClause_undefined; - if (optCheckChar (s, '$')) + if (reader_optCheckChar (s, '$')) { defstate = SS_DEFINED; isnull = NS_UNKNOWN; exitCode = XK_UNKNOWN; specc = SPC_NONE; - nullPred = QU_UNKNOWN; + nullPred = qual_createUnknown (); } else { - advanceField (s); defstate = sstate_fromInt (getInt (s)); - advanceField (s); isnull = nstate_fromInt (getInt (s)); - advanceField (s); exitCode = exitkind_fromInt (getInt (s)); - advanceField (s); specc = specCode_fromInt (getInt (s)); - advanceField (s); nullPred = qual_fromInt (getInt (s)); + advanceField (s); defstate = sstate_fromInt (reader_getInt (s)); + advanceField (s); isnull = nstate_fromInt (reader_getInt (s)); + advanceField (s); exitCode = exitkind_fromInt (reader_getInt (s)); + advanceField (s); specc = specCode_fromInt (reader_getInt (s)); + advanceField (s); nullPred = qual_undump (s); } - if (optCheckChar (s, '$')) + if (reader_optCheckChar (s, '$')) { hasGlobs = FALSE; globs = globSet_undefined; hasMods = FALSE; mods = sRefSet_undefined; } - else if (optCheckChar (s, '^')) + else if (reader_optCheckChar (s, '^')) { hasGlobs = TRUE; globs = globSet_undefined; @@ -4373,35 +4762,48 @@ uentry_undump (ekind kind, fileloc loc, char **s) } else { - advanceField (s); hasGlobs = bool_fromInt (getInt (s)); + advanceField (s); hasGlobs = bool_fromInt (reader_getInt (s)); advanceField (s); globs = globSet_undump (s); - advanceField (s); hasMods = bool_fromInt (getInt (s)); + advanceField (s); hasMods = bool_fromInt (reader_getInt (s)); advanceField (s); mods = sRefSet_undump (s); } - if (optCheckChar (s, '$')) + if (reader_optCheckChar (s, '$')) { ak = AK_UNKNOWN; exp = XO_UNKNOWN; } else { - advanceField (s); ak = alkind_fromInt (getInt (s)); - advanceField (s); exp = exkind_fromInt (getInt (s)); + advanceField (s); ak = alkind_fromInt (reader_getInt (s)); + advanceField (s); exp = exkind_fromInt (reader_getInt (s)); } advanceField (s); access = typeIdSet_undump (s); - if (optCheckChar (s, '@')) - { - specclauses = specialClauses_undump (s); - } - else + /* + ** Optional clauses: Start with @: + */ + + while (reader_optCheckChar (s, '@')) { - specclauses = specialClauses_undefined; + if (reader_optCheckChar (s, 'W')) /* Warn clause */ + { + reader_checkChar (s, ':'); + warnclause = warnClause_undump (s); + } + else if (reader_optCheckChar (s, 'S')) /* stateClause List */ + { + reader_checkChar (s, ':'); + specclauses = stateClauseList_undump (s); + } + else + { + BADBRANCH; + } } - advanceName (s); name = getStringWord (s); + advanceName (s); name = reader_getStringWord (s); ue = uentry_makeFunctionBase (name, ct, access, hasGlobs, globs, @@ -4409,6 +4811,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) ak, exp, defstate, isnull, exitCode, specc, nullPred, specclauses, + warnclause, fileloc_copy (loc)); DPRINTF (("Undump: %s", uentry_unparse (ue))); } @@ -4418,7 +4821,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) typeIdSet access; advanceField (s); access = typeIdSet_undump (s); - advanceName (s); name = getStringWord (s); + advanceName (s); name = reader_getStringWord (s); ue = uentry_makeIterBase (name, access, ct, fileloc_copy (loc)); @@ -4429,7 +4832,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) typeIdSet access; advanceField (s); access = typeIdSet_undump (s); - advanceName (s); name = getStringWord (s); + advanceName (s); name = reader_getStringWord (s); ue = uentry_makeEndIterBase (name, access, fileloc_copy (loc)); } @@ -4441,7 +4844,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) multiVal val; nstate nullstate; - if (optCheckChar (s, '$')) + if (reader_optCheckChar (s, '$')) { val = multiVal_undefined; access = typeIdSet_undefined; @@ -4451,10 +4854,10 @@ uentry_undump (ekind kind, fileloc loc, char **s) { advanceField (s); val = multiVal_undump (s); advanceField (s); access = typeIdSet_undump (s); - advanceField (s); nullstate = nstate_fromInt (getInt (s)); + advanceField (s); nullstate = nstate_fromInt (reader_getInt (s)); } - advanceName (s); name = getStringWord (s); + advanceName (s); name = reader_getStringWord (s); ue = uentry_makeConstantBase (name, ct, access, nullstate, fileloc_copy (loc), val); @@ -4467,7 +4870,7 @@ uentry_undump (ekind kind, fileloc loc, char **s) ctype rtype; advanceField (s); rtype = ctype_undump (s); - advanceName (s); name = getStringWord (s); + advanceName (s); name = reader_getStringWord (s); ue = uentry_makeTagBase (name, kind, ct, rtype, fileloc_copy (loc)); } break; @@ -4504,9 +4907,11 @@ static cstring uentry_dumpAux (uentry v, bool isParam) { llassert (uentry_isValid (v)); + llassert (!uentry_isGlobalMarker (v)); + DPRINTF (("Dump uentry: [%p]", v)); DPRINTF (("Dumping entry: %s", uentry_unparseFull (v))); - + switch (v->ukind) { case KINVALID: @@ -4587,6 +4992,13 @@ uentry_dumpAux (uentry v, bool isParam) } case KDATATYPE: + /* + DPRINTF (("Dumping datatype: %s -> %s type: %s [%d]", + uentry_unparse (v), + exkind_unparse (sRef_getExKind (v->sref)), + ctype_unparse (v->utype), (int) v->utype)); + */ + return (message ("%q@%s@%s@%d@%d@%d@%d@%q#%s", ctype_dump (v->utype), ynm_unparseCode (v->info->datatype->abs), @@ -4599,7 +5011,7 @@ uentry_dumpAux (uentry v, bool isParam) v->uname)); case KFCN: { - cstring sdump, gdump, adump; + cstring sdump, gdump, adump, xdump; alkind alk = sRef_getAliasKind (v->sref); exkind exk = sRef_getExKind (v->sref); @@ -4607,18 +5019,18 @@ uentry_dumpAux (uentry v, bool isParam) && !nstate_isKnown (sRef_getNullState (v->sref)) && !exitkind_isKnown (v->info->fcn->exitCode) && v->info->fcn->specialCode == SPC_NONE - && v->info->fcn->nullPred == QU_UNKNOWN) + && qual_isUnknown (v->info->fcn->nullPred)) { sdump = cstring_makeLiteral ("$"); } else { - sdump = message ("@%d@%d@%d@%d@%d", + sdump = message ("@%d@%d@%d@%d@%x", (int) sRef_getDefState (v->sref), (int) sRef_getNullState (v->sref), (int) v->info->fcn->exitCode, (int) v->info->fcn->specialCode, - (int) v->info->fcn->nullPred); + qual_dump (v->info->fcn->nullPred)); } if (!uentry_hasGlobs(v) && !uentry_hasMods (v)) @@ -4648,27 +5060,26 @@ uentry_dumpAux (uentry v, bool isParam) adump = message ("@%d@%d", (int) alk, (int) exk); } - if (uentry_hasSpecialClauses (v)) + xdump = cstring_undefined; + + if (uentry_hasWarning (v)) { - return (message ("%q%q%q%q@%q@%q#%s", - ctype_dump (v->utype), - sdump, - gdump, - adump, - typeIdSet_dump (uentry_accessType (v)), - specialClauses_dump (v->info->fcn->specclauses), - v->uname)); + xdump = message ("%q@W:%q", xdump, warnClause_dump (v->warn)); } - else + + if (uentry_hasStateClauseList (v)) { - return (message ("%q%q%q%q@%q#%s", - ctype_dump (v->utype), - sdump, - gdump, - adump, - typeIdSet_dump (uentry_accessType (v)), - v->uname)); + xdump = message ("%q@S:%q", xdump, stateClauseList_dump (v->info->fcn->specclauses)); } + + return (message ("%q%q%q%q@%q%q#%s", + ctype_dump (v->utype), + sdump, + gdump, + adump, + typeIdSet_dump (uentry_accessType (v)), + xdump, + v->uname)); } case KITER: return (message ("%q@%q#%s", @@ -4755,75 +5166,65 @@ uentry_unparseFull (uentry v) { return (cstring_makeLiteral ("")); } - else if (uentry_isDatatype (v)) - { - return (message ("[%d] [%s] %s %q : %t [%t] %s %s // %q [s: %q; d: %q]", - (int) v, - ekind_unparse (v->ukind), - v->uname, - uentry_getName (v), - v->utype, - ctype_isDefined (v->info->datatype->type) - ? v->info->datatype->type : ctype_unknown, - ynm_unparse (v->info->datatype->mut), - ynm_unparse (v->info->datatype->abs), - sRef_unparseState (v->sref), - fileloc_unparse (v->whereSpecified), - fileloc_unparse (v->whereDefined))); - } - else if (uentry_isFunction (v)) - { - return (message ("[%w] = [%s] %q : %t / sref: %q / mods: %q / " - "globs: %q / [s: %q; decl: %q; def: %q]", - (long unsigned) v, - ekind_unparse (v->ukind), - uentry_getName (v), - v->utype, - sRef_unparseFull (v->sref), - sRefSet_unparse (v->info->fcn->mods), - globSet_unparse (v->info->fcn->globs), - fileloc_unparse (v->whereSpecified), - fileloc_unparse (v->whereDeclared), - fileloc_unparse (v->whereDefined))); - } - else if (uentry_isIter (v)) - { - return (message ("[%s] %q: %t / %q [s: %q; d: %q]", - ekind_unparse (v->ukind), - uentry_getName (v), - v->utype, - sRef_unparseFull (v->sref), - fileloc_unparse (v->whereSpecified), - fileloc_unparse (v->whereDefined))); - } - else if (uentry_isVariable (v)) - { - return - (message ("[check: %s] / [%w] = [%s] %s : %t %q [s: %q; def: %q; dec: %q] " - "kind <%d> isout <%d> used <%d>", - checkedName (v->info->var->checked), - (long unsigned) v, - ekind_unparse (v->ukind), - v->uname, - v->utype, - sRef_unparseDeep (v->sref), - fileloc_unparse (v->whereSpecified), - fileloc_unparse (v->whereDefined), - fileloc_unparse (v->whereDeclared), - (int) v->info->var->kind, - (int) v->info->var->defstate, - (int) v->used)); - } else { - return (message ("[%s] %s : %t %q at [s: %q; d: %q]", - ekind_unparse (v->ukind), - v->uname, - v->utype, - sRef_unparseFull (v->sref), - fileloc_unparse (v->whereSpecified), - fileloc_unparse (v->whereDefined))); - + cstring res; + + res = message ("[%w] %s %s: %s [spec: %q; decl: %q; def: %q]", + (unsigned long) v, ekind_unparse (v->ukind), v->uname, + ctype_unparse (v->utype), + fileloc_unparse (uentry_whereSpecified (v)), + fileloc_unparse (uentry_whereDeclared (v)), + fileloc_unparse (uentry_whereDefined (v))); + + DPRINTF (("uentry: %s", res)); + + if (uentry_isDatatype (v)) + { + res = message ("%q / type: %s mut: %s abs: %s state: %q", + res, + ctype_unparse + (ctype_isDefined (v->info->datatype->type) + ? v->info->datatype->type : ctype_unknown), + ynm_unparse (v->info->datatype->mut), + ynm_unparse (v->info->datatype->abs), + sRef_unparseState (v->sref)); + } + else if (uentry_isFunction (v)) + { + res = message ("%q / sref: %q / mods: %q / " + "globs: %q / clauses: %q", + res, + sRef_unparseFull (v->sref), + sRefSet_unparse (v->info->fcn->mods), + globSet_unparse (v->info->fcn->globs), + stateClauseList_unparse (v->info->fcn->specclauses)); + } + else if (uentry_isIter (v)) + { + res = message ("%q / sref: %q", + res, + sRef_unparseFull (v->sref)); + } + else if (uentry_isVariable (v)) + { + res = message ("%q / sref: %q / kind <%d> isout <%d> null <%d> used <%d>", + res, + sRef_unparseFull (v->sref), + (int) v->info->var->kind, + (int) v->info->var->defstate, + (int) v->info->var->nullstate, + (int) v->used); + DPRINTF (("sref: [%p]", v->sref)); + DPRINTF (("sref: %s", sRef_unparseDebug (v->sref))); + /* DPRINTF (("sref: %s", sRef_unparseDeep (v->sref))); */ + } + else + { + res = message ("%q :: %q", res, uentry_unparse (v)); + } + + return res; } } @@ -5054,8 +5455,7 @@ exitkind uentry_getExitCode (uentry ue) } } -qual -uentry_nullPred (uentry u) +qual uentry_nullPred (uentry u) { llassert (uentry_isRealFunction (u)); @@ -5065,10 +5465,14 @@ uentry_nullPred (uentry u) } else { - return QU_UNKNOWN; + return qual_createUnknown (); } } +/* +** Note for variables, this is checking the declared state, not the current state. +*/ + bool uentry_possiblyNull (uentry u) { @@ -5128,7 +5532,8 @@ uentry_hasName (uentry e) { cstring s = e->uname; - return (!(cstring_isEmpty (s) || cstring_equalLit (s, "..."))); + return (!(cstring_isEmpty (s) || cstring_equalLit (s, "...") + || uentry_isFakeTag (e))); } else { @@ -5136,9 +5541,16 @@ uentry_hasName (uentry e) } } +/* +** Returns true for fake tags. +** This is used for dumping the library +*/ + bool uentry_hasRealName (uentry e) { - return (uentry_isValid (e) && cstring_isNonEmpty (e->uname)); + return (uentry_isValid (e) + && cstring_isNonEmpty (e->uname) + && !uentry_isGlobalMarker (e)); } @@ -5268,10 +5680,9 @@ uentry_getName (uentry e) if (uentry_isValid (e)) { - if (uentry_isAnyTag (e)) { - ret = fixTagName (e->uname); + ret = fixTagName (e->uname); } else if (uentry_isAnyParam (e)) { @@ -5286,6 +5697,36 @@ uentry_getName (uentry e) return ret; } +cstring uentry_observeRealName (uentry e) +{ + cstring ret = cstring_undefined; + + if (uentry_isValid (e)) + { + if (uentry_isAnyTag (e)) + { + if (isFakeTag (e->uname)) + { + ret = cstring_undefined; + } + else + { + ret = plainTagName (e->uname); + } + } + else if (uentry_isAnyParam (e)) + { + ret = fixParamName (e->uname); + } + else + { + ret = e->uname; + } + } + + return ret; +} + cstring uentry_getRealName (uentry e) { if (uentry_isValid (e)) @@ -5643,7 +6084,7 @@ uentry_resetParams (uentry ue, /*@only@*/ uentryList pn) if (ctype_isFunction (rct)) { - rettype = ctype_returnValue (rct); + rettype = ctype_getReturnType (rct); } ue->utype = ctype_makeNFParamsFunction (rettype, pn); @@ -5807,7 +6248,7 @@ ctype uentry_getRealType (uentry e) { usymId iid = ctype_typeId (ct); - if /*@access usymId@*/ (iid == uid) /*@noaccess usymId@*/ + if (usymId_equal (iid, uid)) { llcontbug (message ("uentry_getRealType: recursive type! %s", ctype_unparse (ct))); @@ -5817,7 +6258,12 @@ ctype uentry_getRealType (uentry e) { /* evs 2000-07-25: possible infinite recursion ? */ uentry ue2 = usymtab_getTypeEntry (iid); - llassertprint (ue2 != e, ("Bad recursion: %s", uentry_unparseFull (e))); + + if (ue2 == e) + { + llcontbug (message ("Bad recursion: %q", uentry_unparseFull (e))); + return ctype_unknown; + } return uentry_getRealType (ue2); } @@ -5867,7 +6313,7 @@ ctype uentry_getForceRealType (uentry e) { usymId iid = ctype_typeId (ct); - if /*@access usymId@*/ (iid == uid) /*@noaccess usymId@*/ + if (usymId_equal (iid, uid)) { llcontbug (message ("uentry_getRealType: recursive type! %s", ctype_unparse (ct))); @@ -5904,6 +6350,7 @@ uentry uentry_nameCopy (cstring name, uentry e) enew->hasNameError = FALSE; enew->uses = filelocList_new (); + enew->warn = warnClause_undefined; enew->storageclass = e->storageclass; enew->info = uinfo_copy (e->info, e->ukind); @@ -5957,6 +6404,10 @@ ucinfo_free (/*@only@*/ ucinfo u) static void uvinfo_free (/*@only@*/ uvinfo u) { + /*drl7x added 6/29/01 */ + /*free null terminated stuff */ + + free(u->bufinfo); sfree (u); } @@ -5971,15 +6422,7 @@ ufinfo_free (/*@only@*/ ufinfo u) { globSet_free (u->globs); sRefSet_free (u->mods); - specialClauses_free (u->specclauses); - - /*@i33*/ - /*fix up if this is the right way to handle this --drl*/ - if (u->preconditions != NULL) - constraintList_free(u->preconditions); - if (u->postconditions != NULL) - constraintList_free(u->postconditions); - + stateClauseList_free (u->specclauses); sfree (u); } @@ -6015,9 +6458,24 @@ uvinfo_copy (uvinfo u) ret->nullstate = u->nullstate; ret->defstate = u->defstate; ret->checked = u->checked; - //make sure line ok - //ret->bufinfo = u->bufinfo; - /*@i334@*/ return ret; + + /* drl added 07-02-001 */ + /* copy null terminated information */ + + if (u->bufinfo != NULL) + { + ret->bufinfo = (bbufinfo) dmalloc (sizeof( * u->bufinfo ) ); + ret->bufinfo->bufstate = u->bufinfo->bufstate; + ret->bufinfo->size = u->bufinfo->size; + ret->bufinfo->len = u->bufinfo->len; + return ret; + } + else + { + ret->bufinfo = NULL; + return ret; + } + } static /*@only@*/ udinfo @@ -6046,18 +6504,18 @@ ufinfo_copy (ufinfo u) ret->globs = globSet_newCopy (u->globs); ret->mods = sRefSet_newCopy (u->mods); ret->defparams = u->defparams; - ret->specclauses = specialClauses_copy (u->specclauses); + ret->specclauses = stateClauseList_copy (u->specclauses); /*drl 11 30 2000 */ /* change 6/8/01 */ - if (u->preconditions != NULL) + if (constraintList_isDefined(u->preconditions)) ret->preconditions = constraintList_copy(u->preconditions); else ret->preconditions = NULL; /* end drl */ - if (u->postconditions != NULL) + if (constraintList_isDefined(u->postconditions)) ret->postconditions = constraintList_copy(u->postconditions); else ret->postconditions = NULL; @@ -6150,6 +6608,8 @@ uentry_reallyFree (/*@notnull@*/ /*@only@*/ uentry e) fileloc_free (e->whereDefined); fileloc_free (e->whereDeclared); + warnClause_free (e->warn); + nuentries--; sfree (e); } @@ -6177,6 +6637,7 @@ uentry_freeComplete (/*@only@*/ uentry e) { if (uentry_isValid (e) && !uentry_isElipsisMarker (e)) { + DPRINTF (("Free complete: %s", sRef_unparseFull (e->sref))); /*@i@*/ sRef_free (e->sref); e->sref = sRef_undefined; uentry_reallyFree (e); @@ -6717,7 +7178,7 @@ nargsError (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew) { if (optgenerror (FLG_TYPE, - message ("Function %s %rdeclared with %d arg%p, %s with %d", + message ("Function %s %rdeclared with %d arg%&, %s with %d", unew->uname, uentry_isDeclared (old), uentryList_size (uentry_getParams (unew)), @@ -6737,10 +7198,10 @@ returnValueError (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew) message ("Function %s inconsistently %rdeclared to return %t", unew->uname, uentry_isDeclared (old), - ctype_returnValue (unew->utype)), + ctype_getReturnType (unew->utype)), uentry_whereDeclared (unew))) { - uentry_showWhereLastVal (old, ctype_unparse (ctype_returnValue (old->utype))); + uentry_showWhereLastVal (old, ctype_unparse (ctype_getReturnType (old->utype))); } } @@ -6837,7 +7298,7 @@ void checkNullState (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, bool m if (oldState == NS_MNOTNULL && (ctype_isUA (unew->utype) || (uentry_isFunction (unew) - && ctype_isUA (ctype_returnValue (unew->utype))))) + && ctype_isUA (ctype_getReturnType (unew->utype))))) { if (uentry_isVar (unew)) { @@ -6939,8 +7400,14 @@ void checkDefState (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, newState = sRef_getDefState (unew->sref); } - if (newState != oldState && newState != SS_UNKNOWN && newState != SS_DEFINED) + if (newState != oldState + && newState != SS_UNKNOWN + && newState != SS_DEFINED) { + DPRINTF (("Where declared: %s / %s", + fileloc_unparse (uentry_whereDeclared (unew)), + bool_unparse (fileloc_isXHFile (uentry_whereDeclared (unew))))); + if (mustConform) { if (optgenerror @@ -6962,7 +7429,7 @@ void checkDefState (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, uentry_showWhereSpecified (old); } } - + if (vars) old->info->var->defstate = newState; sRef_setDefState (old->sref, newState, uentry_whereDeclared (unew)); } @@ -6984,7 +7451,7 @@ void checkDefState (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, uentry_showWhereSpecified (old); } } - + if (vars) unew->info->var->defstate = oldState; sRef_setDefState (unew->sref, oldState, uentry_whereDeclared (unew)); } @@ -7050,6 +7517,8 @@ static void { uentry_showWhereSpecified (old); + DPRINTF (("Old: %s", sRef_unparseFull (old->sref))); + DPRINTF (("New: %s", sRef_unparseFull (unew->sref))); sRef_setAliasKind (old->sref, AK_ERROR, uentry_whereDeclared (unew)); } @@ -7176,6 +7645,94 @@ static void } } +static void +checkMetaState (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, + bool mustConform, /*@unused@*/ bool completeConform) +{ + valueTable newvals = sRef_getValueTable (unew->sref); + + if (valueTable_isDefined (newvals)) + { + DPRINTF (("Check meta state: %s -> %s", + uentry_unparseFull (old), + uentry_unparseFull (unew))); + + DPRINTF (("Check meta state refs: %s -> %s", + sRef_unparseFull (old->sref), + sRef_unparseFull (unew->sref))); + + DPRINTF (("Value table: %s", valueTable_unparse (newvals))); + + /* + ** Copy the new values into the old ref + */ + + valueTable_elements (newvals, key, newval) + { + metaStateInfo msinfo = context_lookupMetaStateInfo (key); + stateValue oldval = sRef_getMetaStateValue (old->sref, key); + + llassert (metaStateInfo_isDefined (msinfo)); + + if (stateValue_isUndefined (oldval)) + { + sRef_setMetaStateValue (old->sref, key, stateValue_getValue (newval), uentry_whereLast (unew)); + } + else + { + if (stateValue_isError (oldval)) + { + if (!stateValue_isError (newval)) + { + sRef_setMetaStateValue (old->sref, key, stateValue_getValue (newval), uentry_whereLast (unew)); + } + else + { + ; /* No change necessary. */ + } + } + else + { + if (stateValue_getValue (newval) != stateValue_getValue (oldval)) + { + if (fileloc_isXHFile (uentry_whereDeclared (unew))) + { + ; + } + else + { + if (mustConform + && optgenerror + (FLG_INCONDEFS, + message ("%s %q inconsistently %rdeclared %s %s, %s as %s", + uentry_ekindName (unew), + uentry_getName (unew), + uentry_isDeclared (old), + fcnErrName (unew), + metaStateInfo_unparseValue (msinfo, + stateValue_getValue (newval)), + uentry_specOrDefName (old), + metaStateInfo_unparseValue (msinfo, + stateValue_getValue (oldval))), + uentry_whereDeclared (unew))) + { + uentry_showWhereSpecified (old); + } + } + + DPRINTF (("Updating!")); + sRef_setMetaStateValue (old->sref, key, stateValue_getValue (newval), uentry_whereLast (unew)); + } + else + { + DPRINTF (("Values match")); + } + } + } + } end_valueTable_elements ; + } +} + static void uentry_checkStateConformance (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, @@ -7185,6 +7742,7 @@ uentry_checkStateConformance (/*@notnull@*/ uentry old, checkNullState (old, unew, mustConform, completeConform); checkAliasState (old, unew, mustConform, completeConform); checkExpState (old, unew, mustConform, completeConform); + checkMetaState (old, unew, mustConform, completeConform); sRef_storeState (old->sref); sRef_storeState (unew->sref); @@ -7456,6 +8014,10 @@ checkFunctionConformance (/*@unique@*/ /*@notnull@*/ uentry old, ctype oldRetType = ctype_unknown; ctype newRetType = ctype_unknown; + DPRINTF (("Function conform: %s ==> %s", + uentry_unparseFull (old), + uentry_unparseFull (unew))); + if (uentry_isForward (old)) { mustConform = FALSE; @@ -7471,14 +8033,14 @@ checkFunctionConformance (/*@unique@*/ /*@notnull@*/ uentry old, { llassert (ctype_isFunction (oldType)); - oldRetType = ctype_returnValue (oldType); + oldRetType = ctype_getReturnType (oldType); } if (ctype_isKnown (newType)) { llassert (ctype_isFunction (newType)); - newRetType = ctype_returnValue (newType); + newRetType = ctype_getReturnType (newType); } if (ctype_isKnown (oldRetType) && ctype_isKnown (newRetType) @@ -7516,7 +8078,11 @@ checkFunctionConformance (/*@unique@*/ /*@notnull@*/ uentry old, } } + DPRINTF (("Before state: %s", + uentry_unparseFull (old))); uentry_checkStateConformance (old, unew, mustConform, completeConform); + DPRINTF (("After state: %s", + uentry_unparseFull (old))); if (!exitkind_equal (unew->info->fcn->exitCode, old->info->fcn->exitCode)) { @@ -7541,7 +8107,7 @@ checkFunctionConformance (/*@unique@*/ /*@notnull@*/ uentry old, if (!qual_isUnknown (unew->info->fcn->nullPred)) { - if (!qual_equal (old->info->fcn->nullPred, unew->info->fcn->nullPred)) + if (!qual_match (old->info->fcn->nullPred, unew->info->fcn->nullPred)) { if (optgenerror (FLG_INCONDEFS, @@ -7761,10 +8327,14 @@ checkFunctionConformance (/*@unique@*/ /*@notnull@*/ uentry old, checkGlobalsConformance (old, unew, mustConform, completeConform); checkModifiesConformance (old, unew, mustConform, completeConform); - if (specialClauses_isDefined (unew->info->fcn->specclauses)) + DPRINTF (("Before list: %s", + uentry_unparseFull (old))); + + if (stateClauseList_isDefined (unew->info->fcn->specclauses)) { - if (!specialClauses_isDefined (old->info->fcn->specclauses)) + if (!stateClauseList_isDefined (old->info->fcn->specclauses)) { + /* if (optgenerror (FLG_INCONDEFS, message ("Function %q redeclared using special clauses (can only " @@ -7774,13 +8344,27 @@ checkFunctionConformance (/*@unique@*/ /*@notnull@*/ uentry old, { uentry_showWhereLast (old); } + */ + + /*@i23 need checking @*/ + + old->info->fcn->specclauses = unew->info->fcn->specclauses; } else { - specialClauses_checkEqual (old, unew); + /*@i43 should be able to append? @*/ + + stateClauseList_checkEqual (old, unew); + stateClauseList_free (unew->info->fcn->specclauses); + unew->info->fcn->specclauses = stateClauseList_undefined; + /*@-branchstate@*/ } + /*@=branchstate@*/ /*@i23 shouldn't need this@*/ } + DPRINTF (("After state: %s", + uentry_unparseFull (old))); + if (fileloc_isUndefined (old->whereDeclared)) { old->whereDeclared = fileloc_copy (unew->whereDeclared); @@ -7844,6 +8428,9 @@ bool checkTypeConformance (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, { if (mustConform) { + DPRINTF (("Check struct conformance: %s / %s", + uentry_unparseFull (old), + uentry_unparseFull (unew))); checkStructConformance (old, unew); } } @@ -7873,6 +8460,10 @@ bool checkTypeConformance (/*@notnull@*/ uentry old, /*@notnull@*/ uentry unew, } else if (!ctype_match (old->utype, unew->utype)) { + DPRINTF (("Type mismatch: %s / %s", + ctype_unparse (old->utype), + ctype_unparse (unew->utype))); + if (cstring_equal (uentry_rawName (old), context_getBoolName ())) { ctype realt = ctype_realType (unew->utype); @@ -8453,10 +9044,18 @@ uentry_mergeEntries (uentry spec, /*@only@*/ uentry def) llassert (uentry_isValid (spec)); llassert (uentry_isValid (def)); llassert (cstring_equal (spec->uname, def->uname)); + + DPRINTF (("Merge entries: %s / %s", + uentry_unparseFull (spec), + uentry_unparseFull (def))); uentry_checkConformance (spec, def, TRUE, context_getFlag (FLG_NEEDSPEC)); + DPRINTF (("Merge entries after conform: %s / %s", + uentry_unparseFull (spec), + uentry_unparseFull (def))); + /* was: !(fileloc_isImport (uentry_whereSpecified (spec)))); */ /* @@ -8566,6 +9165,10 @@ uentry_mergeDefinition (uentry old, /*@only@*/ uentry unew) fileloc unewdef = uentry_whereDeclared (unew); bool mustConform; bool wasForward; + + DPRINTF (("uentry merge: %s / %s", + uentry_unparseFull (old), + uentry_unparseFull (unew))); if (uentry_isExtern (unew)) { @@ -9026,36 +9629,49 @@ static void } } -static bool notNull (sRef sr, bool flip) +/* +** A reference is relevant for certain checks, only if it +** is not definitely null on this path (but not declared +** to always be null.) +*/ + +static bool uentry_relevantReference (sRef sr, bool flip) { - return (!sRef_definitelyNull (sr) - && !(sRef_isKept (sr)) - && !(sRef_isDependent (sr)) - && !(flip ? usymtab_isProbableDeepNull (sr) - : usymtab_isAltProbablyDeepNull (sr))); + if (sRef_isKept (sr) || sRef_isDependent (sr)) + { + return FALSE; + } + else + { + if (flip) + { + return !sRef_definitelyNullContext (sr); + } + else + { + return !sRef_definitelyNullAltContext (sr); + } + } } - -void -uentry_mergeState (uentry res, uentry other, fileloc loc, - bool mustReturn, bool flip, bool opt, - clause cl) -{ - llassert (uentry_isValid (res)); - llassert (uentry_isValid (other)); - llassert (res->ukind == other->ukind); - llassert (res->ukind == KVAR); - - DPRINTF (("Merge state: %s / %s", - uentry_unparse (res), - uentry_unparse (other))); +static void +uentry_mergeAliasStates (uentry res, uentry other, fileloc loc, + bool mustReturn, bool flip, bool opt, + clause cl) +{ + DPRINTF (("Merge alias states: %s / %s", + uentry_unparseFull (res), + uentry_unparseFull (other))); if (sRef_isValid (res->sref)) { if (!mustReturn) { + DPRINTF (("1")); if (incompatibleStates (res->sref, other->sref)) { + DPRINTF (("2")); + if (sRef_isThroughArrayFetch (res->sref) && !context_getFlag (FLG_STRICTBRANCHSTATE)) { @@ -9074,8 +9690,9 @@ uentry_mergeState (uentry res, uentry other, fileloc loc, } else { - if (notNull (other->sref, flip)) + if (uentry_relevantReference (other->sref, flip)) { + DPRINTF (("4")); if (sRef_isLocalParamVar (res->sref) && (sRef_isLocalState (other->sref) || sRef_isDependent (other->sref))) @@ -9105,7 +9722,7 @@ uentry_mergeState (uentry res, uentry other, fileloc loc, { if (incompatibleStates (other->sref, res->sref)) { - if (notNull (res->sref, !flip)) + if (uentry_relevantReference (res->sref, !flip)) { if (sRef_isLocalParamVar (res->sref) && (sRef_isDependent (res->sref) @@ -9130,9 +9747,9 @@ uentry_mergeState (uentry res, uentry other, fileloc loc, ** its okay. ** (e.g., free (s); s = new(); ... */ - + uentry uvar = usymtab_lookupSafe (other->uname); - + if (uentry_isValid (uvar) && ((sRef_isDead (other->sref) && sRef_isOnly (uvar->sref)) @@ -9149,13 +9766,17 @@ uentry_mergeState (uentry res, uentry other, fileloc loc, } else { + DPRINTF (("Here: %s / %s", + uentry_unparseFull (res), + uentry_unparseFull (other))); + branchStateAltError (res, other, flip, cl, loc); } } } } - + if (sRef_isKept (other->sref)) { sRef_setKept (res->sref, loc); @@ -9180,74 +9801,266 @@ uentry_mergeState (uentry res, uentry other, fileloc loc, sRef_setModified (res->sref); } } + } +} - if (cl == DOWHILECLAUSE) - { - res->used = other->used || res->used; - res->lset = other->lset || res->lset; - res->uses = filelocList_append (res->uses, other->uses); - other->uses = filelocList_undefined; - } - else +static void +uentry_mergeValueStates (uentry res, uentry other, fileloc loc) +{ + valueTable rvalues; + valueTable ovalues; + + DPRINTF (("Merge values: %s / %s", sRef_unparseFull (res->sref), sRef_unparseFull (other->sref))); + + rvalues = sRef_getValueTable (res->sref); + ovalues = sRef_getValueTable (other->sref); + + if (valueTable_isUndefined (ovalues)) + { + DPRINTF (("No value table: %s", sRef_unparseFull (other->sref))); + ; + } + else if (valueTable_isUndefined (rvalues)) + { + /* + ** Copy values from other + */ + + /*@i$@#@*/ + DPRINTF (("Has value table: %s", sRef_unparseFull (other->sref))); + DPRINTF (("No value table: %s", sRef_unparseFull (res->sref))); + ; + } + else + { + valueTable_elements (ovalues, fkey, fval) { + stateValue tval; + metaStateInfo minfo; + stateCombinationTable sctable; + cstring msg; + int nval; + + tval = valueTable_lookup (rvalues, fkey); + + DPRINTF (("Merge value: %s / %s X %s", fkey, + stateValue_unparse (fval), stateValue_unparse (tval))); + + minfo = context_lookupMetaStateInfo (fkey); + llassert (stateValue_isDefined (tval)); + + if (metaStateInfo_isUndefined (minfo) || !stateValue_isDefined (tval)) + { + DPRINTF (("Cannot find meta state for: %s", fkey)); + BADBRANCH; + } + else + { + llassert (metaStateInfo_isDefined (minfo)); + + if (stateValue_isError (fval) + || sRef_definitelyNullContext (res->sref)) + { + sRef_setMetaStateValueComplete (res->sref, + fkey, stateValue_getValue (fval), + loc); + DPRINTF (("Setting res: %s", sRef_unparseFull (res->sref))); + } + else if (stateValue_isError (tval) + || sRef_definitelyNullAltContext (other->sref)) + { + DPRINTF (("Other branch is definitely null!")); + } + else + { + DPRINTF (("Check: %s / %s / %s / %s", fkey, + metaStateInfo_unparse (minfo), + stateValue_unparse (fval), + stateValue_unparse (tval))); + + DPRINTF (("state values: %d / %d", + stateValue_getValue (fval), stateValue_getValue (tval))); + + sctable = metaStateInfo_getMergeTable (minfo); + + DPRINTF (("Merge table: %s", + stateCombinationTable_unparse (sctable))); + + msg = cstring_undefined; + + nval = stateCombinationTable_lookup (sctable, + stateValue_getValue (fval), + stateValue_getValue (tval), + &msg); + + DPRINTF (("nval: %d / %d / %d", nval, + stateValue_getValue (fval), stateValue_getValue (tval))); + + if (cstring_isDefined (msg)) + { + /*@i32 print extra info for assignments@*/ + + if (uentry_isGlobalMarker (res)) + { + if (optgenerror + (FLG_STATEMERGE, + message + ("Control branches merge with incompatible global states (%s and %s): %s", + metaStateInfo_unparseValue (minfo, stateValue_getValue (fval)), + metaStateInfo_unparseValue (minfo, stateValue_getValue (tval)), + msg), + loc)) + { + sRef_showMetaStateInfo (res->sref, fkey); + sRef_showMetaStateInfo (other->sref, fkey); + } + } + else + { + if (optgenerror + (FLG_STATEMERGE, + message + ("Control branches merge with incompatible states for %q (%s and %s): %s", + uentry_getName (res), + metaStateInfo_unparseValue (minfo, stateValue_getValue (fval)), + metaStateInfo_unparseValue (minfo, stateValue_getValue (tval)), + msg), + loc)) + { + sRef_showMetaStateInfo (res->sref, fkey); + sRef_showMetaStateInfo (other->sref, fkey); + DPRINTF (("Res: %s", sRef_unparseFull (res->sref))); + DPRINTF (("Other: %s", sRef_unparseFull (other->sref))); + DPRINTF (("Null: %s / %s", + bool_unparse (usymtab_isDefinitelyNull (res->sref)), + bool_unparse (usymtab_isDefinitelyNull (other->sref)))); + + } + } + } + + if (nval == stateValue_getValue (fval) + && nval != stateValue_getValue (tval)) + { + loc = stateValue_getLoc (fval); + } + else if (nval == stateValue_getValue (tval) + && nval != stateValue_getValue (fval)) + { + loc = stateValue_getLoc (tval); + } + else + { + ; + } + + if (stateValue_getValue (sRef_getMetaStateValue (res->sref, fkey)) == nval + && nval == stateValue_getValue (fval) + && nval == stateValue_getValue (tval)) + { + ; + } + else + { + sRef_setMetaStateValueComplete (res->sref, fkey, nval, loc); + } + } + } + } end_valueTable_elements ; + } +} + + +static void +uentry_mergeSetStates (uentry res, uentry other, /*@unused@*/ fileloc loc, + bool flip, clause cl) +{ + if (cl == DOWHILECLAUSE) + { + res->used = other->used || res->used; + res->lset = other->lset || res->lset; + res->uses = filelocList_append (res->uses, other->uses); + other->uses = filelocList_undefined; + } + else + { + if (sRef_isMacroParamRef (res->sref) + && !uentry_isSefParam (other) + && !uentry_isSefParam (res)) { - if (sRef_isMacroParamRef (res->sref) - && !uentry_isSefParam (other) - && !uentry_isSefParam (res)) + bool hasError = FALSE; + + if (bool_equal (res->used, other->used)) { - bool hasError = FALSE; - - if (bool_equal (res->used, other->used)) + res->used = other->used; + } + else + { + if (other->used && !flip) { - res->used = other->used; + hasError = + optgenerror + (FLG_MACROPARAMS, + message ("Macro parameter %q used in true clause, " + "but not in false clause", + uentry_getName (res)), + uentry_whereDeclared (res)); } else + { + hasError = + optgenerror + (FLG_MACROPARAMS, + message ("Macro parameter %q used in false clause, " + "but not in true clause", + uentry_getName (res)), + uentry_whereDeclared (res)); + } + res->used = TRUE; + + if (hasError) { - if (other->used && !flip) - { - hasError = - optgenerror - (FLG_MACROPARAMS, - message ("Macro parameter %q used in true clause, " - "but not in false clause", - uentry_getName (res)), - uentry_whereDeclared (res)); - } - else - { - hasError = - optgenerror - (FLG_MACROPARAMS, - message ("Macro parameter %q used in false clause, " - "but not in true clause", - uentry_getName (res)), - uentry_whereDeclared (res)); - } - res->used = TRUE; - - if (hasError) - { - /* make it sef now, prevent more errors */ - res->info->var->kind = VKREFSEFPARAM; - } + /* make it sef now, prevent more errors */ + res->info->var->kind = VKREFSEFPARAM; } } - else - { - res->used = other->used || res->used; - res->lset = other->lset || res->lset; - res->uses = filelocList_append (res->uses, other->uses); - other->uses = filelocList_undefined; - } + } + else + { + res->used = other->used || res->used; + res->lset = other->lset || res->lset; + res->uses = filelocList_append (res->uses, other->uses); + other->uses = filelocList_undefined; } } } +void +uentry_mergeState (uentry res, uentry other, fileloc loc, + bool mustReturn, bool flip, bool opt, + clause cl) +{ + llassert (uentry_isValid (res)); + llassert (uentry_isValid (other)); + + llassert (res->ukind == other->ukind); + llassert (res->ukind == KVAR); + + DPRINTF (("Merge state: %s / %s", uentry_unparseFull (res), + uentry_unparseFull (other))); + + uentry_mergeAliasStates (res, other, loc, mustReturn, flip, opt, cl); + uentry_mergeValueStates (res, other, loc); + uentry_mergeSetStates (res, other, loc, flip, cl); +} + void uentry_setUsed (uentry e, fileloc loc) { static bool firstTime = TRUE; static bool showUses = FALSE; static bool exportLocal = FALSE; + DPRINTF (("Used: %s / %s", uentry_unparse (e), fileloc_unparse (loc))); + if (firstTime) { /* need to track uses is FLG_SHOWUSES or FLG_EXPORTLOCAL is true */ @@ -9261,7 +10074,27 @@ void uentry_setUsed (uentry e, fileloc loc) if (uentry_isValid (e)) { int dp; - + + if (warnClause_isDefined (e->warn)) + { + flagSpec flg = warnClause_getFlag (e->warn); + cstring msg; + + if (warnClause_hasMessage (e->warn)) + { + msg = cstring_copy (warnClause_getMessage (e->warn)); + } + else + { + msg = message ("Use of possibly dangerous %s", + uentry_ekindNameLC (e)); + } + + vfsgenerror (flg, + message ("%q: %q", msg, uentry_getName (e)), + loc); + } + if (sRef_isMacroParamRef (e->sref)) { if (uentry_isYield (e) || uentry_isSefParam (e)) @@ -9306,7 +10139,7 @@ void uentry_setUsed (uentry e, fileloc loc) } e->used = TRUE; - + if (!sRef_isLocalVar (e->sref)) { if (showUses) @@ -9345,38 +10178,43 @@ bool uentry_isReturned (uentry u) { llassert (uentry_isRealFunction (u)); - if (ctype_isFunction (u->utype) - && sRef_isStateSpecial (uentry_getSref (u))) + if (ctype_isFunction (u->utype) && sRef_isStateSpecial (uentry_getSref (u))) { - specialClauses clauses = uentry_getSpecialClauses (u); - sRef res = sRef_makeNew (ctype_returnValue (u->utype), u->sref, u->uname); + stateClauseList clauses = uentry_getStateClauseList (u); + sRef res = sRef_makeNew (ctype_getReturnType (u->utype), u->sref, u->uname); + DPRINTF (("Returned: %s", sRef_unparseFull (res))); sRef_setAllocated (res, g_currentloc); - specialClauses_postElements (clauses, cl) - { - sRefSet refs = specialClause_getRefs (cl); - sRefMod modf = specialClause_getEffectFunction (cl); + DPRINTF (("ensures clause: %s / %s", uentry_unparse (u), + stateClauseList_unparse (clauses))); - sRefSet_elements (refs, el) + stateClauseList_postElements (clauses, cl) + { + if (!stateClause_isGlobal (cl)) { - sRef base = sRef_getRootBase (el); - - if (sRef_isResult (base)) + sRefSet refs = stateClause_getRefs (cl); + sRefMod modf = stateClause_getEffectFunction (cl); + + sRefSet_elements (refs, el) { - if (modf != NULL) + sRef base = sRef_getRootBase (el); + + if (sRef_isResult (base)) { - sRef sr = sRef_fixBase (el, res); - modf (sr, g_currentloc); + if (modf != NULL) + { + sRef sr = sRef_fixBase (el, res); + modf (sr, g_currentloc); + } } - } - else - { - ; - } - } end_sRefSet_elements ; - - } end_specialClauses_postElements ; + else + { + ; + } + } end_sRefSet_elements ; + } + } end_stateClauseList_postElements ; return res; } @@ -9399,10 +10237,14 @@ bool uentry_isReturned (uentry u) exprNode ecur = exprNodeList_nth (args, paramno); sRef tref = exprNode_getSref (ecur); + DPRINTF (("Returned reference: %s", sRef_unparseFull (tref))); + if (sRef_isValid (tref)) { sRef tcref = sRef_copy (tref); + usymtab_addForceMustAlias (tcref, tref); /* evans 2001-05-27 */ + if (sRef_isDead (tcref)) { sRef_setDefined (tcref, g_currentloc); @@ -9416,7 +10258,6 @@ bool uentry_isReturned (uentry u) } sRef_makeSafe (tcref); - prefs = sRefSet_insert (prefs, tcref); } } @@ -9435,6 +10276,7 @@ bool uentry_isReturned (uentry u) } else { + /* should this ever happen? */ /*@i534 evans 2001-05-27 */ res = sRefSet_mergeIntoOne (prefs); } @@ -9447,7 +10289,8 @@ bool uentry_isReturned (uentry u) { if (ctype_isFunction (u->utype)) { - res = sRef_makeNew (ctype_returnValue (u->utype), u->sref, u->uname); + DPRINTF (("Making new from %s -->", uentry_unparseFull (u))); + res = sRef_makeNew (ctype_getReturnType (u->utype), u->sref, u->uname); } else { @@ -9460,6 +10303,7 @@ bool uentry_isReturned (uentry u) } } + if (sRef_getNullState (res) == NS_ABSNULL) { ctype ct = ctype_realType (u->utype); @@ -9505,6 +10349,7 @@ bool uentry_isReturned (uentry u) sRefSet_free (prefs); + DPRINTF (("Returns ref: %s", sRef_unparseFull (res))); return res; } } @@ -9515,7 +10360,7 @@ static bool uentry_isRefCounted (uentry ue) if (ctype_isFunction (ct)) { - return (ctype_isRefCounted (ctype_returnValue (ct))); + return (ctype_isRefCounted (ctype_getReturnType (ct))); } else { @@ -9602,6 +10447,58 @@ uentry_ekindName (uentry ue) BADEXIT; } +/*@observer@*/ cstring +uentry_ekindNameLC (uentry ue) +{ + if (uentry_isValid (ue)) + { + switch (ue->ukind) + { + case KINVALID: + return cstring_makeLiteralTemp (""); + case KDATATYPE: + return cstring_makeLiteralTemp ("datatype"); + case KENUMCONST: + return cstring_makeLiteralTemp ("enum member"); + case KCONST: + return cstring_makeLiteralTemp ("constant"); + case KVAR: + if (uentry_isParam (ue)) + { + return cstring_makeLiteralTemp ("parameter"); + } + else if (uentry_isExpandedMacro (ue)) + { + return cstring_makeLiteralTemp ("expanded macro"); + } + else + { + return cstring_makeLiteralTemp ("variable"); + } + case KFCN: + return cstring_makeLiteralTemp ("function"); + case KITER: + return cstring_makeLiteralTemp ("iterator"); + case KENDITER: + return cstring_makeLiteralTemp ("iterator finalizer"); + case KSTRUCTTAG: + return cstring_makeLiteralTemp ("struct tag"); + case KUNIONTAG: + return cstring_makeLiteralTemp ("union tag"); + case KENUMTAG: + return cstring_makeLiteralTemp ("enum tag"); + case KELIPSMARKER: + return cstring_makeLiteralTemp ("optional parameters"); + } + } + else + { + return cstring_makeLiteralTemp (""); + } + + BADEXIT; +} + void uentry_setHasNameError (uentry ue) { llassert (uentry_isValid (ue)); @@ -9611,15 +10508,22 @@ void uentry_setHasNameError (uentry ue) void uentry_checkName (uentry ue) { + DPRINTF (("Checking name: %s / %s / %s", uentry_unparse (ue), + uentry_observeRealName (ue), + bool_unparse (uentry_isVisibleExternally (ue)))); + if (uentry_isValid (ue) + && !context_inXHFile () + && uentry_hasName (ue) && !uentry_isElipsisMarker (ue) && context_getFlag (FLG_NAMECHECKS) && !ue->hasNameError && !uentry_isEndIter (ue) && !fileloc_isBuiltin (uentry_whereLast (ue)) && (uentry_isExpandedMacro (ue) || !uentry_isForward (ue))) - { - + { + DPRINTF (("Here...")); + if (uentry_isPriv (ue)) { ; /* any checks here? */ @@ -9669,52 +10573,27 @@ void uentry_checkName (uentry ue) usymtab_checkDistinctName (ue, scope); } - + if (context_getFlag (FLG_CPPNAMES)) { - if (checkCppName (uentry_rawName (ue), uentry_whereLast (ue))) - { - uentry_setHasNameError (ue); - } + checkCppName (ue); } if (scope == globScope) { - checkGlobalName (ue); - - if (context_getFlag (FLG_ANSIRESERVED)) - { - if (uentry_hasName (ue) - && !uentry_isAnyTag (ue)) - { - if (checkAnsiName (uentry_rawName (ue), - uentry_whereLast (ue))) - { - uentry_setHasNameError (ue); - } - } - } + checkExternalName (ue); } - else + else if (scope == fileScope) + { + checkFileScopeName (ue); + } + else { checkLocalName (ue); - - if (context_getFlag (FLG_ANSIRESERVEDLOCAL)) - { - if (uentry_hasName (ue) - && !uentry_isAnyTag (ue)) - { - if (checkAnsiName (uentry_rawName (ue), - uentry_whereLast (ue))) - { - uentry_setHasNameError (ue); - } - } - } } - DPRINTF (("Check prefix: %s", uentry_unparse (ue))); checkPrefix (ue); + checkAnsiName (ue); } } } @@ -9756,19 +10635,54 @@ void uentry_checkName (uentry ue) return ue; } +uentry uentry_makeGlobalMarker () +{ + uentry ue; + fileloc tloc; + + llassert (sRef_inGlobalScope ()); + + ue = uentry_makeVariableAux + (GLOBAL_MARKER_NAME, ctype_unknown, fileloc_undefined, + sRef_makeGlobalMarker (), + FALSE, VKNORMAL); + + tloc = fileloc_createExternal (); + uentry_setUsed (ue, tloc); + uentry_setDefined (ue, tloc); + fileloc_free (tloc); + uentry_setHasNameError (ue); + + return ue; +} + + +bool uentry_isGlobalMarker (uentry ue) +{ + return (uentry_isValid (ue) + && (cstring_equal (uentry_rawName (ue), GLOBAL_MARKER_NAME))); +} + + +// /* new start modifications */ -/* -void uentry_testInRange (uentry p_e, uentry cconstant) { + +/*@ignore@*/ + + + + +static void uentry_testInRange (uentry p_e, uentry cconstant) { if( uentry_isValid(p_e) ) { if( sRef_isValid (p_e->sref) ) { char * t = cstring_toCharsSafe (uentry_unparse(cconstant) ); int index = atoi( t ); free (t); - usymtab_testInRange (p_e->sref, index); + // usymtab_testInRange (p_e->sref, index); }//end if }//endif } -*/ + /* void uentry_setStringLength (uentry p_e, uentry cconstant) { */ /* if( uentry_isValid(p_e) ) { */ @@ -9810,6 +10724,7 @@ modifies: p_e effects: sets the state of the variable */ + void uentry_setPossiblyNullTerminatedState (uentry p_e) { if( uentry_isValid(p_e) ) { if( p_e->info != NULL) { @@ -9906,5 +10821,5 @@ effects: sets the length of the buffer fprintf(stderr, "uentry:Error in setLen\n"); } - +/*@end@*/ /*@=type*/ diff --git a/src/uentryList.c b/src/uentryList.c index 773af21..bd3b6cd 100644 --- a/src/uentryList.c +++ b/src/uentryList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -293,7 +293,6 @@ uentryList_lookupRealName (uentryList s, cstring name) uentryList uentryList_copy (uentryList s) { - if (uentryList_isDefined (s)) { uentryList t = (uentryList) dmalloc (sizeof (*t)); @@ -309,14 +308,14 @@ uentryList uentryList_copy (uentryList s) for (i = 0; i < s->nelements; i++) { - t->elements[i] = uentry_copy (s->elements[i]); - } + t->elements[i] = uentry_copy (s->elements[i]); + } } else { t->elements = NULL; } - + return t; } else @@ -517,6 +516,10 @@ uentryList_compareFields (uentryList s, uentryList t) if (uc != 0) { + DPRINTF (("Bad compare: %s / %s", + uentry_unparseFull (s->elements [i]), + uentry_unparseFull (t->elements [i]))); + return uc; } } @@ -546,6 +549,7 @@ uentryList_dumpParams (uentryList s) uentryList_elements (s, current) { + DPRINTF (("Dump param: %s", uentry_unparse (current))); st = message ("%q%q,", st, uentry_dumpParam (current)); } end_uentryList_elements; @@ -564,10 +568,12 @@ uentryList_dumpFields (uentryList s) if (!uentry_isVariable (current)) { llassert (uentry_isFunction (current)); + DPRINTF (("Dump field: %s", uentry_unparse (current))); st = message ("%q!%q,", st, uentry_dump (current)); } else { + DPRINTF (("Dump field: %s", uentry_unparse (current))); st = message ("%q%q,", st, uentry_dump (current)); } } end_uentryList_elements; @@ -584,17 +590,17 @@ uentryList_undumpFields (char **s, fileloc loc) { if (**s == '!') { - checkChar (s, '!'); + reader_checkChar (s, '!'); ul = uentryList_add (ul, uentry_undump (ekind_function, loc, s)); } else { ul = uentryList_add (ul, uentry_undump (ekind_variable, loc, s)); } - checkChar (s, ','); + reader_checkChar (s, ','); } - checkChar (s, '}'); + reader_checkChar (s, '}'); return ul; } @@ -621,12 +627,12 @@ uentryList_undump (char **s) uentry_free (ue); } - checkChar (s, ','); + reader_checkChar (s, ','); c = **s; paramno++; } - checkChar (s, ')'); + reader_checkChar (s, ')'); return pn; } @@ -779,6 +785,7 @@ uentryList_showFieldDifference (uentryList p1, uentryList p2) else { /* evs 2000-07-25 was ctype_match, should match uentryList_matchFields */ + if (!ctype_almostEqual (uentry_getType (cp1), uentry_getType (cp2))) { llgenindentmsg @@ -811,6 +818,12 @@ uentryList_showFieldDifference (uentryList p1, uentryList p2) uentryList_unparse (p1), uentryList_unparse (p2))); } +bool +uentryList_equivFields (uentryList p1, uentryList p2) +{ + return (uentryList_compareFields (p1, p2) == 0); +} + bool uentryList_matchFields (uentryList p1, uentryList p2) { @@ -837,13 +850,17 @@ uentryList_matchFields (uentryList p1, uentryList p2) cp1 = p1->elements[index]; cp2 = p2->elements[index]; + /*@i32 + ** + ** Should compare uentry's --- need to fix report errors too. + */ + if (!(cstring_equal (uentry_rawName (cp1), uentry_rawName (cp2)) && (ctype_almostEqual (uentry_getType (cp1), uentry_getType (cp2))))) - { /* was ctype_match! */ + { return FALSE; } } return TRUE; } - diff --git a/src/usymIdSet.c b/src/usymIdSet.c index 661390f..68f9e9f 100644 --- a/src/usymIdSet.c +++ b/src/usymIdSet.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/usymtab.c b/src/usymtab.c index 2a45516..72802cd 100644 --- a/src/usymtab.c +++ b/src/usymtab.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -50,7 +50,7 @@ # include "basic.h" # include "structNames.h" # include "exprChecks.h" -# include "aliasChecks.h" +# include "transferChecks.h" /* ** Keep track of type definitions inside a function. @@ -61,7 +61,7 @@ static uentryList functypes = uentryList_undefined; static bool dbgfree = FALSE; static bool dbgload = TRUE; -/*@access ekind usymId@*/ +/*@access ekind@*/ /* ** Hack to prevent shadow errors from appearing when function parameters @@ -95,15 +95,20 @@ static /*@checkedstrict@*/ /*@dependent@*/ usymtab filetab; static /*@checkedstrict@*/ /*@owned@*/ usymtab oldtab; static int usymtab_lexicalLevel (void) /*@globals utab@*/ ; -static bool usymtab_isProbableNullAltBranch (sRef p_s) /*@globals utab@*/ ; +static bool usymtab_isAltDefinitelyNull (sRef p_s) /*@globals utab@*/ ; static void refTable_free (/*@only@*/ /*@null@*/ refTable p_x, int p_nentries); static ctype usymtab_suFieldsType (uentryList p_f, bool p_isStruct) /*@globals globtab@*/ ; +extern int usymtab_getCurrentDepth (void) /*@globals utab@*/ +{ + return utab->lexlevel; +} + static void usymtab_freeLevel (/*@notnull@*/ /*@only@*/ usymtab p_u) /*@globals globtab, utab, filetab@*/ /*@modifies p_u@*/ ; -static bool usymtab_isProbableNullAux (sRef p_s) /*@globals utab@*/ ; +static bool usymtab_isDefinitelyNullAux (sRef p_s) /*@globals utab@*/ ; static /*@only@*/ cstring usymtab_unparseStackTab (usymtab p_t); static /*@exposed@*/ /*@dependent@*/ uentry usymtab_getRefTab (/*@notnull@*/ usymtab p_u, int p_level, usymId p_index); @@ -123,8 +128,15 @@ static /*@exposed@*/ /*@dependent@*/ usymtab static /*@exposed@*/ /*@dependent@*/ uentry usymtab_getRefNoisy (/*@notnull@*/ usymtab p_s, int p_level, usymId p_index); +static /*@exposed@*/ /*@dependent@*/ uentry + usymtab_lookupQuietAux (usymtab p_s, cstring p_k, bool p_noalt); + static /*@exposed@*/ /*@dependent@*/ uentry usymtab_lookupQuiet (usymtab p_s, cstring p_k); + +static /*@exposed@*/ /*@dependent@*/ uentry + usymtab_lookupQuietNoAlt (usymtab p_s, cstring p_k); + static void usymtab_printAllAux (usymtab p_s) /*@modifies g_msgstream@*/ ; static int usymtab_getIndex (/*@notnull@*/ usymtab p_s, cstring p_k); static /*@exposed@*/ uentry usymtab_fetchIndex (/*@notnull@*/ usymtab p_s, int p_i); @@ -153,9 +165,9 @@ static void clearFunctionTypes (void) { if (cstring_isDefined (uentry_rawName (el))) { - if (globtab->htable != NULL) + if (cstringTable_isDefined (globtab->htable)) { - hashTable_remove (globtab->htable, uentry_rawName (el)); + cstringTable_remove (globtab->htable, uentry_rawName (el)); } uentry_setName (el, cstring_undefined); @@ -209,12 +221,12 @@ void usymtab_setExitCode (exitkind ex) } } -bool usymtab_isAltProbablyDeepNull (sRef s) +bool usymtab_isAltDefinitelyNullDeep (sRef s) { - return (sRef_deepPred (usymtab_isProbableNullAltBranch, s)); + return (sRef_deepPred (usymtab_isAltDefinitelyNull, s)); } -static bool usymtab_isProbableNullAltBranch (sRef s) +static bool usymtab_isAltDefinitelyNull (sRef s) /*@globals utab@*/ { guardSet t; @@ -230,7 +242,7 @@ static bool usymtab_isProbableNullAltBranch (sRef s) /*@=mods@*/ llassert (usymtab_isDefined (utab)); - res = usymtab_isProbableNull (s); + res = usymtab_isDefinitelyNull (s); /* ** This reports a spurious error. It is okay, because of @@ -255,22 +267,26 @@ static /*@notnull@*/ /*@special@*/ usymtab t->nentries = 0; t->nspace = CBASESIZE; t->entries = (uentry *) dmalloc (sizeof (*t->entries) * CBASESIZE); + + /* We only use a reftable for branch-level symbol tables. + */ + t->reftable = (nextlevel ? NULL : (refentry *) dmalloc (sizeof (*t->reftable) * CBASESIZE)); t->kind = kind; t->lexlevel = (env == GLOBAL_ENV ? 0 : env->lexlevel) + (nextlevel ? 1 : 0); - + t->env = env; t->htable = NULL; t->guards = guardSet_undefined; t->aliases = aliasTable_undefined; - t->mustBreak = FALSE; + t->mustBreak = FALSE; t->exitCode = XK_NEVERESCAPE; - + return t; } @@ -288,9 +304,9 @@ static /*@only@*/ /*@notnull@*/ usymtab u->entries = (uentry *) dmalloc (sizeof (*u->entries) * CGLOBBASESIZE); u->env = GLOBAL_ENV; u->lexlevel = 0; - u->htable = hashTable_create (CGLOBHASHSIZE); + u->htable = cstringTable_create (CGLOBHASHSIZE); u->reftable = NULL; - + u->guards = guardSet_new (); u->aliases = aliasTable_new (); @@ -298,7 +314,7 @@ static /*@only@*/ /*@notnull@*/ usymtab u->exitCode = XK_NEVERESCAPE; u->kind = US_NORMAL; - /*@i23@*/ return (u); + return (u); } void @@ -312,6 +328,20 @@ usymtab_initMod (void) oldtab = usymtab_undefined; } + +void +usymtab_initGlobalMarker () /*@globals globtab@*/ +{ + if (uentry_isValid (usymtab_lookupAux (globtab, GLOBAL_MARKER_NAME))) + { + ; /* Already entered from load table. */ + } + else + { + usymtab_addGlobalEntry (uentry_makeGlobalMarker ()); + } +} + /* ** utab should be empty? (requires?) ** @@ -440,9 +470,9 @@ usymtab_addEntryQuiet (/*@notnull@*/ usymtab s, /*@keep@*/ uentry e) } # endif - if (s->htable != NULL) + if (cstringTable_isDefined (s->htable)) { - hashTable_insert (s->htable, uentry_rawName (e), s->nentries); + cstringTable_insert (s->htable, cstring_copy (uentry_rawName (e)), s->nentries); } s->nentries++; @@ -481,6 +511,44 @@ usymtab_addEntryBase (/*@notnull@*/ usymtab s, /*@only@*/ uentry e) } } + +static /*@observer@*/ uentry /*@alt void@*/ +usymtab_addEntryAlways (/*@notnull@*/ usymtab s, /*@only@*/ uentry e) +{ + /* + ** In theory, we shouldn't need this test because it this is + ** only called when a library is being read, and it shouldn't + ** ever have a duplicate entry. In practice, its safer to + ** leave it in, though. + */ + + uentry old; + int thisentry = s->nentries; + + if (uentry_isValid (old = usymtab_lookupQuiet (s, uentry_rawName (e)))) + { + llcontbug + (message ("Duplicate entry in load library: %s. " + "Old entry: %q. New entry: %q", + uentry_rawName (e), + uentry_unparseFull (old), + uentry_unparseFull (e))); + + uentry_setName (e, message ("__x_%s", uentry_rawName (e))); + /* This shouldn't happen...unless the library is bad! */ + } + + + if (uentry_isVar (e) && !uentry_isGlobalMarker (e)) + { + uentry_setSref (e, sRef_makeCvar (globScope, thisentry, + uentry_getType (e))); + } + + usymtab_addEntryQuiet (s, e); + return e; +} + static usymId usymtab_addEntryAux (/*@notnull@*/ usymtab st, /*@keep@*/ uentry e, bool isSref) /*@globals globtab@*/ @@ -510,7 +578,7 @@ usymtab_addEntryAux (/*@notnull@*/ usymtab st, /*@keep@*/ uentry e, bool isSref) if (uentry_isFunction (e) && ctype_isFunction (ct)) { - ct = ctype_returnValue (ct); + ct = ctype_getReturnType (ct); } if (uentry_isStatic (e)) @@ -569,10 +637,10 @@ usymtab_addEntryAux (/*@notnull@*/ usymtab st, /*@keep@*/ uentry e, bool isSref) exprChecks_checkExport (e); } - uentry_checkName (e); usymtab_addEntryQuiet (st, e); + DPRINTF (("Adding entry: [%p] %s", e, uentry_unparseFull (e))); return (thisentry); } @@ -580,8 +648,7 @@ usymId usymtab_addEntry (uentry e) /*@globals utab, globtab@*/ /*@modifies utab, e@*/ -{ - +{ llassertprint (!usymtab_exists (uentry_rawName (e)), ("Entry already exists: %s", uentry_unparse (e))); @@ -615,6 +682,8 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, bool staticEntry = FALSE; int eindex; + DPRINTF (("Sup entry aux: %s", uentry_unparseFull (e))); + /* static tags in global scope */ if (st->lexlevel == fileScope && (!(uentry_isStatic (e)) || uentry_isAnyTag (e))) @@ -644,10 +713,10 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, st->entries[eindex] = st->entries[st->nentries - 1]; } - if (st->htable != NULL) + if (cstringTable_isDefined (st->htable)) { - hashTable_replaceKey (st->htable, uentry_rawName (ce), - uentry_rawName (e)); + cstringTable_replaceKey (st->htable, uentry_rawName (ce), + cstring_copy (uentry_rawName (e))); } uentry_free (ce); @@ -659,7 +728,11 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, if (uentry_isStatic (e)) { if (uentry_isFunction (e)) { - /* Static function declarations are at the file level, even if they are in a deeped scope. */ + /* + ** Static function declarations are at the file level, + ** even if they are in a deeper scope. + */ + st = usymtab_getFileTab (); staticEntry = TRUE; } else { @@ -679,7 +752,7 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, if (eindex != NOT_FOUND) { uentry ce = st->entries[eindex]; - + DPRINTF (("Found entry: %s", uentry_unparse (ce))); if (uentry_isPriv (ce) @@ -697,6 +770,8 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, llassert ((st->lexlevel > fileScope || !sRef_modInFunction ())); + DPRINTF (("Overloading!")); + st->entries[eindex] = e; if (uentry_isDatatype (e)) @@ -709,10 +784,10 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, exprChecks_checkExport (e); } - if (st->htable != NULL) + if (cstringTable_isDefined (st->htable)) { - hashTable_replaceKey (st->htable, uentry_rawName (ce), - uentry_rawName (e)); + cstringTable_replaceKey (st->htable, uentry_rawName (ce), + cstring_copy (uentry_rawName (e))); } uentry_free (ce); @@ -722,14 +797,15 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, { if (uentry_isSpecified (e)) { + DPRINTF (("Here we are: %s", uentry_unparseFull (e))); + if (fileloc_isImport (uentry_whereSpecified (ce))) - { - - if (st->htable != NULL) + { + if (cstringTable_isDefined (st->htable)) { - hashTable_replaceKey (st->htable, - uentry_rawName (ce), - uentry_rawName (e)); + cstringTable_replaceKey (st->htable, + uentry_rawName (ce), + cstring_copy (uentry_rawName (e))); } uentry_free (ce); @@ -746,18 +822,21 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, } else { - /* respecification errors already reported */ - + /* Respecification errors already reported */ + DPRINTF (("Respecification: %s / %s", + fileloc_unparse (uentry_whereSpecified (e)), + bool_unparse (fileloc_isSpec (uentry_whereSpecified (e))))); + if (uentry_isDatatype (e)) { uentry_setDatatype (e, eindex); } - if (st->htable != NULL) + if (cstringTable_isDefined (st->htable)) { - hashTable_replaceKey (st->htable, - uentry_rawName (ce), - uentry_rawName (e)); + cstringTable_replaceKey (st->htable, + uentry_rawName (ce), + cstring_copy (uentry_rawName (e))); } llassert ((st->lexlevel > fileScope || !sRef_modInFunction ())); @@ -769,15 +848,20 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, } else /* e not specified */ { + DPRINTF (("Merging...")); + if (uentry_isDeclared (ce)) { llassert ((st->lexlevel > fileScope || !sRef_modInFunction ())); + DPRINTF (("Merge defn")); uentry_mergeDefinition (ce, e); } else { llassert ((st->lexlevel > fileScope || !sRef_modInFunction ())); + DPRINTF (("Merge entries...")); uentry_mergeEntries (ce, e); + DPRINTF (("After: %s", uentry_unparseFull (ce))); } } } @@ -809,6 +893,7 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, } } + DPRINTF (("Merge..")); uentry_mergeDefinition (ce, e); } @@ -818,7 +903,7 @@ usymtab_supEntryAux (/*@notnull@*/ usymtab st, if (uentry_isFunction (ce) && ctype_isFunction (ct)) { - ct = ctype_returnValue (ct); + ct = ctype_getReturnType (ct); } uentry_setSref (ce, sRef_makeCvar (st->lexlevel, eindex, ct)); @@ -922,9 +1007,10 @@ usymtab_replaceEntryAux (/*@notnull@*/ usymtab st, /*@only@*/ uentry e) { uentry ce = st->entries[eindex]; - if (st->htable != NULL) + if (cstringTable_isDefined (st->htable)) { - hashTable_replaceKey (st->htable, uentry_rawName (ce), uentry_rawName (e)); + cstringTable_replaceKey (st->htable, uentry_rawName (ce), + cstring_copy (uentry_rawName (e))); } uentry_free (ce); @@ -1047,14 +1133,68 @@ usymtab_supReturnTypeEntry (/*@only@*/ uentry e) /*@modifies globtab@*/ { usymId uid; - + + DPRINTF (("Abstract? %s", uentry_unparseFull (e))); + if (uentry_isAbstractDatatype (e)) { uid = usymtab_supAbstractTypeEntry (e, FALSE); } + else if (uentry_isMaybeAbstract (e) && context_getFlag (FLG_IMPABSTRACT)) + { + bool maybeabs = TRUE; + cstring sname = uentry_getName (e); + uentry ue = usymtab_lookupGlobSafe (sname); + cstring_free (sname); + + if (uentry_isValid (ue)) + { + DPRINTF (("Lookup: %s", uentry_unparseFull (ue))); + + if (uentry_isDatatype (ue)) + { + if (uentry_isMaybeAbstract (ue)) + { + ; + } + else + { + maybeabs = FALSE; + } + } + else + { + DPRINTF (("Not datatype!")); + } + } + + if (maybeabs) + { + uentry ux; + uid = usymtab_supAbstractTypeEntry (e, FALSE); + ux = usymtab_getTypeEntry (uid); + uentry_setAbstract (ux); + } + else + { + uid = usymtab_supEntryAux (globtab, e, FALSE); + e = usymtab_getTypeEntry (uid); + + if (uentry_isMaybeAbstract (e)) + { + uentry_setConcrete (e); + } + } + } else { uid = usymtab_supEntryAux (globtab, e, FALSE); + e = usymtab_getTypeEntry (uid); + + if (uentry_isMaybeAbstract (e)) + { + uentry_setConcrete (e); + } } if (sRef_modInFunction ()) @@ -1071,15 +1211,17 @@ usymtab_supAbstractTypeEntry (/*@only@*/ uentry e, bool dodef) /*@modifies globtab, e@*/ { usymId uid; + uentry ue; + uid = usymtab_supEntryAux (globtab, e, FALSE); + ue = usymtab_getTypeEntry (uid); if (dodef) { - uentry ue = usymtab_getTypeEntry (uid); uentry_setDatatype (ue, uid); } - if (context_getFlag (FLG_ACCESSMODULE)) + if (context_getFlag (FLG_ACCESSMODULE)) /* was accessfile */ { context_addFileAccessType (uid); } @@ -1209,10 +1351,11 @@ usymtab_getIndex (/*@notnull@*/ usymtab s, cstring k) { int i; - if (s->htable != NULL) - { - i = hashTable_lookup (s->htable, k); + DPRINTF (("Lookup %s", k)); + if (cstringTable_isDefined (s->htable)) + { + i = cstringTable_lookup (s->htable, k); return i; } else @@ -1221,6 +1364,8 @@ usymtab_getIndex (/*@notnull@*/ usymtab s, cstring k) { uentry current = s->entries[i]; + DPRINTF (("Check %d: %s", i, uentry_rawName (current))); + if (!uentry_isUndefined (current) && cstring_equal (uentry_rawName (current), k)) { @@ -1258,7 +1403,8 @@ usymtab_lookupStructTag (cstring k) { cstring sname = makeStruct (k); uentry ue = usymtab_lookupGlob (sname); - cstring_free (sname); + + cstring_free (sname); return (ue); } @@ -1355,8 +1501,7 @@ usymtab_getEntryAux (/*@notnull@*/ usymtab s, usymId uid) } else { - llassert (uid >= 0 && uid < globtab->nentries); - + llassert (uid >= 0 && uid < globtab->nentries); return (globtab->entries[uid]); } } @@ -1410,21 +1555,21 @@ usymtab_getTypeEntryName (usymId uid) return (uentry_getName (ue)); } -static void +/*@unused@*/ static void usymtab_rehash (/*@notnull@*/ usymtab s) { int i; - if (s->htable != NULL) + if (cstringTable_isDefined (s->htable)) { - hashTable_free (s->htable); + cstringTable_free (s->htable); } - s->htable = hashTable_create (LLHASHSIZE); + s->htable = cstringTable_create (LLHASHSIZE); for (i = 0; i < s->nentries; i++) { - hashTable_insert (s->htable, uentry_rawName (s->entries[i]), i); + cstringTable_insert (s->htable, cstring_copy (uentry_rawName (s->entries[i])), i); } } @@ -1478,6 +1623,10 @@ usymId name = uentry_rawName (ue); ret = usymtab_getIndex (utab, name); + llassert (ret == uid); /*! for now, no rehash! */ + DPRINTF (("Convert: %s [%d] -> %s [%d]", + uentry_unparse (ue), uid, + uentry_unparse (utab->entries[ret]), ret)); llassertprint (ret != USYMIDINVALID, ("convertId: return is invalid")); @@ -1490,25 +1639,36 @@ usymtab_prepareDump (void) /*@modifies oldtab, utab@*/ { llassert (usymtab_inGlobalScope ()); - llassert (oldtab == usymtab_undefined); + /* + DPRINTF (("Preparing to dump:")); + usymtab_printAll (); + */ + oldtab = usymtab_shallowCopy (utab); /* - alpha compare - make sure order is same on different platforms - error messages appear in same order + ** alpha compare - make sure order is same on different platforms + ** error messages appear in same order */ + /* qsort (utab->entries, (size_t)utab->nentries, - sizeof (*utab->entries), (int (*)(const void *, const void *)) uentry_xcomparealpha); - + sizeof (*utab->entries), + (int (*)(const void *, const void *)) uentry_xcomparealpha); + usymtab_rehash (utab); + */ + + /* + DPRINTF (("After rehash:")); + usymtab_printAll (); + */ } -void - usymtab_dump (FILE *fout) - /*@globals utab, oldtab@*/ +void usymtab_dump (FILE *fout) + /*@globals utab, oldtab@*/ { int i; bool neednl = FALSE; @@ -1527,53 +1687,77 @@ void uentry thisentry = utab->entries[i]; ekind thisekind = uentry_getKind (thisentry); - - if (uentry_hasRealName (thisentry)) { - if (thisekind != lastekind) - { - if (neednl) - { - check (fputc ('\n', fout) == (int) '\n'); - } - - neednl = FALSE; - lastentry = uentry_undefined; - fprintf (fout, "*%d (%s)\n", ekind_toInt (thisekind), - cstring_toCharsSafe (ekind_capName (thisekind))); - lastekind = thisekind; - linelen = 0; - } - - if (uentry_isInvalid (lastentry) || !uentry_equiv (lastentry, thisentry) - || (linelen > (MAX_DUMP_LINE_LENGTH - (2 * MAX_NAME_LENGTH)))) - { - cstring cdump = uentry_dump (thisentry); - - lastentry = thisentry; - if (neednl) - { - check (fputc ('\n', fout) == (int) '\n'); - linelen = 0; - } - - linelen += cstring_length (cdump); - - /* no new line here! */ - if (cstring_length (cdump) > 0) - { - check (fputs (cstring_toCharsSafe (cdump), fout) != EOF); - } - - cstring_free (cdump); - neednl = TRUE; - } - else - { - cstring cdump = uentry_rawName (thisentry); - linelen += cstring_length (cdump); - fprintf (fout, "#%s", cstring_toCharsSafe (cdump)); - } - } + if (!uentry_hasRealName (thisentry)) + { + llassert (uentry_isGlobalMarker (thisentry)); + + if (neednl) + { + check (fputc ('\n', fout) == (int) '\n'); + } + + fprintf (fout, "*%d (GlobalMarker)\n", KGLOBALMARKER); + lastekind = KINVALID; + linelen = 0; + neednl = FALSE; + } + else + { + if (thisekind != lastekind) + { + if (neednl) + { + check (fputc ('\n', fout) == (int) '\n'); + } + + neednl = FALSE; + lastentry = uentry_undefined; + fprintf (fout, "*%d (%s)\n", ekind_toInt (thisekind), + cstring_toCharsSafe (ekind_capName (thisekind))); + lastekind = thisekind; + linelen = 0; + } + + /* + ** evans - 2001-02-18 - added the - 48 fudge factor... + ** extra characters dumped, but I haven't counded them carefully... + */ + + if (uentry_isInvalid (lastentry) || !uentry_equiv (lastentry, thisentry) + || (linelen > (MAX_DUMP_LINE_LENGTH - (2 * MAX_NAME_LENGTH) - 48))) + { + cstring cdump; + + DPRINTF (("Dumping entry: %d", i)); + cdump = message ("^%d %q", i, uentry_dump (thisentry)); + /* was: cdump = uentry_dump (thisentry)); */ + + lastentry = thisentry; + if (neednl) + { + check (fputc ('\n', fout) == (int) '\n'); + linelen = 0; + } + + linelen += cstring_length (cdump); + + /* no new line here! */ + if (cstring_length (cdump) > 0) + { + check (fputs (cstring_toCharsSafe (cdump), fout) != EOF); + } + + cstring_free (cdump); + neednl = TRUE; + } + else + { + cstring cdump = uentry_rawName (thisentry); + DPRINTF (("Raw name: %s", cdump)); + linelen += (cstring_length (cdump) + 1); + fprintf (fout, "#%s", cstring_toCharsSafe (cdump)); + } + } } if (neednl) @@ -1599,7 +1783,7 @@ void if ( constraintList_isDefined(preconditions) || constraintList_isDefined(postconditions) ) { - fprintf(fout,"%s\n", uentry_rawName(thisentry) ); + fprintf(fout,"%s\n", cstring_toCharsSafe (uentry_rawName(thisentry) ) ); if (constraintList_isDefined(preconditions) ) { fprintf(fout,"pre:\n"); @@ -1647,21 +1831,35 @@ void usymtab_load (FILE *f) llassert (utab == globtab); llassert (utab->nentries == 0); - while (fgets (s, MAX_DUMP_LINE_LENGTH, f) != NULL + while (((s = reader_readLine (f, s, MAX_DUMP_LINE_LENGTH)) != NULL) && *s == ';') { - ; /* ignore ;-comments */ + /* ignore ; comments */ ; } - + while (s != NULL && *s != ';') { - + int index; + if (*s == '*') { + int ek; s++; - kind = ekind_fromInt (getInt (&s)); + ek = reader_getInt (&s); - goto nextiter; + if (ek == KGLOBALMARKER) + { + uentry lue = uentry_makeGlobalMarker (); + DPRINTF (("Adding global marker: %s", uentry_unparseFull (lue))); + usymtab_addEntryAlways (utab, lue); + kind = KINVALID; + goto nextiter; + } + else + { + kind = ekind_fromInt (ek); + goto nextiter; + } } if (*s == '$') @@ -1672,12 +1870,29 @@ void usymtab_load (FILE *f) "to see which library is being loaded.")); } + if (reader_optCheckChar (&s, '^')) + { + index = reader_getInt (&s); + } + else + { + index = -1; + } + + llassert (kind != KINVALID); ue = uentry_undump (kind, loc, &s); - DPRINTF (("Load: %s", uentry_unparseFull (ue))); + + llassert (utab->nentries == index || index == -1); if (uentry_isValid (ue)) { - ue = usymtab_addEntryBase (utab, ue); + int lastindex = utab->nentries; + ue = usymtab_addEntryAlways (utab, ue); + if (utab->nentries != lastindex + 1) + { + DPRINTF (("No add: %s", uentry_unparseFull (ue))); + BADBRANCH; + } /*@-branchstate@*/ } /*@=branchstate@*/ @@ -1688,11 +1903,14 @@ void usymtab_load (FILE *f) while (*(s++) == '#') { - cstring name = cstring_fromCharsO (getWord (&s)); + cstring name = cstring_fromCharsO (reader_getWord (&s)); uentry nue = uentry_nameCopy (name, ue); + /* + DPRINTF (("Name copy: %s", uentry_unparseFull (nue))); + BADBRANCH; + */ - DPRINTF (("Name copy: %s", uentry_unparseFull (nue))); - usymtab_addEntryBase (utab, nue); + usymtab_addEntryAlways (utab, nue); } while ((c = *s) != '\0' && (c !='\n')) @@ -1706,7 +1924,9 @@ void usymtab_load (FILE *f) } nextiter: - s = fgets (os, MAX_DUMP_LINE_LENGTH, f); + { + s = reader_readLine (f, os, MAX_DUMP_LINE_LENGTH); + } } /*DRL added 6/21/01 @@ -1723,7 +1943,7 @@ void usymtab_load (FILE *f) constraintList preconditions; constraintList postconditions; - cstring name = getWord(&s); + cstring name = cstring_fromChars(reader_getWord(&s) ); cstring temp; ue = usymtab_lookup ( name ); @@ -1734,26 +1954,37 @@ void usymtab_load (FILE *f) if (!uentry_isValid(ue) ) { - llfatalbug ((message("Invalid uentry for %s library file may be corrupted", s) )); + llfatalbug ((message("Invalid uentry for %s library file may be corrupted", cstring_fromChars(s) ) )); } s = fgets (os, MAX_DUMP_LINE_LENGTH, f); - temp = getWord(&s); + temp = cstring_fromChars(reader_getWord(&s) ); - if (cstring_compare (temp,"pre:") == 0 ) + if (cstring_compareLit (temp,"pre:") == 0 ) { preconditions = constraintList_undump(f); } + else + { + if (cstring_compareLit (temp,"pre:EMPTY") != 0 ) + llfatalbug ((message("Error reading library file pre:EMPTY expected but got %s", temp ) )); + } + cstring_free(temp); s = fgets (os, MAX_DUMP_LINE_LENGTH, f); - temp = getWord(&s); - if (cstring_compare (temp,"post:") == 0 ) + temp = cstring_fromChars(reader_getWord(&s) ); + if (cstring_compareLit (temp,"post:") == 0 ) { postconditions = constraintList_undump(f); } - + else + { + if (cstring_compareLit (temp,"post:EMPTY") != 0 ) + llfatalbug ((message("Error reading library file post:EMPTY expected but got %s", temp ) )); + } + cstring_free(temp); uentry_setPreconditions (ue, preconditions); @@ -1842,7 +2073,6 @@ usymtab_handleParams (void) usymtab ptab = utab->env; uentry fcn = context_getHeader (); - usymtab_entries (ptab, param) { uentry ue; @@ -1851,147 +2081,189 @@ usymtab_handleParams (void) { sRef uref; sRef pref = uentry_getSref (param); - - llassertprint (uentry_isAnyParam (param), - ("not param: %s", - uentry_unparseFull (param))); - - - ue = uentry_makeVariable (fixParamName (uentry_rawName (param)), - uentry_getType (param), - fileloc_copy (uentry_whereDeclared (param)), - FALSE); - uentry_copyState (ue, param); - uentry_setRefParam (ue); - - ue = usymtab_supEntrySrefReturn (ue); - - /* must be after supercede! */ + /* Could be a global. */ - if (!sRef_stateKnown (pref)) - { - uentry_setDefState (ue, SS_DEFINED); - uentry_setDefState (param, SS_DEFINED); - } - else - { - if (sRef_isStateSpecial (pref)) + if (uentry_isAnyParam (param)) + { + ue = uentry_makeVariable (fixParamName (uentry_rawName (param)), + uentry_getType (param), + fileloc_copy (uentry_whereDeclared (param)), + FALSE); + + uentry_copyState (ue, param); + uentry_setRefParam (ue); + + ue = usymtab_supEntrySrefReturn (ue); + + /* must be after supercede! */ + + if (!sRef_stateKnown (pref)) { - uentry_setDefState (ue, SS_ALLOCATED); + uentry_setDefState (ue, SS_DEFINED); + uentry_setDefState (param, SS_DEFINED); } else { - uentry_setDefState (ue, sRef_getDefState (pref)); - } - } - - uref = uentry_getSref (ue); - - if (sRef_isStack (uref)) - { - alkind pkind = sRef_getAliasKind (pref); - - if (alkind_isKnown (pkind) && !alkind_isLocal (pkind) - && !alkind_isStack (pkind)) - { - sRef_setAliasKind (uref, pkind, fileloc_undefined); - sRef_setOrigAliasKind (uref, pkind); + if (sRef_isStateSpecial (pref)) + { + uentry_setDefState (ue, SS_ALLOCATED); + } + else + { + uentry_setDefState (ue, sRef_getDefState (pref)); + } } - else + + uref = uentry_getSref (ue); + + if (sRef_isStack (uref)) { - sRef_setAliasKind (uref, AK_IMPTEMP, fileloc_undefined); - sRef_setOrigAliasKind (uref, AK_IMPTEMP); - - if (uentry_isOut (param)) + alkind pkind = sRef_getAliasKind (pref); + + if (alkind_isKnown (pkind) && !alkind_isLocal (pkind) + && !alkind_isStack (pkind)) { - ; + sRef_setAliasKind (uref, pkind, fileloc_undefined); + sRef_setOrigAliasKind (uref, pkind); } else { - sRef_setDefined (uref, fileloc_undefined); + sRef_setAliasKind (uref, AK_IMPTEMP, fileloc_undefined); + sRef_setOrigAliasKind (uref, AK_IMPTEMP); + + if (uentry_isOut (param)) + { + ; + } + else + { + sRef_setDefined (uref, fileloc_undefined); + } } + } + + usymtab_addMustAlias (uref, pref); + + if (!(uentry_isOnly (param) || uentry_isUnique (param))) + { + /* + ** This is needed for detecting possibly aliased parameters. + */ - } - - usymtab_addMustAlias (uref, pref); - - if (!(uentry_isOnly (param) || uentry_isUnique (param))) - { - sRef s = sRef_makeExternal (uref); - - usymtab_addMustAlias (uref, s); - } - - if (sRef_isKillRef (pref)) - { - sRef_setAliasKind (uref, AK_NEWREF, fileloc_undefined); - sRef_setOrigAliasKind (uref, AK_KILLREF); - } - else if (sRef_isRefCounted (uref)) - { - sRef_setOrigAliasKind (uref, AK_REFCOUNTED); + sRef s = sRef_makeExternal (uref); + usymtab_addMustAlias (uref, s); + } + + if (sRef_isKillRef (pref)) + { + sRef_setAliasKind (uref, AK_NEWREF, fileloc_undefined); + sRef_setOrigAliasKind (uref, AK_KILLREF); + } + else if (sRef_isRefCounted (uref)) + { + sRef_setOrigAliasKind (uref, AK_REFCOUNTED); + } + else + { + /* was AK_UNIQUE */ + sRef_setOrigAliasKind (uref, AK_LOCAL); + } } else { - /* was AK_UNIQUE */ - sRef_setOrigAliasKind (uref, AK_LOCAL); } } - else - { - } } end_usymtab_entries; - - - if (uentry_hasSpecialClauses (fcn)) + + + if (uentry_hasStateClauseList (fcn)) { - specialClauses clauses = uentry_getSpecialClauses (fcn); - - specialClauses_preElements (clauses, cl) + stateClauseList clauses = uentry_getStateClauseList (fcn); + + stateClauseList_preElements (clauses, cl) { - sRefSet refs = specialClause_getRefs (cl); - sRefMod modf = specialClause_getEntryFunction (cl); - + fileloc loc = stateClause_loc (cl); + sRefSet osrs = sRefSet_undefined; + sRefSet srs; - sRefSet_elements (refs, el) + if (stateClause_isGlobal (cl)) + { + DPRINTF (("Global Marker: %s", + sRef_unparseFull (usymtab_lookupGlobalMarker ()))); + llassert (sRef_isGlobalMarker (usymtab_lookupGlobalMarker ())); + srs = sRefSet_single (usymtab_lookupGlobalMarker ()); + osrs = srs; + } + else + { + srs = stateClause_getRefs (cl); + } + + sRefSet_elements (srs, el) { sRef base = sRef_getRootBase (el); - + sRef sb = sRef_updateSref (el); + if (sRef_isResult (base)) { ; /* nothing to do before */ } - else if (sRef_isParam (base)) + else if (sRef_isParam (base) || sRef_isGlobalMarker (base)) { - if (modf != NULL) + if (stateClause_setsMetaState (cl)) { - sRef sb = sRef_updateSref (el); - sRefSet aliases = usymtab_allAliases (sb); + /* copied from exprNode.c:3040 */ + qual ql = stateClause_getMetaQual (cl); + annotationInfo ainfo = qual_getAnnotationInfo (ql); + metaStateInfo minfo = annotationInfo_getState (ainfo); + cstring key = metaStateInfo_getName (minfo); + int mvalue = annotationInfo_getValue (ainfo); - modf (sb, fileloc_undefined); - - sRefSet_elements (aliases, sr) + DPRINTF (("Sets meta state! %s", stateClause_unparse (cl))); + + if (sRef_isResult (base)) { - modf (sr, fileloc_undefined); - } end_sRefSet_elements ; - - sRefSet_free (aliases); + BADBRANCH; + } + else + { + sRef_setMetaStateValueComplete (sb, key, mvalue, loc); + } + } + else + { + sRefMod modf = stateClause_getEntryFunction (cl); + + if (modf != NULL) + { + sRefSet aliases = usymtab_allAliases (sb); + + modf (sb, loc); + + sRefSet_elements (aliases, sr) + { + modf (sr, loc); + } end_sRefSet_elements ; + + sRefSet_free (aliases); + } } } else { if (sRef_isValid (base)) { + DPRINTF (("Base: %s", sRef_unparseFull (base))); BADBRANCH; } } } end_sRefSet_elements ; - } end_specialClauses_preElements ; - } - } - + } end_stateClauseList_preElements ; + } +} + void usymtab_enterFunctionScope (uentry fcn) /*@globals utab, filetab, globtab@*/ @@ -2018,15 +2290,22 @@ usymtab_enterFunctionScope (uentry fcn) } /*@-branchstate@*/ } /*@=branchstate@*/ + utab = t; + + DPRINTF (("Globs: %s", globSet_unparse (uentry_getGlobs (fcn)))); + globSet_allElements (uentry_getGlobs (fcn), el) { + DPRINTF (("Here we go: %s", sRef_unparseFull (el))); if (sRef_isUndefGlob (el)) { int index = sRef_getScopeIndex (el); sRef sr = sRef_updateSref (el); fileloc loc = uentry_whereEarliest (fcn); - + + DPRINTF (("update: %s", sRef_unparseFull (sr))); + DPRINTF (("Undef!")); if (sRef_isFileStatic (el)) { ctype ct = sRef_getType (el); @@ -2076,11 +2355,19 @@ usymtab_enterFunctionScope (uentry fcn) } else { - /* defined */ ; + /* + sRef sr = sRef_updateSref (el); + fileloc loc = uentry_whereEarliest (fcn); + + sRef_setDefined (sr, loc); + */ + + /* defined */ + /* shouldn't need to do anything! */ } } end_globSet_allElements; - utab = t; + DPRINTF (("Globs after: %s", globSet_unparse (uentry_getGlobs (fcn)))); } static void @@ -2098,7 +2385,7 @@ usymtab_switchBranch (/*@unused@*/ exprNode s) usymtab t = usymtab_create (US_SWITCH, utab, FALSE); t->aliases = aliasTable_copy (utab->aliases); - utab = t; + utab = t; } void @@ -2117,11 +2404,11 @@ usymtab_trueBranch (/*@only@*/ guardSet guards) guardSet_free (t->guards); t->guards = guards; - - aliasTable_free (t->aliases); + + aliasTable_free (t->aliases); t->aliases = aliasTable_copy (utab->aliases); - utab = t; + utab = t; } /* @@ -2132,7 +2419,7 @@ usymtab_trueBranch (/*@only@*/ guardSet guards) */ void -usymtab_popTrueBranch (exprNode pred, exprNode expr, clause cl) +usymtab_popTrueBranch (exprNode pred, exprNode expr, clause cl) /*@modifies utab@*/ { /* ** add a false branch @@ -2140,8 +2427,17 @@ usymtab_popTrueBranch (exprNode pred, exprNode expr, clause cl) ** it is better to only maintain one version of the code) */ - usymtab_altBranch (guardSet_invert (exprNode_getGuards (pred))); - usymtab_popBranches (pred, expr, exprNode_undefined, TRUE, cl); + if (utab->kind != US_TBRANCH + && context_inIterDef ()) + { + usymtab_exitScope (expr); + } + else + { + DPRINTF (("pop true branch..")); + usymtab_altBranch (guardSet_invert (exprNode_getGuards (pred))); + usymtab_popBranches (pred, expr, exprNode_undefined, TRUE, cl); + } } void @@ -2309,7 +2605,7 @@ usymtab_popAndBranch (exprNode pred, /*@unused@*/ exprNode expr) usymtab otab= utab; int i = 0; - llassert (utab->kind == US_TBRANCH); + llassert (utab->kind == US_TBRANCH); /* ** merge each entry in table with its original @@ -2533,9 +2829,7 @@ updateNullState (sRef el, /*@notnull@*/ usymtab ttab, /*@notnull@*/ usymtab ftab, bool trueGuard) { sRef base = sRef_getRootBase (el); - int level = sRef_lexLevel (base); - - + int level = sRef_lexLevel (base); if (sRef_isCvar (base)) { @@ -2586,11 +2880,10 @@ updateNullState (sRef el, /*@notnull@*/ usymtab ttab, } else { - } - - } - - } + ; + } + } +} void usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, @@ -2608,7 +2901,11 @@ usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, sRefSet fguards = guardSet_getFalseGuards (guards); bool mustReturnT = exprNode_mustEscape (tbranch); bool mustReturnF = exprNode_mustEscape (fbranch); - + + DPRINTF (("Pop branches: %s [mustreturn: %s/%s]", exprNode_unparse (pred), + bool_unparse (mustReturnT), + bool_unparse (mustReturnF))); + if (exprNode_isDefined (fbranch)) { loc = exprNode_loc (fbranch); @@ -2655,23 +2952,28 @@ usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, ** ** if an entry is in one table, merge it with the original. */ - + + DPRINTF (("ftab: %d", ftab->nentries)); + for (i = 0; i < ftab->nentries; i++) { uentry fthis = ftab->entries[i]; uentry old = usymtab_lookupAux (env, uentry_rawName (fthis)); int tindex = usymtab_getIndex (ttab, uentry_rawName (fthis)); + DPRINTF (("Entry: %s / %s", uentry_unparseFull (fthis), uentry_unparseFull (old))); + if (uentry_isUndefined (old)) { /* possible entry was added as an undefined id */ + DPRINTF (("Undefined! %s", uentry_rawName (fthis))); continue; } if (tindex != NOT_FOUND) { uentry tthis = ttab->entries[tindex]; - + /* note that is this is in a nested branch, it may create a "new" old entry. */ @@ -2679,7 +2981,6 @@ usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, { if (!mustReturnT) { - uentry_mergeState (fthis, tthis, loc, mustReturnT, FALSE, FALSE, cl); } @@ -2713,12 +3014,20 @@ usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, { uentry current = ttab->entries[i]; + DPRINTF (("ttab: %s", uentry_unparseFull (current))); + if (!uentry_isUndefined (current)) { uentry old = usymtab_lookupAux (env, uentry_rawName (current)); - llassertprint (!uentry_isUndefined (old), ("name: <%s>", - uentry_rawName (current))); + DPRINTF (("Old: %s", uentry_unparseFull (old))); + + if (uentry_isUndefined (old)) + { + llcontbug (message ("Undefined entry: %s", uentry_rawName (current))); + continue; + } + if (mustReturnF) { uentry_mergeUses (current, old); @@ -2727,7 +3036,7 @@ usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, else { /* - ** assumes false branch is a fall-through if + ** Assumes false branch is a fall-through if ** fbranch is not defined. This is true, unless ** where was some greivous error in processing ** the else branch of an if-then, in which case @@ -2737,9 +3046,10 @@ usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, uentry_mergeState (old, current, loc, mustReturnT, FALSE, isOpt, cl); } + + DPRINTF (("==> %s", uentry_unparseFull (old))); } } - /* ** Plain levelUnion doesn't work, since we need to use the sRef's in env->aliases @@ -2755,6 +3065,8 @@ usymtab_popBranches (exprNode pred, exprNode tbranch, exprNode fbranch, ftab->aliases, env->lexlevel); aliasTable_fixSrefs (env->aliases); + + DPRINTF (("Aliases: %s", aliasTable_unparse (env->aliases))); /* exit true and false scopes */ usymtab_quietPlainExitScope (); @@ -2791,9 +3103,11 @@ void usymtab_altBranch (/*@only@*/ guardSet guards) /*@modifies utab@*/ { - usymtab t = usymtab_create (US_FBRANCH, utab, FALSE); + usymtab t; usymtab parent = utab->env; + t = usymtab_create (US_FBRANCH, utab, FALSE); + /* ** If we are in a case, need to close it. The C syntax ** is very liberal, so this kludge is necessary. @@ -2802,15 +3116,16 @@ usymtab_altBranch (/*@only@*/ guardSet guards) usymtab_fixCases (); DPRINTF (("Current kind: %s", usymtab_unparseStack ())); + llassert (utab->kind == US_TBRANCH); llassert (parent != GLOBAL_ENV); - + guardSet_free (t->guards); t->guards = guards; - + aliasTable_free (t->aliases); t->aliases = aliasTable_copy (parent->aliases); - + utab = t; } @@ -2854,7 +3169,7 @@ usymtab_allDefined (void) { fileloc dloc = uentry_whereDeclared (e); - if (fileloc_isLib (dloc)) + if (fileloc_isLib (dloc) || fileloc_isXHFile (dloc)) { ; } @@ -2933,6 +3248,7 @@ void usymtab_exportHeader (void) if (fileloc_isDefined (fwhere) && !fileloc_isHeader (fwhere) + && !fileloc_isXHFile (fwhere) && !(fileloc_isSpecialFile (fwhere) && !context_getFlag (FLG_UNUSEDSPECIAL))) { @@ -2983,12 +3299,10 @@ void usymtab_exportLocal (void) /*@globals utab@*/ { int i; - for (i = 0; i < utab->nentries; i++) { uentry ce = utab->entries[i]; - if (!uentry_isDatatype (ce) && !uentry_isAnyTag (ce) && !uentry_isEitherConstant (ce) @@ -3216,7 +3530,7 @@ usymtab_allUsed (void) ; /* no errors */ } } /* unused */ - else if (uentry_isDatatype (ce) || uentry_isAnyTag (ce)) + else if ((uentry_isDatatype (ce) || uentry_isAnyTag (ce))) { /* check all fields */ ctype ct = uentry_getRealType (ce); @@ -3226,7 +3540,6 @@ usymtab_allUsed (void) ct = ctype_getBaseType (ct); } - if (ctype_isSU (ct)) { uentryList fields = ctype_getFields (ct); @@ -3248,6 +3561,13 @@ usymtab_allUsed (void) } else { + /* + ** evans 2001-06-08 + ** Can't report these errors for unnamed structs. + ** No way to tell when there are multiple consistent + ** unnamed structure types. (Could go through table + ** and mark them all unused...) + hasError |= optgenerror (FLG_FIELDUNUSED, message ("Field %q of unnamed %s declared but not used", @@ -3255,6 +3575,8 @@ usymtab_allUsed (void) cstring_makeLiteralTemp (ctype_isStruct (ct) ? "structure" : "union")), uentry_whereEarliest (field)); + + */ } uentry_setUsed (field, fileloc_undefined); @@ -3291,9 +3613,17 @@ checkGlobalReturn (uentry glob, sRef orig) { sRef sr = uentry_getSref (glob); - + DPRINTF (("Check global return: %s // orig: %s // sr: %s", + uentry_unparseFull (glob), + sRef_unparseFull (orig), + sRef_unparseFull (sr))); + + DPRINTF (("Is killed: %s", bool_unparse (sRef_isKilledGlob (orig)))); + if (context_getFlag (FLG_GLOBSTATE)) { + DPRINTF (("Is killed: %s", sRef_unparseFull (orig))); + if (sRef_isKilledGlob (orig)) { if (sRef_isStateUndefined (sr) @@ -3312,16 +3642,17 @@ checkGlobalReturn (uentry glob, sRef orig) if (optgenerror (FLG_GLOBSTATE, message - ("Killed global %q not released before return", - uentry_getName (glob)), + ("Killed global %q (type %s) not released before return", + uentry_getName (glob), + ctype_unparse (ct)), g_currentloc)) { sRef_showStateInfo (sr); - } + } } else { - sRef_protectDerivs (); + sRef_protectDerivs (); (void) checkGlobalDestroyed (sr, g_currentloc); sRef_clearProtectDerivs (); } @@ -3356,8 +3687,9 @@ checkGlobalReturn (uentry glob, sRef orig) } } - if (ctype_isRealPointer (uentry_getType (glob)) && - sRef_possiblyNull (sr) && !uentry_possiblyNull (glob)) + if (ctype_isRealPointer (uentry_getType (glob)) + && sRef_possiblyNull (sr) + && !uentry_possiblyNull (glob)) { if (optgenerror (FLG_GLOBSTATE, @@ -3403,17 +3735,110 @@ void usymtab_checkFinalScope (bool isReturn) uentry ce = stab->entries[i]; sRef sr = uentry_getSref (ce); sRef rb = sRef_getRootBase (sr); + valueTable tvalues; + /* + ** Shouldn't check if shadow checked in deeper scope: + */ + + if (stab != utab) + { + uentry oue = usymtab_lookupQuietNoAlt (utab, uentry_observeRealName (ce)); + + if (!uentry_sameObject (ce, oue)) + { + DPRINTF (("Skipping outer entry: %s / %s", uentry_unparseFull (ce), + uentry_unparseFull (oue))); + /*@i32 what if it is one an alternate branch? */ + /*@innercontinue@*/ continue; + } + } + + DPRINTF (("Here check final scope: %s", uentry_unparseFull (ce))); + if (ctype_isFunction (uentry_getType (ce))) { /*@innercontinue@*/ continue; } + if (uentry_isAnyParam (ce) + || uentry_isRefParam (ce) + || sRef_isFileOrGlobalScope (rb)) + { + /* Don't do the loseref check...but should check state! */ + } + else if (sRef_isDefinitelyNull (sr) + || usymtab_isDefinitelyNull (sr)) + { + /* + ** No state reference errors for definitely null references. + */ + } + else + { + DPRINTF (("Lose ref: %s / %s", uentry_unparse (ce), + sRef_unparseFull (sr))); + + tvalues = sRef_getValueTable (sr); + + valueTable_elements (tvalues, fkey, fval) { + metaStateInfo minfo; + cstring msg = cstring_undefined; + int nval; + + minfo = context_lookupMetaStateInfo (fkey); + llassert (metaStateInfo_isDefined (minfo)); + + if (stateValue_isError (fval)) + { + ; + } + else + { + DPRINTF (("Check: %s / %s / %s", fkey, + metaStateInfo_unparse (minfo), + stateValue_unparse (fval))); + + minfo = context_lookupMetaStateInfo (fkey); + + nval = stateCombinationTable_lookupLoseReference + (metaStateInfo_getTransferTable (minfo), + stateValue_getValue (fval), &msg); + + if (cstring_isDefined (msg)) + { + /*@i32 print extra info for assignments@*/ + DPRINTF (("From: %s", sRef_unparseFull (sr))); + DPRINTF (("Null? %s / %s", + bool_unparse (sRef_isDefinitelyNull (sr)), + bool_unparse (usymtab_isGuarded (sr)))); + + if (optgenerror + (FLG_STATETRANSFER, + message + ("%s loses reference %q in invalid state %s (%s)", + cstring_makeLiteralTemp (isReturn ? "Return" : "Scope exit"), + uentry_getName (ce), + metaStateInfo_unparseValue (minfo, stateValue_getValue (fval)), + msg), + g_currentloc)) + { + stateValue_show (fval, minfo); + } + else + { + DPRINTF (("Suppressed transfer error: %s", msg)); + } + } + } + } end_valueTable_elements; + } + if (mustFree) { DPRINTF (("Check entry: %s", uentry_unparseFull (ce))); - - if (!sRefSet_member (checked, sr) && !sRef_isGlobal (rb)) + + if (!sRefSet_member (checked, sr) && !sRef_isFileOrGlobalScope (rb)) { if (ctype_isRealSU (uentry_getType (ce)) && !uentry_isAnyParam (ce) @@ -3423,7 +3848,6 @@ void usymtab_checkFinalScope (bool isReturn) && !sRef_isOwned (sr)) { sRefSet als = usymtab_allAliases (sr); - if (sRefSet_isEmpty (als)) { @@ -3443,10 +3867,12 @@ void usymtab_checkFinalScope (bool isReturn) || sRef_isKeep (sr) || sRef_isOwned (sr)) && !sRef_isDead (sr)) && (!sRef_definitelyNull (sr)) - && (!usymtab_isProbableNull (sr))))) + && (!usymtab_isDefinitelyNull (sr))))) { bool hasError = TRUE; + DPRINTF (("Checking: %s", sRef_unparseFull (sr))); + /* ** If its a scope exit, check if there is an alias. ** If so, make it only. If not, there is an error. @@ -3456,6 +3882,7 @@ void usymtab_checkFinalScope (bool isReturn) { if (canLoseReference (sr, g_currentloc)) { + DPRINTF (("Can lose!")); hasError = FALSE; } } @@ -3503,10 +3930,12 @@ void usymtab_checkFinalScope (bool isReturn) { if (ctype_isRealSU (sRef_getType (sr))) { - checkStructDestroyed (sr, g_currentloc); + checkStructDestroyed (sr, g_currentloc); } else { + DPRINTF (("Here we are: %s", sRef_unparseFull (sr))); + if (optgenerror (FLG_MUSTFREE, message @@ -3520,6 +3949,7 @@ void usymtab_checkFinalScope (bool isReturn) g_currentloc)) { sRef_showAliasInfo (sr); + DPRINTF (("Storage: %s", sRef_unparseFull (sr))); } } } @@ -3553,7 +3983,7 @@ void usymtab_checkFinalScope (bool isReturn) /* ** also check state is okay */ - + if (usymtab_lexicalLevel () > functionScope && uentry_isVariable (ce) && (sRef_isLocalVar (sr) @@ -3566,6 +3996,7 @@ void usymtab_checkFinalScope (bool isReturn) if (sRefSet_isEmpty (ab)) { /* and no local ref */ + DPRINTF (("Check lose ref: %s", uentry_unparseFull (ce))); checkLoseRef (ce); } else @@ -3583,6 +4014,7 @@ void usymtab_checkFinalScope (bool isReturn) checked = sRefSet_insert (checked, sr); } } + llassert (usymtab_isDefined (stab->env)); if (usymtab_isBranch (stab)) @@ -3593,12 +4025,12 @@ void usymtab_checkFinalScope (bool isReturn) { stab = stab->env; } - + llassert (stab != usymtab_undefined); } while (isReturn && (stab->lexlevel >= paramsScope)); - - sRefSet_free (checked); - + + sRefSet_free (checked); + /* ** for returns: ** all globals are appropriately defined @@ -3612,7 +4044,6 @@ void usymtab_checkFinalScope (bool isReturn) uentryList params = context_getParams (); globSet uglobs = context_getUsedGlobs (); globSet sglobs = context_getGlobs (); - if (isReturn && context_maybeSet (FLG_GLOBALIAS)) { @@ -3620,63 +4051,125 @@ void usymtab_checkFinalScope (bool isReturn) } /* - ** special clauses (defines, sets, allocates, releases) + ** state clauses (ensures, defines, sets, allocates, releases) */ - - if (uentry_hasSpecialClauses (fcn)) + + if (uentry_hasStateClauseList (fcn)) { - specialClauses clauses = uentry_getSpecialClauses (fcn); + stateClauseList clauses = uentry_getStateClauseList (fcn); - specialClauses_elements (clauses, cl) + stateClauseList_elements (clauses, cl) { - if (specialClause_isAfter (cl)) - { /* evs - 2000 07 10 - added this */ - sRefTest tst = specialClause_getPostTestFunction (cl); - sRefSet rfs = specialClause_getRefs (cl); - - sRefSet_elements (rfs, el) + if (stateClause_isAfter (cl) && !stateClause_isGlobal (cl)) + { + if (stateClause_setsMetaState (cl)) { - sRef base = sRef_getRootBase (el); - - if (sRef_isResult (base)) - { - ; - } - else if (sRef_isParam (base)) + sRefSet rfs = stateClause_getRefs (cl); + qual q = stateClause_getMetaQual (cl); + annotationInfo ainfo = qual_getAnnotationInfo (q); + metaStateInfo minfo = annotationInfo_getState (ainfo); + cstring key = metaStateInfo_getName (minfo); + int mvalue = annotationInfo_getValue (ainfo); + + DPRINTF (("Post meta state clause: %s", stateClause_unparse (cl))); + + sRefSet_elements (rfs, el) { - sRef sr = sRef_updateSref (base); - sr = sRef_fixBase (el, sr); + sRef base = sRef_getRootBase (el); - if (tst != NULL && !tst (sr)) + if (sRef_isResult (base)) + { + /* + ** This is checked for return transfers. + */ + ; + } + else if (sRef_isParam (base) || sRef_isGlobalMarker (base)) { - if (optgenerror - (specialClause_postErrorCode (cl), - message ("%s storage %qcorresponds to " - "storage listed in %q clause", - specialClause_postErrorString (cl, sr), - sRef_unparseOpt (sr), - specialClause_unparseKind (cl)), - g_currentloc)) + sRef sr = sRef_updateSref (base); + sr = sRef_fixBase (el, sr); + + if (!sRef_checkMetaStateValue (sr, key, mvalue)) { - sRefShower ss = specialClause_getPostTestShower (cl); - - if (ss != NULL) + if (optgenerror + (FLG_STATETRANSFER, + message + ("Ensures clause not satisfied%q (state is %s): %q", + sRef_isGlobalMarker (sr) + ? message ("") + : message (" by %q", sRef_unparse (sr)), + stateValue_unparseValue (sRef_getMetaStateValue (sr, key), + minfo), + stateClause_unparse (cl)), + g_currentloc)) { - ss (sr); - } - } + sRef_showMetaStateInfo (sr, key); + } + } } - } - else + else + { + if (sRef_isMeaningful (el)) + { + BADBRANCH; + } + } + } end_sRefSet_elements ; + } + else + { + /* evs - 2000 07 10 - added this */ + sRefTest tst = stateClause_getPostTestFunction (cl); + sRefSet rfs = stateClause_getRefs (cl); + + sRefSet_elements (rfs, el) { - if (sRef_isMeaningful (el)) + sRef base = sRef_getRootBase (el); + + if (sRef_isResult (base)) { - BADBRANCH; + /* + ** This is checked for return transfers. + */ + + ; } - } - } end_sRefSet_elements ; + else if (sRef_isParam (base)) + { + sRef sr = sRef_updateSref (base); + sr = sRef_fixBase (el, sr); + + if (tst != NULL && !tst (sr)) + { + if (optgenerror + (stateClause_postErrorCode (cl), + message ("%s storage %qcorresponds to " + "storage listed in %q clause", + stateClause_postErrorString (cl, sr), + sRef_unparseOpt (sr), + stateClause_unparseKind (cl)), + g_currentloc)) + { + sRefShower ss = stateClause_getPostTestShower (cl); + + if (ss != NULL) + { + ss (sr); + } + } + } + } + else + { + if (sRef_isMeaningful (el)) + { + BADBRANCH; + } + } + } end_sRefSet_elements ; + } } - } end_specialClauses_elements ; + } end_stateClauseList_elements ; } /* @@ -3692,18 +4185,26 @@ void usymtab_checkFinalScope (bool isReturn) if (ctype_isMutable (rt) || ctype_isSU (rt)) { uentry param = usymtab_lookupQuiet (utab, uentry_rawName (arg)); + DPRINTF (("Check param return: %s", uentry_unparseFull (param))); checkParamReturn (param); } } } end_uentryList_elements; + DPRINTF (("Check global return: %s", + globSet_unparse (sglobs))); + globSet_allElements (sglobs, el) { + sRef orig = el; /*! sRef_updateSref (el); */ /*!!!*/ uentry current = sRef_getUentry (el); + DPRINTF (("Check global return: %s / %s", sRef_unparseFull (el), + uentry_unparseFull (current))); + if (uentry_isVariable (current) && !uentry_isRealFunction (current)) { - checkGlobalReturn (current, el); + checkGlobalReturn (current, orig); } } end_globSet_allElements; @@ -3713,7 +4214,6 @@ void usymtab_checkFinalScope (bool isReturn) { uentry current = sRef_getUentry (el); - if (uentry_isVariable (current) && !uentry_isRealFunction (current)) { @@ -3721,9 +4221,8 @@ void usymtab_checkFinalScope (bool isReturn) } } } end_globSet_allElements; - } - - } + } +} void usymtab_quietExitScope (fileloc loc) @@ -3787,7 +4286,9 @@ void usymtab_exitScope (exprNode expr) usymtab ctab = usymtab_undefined; usymtab lctab = usymtab_undefined; bool mustReturn = exprNode_mustEscape (expr); - + + DPRINTF (("Exit scope")); + if (utab->kind == US_CBRANCH) { /* @@ -3811,8 +4312,11 @@ void usymtab_exitScope (exprNode expr) /* evs 2000-07-25 */ /* Unparseable macro may end inside nested scope. Deal with it. */ - llerror (FLG_SYNTAX, message ("Problem parsing macro body of %s (unbalanced scopes). Attempting to recover, recommend /*@notfunction@*/ before macro definition.", - context_inFunctionName ())); + llerror (FLG_SYNTAX, + message ("Problem parsing macro body of %s (unbalanced scopes). " + "Attempting to recover, recommend /*@notfunction@*/ before " + "macro definition.", + context_inFunctionName ())); while (utab->kind == US_TBRANCH || utab->kind == US_FBRANCH @@ -3823,7 +4327,7 @@ void usymtab_exitScope (exprNode expr) llassert (utab != GLOBAL_ENV); } } else { - llcontbug (message ("exitScope: in branch: %s", usymtab_unparseStack ())); + llcontbug (message ("exitScope: in branch: %q", usymtab_unparseStack ())); /*@-branchstate@*/ } /*@=branchstate@*/ } @@ -3934,9 +4438,13 @@ uentry_directParamNo (uentry ue) if (sRef_lexLevel (sr) == functionScope) { - /*@access sRef@*/ /*@-null@*/ - int index = sr->info->cvar->index; - /*@noaccess sRef@*/ /*@=null@*/ + int index; + + /*@access sRef@*/ + llassert (sr->info != NULL); + llassert (sr->info->cvar != NULL); + index = sr->info->cvar->index; + /*@noaccess sRef@*/ if (index < uentryList_size (context_getParams ())) { @@ -3992,16 +4500,13 @@ usymtab_getRefTab (/*@notnull@*/ usymtab u, int level, usymId index) { uentry ue; - ue = usymtab_getRefNoisy (u, level, index); - if (uentry_isUndefined (ue)) { llbug (message ("usymtab_getRef: out of range: %d. level = %d", index, level)); } - return ue; } @@ -4049,8 +4554,7 @@ static /*@dependent@*/ /*@exposed@*/ usymtab llassert (index >= 0); if (level > s->lexlevel) - { - + { return uentry_undefined; } @@ -4099,14 +4603,11 @@ usymtab_getRefNoisy (/*@notnull@*/ usymtab s, int level, usymId index) { usymtab otab = s; uentry ue = uentry_undefined; - llassert (index >= 0); - while (s->lexlevel > level) { - if (usymtab_isBranch (s)) { int eindex = refTable_lookup (s, level, index); @@ -4194,9 +4695,9 @@ usymtab_getRefNoisy (/*@notnull@*/ usymtab s, int level, usymId index) } else { - } + } } - + return ue; } @@ -4226,16 +4727,15 @@ int refTable_lookup (/*@notnull@*/ usymtab ut, int level, int index) llassert (rt != NULL); - for (i = 0; i < ut->nentries; i++) { if (rt[i]->level == level && rt[i]->index == index) { - return i; + return i; } } - - return NOT_FOUND; + + return NOT_FOUND; } static @@ -4255,8 +4755,14 @@ usymtab_addRefEntry (/*@notnull@*/ usymtab s, cstring k) int eindex; usymtab ut = s; - llassert (ut->reftable != NULL); + if (ut->reftable == NULL) + { + DPRINTF (("Adding ref entry without reftable: %s", k)); + return uentry_undefined; + } + llassert (ut->reftable != NULL); + while (s != GLOBAL_ENV) { eindex = usymtab_getIndex (s, k); @@ -4269,18 +4775,15 @@ usymtab_addRefEntry (/*@notnull@*/ usymtab s, cstring k) { uentry ue; - DPRINTF (("Here: copying %s", uentry_unparseFull (current))); - + DPRINTF (("Here: copying %s", uentry_unparse (current))); ue = uentry_copy (current); - - DPRINTF (("Here: copying %s", uentry_unparseFull (ue))); - + DPRINTF (("Here: copying %s", uentry_unparse (ue))); usymtab_addEntryQuiet (ut, ue); - + DPRINTF (("Okay...")); + if (s->reftable != NULL) { refentry ref = s->reftable[eindex]; - ut->reftable[ut->nentries - 1] = refentry_create (ref->level, ref->index); @@ -4316,16 +4819,32 @@ static uentry usymtab_lookupAux (usymtab s, cstring k) if (eindex != NOT_FOUND) { uentry ret = s->entries[eindex]; +# if 0 + + if (s->kind == US_TBRANCH + || s->kind == US_FBRANCH + || s->kind == US_CBRANCH) + /* uentry_isGlobalVariable (ret) && os->lexlevel > fileScope) */ + { + uentry ret; + DPRINTF (("Adding global ref entry: %s", k)); + ret = usymtab_addRefEntry (os, k); + DPRINTF (("Adding ref entry: %s", uentry_unparseFull (ret))); + return ret; + } + +# endif DPRINTF (("Found: %s", uentry_unparseFull (ret))); return (ret); } - + if (s->kind == US_TBRANCH || s->kind == US_FBRANCH || s->kind == US_CBRANCH) { + /* why isn't this os??? */ uentry ret = usymtab_addRefEntry (s, k); - DPRINTF (("Ref entry: %s", uentry_unparseFull (ret))); + DPRINTF (("Adding ref entry: %s", uentry_unparseFull (ret))); return ret; } @@ -4336,7 +4855,7 @@ static uentry usymtab_lookupAux (usymtab s, cstring k) } static /*@dependent@*/ /*@exposed@*/ uentry -usymtab_lookupQuiet (usymtab s, cstring k) +usymtab_lookupQuietAux (usymtab s, cstring k, bool noalt) { int eindex; @@ -4350,12 +4869,31 @@ usymtab_lookupQuiet (usymtab s, cstring k) return (ret); } - s = s->env; + if (noalt && usymtab_isBranch (s)) + { + s = usymtab_dropEnv (s); + } + else + { + s = s->env; + } } return uentry_undefined; } +static /*@exposed@*/ /*@dependent@*/ uentry +usymtab_lookupQuiet (usymtab s, cstring k) +{ + return usymtab_lookupQuietAux (s, k, FALSE); +} + +static /*@exposed@*/ /*@dependent@*/ uentry +usymtab_lookupQuietNoAlt (usymtab s, cstring k) +{ + return usymtab_lookupQuietAux (s, k, TRUE); +} + /*@dependent@*/ /*@observer@*/ uentry usymtab_lookupSafe (cstring k) /*@globals utab@*/ @@ -4479,7 +5017,12 @@ usymtab_suFieldsType (uentryList f, bool isStruct) { int i; - if (fileloc_isSpec (g_currentloc)) return (ctype_undefined); + DPRINTF (("Fields: %s", uentryList_unparse (f))); + + if (fileloc_isSpec (g_currentloc)) + { + return (ctype_undefined); + } for (i = 0; i < globtab->nentries; i++) { @@ -4491,11 +5034,19 @@ usymtab_suFieldsType (uentryList f, bool isStruct) if (isFakeTag (uentry_rawName (current))) { ctype ct = uentry_getType (current); + + DPRINTF (("Check: %s", ctype_unparse (ct))); if ((isStruct ? ctype_isStruct (ct) : ctype_isUnion (ct)) - && (uentryList_matchFields (f, ctype_getFields (ct)))) + && + (uentry_isSpecified (current) + && uentryList_equivFields (f, ctype_getFields (ct)))) { - return uentry_getAbstractType (current); + return uentry_getAbstractType (current); + } + else + { + ; } } } @@ -4536,7 +5087,6 @@ usymtab_exists (cstring k) /*@globals utab@*/ { uentry ce = usymtab_lookupSafe (k); - return (!(uentry_isUndefined (ce)) && !(uentry_isPriv (ce))); } @@ -4593,9 +5143,9 @@ bool usymtab_existsTypeEither (cstring k) /*@globals globtab@*/ { - uentry ce = usymtab_lookupAux (globtab, k); - - return (uentry_isValid (ce) && uentry_isDatatype (ce)); + uentry ce; + ce = usymtab_lookupAux (globtab, k); + return (uentry_isValid (ce) && uentry_isDatatype (ce)); } bool @@ -4603,10 +5153,7 @@ usymtab_existsStructTag (cstring k) /*@globals globtab@*/ { cstring sname = makeStruct (k); uentry ce = usymtab_lookupAux (globtab, sname); - - cstring_free (sname); - - + cstring_free (sname); return (!(uentry_isUndefined (ce)) && !(uentry_isPriv (ce))); } @@ -4668,7 +5215,7 @@ usymtab_freeLevel (/*@notnull@*/ /*@only@*/ usymtab u) int i; aliasTable_free (u->aliases); - // environmentTable_free (u->environment); + refTable_free (u->reftable, u->nentries); if (u == filetab || u == globtab) @@ -4693,7 +5240,7 @@ usymtab_freeLevel (/*@notnull@*/ /*@only@*/ usymtab u) && u != utab && u != filetab) { - llassert (u->htable == NULL); + llassert (!cstringTable_isDefined (u->htable)); sfree (u); } @@ -4856,17 +5403,17 @@ bool usymtab_isGuarded (sRef s) return (sRef_aliasCompleteSimplePred (usymtab_isGuardedAux, s)); } -bool usymtab_isProbableNull (sRef s) +bool usymtab_isDefinitelyNull (sRef s) { - return (sRef_aliasCheckSimplePred (usymtab_isProbableNullAux, s)); + return (sRef_aliasCheckSimplePred (usymtab_isDefinitelyNullAux, s)); } -bool usymtab_isProbableDeepNull (sRef s) +bool usymtab_isDefinitelyNullDeep (sRef s) { - return (sRef_deepPred (usymtab_isProbableNull, s)); + return (sRef_deepPred (usymtab_isDefinitelyNull, s)); } -static bool usymtab_isProbableNullAux (sRef s) +static bool usymtab_isDefinitelyNullAux (sRef s) /*@globals utab@*/ { usymtab tab = utab; @@ -4881,7 +5428,7 @@ static bool usymtab_isProbableNullAux (sRef s) while (tab->lexlevel >= lowlevel) { - if (guardSet_isProbableNull (tab->guards, s)) + if (guardSet_mustBeNull (tab->guards, s)) { return TRUE; } @@ -4945,7 +5492,7 @@ usymtab_displayAllUses () && !fileloc_isLib (uentry_whereDefined (ue)) && (size > 0)) { - llmsg (message ("%q (%q), %d use%p:\n %q", + llmsg (message ("%q (%q), %d use%&:\n %q", uentry_getName (ue), fileloc_unparse (uentry_whereDefined (ue)), size, filelocList_unparseUses (uses))); @@ -5012,47 +5559,12 @@ usymtab_typeName (/*@notnull@*/ usymtab t) BADEXIT; } -// oid usymtab_testInRange (sRef s, int index) /*@globals utab;@*/ -// { -// /*@i22*/ -// /*@-globs*/ -// environmentTable_testInRange (utab->environment, s, index); -// /*@=globs*/ -// } -// void usymtab_postopVar (sRef sr) /*@globals utab;@*/ -// { -// environmentTable_postOpvar (utab->environment, sr); - -// } -// /* doesn't do much check here assumes checking is done before call*/ -// void usymtab_addExactValue(sRef s1, int val) -// { -// /*@i22@*/ utab->environment = environmentTable_addExactValue (utab->environment, s1, val); -// } - -void usymtab_addMustAlias (sRef s, sRef al) +void usymtab_addMustAlias (/*@exposed@*/ sRef s, /*@exposed@*/ sRef al) /*@modifies utab@*/ { - if (sRef_isMeaningful (s) && sRef_isMeaningful (al) - && !(sRef_isConst (s) || sRef_isConst (al)) - && !(sRef_isAddress (al) && sRef_isDirectParam (sRef_getBase (al))) - && !(sRef_similar (s, al))) - { - utab->aliases = aliasTable_addMustAlias (utab->aliases, s, al); - DPRINTF (("Must alias: %s", aliasTable_unparse (utab->aliases))); - - /* - ** for local variable, aliasing is symmetric - */ - - if (sRef_isLocalVar (s) && sRef_isLocalVar (al)) - { - utab->aliases = aliasTable_addMustAlias (utab->aliases, al, s); - } - } - else + if (!sRef_similar (s, al)) { - ; + usymtab_addForceMustAlias (s, al); } } @@ -5060,7 +5572,7 @@ void usymtab_addMustAlias (sRef s, sRef al) ** Same as usymtab_addMustAlias, except does not check sRef_isSimilar. */ -void usymtab_addForceMustAlias (sRef s, sRef al) +void usymtab_addForceMustAlias (/*@exposed@*/ sRef s, /*@exposed@*/ sRef al) /*@modifies utab@*/ { if (sRef_isMeaningful (s) @@ -5099,33 +5611,32 @@ sRefSet usymtab_allAliases (sRef s) if (sRef_isMeaningful (s)) { sRefSet ret; - ret = sRefSet_unionFree (aliasTable_aliasedBy (utab->aliases, s), aliasTable_canAlias (utab->aliases, s)); - return (ret); + return (ret); } else { + DPRINTF (("NOT A MEANINGFUL SREF!")); return sRefSet_undefined; } } /*@only@*/ sRefSet usymtab_canAlias (sRef s) - /*@globals utab@*/ + /*@globals utab@*/ { if (sRef_isMeaningful (s)) { sRefSet res = aliasTable_canAlias (utab->aliases, s); - return res; } - + return sRefSet_undefined; } /*@only@*/ sRefSet usymtab_aliasedBy (sRef s) - /*@globals utab@*/ + /*@globals utab@*/ { return (aliasTable_aliasedBy (utab->aliases, s)); } @@ -5708,7 +6219,17 @@ void usymtab_checkDistinctName (uentry e, int scope) if (hasError) { - uentry_setHasNameError (e); + uentry_setHasNameError (e); } } +/*@exposed@*/ sRef usymtab_lookupGlobalMarker (void) /*@globals utab@*/ +{ + uentry ue; + + ue = usymtab_lookupAux (utab, GLOBAL_MARKER_NAME); + llassert (uentry_isValid (ue)); + + return uentry_getSref (ue); +} + diff --git a/src/usymtab_interface.c b/src/usymtab_interface.c index 9d486d2..87e414d 100644 --- a/src/usymtab_interface.c +++ b/src/usymtab_interface.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -1073,7 +1073,7 @@ declareFcnAux (fcnNode f, /*@only@*/ qtype qt, ctype ct, { globals = f->globals; - sl = fixModifies (f, args); + sl = fixModifies (f, args); /* ** Bind let declarations in modifies list @@ -1113,9 +1113,8 @@ declareFcnAux (fcnNode f, /*@only@*/ qtype qt, ctype ct, ue = usymtab_lookupGlob (cstring_makeLiteralTemp ("stderr")); - globlist = globSet_insert (globlist, sRef_copy (uentry_getSref (ue))); + globlist = globSet_insert (globlist, sRef_copy (uentry_getSref (ue))); sl = sRefSet_insert (sl, sRef_buildPointer (uentry_getSref (ue))); - } } @@ -1127,7 +1126,7 @@ declareFcnAux (fcnNode f, /*@only@*/ qtype qt, ctype ct, { acct = typeIdSet_single (tn); } - + if (usymtab_exists (s)) { uentry l = usymtab_lookup (s); @@ -1160,7 +1159,6 @@ declareFcnAux (fcnNode f, /*@only@*/ qtype qt, ctype ct, } uentry_reflectQualifiers (ue, qtype_getQuals (qt)); - usymtab_supEntry (ue); } else @@ -1173,7 +1171,6 @@ declareFcnAux (fcnNode f, /*@only@*/ qtype qt, ctype ct, ** loc); */ - fileloc_free (loc); sRefSet_free (sl); globSet_free (globlist); @@ -1209,14 +1206,17 @@ declareFcnAux (fcnNode f, /*@only@*/ qtype qt, ctype ct, uentry_reflectQualifiers (le, qtype_getQuals (qt)); - switch (f->special) - { - case QU_UNKNOWN: break; - case QU_PRINTFLIKE: uentry_setPrintfLike (le); break; - case QU_SCANFLIKE: uentry_setScanfLike (le); break; - case QU_MESSAGELIKE: uentry_setMessageLike (le); break; - BADDEFAULT; - } + if (qual_isUnknown (f->special)) { + ; + } else if (qual_isPrintfLike (f->special)) { + uentry_setPrintfLike (le); + } else if (qual_isScanfLike (f->special)) { + uentry_setScanfLike (le); + } else if (qual_isMessageLike (f->special)) { + uentry_setMessageLike (le); + } else { + BADBRANCH; + } usymtab_supEntry (le); } @@ -1230,7 +1230,7 @@ doDeclareFcn (fcnNode f, typeId tn, bool priv, bool spec) qtype qt = convertLclTypeSpecNode (f->typespec); ctype ct = convertTypeExpr (qtype_getType (qt), f->declarator->type); - declareFcnAux (f, qt, ct, tn, priv, spec); + declareFcnAux (f, qt, ct, tn, priv, spec); } /* diff --git a/src/valueTable.c b/src/valueTable.c new file mode 100644 index 0000000..5f532cf --- /dev/null +++ b/src/valueTable.c @@ -0,0 +1,79 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** valueTable.c +** Based on genericTable.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "randomNumbers.h" + +valueTable valueTable_copy (valueTable s) +{ + if (valueTable_size (s) > 0) + { + valueTable t; + t = valueTable_create (valueTable_size (s)); + + valueTable_elements (s, key, val) + { + valueTable_insert (t, cstring_copy (key), stateValue_copy (val)); + } end_valueTable_elements ; + + llassert (valueTable_size (s) == valueTable_size (t)); + return t; + } + else + { + return valueTable_undefined; + } +} + +cstring valueTable_unparse (valueTable h) +{ + cstring res = cstring_newEmpty (); + + valueTable_elements (h, key, val) { + DPRINTF (("Using key: %s", key)); + res = message ("%q%s: %s [%q]; ", res, key, + metaStateInfo_unparseValue (context_lookupMetaStateInfo (key), + stateValue_getValue (val)), + stateValue_unparse (val)); + } end_valueTable_elements ; + + return res; +} + +void valueTable_insert (valueTable h, cstring key, stateValue value) +{ + genericTable_insert ((genericTable) (h), key, (void *) (value)); +} + +void valueTable_update (valueTable h, cstring key, stateValue newval) +{ + DPRINTF (("Update: %s -> %s", key, stateValue_unparse (newval))); + + genericTable_update ((genericTable) (h), key, (void *) (newval)); +} diff --git a/src/varDeclarationNodeList.c b/src/varDeclarationNodeList.c index fbacc41..fe619f2 100644 --- a/src/varDeclarationNodeList.c +++ b/src/varDeclarationNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/varKinds.c b/src/varKinds.c index 1864dc3..7c483ee 100644 --- a/src/varKinds.c +++ b/src/varKinds.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it @@ -31,7 +31,10 @@ alkind alkind_fromInt (int n) { /*@+enumint@*/ - llassert (n >= AK_UNKNOWN && n <= AK_LOCAL); + if (n < AK_UNKNOWN || n > AK_LOCAL) + { + llbug (message ("Alias kind out of range: %d", n)); + } /*@=enumint@*/ return ((alkind)n); @@ -40,7 +43,8 @@ alkind alkind_fromInt (int n) nstate nstate_fromInt (int n) { /*@+enumint@*/ - llassert (n >= NS_ERROR && n <= NS_ABSNULL); + llassertprint (n >= NS_ERROR && n <= NS_ABSNULL, + ("Bad null state: %d", n)); /*@=enumint@*/ return ((nstate)n); @@ -125,6 +129,8 @@ cstring nstate_unparse (nstate n) case NS_CONSTNULL: return cstring_makeLiteralTemp ("null"); } + /*@notreached@*/ llcontbuglit ("bad null state!"); + /*@notreached@*/ return cstring_makeLiteralTemp ("!!! bad null state !!!"); BADEXIT; } @@ -157,6 +163,8 @@ alkind alkind_derive (alkind outer, alkind inner) case AK_IMPDEPENDENT: case AK_DEPENDENT: if (inner == AK_SHARED) return AK_SHARED; + else if (outer == AK_DEPENDENT) return AK_IMPDEPENDENT; + else if (outer == AK_ONLY) return AK_IMPONLY; else return outer; /* not so sure about these? */ case AK_REFCOUNTED: @@ -300,11 +308,14 @@ cstring alkind_capName (alkind a) exkind exkind_fromQual (qual q) { - if (qual_isExposed (q)) return XO_EXPOSED; - if (qual_isObserver (q)) return XO_OBSERVER; - else + if (qual_isExposed (q)) { + return XO_EXPOSED; + } else if (qual_isObserver (q)) { + return XO_OBSERVER; + } else { - llcontbug (message ("exkind_fromQual: not exp qualifier: %d" , (int)q)); + llcontbug (message ("exkind_fromQual: not exp qualifier: %s" , + qual_unparse (q))); return XO_UNKNOWN; } } @@ -321,9 +332,8 @@ sstate_fromQual (qual q) else if (qual_isSpecial (q)) return SS_SPECIAL; else { - llcontbug (message ("sstate_fromQual: not alias qualifier: %s (%d)" , - qual_unparse (q), - (int)q)); + llcontbug (message ("sstate_fromQual: not alias qualifier: %s", + qual_unparse (q))); return SS_UNKNOWN; } } @@ -362,7 +372,7 @@ alkind_fromQual (qual q) if (qual_isOwned (q)) return AK_OWNED; if (qual_isDependent (q)) return AK_DEPENDENT; - llcontbug (message ("alkind_fromQual: not alias qualifier: %d" , (int)q)); + llcontbug (message ("alkind_fromQual: not alias qualifier: %s", qual_unparse (q))); return AK_ERROR; } diff --git a/src/varNodeList.c b/src/varNodeList.c index a471484..7759212 100644 --- a/src/varNodeList.c +++ b/src/varNodeList.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it diff --git a/src/warnClause.c b/src/warnClause.c new file mode 100644 index 0000000..c0e5d3c --- /dev/null +++ b/src/warnClause.c @@ -0,0 +1,128 @@ +/* +** LCLint - annotation-assisted static program checker +** Copyright (C) 1994-2001 University of Virginia, +** Massachusetts Institute of Technology +** +** This program is free software; you can redistribute it and/or modify it +** under the terms of the GNU General Public License as published by the +** Free Software Foundation; either version 2 of the License, or (at your +** option) any later version. +** +** This program is distributed in the hope that it will be useful, but +** WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. +** +** The GNU General Public License is available from http://www.gnu.org/ or +** the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, +** MA 02111-1307, USA. +** +** For information on lclint: lclint-request@cs.virginia.edu +** To report a bug: lclint-bug@cs.virginia.edu +** For more information: http://lclint.cs.virginia.edu +*/ +/* +** warnClause.c +*/ + +# include "lclintMacros.nf" +# include "basic.h" +# include "mtgrammar.h" + +static warnClause warnClause_createAux (/*@only@*/ fileloc loc, + /*@only@*/ flagSpec flag, + /*@only@*/ exprNode msg) +{ + warnClause res = (warnClause) dmalloc (sizeof (*res)); + + res->loc = loc; + res->flag = flag; + res->msg = msg; + + return res; +} + +extern warnClause warnClause_create (lltok tok, flagSpec flag, exprNode msg) +{ + warnClause res; + DPRINTF (("Create warn message: %s/ %s ", + flagSpec_unparse (flag), exprNode_unparse(msg))); + + res = warnClause_createAux (lltok_stealLoc (tok), + flag, msg); + lltok_release (tok); + return res; +} + +extern flagSpec warnClause_getFlag (warnClause w) +{ + return w->flag; +} + +extern cstring warnClause_unparse (warnClause w) +{ + if (warnClause_isDefined (w)) + { + return message ("<%q> %s", + flagSpec_unparse (w->flag), exprNode_unparse (w->msg)); + } + else + { + return cstring_undefined; + } +} + +extern bool warnClause_hasMessage (warnClause w) +{ + return warnClause_isDefined (w) && exprNode_isDefined (w->msg) + && cstring_isDefined (multiVal_forceString (exprNode_getValue (w->msg))); +} + +extern /*@observer@*/ cstring warnClause_getMessage (warnClause w) +{ + if (warnClause_isDefined (w) && exprNode_isDefined (w->msg)) { + llassert (exprNode_knownStringValue (w->msg)); + return multiVal_forceString (exprNode_getValue (w->msg)); + } else { + return cstring_undefined; + } +} + + +extern void warnClause_free (warnClause w) +{ + if (warnClause_isDefined (w)) + { + flagSpec_free (w->flag); + exprNode_free (w->msg); + fileloc_free (w->loc); + sfree (w); + } +} + +/*@only@*/ cstring +warnClause_dump (warnClause wc) +{ + cstring st = cstring_undefined; + + llassert (!cstring_containsChar (warnClause_getMessage (wc), '#')); + + st = message ("%q#%s#", flagSpec_dump (wc->flag), warnClause_getMessage (wc)); + return st; +} + +warnClause +warnClause_undump (char **s) +{ + flagSpec flag; + cstring msg; + exprNode emsg; + + flag = flagSpec_undump (s); + reader_checkChar (s, '#'); + msg = reader_readUntil (s, '#'); + reader_checkChar (s, '#'); + emsg = exprNode_rawStringLiteral (msg, fileloc_copy (g_currentloc)); + + return warnClause_createAux (fileloc_copy (g_currentloc), flag, emsg); +} diff --git a/src/ynm.c b/src/ynm.c index fe5c0e2..a30119b 100644 --- a/src/ynm.c +++ b/src/ynm.c @@ -1,6 +1,6 @@ /* ** LCLint - annotation-assisted static program checker -** Copyright (C) 1994-2000 University of Virginia, +** Copyright (C) 1994-2001 University of Virginia, ** Massachusetts Institute of Technology ** ** This program is free software; you can redistribute it and/or modify it -- 2.45.2